- GMVSC2 ;HIRMFO/YH,FT-CUMULATIVE V/M - CONTINUED ;10/30/07 10:16
- ;;5.0;GEN. MED. REC. - VITALS;**23**;Oct 31, 2002;Build 25
- ;
- ; This routine uses the following IAs:
- ; #10104 - ^XLFSTR calls (supported)
- ;
- SETLN ; {called from GMVSC1}
- N GMRVPO,GMVLOOP,GMVQNAME
- K GMRVARY
- S GMRVER=$P(^TMP($J,"GMRV",GMRDATE,GMRVTY,GMRVDA),"|",1)
- S GMRVARY=$P(^TMP($J,"GMRV",GMRDATE,GMRVTY,GMRVDA),"|",3)
- D:IOSL<($Y+9) HDR Q:GMROUT W ! W:GMRVER "(E)"
- I GPRT(GMRVTY)=0 D
- . W ?4,$S(GMRVTY="T":"T: ",GMRVTY="P":"P: ",GMRVTY="R":"R: ",GMRVTY="BP":"B/P: ",GMRVTY="WT":"Wt: ",GMRVTY="HT":"Ht: ",GMRVTY="CG":"Circumference/Girth: ",GMRVTY="CVP":"Central Venous Pressure: ",GMRVTY="PO2":"Pulse Oximetry: ",1:"")
- . I GMRVTY="PN" W ?4,"Pain: "
- S GPRT(GMRVTY)=1
- S GMRDAT=$P(^TMP($J,"GMRV",GMRDATE,GMRVTY,GMRVDA),"|",2)
- I "PRBPCVPCGPO2PN"[GMRVTY S GMRVX=GMRVTY,GMRVX(0)=$P(GMRDAT,"^",8) D
- . I "UNAVAILABLEPASSREFUSED"[$$UP^XLFSTR(GMRVX(0)) W ?9,GMRVX(0) Q
- . I GMRVTY="PN" D
- . . I GMRVX(0)=0 W ?9,GMRVX(0)_" - No pain" Q
- . . I GMRVX(0)=99 W ?9,GMRVX(0)_" - Unable to respond" Q
- . . I GMRVX(0)=10 W ?9,GMRVX(0)_" - Worst imaginable pain" Q
- . . W ?9,GMRVX(0) Q
- . ;I GMRVTY'="PN" W ?9,GMRVX(0)
- . D EN1^GMVSAS0
- . I GMRVTY="P","^"_GPEDIS_"^"[GMRVARY,$P(GMRDAT,"^",8)=1 S GMRVX(1)=""
- . S Z=$S(GMRVTY="CG":$J($P(GMRDAT,"^",8),0,2),GMRVTY="CVP":$J($P(GMRDAT,"^",8),0,1),GMRVTY'="BP":$J($P(GMRDAT,"^",8),3,0),1:$P(GMRDAT,"^",8)) D:GMRVTY'="BP" BLNK W:GMRVTY'="PN" ?9,Z_$S('$D(GMRVX(1)):" ",'GMRVX(1):"",1:"*")
- . I GMRVTY="CG" W " in ("_$J(Z/.3937,0,2)_" cm)"
- . I GMRVTY="CVP" W " cmH2O ("_$J(Z/1.36,0,1)_" mmHg)"
- . I GMRVTY="PO2" S GMRVPO=$P(GMRDAT,"^",10) W "%"_$S(GMRVPO'="":" with supplemental O2 "_$S(GMRVPO["l/min":$P(GMRVPO," l/min")_"L/min",1:"")_$S(GMRVPO["l/min":$P(GMRVPO," l/min",2),1:GMRVPO),1:"")
- I GMRVTY="T" S X=$P(GMRDAT,"^",8) D
- . I X'>0 W ?9,X Q
- . S GMRVX=GMRVTY,GMRVX(0)=X D EN1^GMVSAS0
- . D EN1^GMVUTL S:'Y Y="" S Z=$J(X,5,1) D BLNK W ?9,Z_" F " S Z=$J(Y,4,1) D BLNK W "("_Z_" C)"_$S('$D(GMRVX(1)):" ",'GMRVX(1):"",1:"*")
- I GMRVTY="HT" S X=$P(GMRDAT,"^",8) D
- . I X'>0 W ?9,X Q
- . D EN2^GMVUTL S:'Y Y="" S Z=$J(X,5,2) D BLNK W ?9,Z_" in " S Z=$J(Y,5,2) D BLNK W "("_Z_" cm)" I 'GMRVER S GMRVHT=Z/100
- I GMRVTY="WT" S X=$P(GMRDAT,"^",8) D
- . I X'>0 W ?9,X Q
- . D EN3^GMVUTL S:'Y Y="" S Z=$J(X,7,2) D BLNK W ?9,Z_" lb " S Z=$J(Y,6,2) D BLNK W "("_Z_" kg)"
- S GMRZZ=""
- F GMVLOOP=1:1 Q:$P(GMRVARY,U,GMVLOOP)="" D
- .S GMVQNAME=$$FIELD^GMVGETQL($P(GMRVARY,U,GMVLOOP),1,"E")
- .Q:GMVQNAME=""!(GMVQNAME=-1)
- .S GMRZZ=GMRZZ_$S(GMRZZ'="":", ",1:"")_GMVQNAME
- I "UNAVAILABLEPASSREFUSED"[$$UP^XLFSTR($P(GMRDAT,U,8)) Q
- S GMRVITY=+$P(GMRDAT,"^",3)
- S:GMRZZ'=""&(GMRVTY'="PO2") GMRZZ=" ("_GMRZZ_")"
- I GMRZZ'="" W:GMRVTY="PO2" !,?8," via " W GMRZZ
- I GMRVTY="WT",'GMRVER S GMRBMI="",GMRBMI(1)=$P(GMRDAT,"^"),GMRBMI(2)=+$P(GMRDAT,"^",8) D CALBMI^GMVBMI(.GMRBMI) W:GMRBMI>0 !,?4,"Body Mass Index: "_GMRBMI
- K Z
- Q
- HDR ; Report header
- I 'GMR1ST D FOOTER^GMVSC0
- W:$Y>0 @IOF
- S GMRPG=GMRPG+1,GFLAG=1 ;what is GFLAG?
- W !,GMRPDT,?25,"Cumulative Vitals/Measurements Report",?70,"Page ",GMRPG
- W !?25,GMVRANGE ;report date range
- W !,$E(GMRDSH,1,78)
- I 'GMR1ST,$P(GMRDATE,".")=GMRDATE(0) W !,$E(GMRDATE(0),4,5)_"/"_$E(GMRDATE(0),6,7)_"/"_$E(GMRDATE,2,3)_" (continued)",!
- ; include date range in header
- S GMR1ST=0
- Q
- BLNK ;
- F I=1:1:$L(Z) Q:$E(Z,I)'=" "
- S Z=$E(Z,I,$L(Z))
- Q
- GMVSC2 ;HIRMFO/YH,FT-CUMULATIVE V/M - CONTINUED ;10/30/07 10:16
- +1 ;;5.0;GEN. MED. REC. - VITALS;**23**;Oct 31, 2002;Build 25
- +2 ;
- +3 ; This routine uses the following IAs:
- +4 ; #10104 - ^XLFSTR calls (supported)
- +5 ;
- SETLN ; {called from GMVSC1}
- +1 NEW GMRVPO,GMVLOOP,GMVQNAME
- +2 KILL GMRVARY
- +3 SET GMRVER=$PIECE(^TMP($JOB,"GMRV",GMRDATE,GMRVTY,GMRVDA),"|",1)
- +4 SET GMRVARY=$PIECE(^TMP($JOB,"GMRV",GMRDATE,GMRVTY,GMRVDA),"|",3)
- +5 IF IOSL<($Y+9)
- DO HDR
- IF GMROUT
- QUIT
- WRITE !
- IF GMRVER
- WRITE "(E)"
- +6 IF GPRT(GMRVTY)=0
- Begin DoDot:1
- +7 WRITE ?4,$SELECT(GMRVTY="T":"T: ",GMRVTY="P":"P: ",GMRVTY="R":"R: ",GMRVTY="BP":"B/P: ",GMRVTY="WT":"Wt: ",GMRVTY="HT":"Ht: ",GMRVTY="CG":"Circumference/Girth: ",GMRVTY="CVP":"Central Venous Pressure: ",GMRVTY="PO2":"Pulse Oximetry: ",1
- :"")
- +8 IF GMRVTY="PN"
- WRITE ?4,"Pain: "
- End DoDot:1
- +9 SET GPRT(GMRVTY)=1
- +10 SET GMRDAT=$PIECE(^TMP($JOB,"GMRV",GMRDATE,GMRVTY,GMRVDA),"|",2)
- +11 IF "PRBPCVPCGPO2PN"[GMRVTY
- SET GMRVX=GMRVTY
- SET GMRVX(0)=$PIECE(GMRDAT,"^",8)
- Begin DoDot:1
- +12 IF "UNAVAILABLEPASSREFUSED"[$$UP^XLFSTR(GMRVX(0))
- WRITE ?9,GMRVX(0)
- QUIT
- +13 IF GMRVTY="PN"
- Begin DoDot:2
- +14 IF GMRVX(0)=0
- WRITE ?9,GMRVX(0)_" - No pain"
- QUIT
- +15 IF GMRVX(0)=99
- WRITE ?9,GMRVX(0)_" - Unable to respond"
- QUIT
- +16 IF GMRVX(0)=10
- WRITE ?9,GMRVX(0)_" - Worst imaginable pain"
- QUIT
- +17 WRITE ?9,GMRVX(0)
- QUIT
- End DoDot:2
- +18 ;I GMRVTY'="PN" W ?9,GMRVX(0)
- +19 DO EN1^GMVSAS0
- +20 IF GMRVTY="P"
- IF "^"_GPEDIS_"^"[GMRVARY
- IF $PIECE(GMRDAT,"^",8)=1
- SET GMRVX(1)=""
- +21 SET Z=$SELECT(GMRVTY="CG":$JUSTIFY($PIECE(GMRDAT,"^",8),0,2),GMRVTY="CVP":$JUSTIFY($PIECE(GMRDAT,"^",8),0,1),GMRVTY'="BP":$JUSTIFY($PIECE(GMRDAT,"^",8),3,0),1:$PIECE(GMRDAT,"^",8))
- IF GMRVTY'="BP"
- DO BLNK
- IF GMRVTY'="PN"
- WRITE ?9,Z_$SELECT('$DATA(GMRVX(1)):" ",'GMRVX(1):"",1:"*")
- +22 IF GMRVTY="CG"
- WRITE " in ("_$JUSTIFY(Z/.3937,0,2)_" cm)"
- +23 IF GMRVTY="CVP"
- WRITE " cmH2O ("_$JUSTIFY(Z/1.36,0,1)_" mmHg)"
- +24 IF GMRVTY="PO2"
- SET GMRVPO=$PIECE(GMRDAT,"^",10)
- WRITE "%"_$SELECT(GMRVPO'="":" with supplemental O2 "_$SELECT(GMRVPO["l/min":$PIECE(GMRVPO," l/min")_"L/min",1:"")_$SELECT(GMRVPO["l/min":$PIECE(GMRVPO," l/min",2),1:GMRVPO),1:"")
- End DoDot:1
- +25 IF GMRVTY="T"
- SET X=$PIECE(GMRDAT,"^",8)
- Begin DoDot:1
- +26 IF X'>0
- WRITE ?9,X
- QUIT
- +27 SET GMRVX=GMRVTY
- SET GMRVX(0)=X
- DO EN1^GMVSAS0
- +28 DO EN1^GMVUTL
- IF 'Y
- SET Y=""
- SET Z=$JUSTIFY(X,5,1)
- DO BLNK
- WRITE ?9,Z_" F "
- SET Z=$JUSTIFY(Y,4,1)
- DO BLNK
- WRITE "("_Z_" C)"_$SELECT('$DATA(GMRVX(1)):" ",'GMRVX(1):"",1:"*")
- End DoDot:1
- +29 IF GMRVTY="HT"
- SET X=$PIECE(GMRDAT,"^",8)
- Begin DoDot:1
- +30 IF X'>0
- WRITE ?9,X
- QUIT
- +31 DO EN2^GMVUTL
- IF 'Y
- SET Y=""
- SET Z=$JUSTIFY(X,5,2)
- DO BLNK
- WRITE ?9,Z_" in "
- SET Z=$JUSTIFY(Y,5,2)
- DO BLNK
- WRITE "("_Z_" cm)"
- IF 'GMRVER
- SET GMRVHT=Z/100
- End DoDot:1
- +32 IF GMRVTY="WT"
- SET X=$PIECE(GMRDAT,"^",8)
- Begin DoDot:1
- +33 IF X'>0
- WRITE ?9,X
- QUIT
- +34 DO EN3^GMVUTL
- IF 'Y
- SET Y=""
- SET Z=$JUSTIFY(X,7,2)
- DO BLNK
- WRITE ?9,Z_" lb "
- SET Z=$JUSTIFY(Y,6,2)
- DO BLNK
- WRITE "("_Z_" kg)"
- End DoDot:1
- +35 SET GMRZZ=""
- +36 FOR GMVLOOP=1:1
- IF $PIECE(GMRVARY,U,GMVLOOP)=""
- QUIT
- Begin DoDot:1
- +37 SET GMVQNAME=$$FIELD^GMVGETQL($PIECE(GMRVARY,U,GMVLOOP),1,"E")
- +38 IF GMVQNAME=""!(GMVQNAME=-1)
- QUIT
- +39 SET GMRZZ=GMRZZ_$SELECT(GMRZZ'="":", ",1:"")_GMVQNAME
- End DoDot:1
- +40 IF "UNAVAILABLEPASSREFUSED"[$$UP^XLFSTR($PIECE(GMRDAT,U,8))
- QUIT
- +41 SET GMRVITY=+$PIECE(GMRDAT,"^",3)
- +42 IF GMRZZ'=""&(GMRVTY'="PO2")
- SET GMRZZ=" ("_GMRZZ_")"
- +43 IF GMRZZ'=""
- IF GMRVTY="PO2"
- WRITE !,?8," via "
- WRITE GMRZZ
- +44 IF GMRVTY="WT"
- IF 'GMRVER
- SET GMRBMI=""
- SET GMRBMI(1)=$PIECE(GMRDAT,"^")
- SET GMRBMI(2)=+$PIECE(GMRDAT,"^",8)
- DO CALBMI^GMVBMI(.GMRBMI)
- IF GMRBMI>0
- WRITE !,?4,"Body Mass Index: "_GMRBMI
- +45 KILL Z
- +46 QUIT
- HDR ; Report header
- +1 IF 'GMR1ST
- DO FOOTER^GMVSC0
- +2 IF $Y>0
- WRITE @IOF
- +3 ;what is GFLAG?
- SET GMRPG=GMRPG+1
- SET GFLAG=1
- +4 WRITE !,GMRPDT,?25,"Cumulative Vitals/Measurements Report",?70,"Page ",GMRPG
- +5 ;report date range
- WRITE !?25,GMVRANGE
- +6 WRITE !,$EXTRACT(GMRDSH,1,78)
- +7 IF 'GMR1ST
- IF $PIECE(GMRDATE,".")=GMRDATE(0)
- WRITE !,$EXTRACT(GMRDATE(0),4,5)_"/"_$EXTRACT(GMRDATE(0),6,7)_"/"_$EXTRACT(GMRDATE,2,3)_" (continued)",!
- +8 ; include date range in header
- +9 SET GMR1ST=0
- +10 QUIT
- BLNK ;
- +1 FOR I=1:1:$LENGTH(Z)
- IF $EXTRACT(Z,I)'=" "
- QUIT
- +2 SET Z=$EXTRACT(Z,I,$LENGTH(Z))
- +3 QUIT