GMVSC0 ;HOIFO/MD,YH,FT-CUMULATIVE VITALS/MEASUREMENTS FOR PATIENT OVER GIVEN DATE RANGE ;6/6/07
 ;;5.0;GEN. MED. REC. - VITALS;**23**;Oct 31, 2002;Build 25
 ;
 ; This routine uses the following IAs:
 ; #10039 - FILE 42 references     (supported)
 ; #10061 - ^VADPT calls           (supported)
 ; #10103 - ^XLFDT calls           (supported)
 ;
EN1(RESULT,GMVDATA) ; GMV CUMULATIVE REPORT [RPC entry point]
 ; Cumulative Vitals Report
 ; DFN      - patient internal entry number (FILE 2)
 ; GMRVSDT  - start date/time of report range
 ; GMRVFDT  - end date/time of report range
 ; GMVDEV   - device name
 ; GMVIEN   - device internal entry name (FILE 3.5)
 ; GMVPDT   - date/time to print the report
 ; GMVWARD  - ward internal entry number (FILE 42)
 ; GMVHLOC  - hospital location internal entry number (FILE 44)
 ; GMVRMLST - list of room numbers separated by commas (e.g., 200,210)
 ;
 
DFN,GMRVSDT,GMRVFDT,GMVDEV,GMVIEN,GMVPDT,GMVWARD,GMVHLOC,GMVRMLST
 
DFN=$P(GMVDATA,U,1),GMRVSDT=$P(GMVDATA,U,2),GMRVFDT=$P(GMVDATA,U,3),GMVDEV=$P(GMVDATA,U,5),GMVIEN=+$P(GMVDATA,U,6),GMVPDT=$P(GMVDATA,U,7),GMVWARD=$P(GMVDATA,U,8),GMVHLOC=$P(GMVDATA,U,9),GMVRMLST=$P(GMVDATA,U,10)
 
ZTIO=GMVDEV ;device
 
ZTDTH=$S($G(GMVPDT)>0:GMVPDT,1:$$NOW^XLFDT()) ;date/time to print
 
(ZTSAVE("DFN"),ZTSAVE("GMRVSDT"),ZTSAVE("GMRVFDT"))=""
 
(ZTSAVE("GMVWARD"),ZTSAVE("GMVHLOC"),ZTSAVE("GMVRMLST"))=""
 
ZTDESC="Cumulative vital/measurement report"
 
ZTRTN="START^GMVSC0"
 
^%ZTLOAD
 
RESULT=$S($G(ZTSK)>0:"Report sent to device. Task #: "_ZTSK,1:"Unable to task the report.")
 
ZTSK,ZTIO,ZTDTH,ZTSAVE,ZTDESC,ZTRTN
 
Q
START ; Start the report output
 
S:$D(ZTQUEUEDZTREQ="@"
 ; if selected roombeds, then set up GMVROOM array
 
I $L(GMVRMLST)>0 D
 
.GMVLOOP=1:1 Q:$P(GMVRMLST,",",GMVLOOP)=""  D
 
..GMVROOM($P(GMVRMLST,",",GMVLOOP))=""
 
..Q
 
.Q
 S 
GMVEDB=$S(DFN>0:"P",GMVRMLST]"":"S",1:"A";P is one patient, A is whole ward, S is selected rooms
 
GMVWARD(1)=$S(GMVWARD>0:$P($G(^DIC(42,GMVWARD,0)),U,1),1:"";ward name
 
I $G(GMVEDB)="P" D
 
.DEM^VADPT,INP^VADPT
 .
GMRRMBD=$S(VAIN(5)'="":VAIN(5),1:"  BLANK";roombed
 
.GMVNAME=$S(VADM(1)'="":VADM(1),1:"  BLANK";patient name
 
.GMVWARD=$P(VAIN(4),"^";ward ien
 
.GMVWARD(1)=$P(VAIN(4),"^",2) ;ward name
 
.KVAR^VADPT VA ;kill VADPT variables
 
.^TMP($J,GMRRMBD,GMVNAME,DFN)=""
 
E  D WARD^GMVDS1 ;returns TMP global with list of patients
 
(GMROUT,GMRPG)=0
 
GMVRANGE=$$FMTE^XLFDT(GMRVSDT)_"-"_$$FMTE^XLFDT(GMRVFDT)
 
NOW^%DTC Y=D^DIQ
 
GMRPDT=$P(Y,"@")_" ("_$P($P(Y,"@",2),":",1,2)_")"
 
S $P(GMRDSH,"-",80)=""
 
IO
 
GMRRMBD=""
 
GPEDIS GPEDIS=$O(^GMRD(120.52,"B","DORSALIS PEDIS",0)) Q:GPEDIS'>0
 
F  S GMRRMBD=$O(^TMP($J,GMRRMBD)) Q:GMRRMBD=""!GMROUT  GMRNAM="" F  S GMRNAM=$O(^TMP($J,GMRRMBD,GMRNAM)) Q:GMRNAM=""!GMROUT  DFN=0 F  S DFN=$O(^TMP($J,GMRRMBD,GMRNAM,DFN)) Q:DFN'>0!GMROUT  GMRPG=0 WRT Q:GMROUT  EN1^GMVSC1
; kill variables and quit
 
Q^GMVSC1
 
^TMP($J)
 
GMRBMI,GMRVHT,GMRINF,GMRPG,GMREDB,GMRNAM,GMRRMBD,GMRVWLOC,GMRWARD,GMRMSL,GMRROOM,GMRRMST,GMRVHLOC,GMRLEN,GMRI,GMROUT,GMRVSDT,GMRVFDT,GPRT,GMVLOOP
 
GMVRMLST,GMVRANGE
 
^%ZISC
 
Q
FOOTER ;REPORT FOOTER {called from GMVSC1, GMVSC2} 
 
!!,"*** (E) - Error entry",!! W:VADM(1)'="" ?$X-3,$E(VADM(1),1,15) W:VADM(2)'="" ?17,$E($P(VADM(2),"^",2),8,11) W:VADM(3)'="" ?30,$P(VADM(3),"^",2) W:VADM(4)'="" ?43,$P(VADM(4),"^")_" YRS"
 
W:VADM(5)'="" ?51,$P(VADM(5),"^",2)
 
?65,"VAF 10-7987j" !,"Unit: "_$S($P(VAIN(4),"^",2)'="":$P(VAIN(4),"^",2),1:"     "),?32,"Room: "_$S($P(VAIN(5),"^")'="":$P(VAIN(5),"^"),1:"   "),!
 
'$D(GMRVHLOCGMRVHLOC=$$HOSPLOC^GMVUTL1(+$G(VAIN(4)))
 
"Division: "_$$DIVISION^GMVUTL1(+GMRVHLOC),!
 
Q
WRT ;
 
GMR1ST=1
 
GMRSITE
 
DEM^VADPT,INP^VADPT
 
GWARD=$S($P(VAIN(4),"^",2)'="":$P(VAIN(4),"^",2),1:"   ")
 
GBED=$S(VAIN(5)'="":$P(VAIN(5),"^"),1:"   ")
 
HDR^GMVSC2
 
Q