GMVLGQU ;HIOFO/YH,FT-UTILITY FOR LEGEND, PO2 AND QUALIFIER ;11/8/01 14:31
;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
;
; This routine uses the following IAs:
; #10104 - ^XLFSTR calls (supported)
;
LEGEND ;CREATE VITAL/QUALIFIER/SYNONYM LEGEND STORED IN GLINE LOCAL GLOBAL
N I,X,J,K,G,B S (I,J,B)=0,(X,GLINE(1),GLINE(2),GLINE(3),GLINE(4),GLINE(5),GLINE)=""
F G(1)="T","P","R","B","H","W","PO2","CG","CVP","PN" I $D(GMRQUAL(G(1))) D LEGEND1
S J=J+1,GLINE(J)=X
K ^UTILITY($J),DIWF,DIWL,WIWR Q
LEGEND1 ;
S G=$S(G(1)="CG":"CIRC/GIRTH",G(1)="PO2":"PULSE OX",G(1)="B":"BP",G(1)="W":"WT",G(1)="H":"HT",G(1)="T":"TEMP",G(1)="P":"PULSE",G(1)="R":"RESP",G(1)="PN":"PAIN",1:G(1))_" - "
S X=X_$S(B=0:"",1:" ")_G S B=1 D:$L(X)>150 CUT D
. S G="" F S G=$O(GMRQUAL(G(1),G)) Q:G="" S X=X_G_" " I $L(X)>150 D CUT
Q
CUT ;
S DIWF="",DIWL=0,DIWR=$S(+$G(GLPRNTR):120,1:150) K ^UTILITY($J) D ^DIWP
S I=+$P(^UTILITY($J,"W",0),"^")
S J=J+1,GLINE(J)=$G(^UTILITY($J,"W",0,1,0)),X=$G(^UTILITY($J,"W",0,2,0))
K ^UTILITY($J)
Q
SYNOARY ;
K GG S GG=$L(GMRSITE(1),";") F GG(1)=1:1:GG S GG(2)=$P(GMRSITE(1),";",GG(1)) S GG(3)=$O(^GMRD(120.52,"B",GG(2),0)) D:GG(3)>0
. S GMRSITE=GMRSITE_$S(GMRSITE="":"",1:" "),GSYNO=""
. I $P($G(^GMRD(120.52,GG(3),0)),"^",2)'="" S GSYNO=$P(^(0),"^",2)
. E S GCHA=GG(2) D
. . I GCHA["-" S GCHA=$P(GCHA,"-")_" "_$P(GCHA,"-",2)
. . I $L(GCHA," ")<2 S GSYNO=$E(GCHA)_$$LOW^XLFSTR($E(GCHA,2,3))
. . E S GLEN=$L(GCHA," ") F I=1:1:GLEN S GSYNO=GSYNO_$S($E($P(GCHA," ",I))'="(":$E($P(GCHA," ",I)),1:"")
. I GG(2)'="" S GG(2)=$E(GG(2))_$$LOW^XLFSTR($E(GG(2),2,30))
. S GMRSITE=GMRSITE_GSYNO S:GI'="C" GMRQUAL(GI,GSYNO_": "_GG(2))="" K GLEN
Q
PO2(X) ;
I X="" Q
I X["%" D
. S X(2)=$P(X,"%")
. I X(2)["l/min" S X(2)=$P(X(2),"l/min",2)
I X["l/min" D
. S X(1)=$P(X,"l/min")
. I X(1)["%" S X(1)=$P(X(1),"%",2)
S X(1)=$$STRIP^XLFSTR(X(1)," "),X(2)=$$STRIP^XLFSTR(X(2)," ")
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMVLGQU 1958 printed Oct 16, 2024@18:00:18 Page 2
GMVLGQU ;HIOFO/YH,FT-UTILITY FOR LEGEND, PO2 AND QUALIFIER ;11/8/01 14:31
+1 ;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
+2 ;
+3 ; This routine uses the following IAs:
+4 ; #10104 - ^XLFSTR calls (supported)
+5 ;
LEGEND ;CREATE VITAL/QUALIFIER/SYNONYM LEGEND STORED IN GLINE LOCAL GLOBAL
+1 NEW I,X,J,K,G,B
SET (I,J,B)=0
SET (X,GLINE(1),GLINE(2),GLINE(3),GLINE(4),GLINE(5),GLINE)=""
+2 FOR G(1)="T","P","R","B","H","W","PO2","CG","CVP","PN"
IF $DATA(GMRQUAL(G(1)))
DO LEGEND1
+3 SET J=J+1
SET GLINE(J)=X
+4 KILL ^UTILITY($JOB),DIWF,DIWL,WIWR
QUIT
LEGEND1 ;
+1 SET G=$SELECT(G(1)="CG":"CIRC/GIRTH",G(1)="PO2":"PULSE OX",G(1)="B":"BP",G(1)="W":"WT",G(1)="H":"HT",G(1)="T":"TEMP",G(1)="P":"PULSE",G(1)="R":"RESP",G(1)="PN":"PAIN",1:G(1))_" - "
+2 SET X=X_$SELECT(B=0:"",1:" ")_G
SET B=1
if $LENGTH(X)>150
DO CUT
Begin DoDot:1
+3 SET G=""
FOR
SET G=$ORDER(GMRQUAL(G(1),G))
if G=""
QUIT
SET X=X_G_" "
IF $LENGTH(X)>150
DO CUT
End DoDot:1
+4 QUIT
CUT ;
+1 SET DIWF=""
SET DIWL=0
SET DIWR=$SELECT(+$GET(GLPRNTR):120,1:150)
KILL ^UTILITY($JOB)
DO ^DIWP
+2 SET I=+$PIECE(^UTILITY($JOB,"W",0),"^")
+3 SET J=J+1
SET GLINE(J)=$GET(^UTILITY($JOB,"W",0,1,0))
SET X=$GET(^UTILITY($JOB,"W",0,2,0))
+4 KILL ^UTILITY($JOB)
+5 QUIT
SYNOARY ;
+1 KILL GG
SET GG=$LENGTH(GMRSITE(1),";")
FOR GG(1)=1:1:GG
SET GG(2)=$PIECE(GMRSITE(1),";",GG(1))
SET GG(3)=$ORDER(^GMRD(120.52,"B",GG(2),0))
if GG(3)>0
Begin DoDot:1
+2 SET GMRSITE=GMRSITE_$SELECT(GMRSITE="":"",1:" ")
SET GSYNO=""
+3 IF $PIECE($GET(^GMRD(120.52,GG(3),0)),"^",2)'=""
SET GSYNO=$PIECE(^(0),"^",2)
+4 IF '$TEST
SET GCHA=GG(2)
Begin DoDot:2
+5 IF GCHA["-"
SET GCHA=$PIECE(GCHA,"-")_" "_$PIECE(GCHA,"-",2)
+6 IF $LENGTH(GCHA," ")<2
SET GSYNO=$EXTRACT(GCHA)_$$LOW^XLFSTR($EXTRACT(GCHA,2,3))
+7 IF '$TEST
SET GLEN=$LENGTH(GCHA," ")
FOR I=1:1:GLEN
SET GSYNO=GSYNO_$SELECT($EXTRACT($PIECE(GCHA," ",I))'="(":$EXTRACT($PIECE(GCHA," ",I)),1:"")
End DoDot:2
+8 IF GG(2)'=""
SET GG(2)=$EXTRACT(GG(2))_$$LOW^XLFSTR($EXTRACT(GG(2),2,30))
+9 SET GMRSITE=GMRSITE_GSYNO
if GI'="C"
SET GMRQUAL(GI,GSYNO_": "_GG(2))=""
KILL GLEN
End DoDot:1
+10 QUIT
PO2(X) ;
+1 IF X=""
QUIT
+2 IF X["%"
Begin DoDot:1
+3 SET X(2)=$PIECE(X,"%")
+4 IF X(2)["l/min"
SET X(2)=$PIECE(X(2),"l/min",2)
End DoDot:1
+5 IF X["l/min"
Begin DoDot:1
+6 SET X(1)=$PIECE(X,"l/min")
+7 IF X(1)["%"
SET X(1)=$PIECE(X(1),"%",2)
End DoDot:1
+8 SET X(1)=$$STRIP^XLFSTR(X(1)," ")
SET X(2)=$$STRIP^XLFSTR(X(2)," ")
+9 QUIT