GMVGGR2 ;HOIFO/YH,FT-SET ^TMP($J) GLOBAL ;6/6/07
 ;;5.0;GEN. MED. REC. - VITALS;**3,23**;Oct 31, 2002;Build 25
 ;CONTINUTATION OF GMVGGR1
 ;
 ; This routine uses the following IAs:
 ; #10061 - ^VADPT calls           (supported)
 ;
GRAPH ;
 D:GMR=0 SETV
 I '$D(^TMP($J,"GMRVG")) S GN=GN+1,^TMP($J,GN)="NO DATA",RESULT=$NA(^TMP($J)) Q
 K GMRQUAL S GDT=0 F  S GDT=$O(^TMP($J,"GMRVG",GDT)) Q:GDT'>0  D
 .  S:GMR=0 GN=GN+1,^TMP($J,GN)="^^^^^^^^^^^^^^^^^^^^^" D DATE
 .  S GI="" F  S GI=$O(^TMP($J,"GMRVG",GDT,GI)) Q:GI=""  D
 . . S GK="" F  S GK=$O(^TMP($J,"GMRVG",GDT,GI,GK)) Q:GK=""  D SETA
 D KVAR^VADPT K VA
 ;RETURN CALL ROUTINE WITH QUALIFIERS
 I GMR=1,$D(GMRQUAL) D
 . S (GQ,GQ(1))=""
 . F  S GQ=$O(GMRQUAL(GQ)) Q:GQ=""  D
 . . S I=0,GQ(1)=$S(GQ="T":"TEMPERATURE",GQ="P":"PULSE",GQ="R":"RESPIRATION",GQ="B":"BLOOD PRESSURE",GQ="H":"HEIGHT",GQ="W":"WEIGHT",GQ="CVP":"CVP",GQ="PO2":"PULSE OXIMETRY",GQ="CG":"CIRCUMFERENCE/GIRTH",1:"")
 . . Q:GQ(1)=""  S GN=GN+1,^TMP($J,GN)=GQ(1)_"--- "
 . . S GQ(2)="" F  S GQ(2)=$O(GMRQUAL(GQ,GQ(2))) Q:GQ(2)=""  S I=I+1 S:I>1 ^TMP($J,GN)=^(GN)_"," S ^TMP($J,GN)=^TMP($J,GN)_" "_GQ(2)
 K GQ,GG,GI,GMRVJ,GSYNO,GHOLD,GLINE,GMRQUAL
 K ^TMP($J,"GMR"),^TMP($J,"GMRVG")
 S RESULT=$NA(^TMP($J))
 Q
SETV ;Set patient data in ^TMP($J,"GMRK" global
 D DEM^VADPT,INP^VADPT
 S GN=1,^TMP($J,GN)=$S(VADM(1)'="":VADM(1),1:"         ")_"  "_$S(VADM(2)'="":$E($P(VADM(2),"^",2),8,11),1:" ")_"  "_$S($D(VADM(3)):$P(VADM(3),"^",2),1:" ")_"  "_$S($D(VADM(4)):VADM(4),1:" ")_" (Yrs)"
 S ^TMP($J,GN)=^(GN)_"  "_$S($D(VADM(5)):$P(VADM(5),"^",2),1:" ")
 S GN=2,^TMP($J,GN)="Unit: "_$P($G(VAIN(4)),"^",2)_"   Room: "_$P($G(VAIN(5)),"-",1,2)
 I '$D(GMRVHLOC) S GMRVHLOC=$$HOSPLOC^GMVUTL1(+$G(VAIN(4)))
 S GN=3,^TMP($J,GN)="Division: "_$$DIVISION^GMVUTL1(+GMRVHLOC)
 S GN=4,^TMP($J,GN)=GSTRFIN
 Q
DATE ;
 S:GMR=0 $P(^TMP($J,GN),"^")=$E(GDT,4,5)_"-"_$E(GDT,6,7)_"-"_$E(GDT,2,3)
 S:GMR=0 Y=$E($P(GDT,".",2)_"000000",1,6),$P(^TMP($J,GN),"^",2)=$E(Y,1,2)_":"_$E(Y,3,4)_":"_$E(Y,5,6)
 Q
SETA ;Store measurements in ^TMP($J, global
 N GMVNODE
 S GMVNODE=$G(^TMP($J,"GMRVG",GDT,GI,GK))
 S $P(^TMP($J,GN),"^",22)=$P(GMVNODE,U,5)
 S $P(^TMP($J,GN),"^",23)=$P(GMVNODE,U,6)
 S $P(^TMP($J,GN),"^",24)=$P(GMVNODE,U,7)
 S GK(1)=GK
 I GK(1)="Unavailable" S GK(1)="Unavail"
 I GI="I" S:GMR=0 $P(^TMP($J,GN),"^",17)=GK(1) Q
 I GI="O" S:GMR=0 $P(^TMP($J,GN),"^",18)=GK(1) Q
 I GI="PN" S:GMR=0 $P(^TMP($J,GN),"^",19)=GK(1) Q
 S (GMRSITE,GMRSITE(1),GINF,GMRVJ)=""
 I GK(1)'="" D  Q:GMR=1
 . S GMRSITE(1)=$P(GMVNODE,U,1),GMRVJ=$P(GMVNODE,U,2),GINF=$P(GMVNODE,U,4)
 . I GMRSITE(1)'="" D SYNOARY^GMVLGQU
 I GI="R" S $P(^TMP($J,GN),"^",5)=GK(1)_$S(GMRVJ=1:"*",1:"")_"- "_GMRSITE Q
 I GI="H" D  Q
 . S $P(^TMP($J,GN),"^",11)=GK(1)_"- "_GMRSITE,$P(^TMP($J,GN),"^",12)=$S(GK(1)>0:$J(GK(1)*2.54,0,2),1:"") S:GK(1)>0 GMRHT=(GK(1)*2.54)/100
 I GI="PO2" D  Q
 . S (GINF(1),GINF(2))="" I GINF'="" D PO2^GMVLGQU(.GINF)
 . S $P(^TMP($J,GN),"^",6)=GK(1)_$S(GMRVJ=1:"*",1:"")_"- "_GMRSITE_"-"_GINF(1)_"-"_GINF(2)
 I GI="CVP" D  Q
 . S $P(^TMP($J,GN),"^",15)=$S(GK(1)>0!(GK(1)<0):$J(GK(1),0,1),1:GK(1))_$S(GMRVJ=1:"*",1:"")
 . S $P(^TMP($J,GN),"^",16)=$S(GK(1)>0!(GK(1)<0)!($E(GK(1))="0"):$J(GK(1)/1.36,0,1),1:"")_$S(GMRVJ=1:"*",1:"")
 I GI="CG" D  Q
 . S $P(^TMP($J,GN),"^",13)=GK(1)_"- "_GMRSITE,$P(^TMP($J,GN),"^",14)=$S(GK(1)>0:$J(GK(1)/.3937,0,2),1:"")
 I GI="B",GK(1)'="" S $P(^TMP($J,GN),"^",7)=GK(1)_$S(GMRVJ=1:"*",1:"")_"- "_GMRSITE
 I GI="W" S $P(^TMP($J,GN),"^",8)=GK(1)_"- "_GMRSITE,$P(^(GN),"^",9)=$S(GK(1)>0:$J(GK(1)*.45359237,0,2),1:"")
 I GK(1)>0,GI="W" D  Q
  . S GHOLD=GI,GMRBMI="",GMRBMI(1)=GDT,GMRBMI(2)=GK(1) D CALBMI^GMVBMI(.GMRBMI) S GI=GHOLD
  . S $P(^TMP($J,GN),"^",10)=GMRBMI K GMRBMI
 I GI="T" S $P(^TMP($J,GN),"^",3)=GK(1)_$S(GMRVJ=1:"*",1:"")_"- "_GMRSITE Q
 I GI="P" S $P(^TMP($J,GN),"^",4)=GK(1)_$S(GMRVJ=1:"*",1:"")_"- "_GMRSITE
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMVGGR2   3908     printed  Sep 23, 2025@19:34:58                                                                                                                                                                                                     Page 2
GMVGGR2   ;HOIFO/YH,FT-SET ^TMP($J) GLOBAL ;6/6/07
 +1       ;;5.0;GEN. MED. REC. - VITALS;**3,23**;Oct 31, 2002;Build 25
 +2       ;CONTINUTATION OF GMVGGR1
 +3       ;
 +4       ; This routine uses the following IAs:
 +5       ; #10061 - ^VADPT calls           (supported)
 +6       ;
GRAPH     ;
 +1        if GMR=0
               DO SETV
 +2        IF '$DATA(^TMP($JOB,"GMRVG"))
               SET GN=GN+1
               SET ^TMP($JOB,GN)="NO DATA"
               SET RESULT=$NAME(^TMP($JOB))
               QUIT 
 +3        KILL GMRQUAL
           SET GDT=0
           FOR 
               SET GDT=$ORDER(^TMP($JOB,"GMRVG",GDT))
               if GDT'>0
                   QUIT 
               Begin DoDot:1
 +4                if GMR=0
                       SET GN=GN+1
                       SET ^TMP($JOB,GN)="^^^^^^^^^^^^^^^^^^^^^"
                   DO DATE
 +5                SET GI=""
                   FOR 
                       SET GI=$ORDER(^TMP($JOB,"GMRVG",GDT,GI))
                       if GI=""
                           QUIT 
                       Begin DoDot:2
 +6                        SET GK=""
                           FOR 
                               SET GK=$ORDER(^TMP($JOB,"GMRVG",GDT,GI,GK))
                               if GK=""
                                   QUIT 
                               DO SETA
                       End DoDot:2
               End DoDot:1
 +7        DO KVAR^VADPT
           KILL VA
 +8       ;RETURN CALL ROUTINE WITH QUALIFIERS
 +9        IF GMR=1
               IF $DATA(GMRQUAL)
                   Begin DoDot:1
 +10                   SET (GQ,GQ(1))=""
 +11                   FOR 
                           SET GQ=$ORDER(GMRQUAL(GQ))
                           if GQ=""
                               QUIT 
                           Begin DoDot:2
 +12                           SET I=0
                               SET GQ(1)=$SELECT(GQ="T":"TEMPERATURE",GQ="P":"PULSE",GQ="R":"RESPIRATION",GQ="B":"BLOOD PRESSURE",GQ="H":"HEIGHT",GQ="W":"WEIGHT",GQ="CVP":"CVP",GQ="PO2":"PULSE OXIMETRY",GQ="CG":"CIRCUMFERENCE/GIRTH",1:"")
 +13                           if GQ(1)=""
                                   QUIT 
                               SET GN=GN+1
                               SET ^TMP($JOB,GN)=GQ(1)_"--- "
 +14                           SET GQ(2)=""
                               FOR 
                                   SET GQ(2)=$ORDER(GMRQUAL(GQ,GQ(2)))
                                   if GQ(2)=""
                                       QUIT 
                                   SET I=I+1
                                   if I>1
                                       SET ^TMP($JOB,GN)=^(GN)_","
                                   SET ^TMP($JOB,GN)=^TMP($JOB,GN)_" "_GQ(2)
                           End DoDot:2
                   End DoDot:1
 +15       KILL GQ,GG,GI,GMRVJ,GSYNO,GHOLD,GLINE,GMRQUAL
 +16       KILL ^TMP($JOB,"GMR"),^TMP($JOB,"GMRVG")
 +17       SET RESULT=$NAME(^TMP($JOB))
 +18       QUIT 
SETV      ;Set patient data in ^TMP($J,"GMRK" global
 +1        DO DEM^VADPT
           DO INP^VADPT
 +2        SET GN=1
           SET ^TMP($JOB,GN)=$SELECT(VADM(1)'="":VADM(1),1:"         ")_"  "_$SELECT(VADM(2)'="":$EXTRACT($PIECE(VADM(2),"^",2),8,11),1:" ")_"  "_$SELECT($DATA(VADM(3)):$PIECE(VADM(3),"^",2),1:" ")_"  "_$SELECT($DATA(VADM(4)):VADM(4),1:" ")_" (Yrs)"
 +3        SET ^TMP($JOB,GN)=^(GN)_"  "_$SELECT($DATA(VADM(5)):$PIECE(VADM(5),"^",2),1:" ")
 +4        SET GN=2
           SET ^TMP($JOB,GN)="Unit: "_$PIECE($GET(VAIN(4)),"^",2)_"   Room: "_$PIECE($GET(VAIN(5)),"-",1,2)
 +5        IF '$DATA(GMRVHLOC)
               SET GMRVHLOC=$$HOSPLOC^GMVUTL1(+$GET(VAIN(4)))
 +6        SET GN=3
           SET ^TMP($JOB,GN)="Division: "_$$DIVISION^GMVUTL1(+GMRVHLOC)
 +7        SET GN=4
           SET ^TMP($JOB,GN)=GSTRFIN
 +8        QUIT 
DATE      ;
 +1        if GMR=0
               SET $PIECE(^TMP($JOB,GN),"^")=$EXTRACT(GDT,4,5)_"-"_$EXTRACT(GDT,6,7)_"-"_$EXTRACT(GDT,2,3)
 +2        if GMR=0
               SET Y=$EXTRACT($PIECE(GDT,".",2)_"000000",1,6)
               SET $PIECE(^TMP($JOB,GN),"^",2)=$EXTRACT(Y,1,2)_":"_$EXTRACT(Y,3,4)_":"_$EXTRACT(Y,5,6)
 +3        QUIT 
SETA      ;Store measurements in ^TMP($J, global
 +1        NEW GMVNODE
 +2        SET GMVNODE=$GET(^TMP($JOB,"GMRVG",GDT,GI,GK))
 +3        SET $PIECE(^TMP($JOB,GN),"^",22)=$PIECE(GMVNODE,U,5)
 +4        SET $PIECE(^TMP($JOB,GN),"^",23)=$PIECE(GMVNODE,U,6)
 +5        SET $PIECE(^TMP($JOB,GN),"^",24)=$PIECE(GMVNODE,U,7)
 +6        SET GK(1)=GK
 +7        IF GK(1)="Unavailable"
               SET GK(1)="Unavail"
 +8        IF GI="I"
               if GMR=0
                   SET $PIECE(^TMP($JOB,GN),"^",17)=GK(1)
               QUIT 
 +9        IF GI="O"
               if GMR=0
                   SET $PIECE(^TMP($JOB,GN),"^",18)=GK(1)
               QUIT 
 +10       IF GI="PN"
               if GMR=0
                   SET $PIECE(^TMP($JOB,GN),"^",19)=GK(1)
               QUIT 
 +11       SET (GMRSITE,GMRSITE(1),GINF,GMRVJ)=""
 +12       IF GK(1)'=""
               Begin DoDot:1
 +13               SET GMRSITE(1)=$PIECE(GMVNODE,U,1)
                   SET GMRVJ=$PIECE(GMVNODE,U,2)
                   SET GINF=$PIECE(GMVNODE,U,4)
 +14               IF GMRSITE(1)'=""
                       DO SYNOARY^GMVLGQU
               End DoDot:1
               if GMR=1
                   QUIT 
 +15       IF GI="R"
               SET $PIECE(^TMP($JOB,GN),"^",5)=GK(1)_$SELECT(GMRVJ=1:"*",1:"")_"- "_GMRSITE
               QUIT 
 +16       IF GI="H"
               Begin DoDot:1
 +17               SET $PIECE(^TMP($JOB,GN),"^",11)=GK(1)_"- "_GMRSITE
                   SET $PIECE(^TMP($JOB,GN),"^",12)=$SELECT(GK(1)>0:$JUSTIFY(GK(1)*2.54,0,2),1:"")
                   if GK(1)>0
                       SET GMRHT=(GK(1)*2.54)/100
               End DoDot:1
               QUIT 
 +18       IF GI="PO2"
               Begin DoDot:1
 +19               SET (GINF(1),GINF(2))=""
                   IF GINF'=""
                       DO PO2^GMVLGQU(.GINF)
 +20               SET $PIECE(^TMP($JOB,GN),"^",6)=GK(1)_$SELECT(GMRVJ=1:"*",1:"")_"- "_GMRSITE_"-"_GINF(1)_"-"_GINF(2)
               End DoDot:1
               QUIT 
 +21       IF GI="CVP"
               Begin DoDot:1
 +22               SET $PIECE(^TMP($JOB,GN),"^",15)=$SELECT(GK(1)>0!(GK(1)<0):$JUSTIFY(GK(1),0,1),1:GK(1))_$SELECT(GMRVJ=1:"*",1:"")
 +23               SET $PIECE(^TMP($JOB,GN),"^",16)=$SELECT(GK(1)>0!(GK(1)<0)!($EXTRACT(GK(1))="0"):$JUSTIFY(GK(1)/1.36,0,1),1:"")_$SELECT(GMRVJ=1:"*",1:"")
               End DoDot:1
               QUIT 
 +24       IF GI="CG"
               Begin DoDot:1
 +25               SET $PIECE(^TMP($JOB,GN),"^",13)=GK(1)_"- "_GMRSITE
                   SET $PIECE(^TMP($JOB,GN),"^",14)=$SELECT(GK(1)>0:$JUSTIFY(GK(1)/.3937,0,2),1:"")
               End DoDot:1
               QUIT 
 +26       IF GI="B"
               IF GK(1)'=""
                   SET $PIECE(^TMP($JOB,GN),"^",7)=GK(1)_$SELECT(GMRVJ=1:"*",1:"")_"- "_GMRSITE
 +27       IF GI="W"
               SET $PIECE(^TMP($JOB,GN),"^",8)=GK(1)_"- "_GMRSITE
               SET $PIECE(^(GN),"^",9)=$SELECT(GK(1)>0:$JUSTIFY(GK(1)*.45359237,0,2),1:"")
 +28       IF GK(1)>0
               IF GI="W"
                   Begin DoDot:1
 +29                   SET GHOLD=GI
                       SET GMRBMI=""
                       SET GMRBMI(1)=GDT
                       SET GMRBMI(2)=GK(1)
                       DO CALBMI^GMVBMI(.GMRBMI)
                       SET GI=GHOLD
 +30                   SET $PIECE(^TMP($JOB,GN),"^",10)=GMRBMI
                       KILL GMRBMI
                   End DoDot:1
                   QUIT 
 +31       IF GI="T"
               SET $PIECE(^TMP($JOB,GN),"^",3)=GK(1)_$SELECT(GMRVJ=1:"*",1:"")_"- "_GMRSITE
               QUIT 
 +32       IF GI="P"
               SET $PIECE(^TMP($JOB,GN),"^",4)=GK(1)_$SELECT(GMRVJ=1:"*",1:"")_"- "_GMRSITE
 +33       QUIT