1 | ECUERPC1 ;ALB/JAM;Event Capture Data Entry Broker Util ; 5/21/01 7:30pm
|
---|
2 | ;;2.0; EVENT CAPTURE ;**25,33,42,46,47,54,72**;8 May 96
|
---|
3 | PATINF(RESULTS,ECARY) ;
|
---|
4 | ;Broker entry point to get various types of data from EVENT CAPTURE
|
---|
5 | ;PATIENT FILE #721
|
---|
6 | ; RPC: EC GETPATINFO
|
---|
7 | ;INPUTS ECARY - Contains the following subscripted elements
|
---|
8 | ; ECIEN - Event Capture Patient ien
|
---|
9 | ; ECTYP - Data type to return
|
---|
10 | ;
|
---|
11 | ;OUTPUTS RESULTS - Array of Event Capture Patient data
|
---|
12 | ;
|
---|
13 | N ECTYP,ECIEN
|
---|
14 | S ECARY=$G(ECARY),ECIEN=$P(ECARY,U),ECTYP=$P(ECARY,U,2) I ECIEN="" Q
|
---|
15 | I '$D(^ECH(ECIEN)) Q
|
---|
16 | D SETENV^ECUMRPC
|
---|
17 | I ECTYP="DXS" D PATDXS(ECIEN) Q
|
---|
18 | I ECTYP="MOD" D PATMOD(ECIEN) Q
|
---|
19 | I ECTYP="CLASS" D PATCLASS(ECIEN) Q
|
---|
20 | I ECTYP="OTH" D PATOTH(ECIEN) Q
|
---|
21 | I ECTYP="PRV" D PATPRV^ECUERPC2(ECIEN) Q
|
---|
22 | Q
|
---|
23 | PATDXS(ECIEN) ;
|
---|
24 | ;Returns to broker a patient secondary DXs entries from EVENT
|
---|
25 | ;CAPTURE PATIENT FILE #721
|
---|
26 | ;INPUTS ECIEN - Event Capture Patient ien
|
---|
27 | ;
|
---|
28 | ;OUTPUTS RESULTS - Array of Event Capture Patient file contains
|
---|
29 | ; 721 IEN^secondary dx ien #80^secondary dx code^dx description
|
---|
30 | ;
|
---|
31 | N DXS,DXSIEN,DXSD,CNT
|
---|
32 | I '$D(^ECH(ECIEN,"DX")) Q
|
---|
33 | K ^TMP($J,"ECDXS")
|
---|
34 | S (CNT,DXS)=0 F S DXS=$O(^ECH(ECIEN,"DX",DXS)) Q:'DXS D
|
---|
35 | . S DXSIEN=$G(^ECH(ECIEN,"DX",DXS,0)) I DXSIEN="" Q
|
---|
36 | . S DXSD=$$ICDDX^ICDCODE(DXSIEN,$P($G(^ECH(ECIEN,0)),U,3))
|
---|
37 | . S DXSD=$P(DXSD,U,2)_" "_$P(DXSD,U,4)
|
---|
38 | . S CNT=CNT+1,^TMP($J,"ECDXS",CNT)=ECIEN_U_DXSIEN_U_DXSD
|
---|
39 | S RESULTS=$NA(^TMP($J,"ECDXS"))
|
---|
40 | Q
|
---|
41 | PATMOD(ECIEN) ;
|
---|
42 | ;Returns to broker a patient procedure modifier from EVENT CAPTURE
|
---|
43 | ;PATIENT FILE #721
|
---|
44 | ;INPUTS ECIEN - Event Capture Patient ien
|
---|
45 | ;
|
---|
46 | ;OUTPUTS RESULTS - Array of procedure modifiers
|
---|
47 | ; 721 IEN^modifier ien #81.3^modifier^modifier name
|
---|
48 | ;
|
---|
49 | N MOD,MODIEN,CNT,MODS
|
---|
50 | I '$D(^ECH(ECIEN,"MOD")) Q
|
---|
51 | K ^TMP($J,"ECMOD")
|
---|
52 | S (CNT,MOD)=0 F S MOD=$O(^ECH(ECIEN,"MOD",MOD)) Q:'MOD D
|
---|
53 | . S MODIEN=$G(^ECH(ECIEN,"MOD",MOD,0)) I MODIEN="" Q
|
---|
54 | . S MODS=$$MOD^ICPTMOD(MODIEN,"I",$P($G(^ECH(ECIEN,0)),U,3)) I +MODS<0 Q
|
---|
55 | . S CNT=CNT+1
|
---|
56 | . S ^TMP($J,"ECMOD",CNT)=ECIEN_U_$P(MODS,U,1,2)_" "_$P(MODS,U,3)
|
---|
57 | S RESULTS=$NA(^TMP($J,"ECMOD"))
|
---|
58 | Q
|
---|
59 | PATCLASS(ECIEN) ;
|
---|
60 | ;Returns to broker a patient classification & eligibility data from
|
---|
61 | ;EVENT CAPTURE PATIENT FILE #721
|
---|
62 | ; INPUTS ECIEN - Event Capture Patient ien
|
---|
63 | ; OUTPUTS RESULTS - Array of procedure modifiers
|
---|
64 | ; 721 IEN^agent orange^radiation exposure^service connect^environmental
|
---|
65 | ; contaminants^military sexual trauma^eligibility code #8^eligibility
|
---|
66 | ; description^head/neck cancer^combat veteran
|
---|
67 | ;
|
---|
68 | N CLA,ELIG,ELCOD,ECAO,ECIR,ECEC,ECSC,ECMST,STR,ECHNC,ECCV
|
---|
69 | I '$D(^ECH(ECIEN,"P")),'$D(^ECH(ECIEN,"PCE")) Q
|
---|
70 | K ^TMP($J,"ECLASS")
|
---|
71 | S ELIG=$P($G(^ECH(ECIEN,"PCE")),"~",17),ELCOD="",CLA=$G(^ECH(ECIEN,"P"))
|
---|
72 | S:ELIG'="" ELCOD=$P($G(^DIC(8,ELIG,0)),U)
|
---|
73 | S ECAO=$P(CLA,U,3),ECIR=$P(CLA,U,4),ECEC=$P(CLA,U,5),ECSC=$P(CLA,U,6)
|
---|
74 | S ECMST=$P(CLA,U,9),ECHNC=$P(CLA,U,10),ECCV=$P(CLA,U,11)
|
---|
75 | S STR=ECIEN_U_ECAO_U_ECIR_U_ECSC_U_ECEC_U_ECMST
|
---|
76 | S STR=STR_U_ELIG_U_ELCOD_U_ECHNC_U_ECCV,^TMP($J,"ECLASS",1)=STR
|
---|
77 | S RESULTS=$NA(^TMP($J,"ECLASS"))
|
---|
78 | Q
|
---|
79 | PATOTH(ECIEN) ;
|
---|
80 | ;Returns to broker a patient remaining data from EVENT CAPTURE
|
---|
81 | ;PATIENT FILE #721
|
---|
82 | ;INPUTS ECIEN - Event Capture Patient ien
|
---|
83 | ;
|
---|
84 | ;OUTPUTS RESULTS -
|
---|
85 | ; 721 IEN^procedure reason
|
---|
86 | ;
|
---|
87 | N REAS,ECX
|
---|
88 | K ^TMP($J,"ECOTH")
|
---|
89 | S ECX=^ECH(ECIEN,0)
|
---|
90 | S REAS=$$GET1^DIQ(721,ECIEN,34,"E")
|
---|
91 | S ^TMP($J,"ECOTH",1)=REAS
|
---|
92 | S RESULTS=$NA(^TMP($J,"ECOTH"))
|
---|
93 | Q
|
---|
94 | PATCLAST(RESULTS,ECARY) ;
|
---|
95 | ;Returns to broker a patient status (in/out) and classification
|
---|
96 | ; RPC: EC GETPATCLASTAT
|
---|
97 | ;INPUTS ECARY - Contains the following subscripted elements
|
---|
98 | ; ECDFN - Patient ien (#2)
|
---|
99 | ; ECD - DSS Unit ien (#724)
|
---|
100 | ; ECDT - Procedure date and time (fileman format)
|
---|
101 | ;OUTPUTS RESULTS - Patient status and classifications delimited by (^)
|
---|
102 | ; Patient Status: I for inpatient or O for outpatient
|
---|
103 | ; Classification: 2- Agent Orange, 3- Ionizing Radiation
|
---|
104 | ; 4- SC Condition, 5- Environmental Contaminants 6- Military
|
---|
105 | ; Sexual Trauma 7- Head/Neck Cancer 8- Combat Veteran
|
---|
106 | ; Data after the '~' refers to those class. that must be asked
|
---|
107 | ; by Delphi appl. when the answer to SC=No.
|
---|
108 | ; Data after "~" 1- Agent Orange 2- Ionizing Radi. 3- Env Cont
|
---|
109 | N ECDFN,ECDT,ECX,I,ECCLARY,SCDAT,PATSTAT
|
---|
110 | D SETENV^ECUMRPC
|
---|
111 | S ECDFN=$P(ECARY,U),ECD=$P(ECARY,U,2),ECDT=$P(ECARY,U,3) Q:ECDFN=""
|
---|
112 | I ECDT="" D NOW^%DTC S ECDT=%
|
---|
113 | S PATSTAT=$$INOUTPT^ECUTL0(ECDFN,ECDT),RESULTS="^^^^^^",SCDAT=";;;"
|
---|
114 | I PATSTAT="I" D Q ;added to be consistent w roll-n-scroll 11/25/03 JAM
|
---|
115 | .S RESULTS=PATSTAT_"^"_RESULTS_$S(SCDAT'="":"~"_SCDAT,1:"")
|
---|
116 | I '$$CHKDSS^ECUTL0(+$G(ECD),PATSTAT) D Q
|
---|
117 | .S RESULTS=PATSTAT_"^"_RESULTS_$S(SCDAT'="":"~"_SCDAT,1:"")
|
---|
118 | D CL^SDCO21(ECDFN,ECDT,"",.ECCLARY) F ECX=3,1,2,4,5,6,7 D
|
---|
119 | .I ECX=1,$P($G(^DPT(ECDFN,.321)),"^",2)'="Y" Q
|
---|
120 | .I ECX=2,$P($G(^DPT(ECDFN,.321)),"^",3)'="Y" Q
|
---|
121 | .I ECX=4,$P($G(^DPT(ECDFN,.322)),"^",13)'="Y",'$$EC^SDCO22(ECDFN,"") Q
|
---|
122 | .I ECX=3,$D(ECCLARY(ECX)) F I=1,2,4 S ECCLARY(I)="SC"
|
---|
123 | .I '$D(ECCLARY(ECX)) Q
|
---|
124 | .;Check SC, if answer to SC is NO then these questions will be asked
|
---|
125 | .I ECCLARY(ECX)="SC" S $P(SCDAT,";",ECX)="E"
|
---|
126 | .E S $P(RESULTS,"^",ECX)="E"
|
---|
127 | S RESULTS=PATSTAT_"^"_RESULTS_$S(SCDAT'="":"~"_SCDAT,1:"")
|
---|
128 | Q
|
---|
129 | ENCDXS(RESULTS,ECARY) ;
|
---|
130 | ;Broker call returns a patient encounter primary & secondary dx (#721)
|
---|
131 | ; RPC: EC GETENCDXS
|
---|
132 | ;INPUTS ECDFN - Patient ien (#2)
|
---|
133 | ; ECDT - Procedure date and time (fileman format)
|
---|
134 | ; ECL - Location ien
|
---|
135 | ; EC4 - Clinic ien
|
---|
136 | ;
|
---|
137 | ;OUTPUTS RESULTS - array of patient encounter diagnosis
|
---|
138 | ; primary/secondary flag^DX ien^DX code DX description.
|
---|
139 | ;
|
---|
140 | N ECDFN,ECDT,ECL,EC4,ECPDX,ECDX,ECDXN,ECDXS,CNT,STR,ECPDX,SDXCNT
|
---|
141 | D SETENV^ECUMRPC
|
---|
142 | K ^TMP($J,"ECENCDXS")
|
---|
143 | S ECDFN=$P(ECARY,U),ECDT=+$P(ECARY,U,2),ECL=$P(ECARY,U,3)
|
---|
144 | S EC4=$P(ECARY,U,4) I ECDT="" D NOW^%DTC S ECDT=%
|
---|
145 | I ECDFN=""!(ECL="")!(EC4="") Q
|
---|
146 | S (ECDX,ECDXN)="",ECPDX=$$PDXCK^ECUTL2(ECDFN,ECDT,ECL,EC4) I ECDX="" Q
|
---|
147 | S IEN="",STR=1_U_ECDX_U_ECDXN_" "_$P($$ICDDX^ICDCODE(ECDX,ECDT),U,4)
|
---|
148 | S CNT=1,^TMP($J,"ECENCDXS",CNT)=STR
|
---|
149 | ;*ACS concat description to 2nd diag code, in the order entered by the user
|
---|
150 | F S IEN=$O(ECDXS(IEN)) Q:IEN="" D
|
---|
151 | . S CNT=CNT+1,^TMP($J,"ECENCDXS",CNT)=0_U_ECDXS(IEN)_U_IEN_" "_$P($$ICDDX^ICDCODE(ECDXS(IEN),ECDT),U,4)
|
---|
152 | S RESULTS=$NA(^TMP($J,"ECENCDXS"))
|
---|
153 | Q
|
---|
154 | ;
|
---|
155 | PROCBAT(RESULTS,ECARY) ;
|
---|
156 | ;Broker call returns the entries from EVENT CAPTURE PATIENT FILE #721
|
---|
157 | ;for patients for a specific procedure
|
---|
158 | ; RPC: EC GETBATPROCS
|
---|
159 | ;INPUTS ECARY - Contains the following subscripted elements
|
---|
160 | ; ECLOC - Location ien
|
---|
161 | ; ECUNT - DSS unit ien
|
---|
162 | ; ECC - Category ien
|
---|
163 | ; ECP - Procedure ien
|
---|
164 | ; ECSD - Start Date
|
---|
165 | ; ECED - End Date
|
---|
166 | ;
|
---|
167 | ;OUTPUTS RESULTS - Array of Event Capture Patient data containing:-
|
---|
168 | ; 721 IEN^Patient name^Procedure Date/Time^Primary Dx
|
---|
169 | ; ^Ordering Section^Associated Clinic
|
---|
170 | ;^SSN^DOB^Procedure Date and Time
|
---|
171 | N IEN,CNT,ECLOC,ECUNT,NODE,DATA,PXDT,ECV,ECC,ECP,ECSD,ECED,DATE,DFN
|
---|
172 | N CAT,ECI,VADM,ORC,ASC,ECDX
|
---|
173 | S ECV="ECLOC^ECUNT^ECC^ECP^ECSD^ECED"
|
---|
174 | D PARSE^ECUERPC(ECV,ECARY)
|
---|
175 | I (ECLOC="")!(ECUNT="")!(ECC="")!(ECP="") Q
|
---|
176 | D SETENV^ECUMRPC K ^TMP($J,"ECBATPX") S CNT=0
|
---|
177 | S %DT="STX" F ECI="ECSD","ECED" S X=@ECI D ^%DT S @ECI=Y
|
---|
178 | S ECSD=$S(ECSD=-1:DT,1:ECSD)-.0001,ECED=$S(ECED=-1:DT,1:ECED)+.9999
|
---|
179 | Q:ECED'>ECSD S DATE=ECSD
|
---|
180 | F S DATE=$O(^ECH("AC1",ECLOC,DATE)) Q:'DATE!(DATE>ECED) S IEN=0 D
|
---|
181 | . F S IEN=$O(^ECH("AC1",ECLOC,DATE,IEN)) Q:'IEN D
|
---|
182 | . . S NODE=$G(^ECH(IEN,0)) Q:NODE="" Q:$P(NODE,U,7)'=ECUNT
|
---|
183 | . . Q:$P(NODE,U,8)'=ECC Q:$P(NODE,U,9)'=ECP
|
---|
184 | . . S ECDX=$P($G(^ECH(IEN,"P")),U,2) I ECDX'="" D
|
---|
185 | . . . S ECDX=$$ICDDX^ICDCODE(ECDX,DATE)
|
---|
186 | . . . S ECDX=$P(ECDX,U,2)_" "_$P(ECDX,U,4)
|
---|
187 | . . S ASC=$P(NODE,U,19) S:ASC'="" ASC=$$GET1^DIQ(44,ASC,.01,"I")
|
---|
188 | . . S ORC=$P(NODE,U,12) S:ORC'="" ORC=$$GET1^DIQ(723,ORC,.01,"I")
|
---|
189 | . . S Y=DATE X ^DD("DD") S PXDT=Y,DFN=$P(NODE,U,2) D DEM^VADPT
|
---|
190 | . . S DATA=$E(VADM(1),1,30)_U_PXDT_U_ECDX_U_ORC_U_ASC
|
---|
191 | . . S CNT=CNT+1,^TMP($J,"ECBATPX",CNT)=IEN_U_DATA
|
---|
192 | S RESULTS=$NA(^TMP($J,"ECBATPX"))
|
---|
193 | Q
|
---|
194 | ;
|
---|
195 | CLHLP(RESULTS,ECARY) ;RPC Broker entry point for classification help
|
---|
196 | ; RPC: EC CLASHELP
|
---|
197 | ;INPUTS ECARY - Contains the following elements for report printing
|
---|
198 | ; ECDFN - Patient DFN from file (#2)
|
---|
199 | ; ECKY - Key to provide help on
|
---|
200 | ;
|
---|
201 | ;OUTPUTS RESULTS - Array of help text for classification
|
---|
202 | ;
|
---|
203 | N ECFILER,ECERR,ECDIRY,ECUFILE,ECDFN,ECKY,ECHNDL
|
---|
204 | D SETENV^ECUMRPC
|
---|
205 | K ^TMP("ECMSG",$J)
|
---|
206 | S ECERR=0,ECDFN=$P(ECARY,U),ECKY=$P(ECARY,U,2) D I ECERR D CLEND Q
|
---|
207 | .I ECDFN="" S ECERR=1,^TMP("ECMSG",$J,1)="0^Patient IEN not defined" Q
|
---|
208 | .I ECKY="" S ECERR=1,^TMP("ECMSG",$J,1)="0^Help Key not defined" Q
|
---|
209 | .S DIC=2,DIC(0)="NMZX",X=ECDFN D ^DIC I Y<0 D
|
---|
210 | ..S ECERR=1,^TMP("ECMSG",$J,1)="0^Patient IEN not found"
|
---|
211 | S ECHNDL="ECLASHLP" D HFSOPEN^ECRRPC(ECHNDL) I ECERR D CLEND Q
|
---|
212 | U IO
|
---|
213 | I ECKY="SC" D SC^SDCO23(ECDFN)
|
---|
214 | D HFSCLOSE^ECRRPC(ECFILER)
|
---|
215 | CLEND ;
|
---|
216 | I $D(^TMP("ECMSG",$J)) S RESULTS=$NA(^TMP("ECMSG",$J)) Q
|
---|
217 | S RESULTS=$NA(^TMP($J))
|
---|
218 | Q
|
---|
219 | ECDEF(RESULTS,ECARY) ;RPC Broker entry point to get a default for space bar
|
---|
220 | ; RPC: EC SPACEBAR
|
---|
221 | ;INPUTS ECARY - Contains the following elements for report printing
|
---|
222 | ; ECFILE - File to obtain value from
|
---|
223 | ;
|
---|
224 | ;OUTPUTS RESULTS - IEN^Description of Text
|
---|
225 | ;
|
---|
226 | N DIC,ECFILE,X,Y
|
---|
227 | D SETENV^ECUMRPC
|
---|
228 | S ECFILE=$P(ECARY,U)
|
---|
229 | I ECFILE="" S ECERR=1,RESULTS="0^File not defined" Q
|
---|
230 | S X=" ",DIC(0)="MZX",DIC=ECFILE D ^DIC I Y<0 D I ECERR Q
|
---|
231 | . S ECERR=1,RESULTS="0^Nothing found"
|
---|
232 | S RESULTS=Y
|
---|
233 | Q
|
---|