1 | GMVDCRPC ;HOIFO/DAD-VITALS COMPONENT: RPCs ;8/24/99 08:28
|
---|
2 | ;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
|
---|
3 | ;
|
---|
4 | ; This routine uses the following IAs:
|
---|
5 | ; <None>
|
---|
6 | ;
|
---|
7 | EN1(RESULT,GMVFMT,GMVITTYP) ;
|
---|
8 | ; RPC: GMVDC GET VITAL CATEGORIES
|
---|
9 | ; Get list of the categories
|
---|
10 | ; Input:
|
---|
11 | ; GMVFMT = Format of returned data (Optional)
|
---|
12 | ; 1 - IENs (default), 2 - Abbreviations, 3 - Full Names
|
---|
13 | ; GMVITTYP = A pointer to GMRV Vital Type file (#120.51) (Optional)
|
---|
14 | ; Output:
|
---|
15 | ; RESULT() = CategoryIEN ^ CategoryName ^
|
---|
16 | ; VitalTypeIEN ^ DefaultQualifier
|
---|
17 | N GMVCNT,GMVD0,GMVD1,GMVDATA,GMVDEFQ
|
---|
18 | S GMVCNT=0
|
---|
19 | S GMVFMT=$S("^1^2^3^"[(U_$G(GMVFMT)_U):GMVFMT,1:1)
|
---|
20 | I $G(GMVITTYP)="" D
|
---|
21 | . S GMVITTYP=0
|
---|
22 | . F S GMVITTYP=$O(^GMRD(120.53,"C",GMVITTYP)) Q:GMVITTYP'>0 D EN1A
|
---|
23 | . Q
|
---|
24 | E D
|
---|
25 | . S GMVITTYP=$$VITIEN^GMVDCUTL(GMVITTYP)
|
---|
26 | . D EN1A
|
---|
27 | . Q
|
---|
28 | S RESULT(0)="OK"
|
---|
29 | Q
|
---|
30 | EN1A S GMVD0=0
|
---|
31 | F S GMVD0=$O(^GMRD(120.53,"C",GMVITTYP,GMVD0)) Q:GMVD0'>0 D
|
---|
32 | . S GMVD1=0
|
---|
33 | . F S GMVD1=$O(^GMRD(120.53,"C",GMVITTYP,GMVD0,GMVD1)) Q:GMVD1'>0 D
|
---|
34 | .. S GMVDATA=$P($G(^GMRD(120.53,GMVD0,0)),U)
|
---|
35 | .. I GMVDATA]"" D
|
---|
36 | ... S GMVITTYP(0)=$G(^GMRD(120.51,+GMVITTYP,0))
|
---|
37 | ... S GMVITTYP(1)=GMVITTYP,GMVITTYP(2)=$P(GMVITTYP(0),U,2)
|
---|
38 | ... S GMVITTYP(3)=$P(GMVITTYP(0),U)
|
---|
39 | ... S GMVDEFQ=$P($G(^GMRD(120.53,GMVD0,1,GMVD1,0)),U,7)
|
---|
40 | ... S GMVDEFQ(0)=$G(^GMRD(120.52,+GMVDEFQ,0))
|
---|
41 | ... S GMVDEFQ(1)=GMVDEFQ,GMVDEFQ(2)=$P(GMVDEFQ(0),U,2)
|
---|
42 | ... S GMVDEFQ(3)=$P(GMVDEFQ(0),U)
|
---|
43 | ... S GMVCNT=GMVCNT+1
|
---|
44 | ... S RESULT(GMVCNT)=GMVD0_U_GMVDATA_U_GMVITTYP(GMVFMT)_U_GMVDEFQ(GMVFMT)
|
---|
45 | ... Q
|
---|
46 | .. Q
|
---|
47 | . Q
|
---|
48 | Q
|
---|
49 | ;
|
---|
50 | EN2(RESULT) ;
|
---|
51 | ; RPC: GMVDC GET VITAL ERROR REASONS
|
---|
52 | ; Get list of the entered in error reasons
|
---|
53 | ; Input:
|
---|
54 | ; None
|
---|
55 | ; Output:
|
---|
56 | ; RESULT() = ErrorReasonInternal ^ ErrorReasonExternal
|
---|
57 | N GMVD0,GMVDATA
|
---|
58 | S GMVDATA=$$GET1^DID(120.506,.01,"","POINTER")
|
---|
59 | F GMVD0=1:1 S GMVDATA(0)=$P(GMVDATA,";",GMVD0) Q:GMVDATA(0)="" D
|
---|
60 | . S RESULT(GMVD0)=$TR(GMVDATA(0),":","^")
|
---|
61 | . Q
|
---|
62 | S RESULT(0)="OK"
|
---|
63 | Q
|
---|
64 | ;
|
---|
65 | EN3(RESULT,GMVFMT,GMVITTYP,GMVITCAT) ;
|
---|
66 | ; RPC: GMVDC GET VITAL QUALIFIERS
|
---|
67 | ; Get list of the qualifiers
|
---|
68 | ; Input:
|
---|
69 | ; GMVFMT = Format of returned data (Optional)
|
---|
70 | ; 1 - IENs (default), 2 - Abbreviations, 3 - Full Names
|
---|
71 | ; GMVITTYP = A pointer to GMRV Vital Type file (#120.51) (Optional)
|
---|
72 | ; GMVITCAT = A pointer to GMRV Vital Category file (#120.53) (Optional)
|
---|
73 | ; Output:
|
---|
74 | ; RESULT() = QualifierIEN ^ QualifierName ^ QualifierSynonym ^
|
---|
75 | ; VitalTypeIEN ^ CategoryIEN
|
---|
76 | N GMVCATD0,GMVCNT,GMVD0,GMVD1,GMVDATA
|
---|
77 | S GMVCNT=0
|
---|
78 | S GMVFMT=$S("^1^2^3^"[(U_$G(GMVFMT)_U):GMVFMT,1:1)
|
---|
79 | S GMVITCAT=$$CATIEN^GMVDCUTL($G(GMVITCAT))
|
---|
80 | I $G(GMVITTYP)="" D
|
---|
81 | . S GMVITTYP=0
|
---|
82 | . F S GMVITTYP=$O(^GMRD(120.52,"C",GMVITTYP)) Q:GMVITTYP'>0 D EN3A
|
---|
83 | . Q
|
---|
84 | E D
|
---|
85 | . S GMVITTYP=$$VITIEN^GMVDCUTL(GMVITTYP)
|
---|
86 | . D EN3A
|
---|
87 | . Q
|
---|
88 | S RESULT(0)="OK"
|
---|
89 | Q
|
---|
90 | EN3A S GMVD0=0
|
---|
91 | F S GMVD0=$O(^GMRD(120.52,"C",GMVITTYP,GMVD0)) Q:GMVD0'>0 D
|
---|
92 | . S GMVD1=0
|
---|
93 | . F S GMVD1=$O(^GMRD(120.52,"C",GMVITTYP,GMVD0,GMVD1)) Q:GMVD1'>0 D
|
---|
94 | .. S GMVCATD0=$P($G(^GMRD(120.52,GMVD0,1,GMVD1,0)),U,2)
|
---|
95 | .. I $G(GMVITCAT)>0,GMVITCAT'=GMVCATD0 Q
|
---|
96 | .. S GMVDATA=$G(^GMRD(120.52,GMVD0,0))
|
---|
97 | .. I GMVDATA]"" D
|
---|
98 | ... S GMVITTYP(0)=$G(^GMRD(120.51,+GMVITTYP,0))
|
---|
99 | ... S GMVITTYP(1)=GMVITTYP,GMVITTYP(2)=$P(GMVITTYP(0),U,2)
|
---|
100 | ... S GMVITTYP(3)=$P(GMVITTYP(0),U)
|
---|
101 | ... S GMVITCAT(0)=$G(^GMRD(120.53,+GMVCATD0,0))
|
---|
102 | ... S GMVITCAT(1)=GMVCATD0,(GMVITCAT(2),GMVITCAT(3))=$P(GMVITCAT(0),U)
|
---|
103 | ... S GMVCNT=GMVCNT+1
|
---|
104 | ... S RESULT(GMVCNT)=GMVD0_U_$P(GMVDATA,U)_U_$P(GMVDATA,U,2)_U_GMVITTYP(GMVFMT)_U_GMVITCAT(GMVFMT)
|
---|
105 | ... Q
|
---|
106 | .. Q
|
---|
107 | . Q
|
---|
108 | Q
|
---|
109 | ;
|
---|
110 | EN4(RESULT) ;
|
---|
111 | ; RPC: GMVDC GET VITAL TYPES
|
---|
112 | ; Get list of the vital types
|
---|
113 | ; Input:
|
---|
114 | ; None
|
---|
115 | ; Output:
|
---|
116 | ; RESULT() = VitalTypeIEN ^ VitalTypeName ^
|
---|
117 | ; VitalTypeAbbr ^ VitalTypePCE_Abbreviation
|
---|
118 | N GMVD0,GMVDATA
|
---|
119 | S GMVD0=0
|
---|
120 | F S GMVD0=$O(^GMRD(120.51,GMVD0)) Q:GMVD0'>0 D
|
---|
121 | . S GMVDATA=$G(^GMRD(120.51,GMVD0,0))
|
---|
122 | . I GMVDATA]"" S RESULT(GMVD0)=GMVD0_U_$P(GMVDATA,U)_U_$P(GMVDATA,U,2)_U_$P(GMVDATA,U,7)
|
---|
123 | . Q
|
---|
124 | S RESULT(0)="OK"
|
---|
125 | Q
|
---|
126 | ;
|
---|
127 | EN5(RESULT,GMVDFN,GMVFMT,GMVABR,GMVMSYS) ;
|
---|
128 | ; RPC: GMVDC GET LATEST VITALS
|
---|
129 | ; Returns the latest vitals for a selected patient
|
---|
130 | ; Input:
|
---|
131 | ; GMVDFN = A pointer to the Patient file (#2) (Required)
|
---|
132 | ; GMVFMT = Format of returned data (Optional)
|
---|
133 | ; 1 - IENs (default), 2 - Abbreviations, 3 - Full Names
|
---|
134 | ; GMVABR = Abbreviations of vital types to return (Optional)
|
---|
135 | ; "^T^P^R^PO2^BP^HT^WT^CVP^CG^PN^" (Default)
|
---|
136 | ; "~ALL~" to return all vital types
|
---|
137 | ; GMVMSYS = Measurement system (Optional)
|
---|
138 | ; M = Metric, C - US Customary (Default)
|
---|
139 | ; Output:
|
---|
140 | ; RESULT() = VitalMeasurementIEN ^ DateTimeTaken ^ PatientDFN ^
|
---|
141 | ; VitalType ^ DateTimeEntered ^ HospitalLocation ^
|
---|
142 | ; EnteredBy ^ Measurement ^ EnteredInError ^
|
---|
143 | ; EnteredInErrorBy ^
|
---|
144 | ; Qualifier1 ; Qualifier2 ; ... ^
|
---|
145 | ; EnteredInErrorReason1 ; EnteredInErrorReason2 ; ... ^
|
---|
146 | D EN1^GMVDCEXT("^TMP(""GMV"",$J)",GMVDFN,$G(GMVFMT),$G(GMVABR),0,"","",$G(GMVMSYS),0)
|
---|
147 | S RESULT=$NA(^TMP("GMV",$J))
|
---|
148 | Q
|
---|
149 | ;
|
---|
150 | EN6(RESULT,GMVDFN,GMVFMT,GMVABR,GMVBEG,GMVEND,GMVMSYS,GMVEE) ;
|
---|
151 | ; RPC: GMVDC GET VITALS
|
---|
152 | ; Returns vitals for a selected patient and date/time range
|
---|
153 | ; Input:
|
---|
154 | ; GMVDFN = A pointer to the Patient file (#2) (Required)
|
---|
155 | ; GMVFMT = Format of returned data (Optional)
|
---|
156 | ; 1 - IENs (default), 2 - Abbreviations, 3 - Full Names
|
---|
157 | ; GMVABR = Abbreviations of vital types to return (Optional)
|
---|
158 | ; "^T^P^R^PO2^BP^HT^WT^CVP^CG^PN^" (Default)
|
---|
159 | ; "~ALL~" to return all vital types
|
---|
160 | ; GMVBEG = Beginning date for all vitals (Not used for GMVALL = 0)
|
---|
161 | ; GMVEND = Ending date for all vitals (Not used for GMVALL = 0)
|
---|
162 | ; GMVMSYS = Measurement system (Optional)
|
---|
163 | ; M = Metric, C - US Customary (Default)
|
---|
164 | ; GMVEE = Include entered in error records (Optional)
|
---|
165 | ; (0 - No (Default), 1 - Yes)
|
---|
166 | ;
|
---|
167 | ; Output:
|
---|
168 | ; RESULT() = VitalMeasurementIEN ^ DateTimeTaken ^ PatientDFN ^
|
---|
169 | ; VitalType ^ DateTimeEntered ^ HospitalLocation ^
|
---|
170 | ; EnteredBy ^ Measurement ^ EnteredInError ^
|
---|
171 | ; EnteredInErrorBy ^
|
---|
172 | ; Qualifier1 ; Qualifier2 ; ... ^
|
---|
173 | ; EnteredInErrorReason1 ; EnteredInErrorReason2 ; ... ^
|
---|
174 | D EN1^GMVDCEXT("^TMP(""GMV"",$J)",GMVDFN,$G(GMVFMT),$G(GMVABR),1,$G(GMVBEG),$G(GMVEND),$G(GMVMSYS),$G(GMVEE))
|
---|
175 | S RESULT=$NA(^TMP("GMV",$J))
|
---|
176 | Q
|
---|
177 | ;
|
---|
178 | EN7(RESULT,GMVITTYP) ;
|
---|
179 | ; RPC: GMVDC GET VITALS HELP
|
---|
180 | ; Get help text for a selected vital type
|
---|
181 | ; Input:
|
---|
182 | ; GMVITTYP = A pointer to GMRV Vital Type file (#120.51) (Optional)
|
---|
183 | ; Output:
|
---|
184 | ; RESULT() = Help text
|
---|
185 | S GMVITTYP=$$VITIEN^GMVDCUTL(GMVITTYP)
|
---|
186 | S GMVITTYP=$P($G(^GMRD(120.51,+GMVITTYP,0)),U,2)
|
---|
187 | I GMVITTYP]"" D
|
---|
188 | . D HELP^GMVDCHLP(.RESULT,GMVITTYP)
|
---|
189 | . S RESULT(0)="OK"
|
---|
190 | . I $O(RESULT(0))'>0 S RESULT(1)="No help text available."
|
---|
191 | . Q
|
---|
192 | E D
|
---|
193 | . S RESULT(0)="ERROR"
|
---|
194 | . S RESULT(1)="ERROR: Missing or invalid Vital Type parameter"
|
---|
195 | . Q
|
---|
196 | Q
|
---|
197 | ;
|
---|
198 | EN8(RESULT,GMVPARAM) ;
|
---|
199 | ; RPC: GMVDC SAVE VITALS
|
---|
200 | ; Saves vitals data
|
---|
201 | N GMVDFN,GMVDTDUN,GMVDTENT,GMVENTBY,GMVERRBY,GMVHOSPL,GMVMSYS K RESULT
|
---|
202 | S RESULT(0)="OK"
|
---|
203 | S GMVDATA="^TMP(""GMV"",$J)"
|
---|
204 | D FMTPARAM^GMVDCUTL(.GMVPARAM,GMVDATA)
|
---|
205 | D EN1^GMVDCVAL(.RESULT,GMVDATA)
|
---|
206 | I $G(RESULT(0))="OK" D EN1^GMVDCSAV(.RESULT,GMVDATA)
|
---|
207 | K RESULT(-1)
|
---|
208 | Q
|
---|
209 | ;
|
---|
210 | EN9(RESULT,GMVPARAM) ;
|
---|
211 | ; RPC: GMVDC VALIDATE VITALS
|
---|
212 | ; Validates vitals data
|
---|
213 | N GMVDFN,GMVDTDUN,GMVDTENT,GMVENTBY,GMVERRBY,GMVHOSPL,GMVMSYS K RESULT
|
---|
214 | S RESULT(0)="OK"
|
---|
215 | S GMVDATA="^TMP(""GMV"",$J)"
|
---|
216 | D FMTPARAM^GMVDCUTL(.GMVPARAM,GMVDATA)
|
---|
217 | D EN1^GMVDCVAL(.RESULT,GMVDATA)
|
---|
218 | K RESULT(-1)
|
---|
219 | Q
|
---|
220 | ;
|
---|
221 | EN10(RESULT,GMVMSYS) ;
|
---|
222 | ; RPC: GMVDC GET ABNORMAL RANGES
|
---|
223 | ; Returns the abnormal ranges for the vital types
|
---|
224 | ; Input:
|
---|
225 | ; GMVMSYS = Measurement system (Optional)
|
---|
226 | ; M = Metric, C - US Customary (Default)
|
---|
227 | ; Output:
|
---|
228 | ; RESULT(1) = TEMP-HIGH ^ TEMP-LOW ^ PULSE-HIGH ^ PULSE-LOW ^
|
---|
229 | ; RESP-HIGH ^ RESP-LOW ^ SYSTOLIC-HIGH ^ DIASTOLIC-HIGH ^
|
---|
230 | ; SYSTOLIC-LOW ^ DIASTOLIC-LOW ^ CVP-HIGH ^ CVP-LOW ^
|
---|
231 | ; O2SAT-LOW
|
---|
232 | N GMVABBR,GMVALUE,GMVPIECE K RESULT
|
---|
233 | S GMVMSYS=$$MEASYS^GMVDCUTL($G(GMVMSYS))
|
---|
234 | S RESULT(0)="OK"
|
---|
235 | S RESULT(1)=$P($G(^GMRD(120.57,1,1)),U,1,13)
|
---|
236 | F GMVPIECE=1,2,11,12 D
|
---|
237 | . S GMVABBR=$P("T^T^^^^^^^^^CVP^CVP",U,GMVPIECE)
|
---|
238 | . S GMVALUE=$P(RESULT(1),U,GMVPIECE)
|
---|
239 | . S GMVALUE=$$CNV^GMVDCCNV(GMVALUE,GMVMSYS,"G",GMVABBR)
|
---|
240 | . S $P(RESULT(1),U,GMVPIECE)=GMVALUE
|
---|
241 | . Q
|
---|
242 | Q
|
---|