1 | GMTSVS ; SLC/KER - Vital Signs Component ; 02/27/2002
|
---|
2 | ;;2.7;Health Summary;**8,20,28,35,49,78**;Oct 20, 1995
|
---|
3 | ;
|
---|
4 | ; External References
|
---|
5 | ; DBIA 4791 EN1^GMVHS
|
---|
6 | ; DBIA 10141 $$VERSION^XPDUTL
|
---|
7 | ;
|
---|
8 | ; Health Summary patch GMTS*2.7*35 will require
|
---|
9 | ; Vitals version 4.0, patch GMRV*4.0*7
|
---|
10 | ;
|
---|
11 | OUTPAT ; Outpatient Vital Signs Main Control
|
---|
12 | N GMRVSTR
|
---|
13 | S CNTR=$S(+($G(GMTSNDM))>0:+($G(GMTSNDM)),1:100)
|
---|
14 | K ^UTILITY($J,"GMRVD"),ARRAY
|
---|
15 | S T1=GMTSEND,T2=GMTSBEG,END=0,TN=0,LF=0
|
---|
16 | S GMRVSTR="T"_";"_"P"_";"_"R"_";"_"BP"_";"_"HT"_";"_"WT"_";"_"CVP"_";"_"PO2"_";"_"CG"_";"_"PN"
|
---|
17 | S GMRVSTR(0)=T2_"^"_T1_"^"_CNTR_"^"_1
|
---|
18 | S GMRVSTR("LT")="^C^" ;Set to only get Vital Sign for Clinics
|
---|
19 | ;D EN1^GMRVUT0
|
---|
20 | D EN1^GMVHS
|
---|
21 | ; If no data, display message and get
|
---|
22 | ; most recent inpatient measurements
|
---|
23 | I '$D(^UTILITY($J,"GMRVD")) D Q
|
---|
24 | . D CKP^GMTSUP Q:$D(GMTSQIT) W "*** No Outpatient measurements ***",!!
|
---|
25 | . S CNTR=1 D ENVS
|
---|
26 | D FIRST,SECOND:GMTSVMVR>3,KILLVS Q
|
---|
27 | ;
|
---|
28 | ENVS ; Set up for Vitals Extraction Routine
|
---|
29 | S CNTR=$S(+($G(CNTR))>0:+($G(CNTR)),+($G(CNTR))'>0&(+($G(GMTSNDM))>0):+($G(GMTSNDM)),1:100)
|
---|
30 | K ^UTILITY($J,"GMRVD"),ARRAY,GMRVSTR("LT")
|
---|
31 | S T1=GMTSEND,T2=GMTSBEG,END=0,TN=0,LF=0
|
---|
32 | S GMRVSTR="T"_";"_"P"_";"_"R"_";"_"BP"_";"_"HT"_";"_"WT"_";"_"CVP"_";"_"PO2"_";"_"CG"_";"_"PN"
|
---|
33 | S GMRVSTR(0)=T2_"^"_T1_"^"_CNTR_"^"_1
|
---|
34 | ;D EN1^GMRVUT0 I '$D(^UTILITY($J,"GMRVD")) D KILLVS Q
|
---|
35 | D EN1^GMVHS I '$D(^UTILITY($J,"GMRVD")) D KILLVS Q
|
---|
36 | D FIRST,SECOND:GMTSVMVR>3,KILLVS Q
|
---|
37 | ;
|
---|
38 | FIRST ; First Set of Vitals
|
---|
39 | ; 1 2 3 4 5 6 7 8
|
---|
40 | ; Date^Temp()^Pulse^Respt^BP^Height()^Weight()^Control
|
---|
41 | N GMW,GMTSCCNT,GMTSCTL S CNTR("HOLDER")=CNTR S GMTSVMVR=$$VERSION^XPDUTL("GMRV")
|
---|
42 | I GMTSVMVR'>3 D Q:$D(GMTSQIT)
|
---|
43 | . D CKP^GMTSUP Q:$D(GMTSQIT) W "Measurement DT",?20,"TEMP",?29,"PULSE",?36,"RESP",?45,"BP",?55,"HT",?68,"WT",!
|
---|
44 | . D CKP^GMTSUP Q:$D(GMTSQIT) W ?20,"F(C)",?55,"IN(CM)",?68,"LB(KG)",!
|
---|
45 | . D CKP^GMTSUP Q:$D(GMTSQIT) W ?20,"----",?29,"-----",?36,"----",?45,"--",?55,"------",?68,"------",!!
|
---|
46 | I GMTSVMVR>3 D Q:$D(GMTSQIT)
|
---|
47 | . D CKP^GMTSUP Q:$D(GMTSQIT) W "Measurement DT",?18,"TEMP",?30,"PULSE",?36,"RESP",?41,"BP",?53,"HT",?63,"WT",!
|
---|
48 | . D CKP^GMTSUP Q:$D(GMTSQIT) W ?18,"F(C)",?53,"IN(CM)",?63,"LB(KG)[BMI]",!
|
---|
49 | . D CKP^GMTSUP Q:$D(GMTSQIT) W ?18,"----",?30,"-----",?36,"----",?41,"--",?53,"------",?63,"-----------",!!
|
---|
50 | S GMTSCCNT=0,GMT="" F S GMT=$O(^UTILITY($J,"GMRVD",GMT)) Q:GMT<0!(GMT="")!(END=1) D FLOOP,FWRT
|
---|
51 | W:GMTSCCNT=0 "No data",!
|
---|
52 | Q
|
---|
53 | FLOOP ; Loop through first set of vitals by date
|
---|
54 | S (GMTSCTL,GMTSVT)=""
|
---|
55 | F S GMTSVT=$O(^UTILITY($J,"GMRVD",GMT,GMTSVT)) Q:GMTSVT="" S IEN=$O(^UTILITY($J,"GMRVD",GMT,GMTSVT,0)) D FFMT
|
---|
56 | Q
|
---|
57 | FFMT ; Extract and format first set of vitals
|
---|
58 | S GMTSVS=^UTILITY($J,"GMRVD",GMT,GMTSVT,IEN),X=$P(GMTSVS,U,1) D REGDT4^GMTSU S TDT=X
|
---|
59 | S X=$P(GMTSVS,U,1) D MTIM^GMTSU S TI=X S TDT=TDT_" "_TI,$P(ARRAY,U,1)=TDT
|
---|
60 | S GMTAB=$S(GMTSVT="T":2,GMTSVT="P":3,GMTSVT="R":4,GMTSVT="BP":5,GMTSVT="HT":6,GMTSVT="WT":7,1:0)
|
---|
61 | I GMTAB="2" S $P(ARRAY,U,GMTAB)=$$FN($P(GMTSVS,U,8),1)_"("_$$FN($P(GMTSVS,U,13),1)_")"
|
---|
62 | I GMTAB="6" S $P(ARRAY,U,GMTAB)=$$FN($P(GMTSVS,U,8),1)_"("_$$FN($P(GMTSVS,U,13),0)_")"
|
---|
63 | I GMTAB="7" S $P(ARRAY,U,GMTAB)=$$FN($P(GMTSVS,U,8),0)_"("_$$FN($P(GMTSVS,U,13),1)_")"
|
---|
64 | I "^2^7^"[GMTAB,$P(GMTSVS,U,8)?1A.E S $P(ARRAY,U,GMTAB)=$P(GMTSVS,U,8)
|
---|
65 | I GMTAB=6,$P(GMTSVS,U,8)?1A.E S $P(ARRAY,U,GMTAB)=$E($P(GMTSVS,U,8),1,9)
|
---|
66 | I "^2^6^7^"'[GMTAB S $P(ARRAY,U,GMTAB)=$P(GMTSVS,U,8)
|
---|
67 | I GMTAB=3,$P(ARRAY,U,GMTAB)?1A.E S $P(ARRAY,U,GMTAB)=$E($P(ARRAY,U,GMTAB),1,5)
|
---|
68 | I GMTAB=4,$P(ARRAY,U,GMTAB)?1A.E S $P(ARRAY,U,GMTAB)=$E($P(ARRAY,U,GMTAB),1,4)
|
---|
69 | ;I "^3^4^5^"[GMTAB,$P(ARRAY,U,GMTAB)?1A.E S $P(ARRAY,U,GMTAB)=$E($P(ARRAY,U,GMTAB),1,7)
|
---|
70 | I GMTAB=7,$P(GMTSVS,U,14)]"" S $P(ARRAY,U,GMTAB)=$P(ARRAY,U,GMTAB)_"["_$P(GMTSVS,U,14)_"]"
|
---|
71 | S:GMTAB>1 GMTSCTL=GMTSCTL_$P(ARRAY,U,GMTAB),$P(ARRAY,U,8)=GMTSCTL
|
---|
72 | Q
|
---|
73 | FWRT ; Write first set of vitals by date
|
---|
74 | Q:$P($G(ARRAY),U,8)="" S GMTSCCNT=$G(GMTSCCNT)+1
|
---|
75 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
76 | I GMTSVMVR'>3 W $P(ARRAY,U,1),?18,$P(ARRAY,U,2),?30,$P(ARRAY,U,3),?37,$P(ARRAY,U,4),?42,$P(ARRAY,U,5),?54,$P(ARRAY,U,6),?67,$P(ARRAY,U,7),!
|
---|
77 | I GMTSVMVR>3 W $P(ARRAY,U,1),?18,$P(ARRAY,U,2),?30,$P(ARRAY,U,3),?36,$P(ARRAY,U,4),?41,$P(ARRAY,U,5),?53,$P(ARRAY,U,6),?63,$P(ARRAY,U,7),!
|
---|
78 | S CNTR=CNTR-1 I CNTR=0 S END=1
|
---|
79 | K ARRAY
|
---|
80 | Q
|
---|
81 | ;
|
---|
82 | SECOND ; Second Set of Vitals
|
---|
83 | ; 1 2 3 4 5 6
|
---|
84 | ; Date^CVP^POx^Cir/Gir^Pain^Control
|
---|
85 | N GMW,GMTSCCNT,GMTSCTL S (GMTSCCNT,END)=0,CNTR=CNTR("HOLDER")
|
---|
86 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
87 | W !,"Measurement DT",?18,"CVP",?32,"POx",?45,"CG"
|
---|
88 | W !,?18,"CMH20(MMHG)",?32,"(L/MIN)(%)",?45,"IN(CM)",?73,"Pain",!,?18,"-----------",?32,"----------",?45,"------",?73,"----",!!
|
---|
89 | S GMT="" F S GMT=$O(^UTILITY($J,"GMRVD",GMT)) Q:GMT<0!(GMT="")!(END=1) D SLOOP,SWRT
|
---|
90 | W:GMTSCCNT=0 "No data",!
|
---|
91 | Q
|
---|
92 | SLOOP ; Loop through second set of vitals by date
|
---|
93 | S (GMTSCTL,GMTSVT)="" F S GMTSVT=$O(^UTILITY($J,"GMRVD",GMT,GMTSVT)) Q:GMTSVT="" S IEN=$O(^UTILITY($J,"GMRVD",GMT,GMTSVT,0)) D SFMT
|
---|
94 | Q
|
---|
95 | SFMT ; Extract and format second set of vitals
|
---|
96 | S GMTSVS=^UTILITY($J,"GMRVD",GMT,GMTSVT,IEN)
|
---|
97 | S X=$P(GMTSVS,U,1) D REGDT4^GMTSU S TDT=X S X=$P(GMTSVS,U,1) D MTIM^GMTSU S TI=X S TDT=TDT_" "_TI,$P(ARRAY,U,1)=TDT
|
---|
98 | S GMTAB=$S(GMTSVT="CVP":2,GMTSVT="PO2":3,GMTSVT="CG":4,GMTSVT="PN":5,1:0)
|
---|
99 | S $P(ARRAY,U,GMTAB)=$P(GMTSVS,U,8)
|
---|
100 | I GMTAB=2 S $P(ARRAY,U,GMTAB)=$P(ARRAY,U,GMTAB)_$S($P(ARRAY,U,GMTAB)?1A.E:"",1:"("_$P(GMTSVS,U,13)_")")
|
---|
101 | I GMTAB=3 S $P(ARRAY,U,GMTAB)=$P(ARRAY,U,GMTAB)_$S($P(ARRAY,U,GMTAB)?1A.E:"",($P($G(GMTSVS),U,15)="")&($P($G(GMTSVS),U,16)=""):"",1:"("_$P(GMTSVS,U,15)_")("_$P(GMTSVS,U,16)_")")
|
---|
102 | I GMTAB=4 S $P(ARRAY,U,GMTAB)=$P(ARRAY,U,GMTAB)_$S($P(ARRAY,U,GMTAB)?1A.E:"",1:"("_$$FN($P(GMTSVS,U,13),0)_")"_$S($P(GMTSVS,U,17)]"":"["_$P(GMTSVS,U,17)_"]",1:""))
|
---|
103 | I GMTAB=5 S $P(ARRAY,U,GMTAB)=$S($L($P(ARRAY,U,GMTAB))&(+($P(ARRAY,U,GMTAB))=0):$P(ARRAY,U,GMTAB),$L($P(ARRAY,U,GMTAB))&(+($P(ARRAY,U,GMTAB))'=99):$$FN($P(ARRAY,U,GMTAB),0),$L($P(ARRAY,U,GMTAB))&(+($P(ARRAY,U,GMTAB))=99):"No Response",1:"")
|
---|
104 | S:GMTAB>1 GMTSCTL=$G(GMTSCTL)_$P($G(ARRAY),U,GMTAB),$P(ARRAY,U,6)=GMTSCTL
|
---|
105 | Q
|
---|
106 | SWRT ; Write second set of vitals by date
|
---|
107 | Q:$P($G(ARRAY),U,6)=""
|
---|
108 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
109 | I GMTSNPG=1 D
|
---|
110 | . W !,"Measurement DT",?18,"CVP",?34,"POx",?46,"CG"
|
---|
111 | . W !,?18,"CMH20(MMHG)",?32,"(L/MIN)(%)",?45,"IN(CM)",?73,"Pain",!,?18,"-----------",?32,"----------",?45,"------",?73,"----",!!
|
---|
112 | S GMTSCCNT=$G(GMTSCCNT)+1
|
---|
113 | W $P(ARRAY,U,1),?18,$P(ARRAY,U,2),?32,$P(ARRAY,U,3),?45,$P(ARRAY,U,4),?73,$S($P(ARRAY,U,5)?1A.E:$E($P(ARRAY,U,5),1,7),1:$P(ARRAY,U,5)),!
|
---|
114 | S CNTR=CNTR-1 I CNTR=0 S END=1
|
---|
115 | K ARRAY
|
---|
116 | Q
|
---|
117 | ;
|
---|
118 | KILLVS ; Kill Variables
|
---|
119 | K CNTR,T1,T2,TDT,TI,END,TN,IEN,LF,GMTSVMVR,GMTSVS,GMTSVT,GMT,ARRAY,GMTAB,X
|
---|
120 | K ^UTILITY($J,"GMRVD")
|
---|
121 | Q
|
---|
122 | FN(X,Y) ; Format Number
|
---|
123 | N VAL S VAL=+($G(X)),Y=$G(Y) Q:+Y'=Y X
|
---|
124 | S X=$FN(VAL,"",Y) Q X
|
---|