GMVVS2 ;HIOFO/YH,FT-PATIENT VITAL SIGNS-I/O SF 511 GRAPH - 2 ;9/30/02 15:25
;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
;
; This routine uses the following IAs:
; #1392 - FILE 126.56 references (private)
; #1393 - FILE 126.58 references (private)
; #10061 - ^VADPT calls (supported)
; #10104 - ^XLFSTR calls (supported)
;
IO ;PRINT INTAKE/OUTPUT SECTION OF VITAL SIGNS-I/O SHEET
K ^TMP($J,"XI"),^TMP($J,"XO")
F NN=1:1:GN(1)+1 S GMRI="XI"_NN K GMRLINE(GMRI)
F NN=1:1:GN(2)+1 S GMRI="XO"_NN K GMRLINE(GMRI)
S GMRNM=0 F GMRDT=0:0 S GMRDT=$O(^TMP($J,"GMRDT",GMRDT)) Q:GMRDT'>0 S GMRNM=GMRNM+1 Q:GMRNM>10 S GDT=+$E(GMRDT,1,7) D
. F NN=1:1:GN(1)+1 S GMRI="XI"_NN I $D(^TMP($J,"GMR",GMRI,GDT)) D
. . S GMRYDT=$O(^TMP($J,"GMR",GMRI,GDT,0)) I GMRYDT>0 S ^TMP($J,"XI",NN,GDT,GMRYDT)="",GMRLINE(GMRI)=GMRX1
. F NN=1:1:GN(2)+1 S GMRI="XO"_NN I $D(^TMP($J,"GMR",GMRI,GDT)) D
. . S GMRYDT=$O(^TMP($J,"GMR",GMRI,GDT,0)) I GMRYDT>0 S ^TMP($J,"XO",NN,GDT,GMRYDT)="",GMRLINE(GMRI)=GMRX1
S GMRNM=0 F GMRDT=0:0 S GMRDT=$O(^TMP($J,"GMRDT",GMRDT)) Q:GMRDT'>0 S GMRNM=GMRNM+1 Q:GMRNM>10 S GDT=+$E(GMRDT,1,7) D SETDATA
I IOSL<($Y+6) D FOOTER,HEADER,DATES W !,?15,"|",?16,GMRX
W !,"Intake(24 Hr)(cc)",?20,"|",GMRX F NN=1:1:GN(1)+1 S GMRI="XI"_NN I $D(GMRLINE(GMRI)) D
.I IOSL<($Y+6) S GMRI(1)=GMRI D FOOTER,HEADER,DATES S GMRI=GMRI(1) W !,?20,"|",?21,GMRX
.W !,?3,$S(NN=1:"IV",NN=2:"BLOOD",NN=3:"P NUTRI",NN=(GN(1)+1):"TOTAL",NN>3&(NN<(GN(1)+1)):$E($P(^GMRD(126.56,+$O(^GMRD(126.56,"C",NN-3,0)),0),"^"),1,6),1:" "),?10,"|",GMRLINE(GMRI)
I IOSL<($Y+6) S GMRI(1)=GMRI D FOOTER,HEADER,DATES S GMRI=GMRI(1) W !,?10,"|",?11,GMRX
W !,"Output(24 Hr)(cc)",?20,"|",GMRX
F NN=1:1:GN(2)+1 S GI="XO"_NN I $D(GMRLINE(GI)) D
.I IOSL<($Y+6) S GMRI(1)=GMRI D FOOTER,HEADER,DATES W !,?20,"|",?21,GMRX S GMRI=GMRI(1)
.W !,?3,$S(NN<(GN(2)+1):$E($P(^GMRD(126.58,+$O(^GMRD(126.58,"C",NN,0)),0),"^"),1,6),NN=(GN(2)+1):"TOTAL",1:" "),?10,"|",GMRLINE(GI)
Q
SETDATA ; FILL GMRLINE WITH I/O DATA AND WRITE GMRLINE
F GMRI="XI","XO" S GMRY=0 F S GMRY=$O(^TMP($J,GMRI,GMRY)) Q:GMRY'>0 D
. I $D(^TMP($J,GMRI,GMRY,GDT)) S GDATA=$O(^TMP($J,GMRI,GMRY,GDT,0)) S:GDATA>0 $P(GMRLINE(GMRI_GMRY),"|",GMRNM)=$J(GDATA,8) K ^TMP($J,"GMR",GMRI_GMRY,GDT),^TMP($J,GMRI,GMRY,GDT,GDATA)
Q
W ! W:GMRNAM'="" ?$X-3,$E(GMRNAM,1,35) W:SSN'="" " "_SSN W:GMRBTH'="" " "_GMRBTH W:GMRAGE'="" " "_GMRAGE_" YRS" W:GMRSEX'="" " "_GMRSEX
W ?95,"MEDICAL RECORD" W !,"Unit: "_$S(GMRWARD(1)'="":GMRWARD(1),1:" ")," "_"Room: "_$S($P(VAIN(5),"^")'="":$P($P(VAIN(5),"^"),"-",1,2),1:" "),?95,"VITAL FLOW SHEET"
D INP^VADPT S GMRVHLOC=$$HOSPLOC^GMVUTL1(+$G(VAIN(4)))
W !,"Division: "_$$DIVISION^GMVUTL1(+GMRVHLOC),?55,"Page "_GMRPGC,?95,"VAF 10-7987 VICE SF 511",!
W GSTRFIN Q
DATES ;PRINT DATE/TIME COLUMNS FOR VITAL SIGNS-I/O SHEET
W ?18,$$REPEAT^XLFSTR("_",109),!,?6,"Date/Time",?17,"|" S GMRLINE=GMRX1,GMRJ=0 F GMRI=1:1:10 S GMRJ=$O(^TMP($J,"GMRDT",GMRJ)) Q:GMRJ'>0 S GMRDT=$E(GMRJ,4,5)_"/"_$E(GMRJ,6,7)_"/"_$E(GMRJ,2,3),$P(GMRLINE,"|",GMRI)=GMRDT_" "
W ?18,GMRLINE,! S GMRLINE=GMRX1,GMRJ=0 F GMRI=1:1:10 S GMRJ=$O(^TMP($J,"GMRDT",GMRJ)) Q:GMRJ'>0 S:+$P(GMRJ,".",2)>0 GMRDT=$E($P(GMRJ,".",2)_"0000000",1,4),$P(GMRLINE,"|",GMRI)=$E($E(GMRDT,1,2)_":"_$E(GMRDT,3,4)_" ",1,10)
W ?17,"|",?18,GMRLINE
Q
W:'($E(IOST)'="C"&'GFLAG) @IOF S GFLAG=1,GMRPGC=GMRPGC+1
W !,?116,"PAGE ",GMRPGC,!
Q
BP ;
S GMR("B")=$O(^TMP($J,"GMR","B",GMRDT,"")) Q:GMR("B")=""
I GMR("B")'>0,GMR("B")'="" S $P(GMRLINE("B"),"|",GMRNM)=$E(GMR("B")_" ",1,10),$P(GMRLINE("B1"),"|",GMRNM)=" ",$P(GMRLINE("B2"),"|",GMRNM)=" " Q
S (GMRSITE,GMRSITE(1),GMRINF,GMRVJ)="" S:GMR("B")'="" GMRSITE(1)=$P(^TMP($J,"GMR","B",GMRDT,GMR("B")),"^"),GMRVJ=$P(^(GMR("B")),"^",2),GMRINF=$P(^(GMR("B")),"^",4)
I GMRSITE(1)'="" S GI="B" D SYNOARY^GMVLGQU
S $P(GMRLINE("B"),"|",GMRNM)=$E($P(GMR("B"),"/",1,2)_" ",1,10)
S $P(GMRLINE("B1"),"|",GMRNM)=$E($P(GMR("B"),"/",3)_" "_$S($L(GMRSITE," ")>3:$P(GMRSITE," "),1:"")_" ",1,10)
S $P(GMRLINE("B2"),"|",GMRNM)=$E($S($L(GMRSITE," ")>3:$P(GMRSITE," ",2,4),1:GMRSITE)_" ",1,10)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMVVS2 4281 printed Dec 13, 2024@02:00:11 Page 2
GMVVS2 ;HIOFO/YH,FT-PATIENT VITAL SIGNS-I/O SF 511 GRAPH - 2 ;9/30/02 15:25
+1 ;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
+2 ;
+3 ; This routine uses the following IAs:
+4 ; #1392 - FILE 126.56 references (private)
+5 ; #1393 - FILE 126.58 references (private)
+6 ; #10061 - ^VADPT calls (supported)
+7 ; #10104 - ^XLFSTR calls (supported)
+8 ;
IO ;PRINT INTAKE/OUTPUT SECTION OF VITAL SIGNS-I/O SHEET
+1 KILL ^TMP($JOB,"XI"),^TMP($JOB,"XO")
+2 FOR NN=1:1:GN(1)+1
SET GMRI="XI"_NN
KILL GMRLINE(GMRI)
+3 FOR NN=1:1:GN(2)+1
SET GMRI="XO"_NN
KILL GMRLINE(GMRI)
+4 SET GMRNM=0
FOR GMRDT=0:0
SET GMRDT=$ORDER(^TMP($JOB,"GMRDT",GMRDT))
if GMRDT'>0
QUIT
SET GMRNM=GMRNM+1
if GMRNM>10
QUIT
SET GDT=+$EXTRACT(GMRDT,1,7)
Begin DoDot:1
+5 FOR NN=1:1:GN(1)+1
SET GMRI="XI"_NN
IF $DATA(^TMP($JOB,"GMR",GMRI,GDT))
Begin DoDot:2
+6 SET GMRYDT=$ORDER(^TMP($JOB,"GMR",GMRI,GDT,0))
IF GMRYDT>0
SET ^TMP($JOB,"XI",NN,GDT,GMRYDT)=""
SET GMRLINE(GMRI)=GMRX1
End DoDot:2
+7 FOR NN=1:1:GN(2)+1
SET GMRI="XO"_NN
IF $DATA(^TMP($JOB,"GMR",GMRI,GDT))
Begin DoDot:2
+8 SET GMRYDT=$ORDER(^TMP($JOB,"GMR",GMRI,GDT,0))
IF GMRYDT>0
SET ^TMP($JOB,"XO",NN,GDT,GMRYDT)=""
SET GMRLINE(GMRI)=GMRX1
End DoDot:2
End DoDot:1
+9 SET GMRNM=0
FOR GMRDT=0:0
SET GMRDT=$ORDER(^TMP($JOB,"GMRDT",GMRDT))
if GMRDT'>0
QUIT
SET GMRNM=GMRNM+1
if GMRNM>10
QUIT
SET GDT=+$EXTRACT(GMRDT,1,7)
DO SETDATA
+10 IF IOSL<($Y+6)
DO FOOTER
DO HEADER
DO DATES
WRITE !,?15,"|",?16,GMRX
+11 WRITE !,"Intake(24 Hr)(cc)",?20,"|",GMRX
FOR NN=1:1:GN(1)+1
SET GMRI="XI"_NN
IF $DATA(GMRLINE(GMRI))
Begin DoDot:1
+12 IF IOSL<($Y+6)
SET GMRI(1)=GMRI
DO FOOTER
DO HEADER
DO DATES
SET GMRI=GMRI(1)
WRITE !,?20,"|",?21,GMRX
+13 WRITE !,?3,$SELECT(NN=1:"IV",NN=2:"BLOOD",NN=3:"P NUTRI",NN=(GN(1)+1):"TOTAL",NN>3&(NN<(GN(1)+1)):$EXTRACT($PIECE(^GMRD(126.56,+$ORDER(^GMRD(126.56,"C",NN-3,0)),0),"^"),1,6),1:" "),?10,"|",GMRLINE(GMRI)
End DoDot:1
+14 IF IOSL<($Y+6)
SET GMRI(1)=GMRI
DO FOOTER
DO HEADER
DO DATES
SET GMRI=GMRI(1)
WRITE !,?10,"|",?11,GMRX
+15 WRITE !,"Output(24 Hr)(cc)",?20,"|",GMRX
+16 FOR NN=1:1:GN(2)+1
SET GI="XO"_NN
IF $DATA(GMRLINE(GI))
Begin DoDot:1
+17 IF IOSL<($Y+6)
SET GMRI(1)=GMRI
DO FOOTER
DO HEADER
DO DATES
WRITE !,?20,"|",?21,GMRX
SET GMRI=GMRI(1)
+18 WRITE !,?3,$SELECT(NN<(GN(2)+1):$EXTRACT($PIECE(^GMRD(126.58,+$ORDER(^GMRD(126.58,"C",NN,0)),0),"^"),1,6),NN=(GN(2)+1):"TOTAL",1:" "),?10,"|",GMRLINE(GI)
End DoDot:1
+19 QUIT
SETDATA ; FILL GMRLINE WITH I/O DATA AND WRITE GMRLINE
+1 FOR GMRI="XI","XO"
SET GMRY=0
FOR
SET GMRY=$ORDER(^TMP($JOB,GMRI,GMRY))
if GMRY'>0
QUIT
Begin DoDot:1
+2 IF $DATA(^TMP($JOB,GMRI,GMRY,GDT))
SET GDATA=$ORDER(^TMP($JOB,GMRI,GMRY,GDT,0))
if GDATA>0
SET $PIECE(GMRLINE(GMRI_GMRY),"|",GMRNM)=$JUSTIFY(GDATA,8)
KILL ^TMP($JOB,"GMR",GMRI_GMRY,GDT),^TMP($JOB,GMRI,GMRY,GDT,GDATA)
End DoDot:1
+3 QUIT
+1 WRITE !
if GMRNAM'=""
WRITE ?$X-3,$EXTRACT(GMRNAM,1,35)
if SSN'=""
WRITE " "_SSN
if GMRBTH'=""
WRITE " "_GMRBTH
if GMRAGE'=""
WRITE " "_GMRAGE_" YRS"
if GMRSEX'=""
WRITE " "_GMRSEX
+2 WRITE ?95,"MEDICAL RECORD"
WRITE !,"Unit: "_$SELECT(GMRWARD(1)'="":GMRWARD(1),1:" ")," "_"Room: "_$SELECT($PIECE(VAIN(5),"^")'="":$PIECE($PIECE(VAIN(5),"^"),"-",1,2),1:" "),?95,"VITAL FLOW SHEET"
+3 DO INP^VADPT
SET GMRVHLOC=$$HOSPLOC^GMVUTL1(+$GET(VAIN(4)))
+4 WRITE !,"Division: "_$$DIVISION^GMVUTL1(+GMRVHLOC),?55,"Page "_GMRPGC,?95,"VAF 10-7987 VICE SF 511",!
+5 WRITE GSTRFIN
QUIT
DATES ;PRINT DATE/TIME COLUMNS FOR VITAL SIGNS-I/O SHEET
+1 WRITE ?18,$$REPEAT^XLFSTR("_",109),!,?6,"Date/Time",?17,"|"
SET GMRLINE=GMRX1
SET GMRJ=0
FOR GMRI=1:1:10
SET GMRJ=$ORDER(^TMP($JOB,"GMRDT",GMRJ))
if GMRJ'>0
QUIT
SET GMRDT=$EXTRACT(GMRJ,4,5)_"/"_$EXTRACT(GMRJ,6,7)_"/"_$EXTRACT(GMRJ,2,3)
SET $PIECE(GMRLINE,"|",GMRI)=GMRDT_" "
+2 WRITE ?18,GMRLINE,!
SET GMRLINE=GMRX1
SET GMRJ=0
FOR GMRI=1:1:10
SET GMRJ=$ORDER(^TMP($JOB,"GMRDT",GMRJ))
if GMRJ'>0
QUIT
if +$PIECE(GMRJ,".",2)>0
SET GMRDT=$EXTRACT($PIECE(GMRJ,".",2)_"0000000",1,4)
SET $PIECE(GMRLINE,"|",GMRI)=$EXTRACT($EXTRACT(GMRDT,1,2)_":"_$EXTRACT(GMRDT,3,4)_" ",1,10)
+3 WRITE ?17,"|",?18,GMRLINE
+4 QUIT
+1 if '($EXTRACT(IOST)'="C"&'GFLAG)
WRITE @IOF
SET GFLAG=1
SET GMRPGC=GMRPGC+1
+2 WRITE !,?116,"PAGE ",GMRPGC,!
+3 QUIT
BP ;
+1 SET GMR("B")=$ORDER(^TMP($JOB,"GMR","B",GMRDT,""))
if GMR("B")=""
QUIT
+2 IF GMR("B")'>0
IF GMR("B")'=""
SET $PIECE(GMRLINE("B"),"|",GMRNM)=$EXTRACT(GMR("B")_" ",1,10)
SET $PIECE(GMRLINE("B1"),"|",GMRNM)=" "
SET $PIECE(GMRLINE("B2"),"|",GMRNM)=" "
QUIT
+3 SET (GMRSITE,GMRSITE(1),GMRINF,GMRVJ)=""
if GMR("B")'=""
SET GMRSITE(1)=$PIECE(^TMP($JOB,"GMR","B",GMRDT,GMR("B")),"^")
SET GMRVJ=$PIECE(^(GMR("B")),"^",2)
SET GMRINF=$PIECE(^(GMR("B")),"^",4)
+4 IF GMRSITE(1)'=""
SET GI="B"
DO SYNOARY^GMVLGQU
+5 SET $PIECE(GMRLINE("B"),"|",GMRNM)=$EXTRACT($PIECE(GMR("B"),"/",1,2)_" ",1,10)
+6 SET $PIECE(GMRLINE("B1"),"|",GMRNM)=$EXTRACT($PIECE(GMR("B"),"/",3)_" "_$SELECT($LENGTH(GMRSITE," ")>3:$PIECE(GMRSITE," "),1:"")_" ",1,10)
+7 SET $PIECE(GMRLINE("B2"),"|",GMRNM)=$EXTRACT($SELECT($LENGTH(GMRSITE," ")>3:$PIECE(GMRSITE," ",2,4),1:GMRSITE)_" ",1,10)
+8 QUIT