Index: qrda/C0Q/trunk/p/C0QUTIL.m
===================================================================
--- qrda/C0Q/trunk/p/C0QUTIL.m	(revision 1364)
+++ qrda/C0Q/trunk/p/C0QUTIL.m	(revision 1438)
@@ -1,79 +1,79 @@
-C0QUTIL ;JJOH/ZAG/GPL - Utilities for C0Q Package ;9/2/11 4:30pm
- ;;1.0;MU PACKAGE;;;Build 27
- ;
- ;2011 Licensed under the terms of the GNU General Public License
- ;See attached copy of the License.
- ;
- ;This program is free software; you can redistribute it and/or modify
- ;it under the terms of the GNU General Public License as published by
- ;the Free Software Foundation; either version 2 of the License, or
- ;(at your option) any later version.
- ;
- ;This program is distributed in the hope that it will be useful,
- ;but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- ;GNU General Public License for more details.
- ;
- ;You should have received a copy of the GNU General Public License along
- ;with this program; if not, write to the Free Software Foundation, Inc.,
- ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- ;
-AGE(DFN) ; return current age in years and months
- ;
- Q:'$G(DFN)  ;quit if no there is no patient
- N DOB S DOB=$P(^DPT(+DFN,0),U,3) ;date of birth
- N YRS
- N DOD S DOD=+$G(^DPT(9,.35)) ;check for date of death
- I 'DOD D
- . N CDTE S CDTE=DT ;current date
- . S YRS=$E(CDTE,1,3)-$E(DOB,1,3)-($E(CDTE,4,7)<$E(DOB,4,7))
- E  D
- . S YRS=$E(DOD,1,3)-$E(DOB,1,3)-($E(DOD,4,7)<$E(DOB,4,7))
- ;
- ;Come back here and fix MONTHS and DAYS
- ;N CM S CM=+$E(DT,4,5) ;current month
- ;N CD S CD=+$E(DT,6,7) ;current day
- ;N BM S BM=+$E(DOB,4,5) ;birth month
- ;N BD S BD=+$E(DOB,6,7) ;birth day
- ;
- ;N DAYS S DAYS=""
- ;
- Q YRS ;_"y" gpl ..just want the number
- ;
- ;
-DTDIFF(ZD1,ZT1,ZD2,ZT2,SHOW) ; extrinsic which returns the number of minutes
- ; between 2 dates. ZD1 and ZD2 are fileman dates
- ; ZT1 AND ZT2 are valid times (military time) ie 20:10
- ; IF SHOW=1 DEBUGGING INTERMEDIATE VALUES WILL BE DISPLAYED
- I '$D(SHOW) S SHOW=0
- N GT1,GT2,GDT1,GDT2
- I ZT1[":" D  ;
- . S GT1=($P(ZT1,":",1)*3600)+($P(ZT1,":",2)*60) ; SECONDS
- . S GT2=($P(ZT2,":",1)*3600)+($P(ZT2,":",2)*60) ; SECONDS
- E  D  ;
- . S GT1=($E(ZT1,1,2)*3600)+($E(ZT1,3,4)*60)
- . S GT2=($E(ZT2,1,2)*3600)+($E(ZT2,3,4)*60)
- ;W:SHOW !,"SECONDS: ",GT1," ",GT2
- ;S %=GT1 D S^%DTC ; FILEMAN TIME
- ;S GDT1=ZD1_% ; FILEMAN DATE AND TIME
- ;S %=GT2 D S^%DTC ; FILEMAN TIME
- ;S GDT2=ZD2_% ; FILEMAN DATE AND TIME
- S GDT1=ZD1_"."_ZT1
- S GDT2=ZD2_"."_ZT2
- W:SHOW !,"FILEMAN: ",GDT1," ",GDT2
- N ZH1,ZH2
- S ZH1=$$FMTH^XLFDT(GDT1) ; $H FORMAT 
- S ZH2=$$FMTH^XLFDT(GDT2) ; $H FORMAT 
- W:SHOW !,"$H: ",ZH1," ",ZH2
- N ZSECS,ZMIN
- S ZSECS=$$HDIFF^XLFDT(ZH1,ZH2,2) ; DIFFERENCE IN $H
- W:SHOW !,"DIFF: ",ZSECS
- S ZMIN=ZSECS/60 ; DIFFERENCE IN MINUTES
- W:SHOW !,"MIN: ",ZMIN
- Q ZMIN
- ;
-DT(X) ; -- Returns FM date for X
- N Y,%DT S %DT="T",Y="" D:X'="" ^%DT
- Q Y
-     ;
-END ;end of C0QUTIL
+C0QUTIL	;JJOH/ZAG/GPL - Utilities for C0Q Package ;9/2/11 4:30pm
+	;;1.0;C0Q;;May 21, 2012;Build 43
+	;
+	;2011 Licensed under the terms of the GNU General Public License
+	;See attached copy of the License.
+	;
+	;This program is free software; you can redistribute it and/or modify
+	;it under the terms of the GNU General Public License as published by
+	;the Free Software Foundation; either version 2 of the License, or
+	;(at your option) any later version.
+	;
+	;This program is distributed in the hope that it will be useful,
+	;but WITHOUT ANY WARRANTY; without even the implied warranty of
+	;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	;GNU General Public License for more details.
+	;
+	;You should have received a copy of the GNU General Public License along
+	;with this program; if not, write to the Free Software Foundation, Inc.,
+	;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+	;
+AGE(DFN)	; return current age in years and months
+	;
+	Q:'$G(DFN)  ;quit if no there is no patient
+	N DOB S DOB=$P(^DPT(+DFN,0),U,3) ;date of birth
+	N YRS
+	N DOD S DOD=+$G(^DPT(9,.35)) ;check for date of death
+	I 'DOD D
+	. N CDTE S CDTE=DT ;current date
+	. S YRS=$E(CDTE,1,3)-$E(DOB,1,3)-($E(CDTE,4,7)<$E(DOB,4,7))
+	E  D
+	. S YRS=$E(DOD,1,3)-$E(DOB,1,3)-($E(DOD,4,7)<$E(DOB,4,7))
+	;
+	;Come back here and fix MONTHS and DAYS
+	;N CM S CM=+$E(DT,4,5) ;current month
+	;N CD S CD=+$E(DT,6,7) ;current day
+	;N BM S BM=+$E(DOB,4,5) ;birth month
+	;N BD S BD=+$E(DOB,6,7) ;birth day
+	;
+	;N DAYS S DAYS=""
+	;
+	Q YRS ;_"y" gpl ..just want the number
+	;
+	;
+DTDIFF(ZD1,ZT1,ZD2,ZT2,SHOW)	; extrinsic which returns the number of minutes
+	; between 2 dates. ZD1 and ZD2 are fileman dates
+	; ZT1 AND ZT2 are valid times (military time) ie 20:10
+	; IF SHOW=1 DEBUGGING INTERMEDIATE VALUES WILL BE DISPLAYED
+	I '$D(SHOW) S SHOW=0
+	N GT1,GT2,GDT1,GDT2
+	I ZT1[":" D  ;
+	. S GT1=($P(ZT1,":",1)*3600)+($P(ZT1,":",2)*60) ; SECONDS
+	. S GT2=($P(ZT2,":",1)*3600)+($P(ZT2,":",2)*60) ; SECONDS
+	E  D  ;
+	. S GT1=($E(ZT1,1,2)*3600)+($E(ZT1,3,4)*60)
+	. S GT2=($E(ZT2,1,2)*3600)+($E(ZT2,3,4)*60)
+	;W:SHOW !,"SECONDS: ",GT1," ",GT2
+	;S %=GT1 D S^%DTC ; FILEMAN TIME
+	;S GDT1=ZD1_% ; FILEMAN DATE AND TIME
+	;S %=GT2 D S^%DTC ; FILEMAN TIME
+	;S GDT2=ZD2_% ; FILEMAN DATE AND TIME
+	S GDT1=ZD1_"."_ZT1
+	S GDT2=ZD2_"."_ZT2
+	W:SHOW !,"FILEMAN: ",GDT1," ",GDT2
+	N ZH1,ZH2
+	S ZH1=$$FMTH^XLFDT(GDT1) ; $H FORMAT 
+	S ZH2=$$FMTH^XLFDT(GDT2) ; $H FORMAT 
+	W:SHOW !,"$H: ",ZH1," ",ZH2
+	N ZSECS,ZMIN
+	S ZSECS=$$HDIFF^XLFDT(ZH1,ZH2,2) ; DIFFERENCE IN $H
+	W:SHOW !,"DIFF: ",ZSECS
+	S ZMIN=ZSECS/60 ; DIFFERENCE IN MINUTES
+	W:SHOW !,"MIN: ",ZMIN
+	Q ZMIN
+	;
+DT(X)	; -- Returns FM date for X
+	N Y,%DT S %DT="T",Y="" D:X'="" ^%DT
+	Q Y
+	    ;
+END	;end of C0QUTIL
