source: EDIS/tags/ed/tracking-kids/EDPSERVER1_0T1.KID@ 1240

Last change on this file since 1240 was 1240, checked in by George Lilly, 13 years ago

new version from the VA

File size: 214.4 KB
Line 
1KIDS Distribution saved on Jan 11, 2008@18:28:15
2EDIS Tracking Server 1.0T1
3**KIDS**:EDP SERVER 1.0^
4
5**INSTALL NAME**
6EDP SERVER 1.0
7"BLD",6766,0)
8EDP SERVER 1.0^^0^3080111^n
9"BLD",6766,1,0)
10^^4^4^3080103^
11"BLD",6766,1,1,0)
12This installs the EDIS (Emergency Department Information System)
13"BLD",6766,1,2,0)
14Tracking application on a server. The application is designed so that
15"BLD",6766,1,3,0)
16one server can service any number of sites. There is a corresponding
17"BLD",6766,1,4,0)
18KIDS build that is installed at the facility.
19"BLD",6766,4,0)
20^9.64PA^233.2^7
21"BLD",6766,4,230,0)
22230
23"BLD",6766,4,230,222)
24y^y^f^^^^n
25"BLD",6766,4,230.1,0)
26230.1
27"BLD",6766,4,230.1,222)
28y^y^f^^^^n
29"BLD",6766,4,231.7,0)
30231.7
31"BLD",6766,4,231.7,222)
32y^y^f^^^^n
33"BLD",6766,4,231.8,0)
34231.8
35"BLD",6766,4,231.8,222)
36y^y^f^^^^n
37"BLD",6766,4,231.9,0)
38231.9
39"BLD",6766,4,231.9,222)
40y^y^f^^^^n
41"BLD",6766,4,233.1,0)
42233.1
43"BLD",6766,4,233.1,222)
44y^y^f^^y^^y^o^n
45"BLD",6766,4,233.1,224)
46I $E(^(0),1,4)="edp."
47"BLD",6766,4,233.2,0)
48233.2
49"BLD",6766,4,233.2,222)
50y^y^f^^y^^y^o^n
51"BLD",6766,4,233.2,224)
52I $E(^(0),1,4)="edp."
53"BLD",6766,4,"B",230,230)
54
55"BLD",6766,4,"B",230.1,230.1)
56
57"BLD",6766,4,"B",231.7,231.7)
58
59"BLD",6766,4,"B",231.8,231.8)
60
61"BLD",6766,4,"B",231.9,231.9)
62
63"BLD",6766,4,"B",233.1,233.1)
64
65"BLD",6766,4,"B",233.2,233.2)
66
67"BLD",6766,6.3)
686
69"BLD",6766,"INIT")
70EDPYSRV
71"BLD",6766,"KRN",0)
72^9.67PA^8989.52^19
73"BLD",6766,"KRN",.4,0)
74.4
75"BLD",6766,"KRN",.401,0)
76.401
77"BLD",6766,"KRN",.402,0)
78.402
79"BLD",6766,"KRN",.403,0)
80.403
81"BLD",6766,"KRN",.5,0)
82.5
83"BLD",6766,"KRN",.84,0)
84.84
85"BLD",6766,"KRN",3.6,0)
863.6
87"BLD",6766,"KRN",3.8,0)
883.8
89"BLD",6766,"KRN",9.2,0)
909.2
91"BLD",6766,"KRN",9.8,0)
929.8
93"BLD",6766,"KRN",9.8,"NM",0)
94^9.68A^46^35
95"BLD",6766,"KRN",9.8,"NM",1,0)
96EDPBCF^^0^B6377962
97"BLD",6766,"KRN",9.8,"NM",2,0)
98EDPBCM^^0^B11802573
99"BLD",6766,"KRN",9.8,"NM",3,0)
100EDPBPM^^0^B2766869
101"BLD",6766,"KRN",9.8,"NM",4,0)
102EDPBRM^^0^B8445684
103"BLD",6766,"KRN",9.8,"NM",5,0)
104EDPBRS^^0^B17301676
105"BLD",6766,"KRN",9.8,"NM",6,0)
106EDPBSL^^0^B10687935
107"BLD",6766,"KRN",9.8,"NM",7,0)
108EDPBST^^0^B5671603
109"BLD",6766,"KRN",9.8,"NM",8,0)
110EDPCSV^^0^B1174381
111"BLD",6766,"KRN",9.8,"NM",9,0)
112EDPCTRL^^0^B34504423
113"BLD",6766,"KRN",9.8,"NM",10,0)
114EDPDD^^0^B107293
115"BLD",6766,"KRN",9.8,"NM",19,0)
116EDPLOG^^0^B16849923
117"BLD",6766,"KRN",9.8,"NM",20,0)
118EDPLOG1^^0^B2757150
119"BLD",6766,"KRN",9.8,"NM",21,0)
120EDPLOGA^^0^B7949056
121"BLD",6766,"KRN",9.8,"NM",22,0)
122EDPLOGH^^0^B269228
123"BLD",6766,"KRN",9.8,"NM",23,0)
124EDPMAIL^^0^B8624060
125"BLD",6766,"KRN",9.8,"NM",24,0)
126EDPQAR^^0^B1525958
127"BLD",6766,"KRN",9.8,"NM",25,0)
128EDPQDB^^0^B23470314
129"BLD",6766,"KRN",9.8,"NM",26,0)
130EDPQDBS^^0^B2926745
131"BLD",6766,"KRN",9.8,"NM",27,0)
132EDPQLE^^0^B11635607
133"BLD",6766,"KRN",9.8,"NM",28,0)
134EDPQLE1^^0^B4294300
135"BLD",6766,"KRN",9.8,"NM",29,0)
136EDPQLP^^0^B5675430
137"BLD",6766,"KRN",9.8,"NM",30,0)
138EDPRPT^^0^B8926561
139"BLD",6766,"KRN",9.8,"NM",31,0)
140EDPRPT1^^0^B33830475
141"BLD",6766,"KRN",9.8,"NM",32,0)
142EDPRPT10^^0^B17116118
143"BLD",6766,"KRN",9.8,"NM",33,0)
144EDPRPT11^^0^B8284389
145"BLD",6766,"KRN",9.8,"NM",34,0)
146EDPRPT2^^0^B16129042
147"BLD",6766,"KRN",9.8,"NM",35,0)
148EDPRPT3^^0^B6932750
149"BLD",6766,"KRN",9.8,"NM",36,0)
150EDPRPT4^^0^B21631654
151"BLD",6766,"KRN",9.8,"NM",37,0)
152EDPRPT5^^0^B33876185
153"BLD",6766,"KRN",9.8,"NM",38,0)
154EDPRPT6^^0^B9535777
155"BLD",6766,"KRN",9.8,"NM",39,0)
156EDPRPT7^^0^B21032834
157"BLD",6766,"KRN",9.8,"NM",40,0)
158EDPRPT7C^^0^B21231553
159"BLD",6766,"KRN",9.8,"NM",41,0)
160EDPRPT8^^0^B15360284
161"BLD",6766,"KRN",9.8,"NM",42,0)
162EDPRPT9^^0^B1592058
163"BLD",6766,"KRN",9.8,"NM",46,0)
164EDPX^^0^B6480298
165"BLD",6766,"KRN",9.8,"NM","B","EDPBCF",1)
166
167"BLD",6766,"KRN",9.8,"NM","B","EDPBCM",2)
168
169"BLD",6766,"KRN",9.8,"NM","B","EDPBPM",3)
170
171"BLD",6766,"KRN",9.8,"NM","B","EDPBRM",4)
172
173"BLD",6766,"KRN",9.8,"NM","B","EDPBRS",5)
174
175"BLD",6766,"KRN",9.8,"NM","B","EDPBSL",6)
176
177"BLD",6766,"KRN",9.8,"NM","B","EDPBST",7)
178
179"BLD",6766,"KRN",9.8,"NM","B","EDPCSV",8)
180
181"BLD",6766,"KRN",9.8,"NM","B","EDPCTRL",9)
182
183"BLD",6766,"KRN",9.8,"NM","B","EDPDD",10)
184
185"BLD",6766,"KRN",9.8,"NM","B","EDPLOG",19)
186
187"BLD",6766,"KRN",9.8,"NM","B","EDPLOG1",20)
188
189"BLD",6766,"KRN",9.8,"NM","B","EDPLOGA",21)
190
191"BLD",6766,"KRN",9.8,"NM","B","EDPLOGH",22)
192
193"BLD",6766,"KRN",9.8,"NM","B","EDPMAIL",23)
194
195"BLD",6766,"KRN",9.8,"NM","B","EDPQAR",24)
196
197"BLD",6766,"KRN",9.8,"NM","B","EDPQDB",25)
198
199"BLD",6766,"KRN",9.8,"NM","B","EDPQDBS",26)
200
201"BLD",6766,"KRN",9.8,"NM","B","EDPQLE",27)
202
203"BLD",6766,"KRN",9.8,"NM","B","EDPQLE1",28)
204
205"BLD",6766,"KRN",9.8,"NM","B","EDPQLP",29)
206
207"BLD",6766,"KRN",9.8,"NM","B","EDPRPT",30)
208
209"BLD",6766,"KRN",9.8,"NM","B","EDPRPT1",31)
210
211"BLD",6766,"KRN",9.8,"NM","B","EDPRPT10",32)
212
213"BLD",6766,"KRN",9.8,"NM","B","EDPRPT11",33)
214
215"BLD",6766,"KRN",9.8,"NM","B","EDPRPT2",34)
216
217"BLD",6766,"KRN",9.8,"NM","B","EDPRPT3",35)
218
219"BLD",6766,"KRN",9.8,"NM","B","EDPRPT4",36)
220
221"BLD",6766,"KRN",9.8,"NM","B","EDPRPT5",37)
222
223"BLD",6766,"KRN",9.8,"NM","B","EDPRPT6",38)
224
225"BLD",6766,"KRN",9.8,"NM","B","EDPRPT7",39)
226
227"BLD",6766,"KRN",9.8,"NM","B","EDPRPT7C",40)
228
229"BLD",6766,"KRN",9.8,"NM","B","EDPRPT8",41)
230
231"BLD",6766,"KRN",9.8,"NM","B","EDPRPT9",42)
232
233"BLD",6766,"KRN",9.8,"NM","B","EDPX",46)
234
235"BLD",6766,"KRN",19,0)
23619
237"BLD",6766,"KRN",19,"NM",0)
238^9.68A^2^2
239"BLD",6766,"KRN",19,"NM",1,0)
240EDPS TRACKING CONTEXT^^0
241"BLD",6766,"KRN",19,"NM",2,0)
242EDPSERVER^^0
243"BLD",6766,"KRN",19,"NM","B","EDPS TRACKING CONTEXT",1)
244
245"BLD",6766,"KRN",19,"NM","B","EDPSERVER",2)
246
247"BLD",6766,"KRN",19.1,0)
24819.1
249"BLD",6766,"KRN",101,0)
250101
251"BLD",6766,"KRN",409.61,0)
252409.61
253"BLD",6766,"KRN",771,0)
254771
255"BLD",6766,"KRN",870,0)
256870
257"BLD",6766,"KRN",8989.51,0)
2588989.51
259"BLD",6766,"KRN",8989.52,0)
2608989.52
261"BLD",6766,"KRN",8994,0)
2628994
263"BLD",6766,"KRN",8994,"NM",0)
264^9.68A^1^1
265"BLD",6766,"KRN",8994,"NM",1,0)
266EDPCTRL RPC^^0
267"BLD",6766,"KRN",8994,"NM","B","EDPCTRL RPC",1)
268
269"BLD",6766,"KRN","B",.4,.4)
270
271"BLD",6766,"KRN","B",.401,.401)
272
273"BLD",6766,"KRN","B",.402,.402)
274
275"BLD",6766,"KRN","B",.403,.403)
276
277"BLD",6766,"KRN","B",.5,.5)
278
279"BLD",6766,"KRN","B",.84,.84)
280
281"BLD",6766,"KRN","B",3.6,3.6)
282
283"BLD",6766,"KRN","B",3.8,3.8)
284
285"BLD",6766,"KRN","B",9.2,9.2)
286
287"BLD",6766,"KRN","B",9.8,9.8)
288
289"BLD",6766,"KRN","B",19,19)
290
291"BLD",6766,"KRN","B",19.1,19.1)
292
293"BLD",6766,"KRN","B",101,101)
294
295"BLD",6766,"KRN","B",409.61,409.61)
296
297"BLD",6766,"KRN","B",771,771)
298
299"BLD",6766,"KRN","B",870,870)
300
301"BLD",6766,"KRN","B",8989.51,8989.51)
302
303"BLD",6766,"KRN","B",8989.52,8989.52)
304
305"BLD",6766,"KRN","B",8994,8994)
306
307"BLD",6766,"QUES",0)
308^9.62^^
309"BLD",6766,"REQB",0)
310^9.611^^
311"DATA",233.1,1,0)
312edp.acuity.esi1^1^1
313"DATA",233.1,1,2,0)
314^^1^1^3070720^
315"DATA",233.1,1,2,1,0)
316Most critical
317"DATA",233.1,2,0)
318edp.acuity.esi2^2^2
319"DATA",233.1,3,0)
320edp.acuity.esi3^3^3
321"DATA",233.1,4,0)
322edp.acuity.esi4^4^4
323"DATA",233.1,5,0)
324edp.acuity.esi5^5^5
325"DATA",233.1,8,0)
326edp.status.admitted^Admitted - Still in ED^Admit^^A
327"DATA",233.1,9,0)
328edp.status.edobs^ED Observation^EDObs^^AO
329"DATA",233.1,11,0)
330edp.status.gone^No Longer in ED^Gone
331"DATA",233.1,12,0)
332edp.status.observation^Observation^Obs^^AO
333"DATA",233.1,13,0)
334edp.status.overflow^Overflow^Ovf
335"DATA",233.1,15,0)
336edp.delay.inptbed^Obtain Inpatient Bed^13k
337"DATA",233.1,16,0)
338edp.delay.overcrowd^Overcrowding of ED^13a
339"DATA",233.1,17,0)
340edp.delay.admiteval^Admitting Physician Evaluation^13c
341"DATA",233.1,18,0)
342edp.delay.admitorders^Admit MD Writing Admit Orders^13h
343"DATA",233.1,19,0)
344edp.delay.admitobs^Patient Admitted to Observation^OBS
345"DATA",233.1,20,0)
346edp.delay.stafflimit^ED Staff Limits^13b
347"DATA",233.1,21,0)
348edp.delay.interfacility^Interfacility Transfer^13m
349"DATA",233.1,22,0)
350edp.delay.ambulance^Obtain Ambulance Services^13n
351"DATA",233.1,23,0)
352edp.delay.imageresult^Obtain Imaging Results^13g
353"DATA",233.1,24,0)
354edp.delay.imagestudy^Obtain Imaging Studies^13f
355"DATA",233.1,25,0)
356edp.delay.pharm^Obtain Drugs/Pharmacology^13j
357"DATA",233.1,26,0)
358edp.delay.labresult^Obtain Lab Results^13e
359"DATA",233.1,27,0)
360edp.delay.labstudy^Obtain Lab Studies^13d
361"DATA",233.1,28,0)
362edp.delay.supplies^Obtain Medical Supplies^13i
363"DATA",233.1,29,0)
364edp.delay.surgery^Arrange Emergency Surgery^13l
365"DATA",233.1,30,0)
366edp.delay.home^Patient Transport Home^13p
367"DATA",233.1,31,0)
368edp.delay.transport^Patient Transport Other^13o
369"DATA",233.1,32,0)
370edp.source.ambulance^Ambulance
371"DATA",233.1,33,0)
372edp.source.walk-in^Walk-in
373"DATA",233.1,35,0)
374edp.disposition.home^Home^H
375"DATA",233.1,36,0)
376edp.disposition.admitva^Admitted to VA Ward^VA^^A
377"DATA",233.1,37,0)
378edp.disposition.left^Left Without Being Treated/Seen^L
379"DATA",233.1,38,0)
380edp.disposition.xferva^Transferred to VA Facility^O
381"DATA",233.1,39,0)
382edp.disposition.ama^AMA^AMA
383"DATA",233.1,40,0)
384edp.disposition.clinic^Sent to Urgent Care Clinic^CL
385"DATA",233.1,41,0)
386edp.disposition.deceased^Deceased^D
387"DATA",233.1,42,0)
388edp.disposition.telemetry^Admitted to Telemetry^T
389"DATA",233.1,43,0)
390edp.disposition.icu^Admitted to ICU^ICU
391"DATA",233.1,44,0)
392edp.disposition.nec^Sent to Nurse Eval / Drop In Clinic^NEC
393"DATA",233.1,45,0)
394edp.disposition.eloped^Eloped^E
395"DATA",233.1,46,0)
396edp.reserved.novalue^
397"DATA",233.1,53,0)
398edp.source.clinic^Clinic
399"DATA",233.1,54,0)
400edp.source.cboc^CBOC
401"DATA",233.1,55,0)
402edp.source.nhci^NHCI
403"DATA",233.1,56,0)
404edp.source.code^Emergency Code
405"DATA",233.1,57,0)
406edp.disposition.xfernon^Transfer to non-VA Facility^NVA
407"DATA",233.1,58,0)
408edp.disposition.psych^Admitted to Psychiatry^PSY^^A
409"DATA",233.1,59,0)
410edp.delay.consult^Obtain Consultation^CSLT
411"DATA",233.2,1,0)
412edp.acuity
413"DATA",233.2,1,1,0)
414^233.21A^5^5
415"DATA",233.2,1,1,1,0)
4161^1
417"DATA",233.2,1,1,2,0)
4182^2
419"DATA",233.2,1,1,3,0)
4203^3
421"DATA",233.2,1,1,4,0)
4224^4
423"DATA",233.2,1,1,5,0)
4245^5
425"DATA",233.2,3,0)
426edp.status
427"DATA",233.2,3,1,0)
428^233.21A^8^4
429"DATA",233.2,3,1,1,0)
43010^8
431"DATA",233.2,3,1,2,0)
43220^9
433"DATA",233.2,3,1,7,0)
43430^12
435"DATA",233.2,3,1,8,0)
43640^13
437"DATA",233.2,4,0)
438edp.delay
439"DATA",233.2,4,1,0)
440^233.21A^18^18
441"DATA",233.2,4,1,1,0)
4423^15
443"DATA",233.2,4,1,2,0)
4445^16
445"DATA",233.2,4,1,3,0)
44610^17
447"DATA",233.2,4,1,4,0)
44815^18
449"DATA",233.2,4,1,5,0)
45020^19
451"DATA",233.2,4,1,6,0)
45225^20
453"DATA",233.2,4,1,7,0)
45430^21
455"DATA",233.2,4,1,8,0)
45635^22
457"DATA",233.2,4,1,9,0)
45840^23
459"DATA",233.2,4,1,10,0)
46045^24
461"DATA",233.2,4,1,11,0)
46250^25
463"DATA",233.2,4,1,12,0)
46455^26
465"DATA",233.2,4,1,13,0)
46660^27
467"DATA",233.2,4,1,14,0)
46865^28
469"DATA",233.2,4,1,15,0)
47070^29
471"DATA",233.2,4,1,16,0)
47275^30
473"DATA",233.2,4,1,17,0)
47480^31
475"DATA",233.2,4,1,18,0)
47685^59
477"DATA",233.2,5,0)
478edp.arrival
479"DATA",233.2,5,1,0)
480^233.21A^6^6
481"DATA",233.2,5,1,1,0)
48210^53
483"DATA",233.2,5,1,2,0)
48420^54
485"DATA",233.2,5,1,3,0)
48630^32
487"DATA",233.2,5,1,4,0)
48840^33
489"DATA",233.2,5,1,5,0)
49050^55
491"DATA",233.2,5,1,6,0)
49260^56
493"DATA",233.2,6,0)
494edp.disposition
495"DATA",233.2,6,1,0)
496^233.21A^13^13
497"DATA",233.2,6,1,1,0)
49810^36
499"DATA",233.2,6,1,2,0)
50060^39
501"DATA",233.2,6,1,3,0)
502130^40
503"DATA",233.2,6,1,4,0)
504110^41
505"DATA",233.2,6,1,5,0)
50680^45
507"DATA",233.2,6,1,6,0)
50850^35
509"DATA",233.2,6,1,7,0)
51030^43
511"DATA",233.2,6,1,8,0)
51270^37
513"DATA",233.2,6,1,9,0)
514120^44
515"DATA",233.2,6,1,10,0)
51620^42
517"DATA",233.2,6,1,11,0)
51890^38
519"DATA",233.2,6,1,12,0)
520100^57
521"DATA",233.2,6,1,13,0)
52240^58
523"FIA",230)
524ED LOG
525"FIA",230,0)
526^EDP(230,
527"FIA",230,0,0)
528230D
529"FIA",230,0,1)
530y^y^f^^^^n
531"FIA",230,0,10)
532
533"FIA",230,0,11)
534
535"FIA",230,0,"RLRO")
536
537"FIA",230,230)
5380
539"FIA",230,230.04)
5400
541"FIA",230,230.08)
5420
543"FIA",230.1)
544ED LOG HISTORY
545"FIA",230.1,0)
546^EDP(230.1,
547"FIA",230.1,0,0)
548230.1P
549"FIA",230.1,0,1)
550y^y^f^^^^n
551"FIA",230.1,0,10)
552
553"FIA",230.1,0,11)
554
555"FIA",230.1,0,"RLRO")
556
557"FIA",230.1,230.1)
5580
559"FIA",231.7)
560TRACKING STAFF
561"FIA",231.7,0)
562^EDPB(231.7,
563"FIA",231.7,0,0)
564231.7
565"FIA",231.7,0,1)
566y^y^f^^^^n
567"FIA",231.7,0,10)
568
569"FIA",231.7,0,11)
570
571"FIA",231.7,0,"RLRO")
572
573"FIA",231.7,231.7)
5740
575"FIA",231.8)
576TRACKING ROOM-BED
577"FIA",231.8,0)
578^EDPB(231.8,
579"FIA",231.8,0,0)
580231.8
581"FIA",231.8,0,1)
582y^y^f^^^^n
583"FIA",231.8,0,10)
584
585"FIA",231.8,0,11)
586
587"FIA",231.8,0,"RLRO")
588
589"FIA",231.8,231.8)
5900
591"FIA",231.9)
592TRACKING AREA
593"FIA",231.9,0)
594^EDPB(231.9,
595"FIA",231.9,0,0)
596231.9
597"FIA",231.9,0,1)
598y^y^f^^^^n
599"FIA",231.9,0,10)
600
601"FIA",231.9,0,11)
602
603"FIA",231.9,0,"RLRO")
604
605"FIA",231.9,231.9)
6060
607"FIA",231.9,231.92)
6080
609"FIA",231.9,231.93)
6100
611"FIA",233.1)
612TRACKING CODE
613"FIA",233.1,0)
614^EDPB(233.1,
615"FIA",233.1,0,0)
616233.1
617"FIA",233.1,0,1)
618y^y^f^^y^^y^o^n
619"FIA",233.1,0,10)
620
621"FIA",233.1,0,11)
622I $E(^(0),1,4)="edp."
623"FIA",233.1,0,"RLRO")
624
625"FIA",233.1,233.1)
6260
627"FIA",233.1,233.12)
6280
629"FIA",233.2)
630TRACKING CODE SET
631"FIA",233.2,0)
632^EDPB(233.2,
633"FIA",233.2,0,0)
634233.2
635"FIA",233.2,0,1)
636y^y^f^^y^^y^o^n
637"FIA",233.2,0,10)
638
639"FIA",233.2,0,11)
640I $E(^(0),1,4)="edp."
641"FIA",233.2,0,"RLRO")
642
643"FIA",233.2,233.2)
6440
645"FIA",233.2,233.21)
6460
647"FRV1",233.2,"1,1,1,0",2)
648edp.acuity.esi1
649"FRV1",233.2,"1,1,1,0",2,"F")
650;EDPB(233.1,
651"FRV1",233.2,"1,1,2,0",2)
652edp.acuity.esi2
653"FRV1",233.2,"1,1,2,0",2,"F")
654;EDPB(233.1,
655"FRV1",233.2,"1,1,3,0",2)
656edp.acuity.esi3
657"FRV1",233.2,"1,1,3,0",2,"F")
658;EDPB(233.1,
659"FRV1",233.2,"1,1,4,0",2)
660edp.acuity.esi4
661"FRV1",233.2,"1,1,4,0",2,"F")
662;EDPB(233.1,
663"FRV1",233.2,"1,1,5,0",2)
664edp.acuity.esi5
665"FRV1",233.2,"1,1,5,0",2,"F")
666;EDPB(233.1,
667"FRV1",233.2,"3,1,1,0",2)
668edp.status.admitted
669"FRV1",233.2,"3,1,1,0",2,"F")
670;EDPB(233.1,
671"FRV1",233.2,"3,1,2,0",2)
672edp.status.edobs
673"FRV1",233.2,"3,1,2,0",2,"F")
674;EDPB(233.1,
675"FRV1",233.2,"3,1,7,0",2)
676edp.status.observation
677"FRV1",233.2,"3,1,7,0",2,"F")
678;EDPB(233.1,
679"FRV1",233.2,"3,1,8,0",2)
680edp.status.overflow
681"FRV1",233.2,"3,1,8,0",2,"F")
682;EDPB(233.1,
683"FRV1",233.2,"4,1,1,0",2)
684edp.delay.inptbed
685"FRV1",233.2,"4,1,1,0",2,"F")
686;EDPB(233.1,
687"FRV1",233.2,"4,1,10,0",2)
688edp.delay.imagestudy
689"FRV1",233.2,"4,1,10,0",2,"F")
690;EDPB(233.1,
691"FRV1",233.2,"4,1,11,0",2)
692edp.delay.pharm
693"FRV1",233.2,"4,1,11,0",2,"F")
694;EDPB(233.1,
695"FRV1",233.2,"4,1,12,0",2)
696edp.delay.labresult
697"FRV1",233.2,"4,1,12,0",2,"F")
698;EDPB(233.1,
699"FRV1",233.2,"4,1,13,0",2)
700edp.delay.labstudy
701"FRV1",233.2,"4,1,13,0",2,"F")
702;EDPB(233.1,
703"FRV1",233.2,"4,1,14,0",2)
704edp.delay.supplies
705"FRV1",233.2,"4,1,14,0",2,"F")
706;EDPB(233.1,
707"FRV1",233.2,"4,1,15,0",2)
708edp.delay.surgery
709"FRV1",233.2,"4,1,15,0",2,"F")
710;EDPB(233.1,
711"FRV1",233.2,"4,1,16,0",2)
712edp.delay.home
713"FRV1",233.2,"4,1,16,0",2,"F")
714;EDPB(233.1,
715"FRV1",233.2,"4,1,17,0",2)
716edp.delay.transport
717"FRV1",233.2,"4,1,17,0",2,"F")
718;EDPB(233.1,
719"FRV1",233.2,"4,1,18,0",2)
720edp.delay.consult
721"FRV1",233.2,"4,1,18,0",2,"F")
722;EDPB(233.1,
723"FRV1",233.2,"4,1,2,0",2)
724edp.delay.overcrowd
725"FRV1",233.2,"4,1,2,0",2,"F")
726;EDPB(233.1,
727"FRV1",233.2,"4,1,3,0",2)
728edp.delay.admiteval
729"FRV1",233.2,"4,1,3,0",2,"F")
730;EDPB(233.1,
731"FRV1",233.2,"4,1,4,0",2)
732edp.delay.admitorders
733"FRV1",233.2,"4,1,4,0",2,"F")
734;EDPB(233.1,
735"FRV1",233.2,"4,1,5,0",2)
736edp.delay.admitobs
737"FRV1",233.2,"4,1,5,0",2,"F")
738;EDPB(233.1,
739"FRV1",233.2,"4,1,6,0",2)
740edp.delay.stafflimit
741"FRV1",233.2,"4,1,6,0",2,"F")
742;EDPB(233.1,
743"FRV1",233.2,"4,1,7,0",2)
744edp.delay.interfacility
745"FRV1",233.2,"4,1,7,0",2,"F")
746;EDPB(233.1,
747"FRV1",233.2,"4,1,8,0",2)
748edp.delay.ambulance
749"FRV1",233.2,"4,1,8,0",2,"F")
750;EDPB(233.1,
751"FRV1",233.2,"4,1,9,0",2)
752edp.delay.imageresult
753"FRV1",233.2,"4,1,9,0",2,"F")
754;EDPB(233.1,
755"FRV1",233.2,"5,1,1,0",2)
756edp.source.clinic
757"FRV1",233.2,"5,1,1,0",2,"F")
758;EDPB(233.1,
759"FRV1",233.2,"5,1,2,0",2)
760edp.source.cboc
761"FRV1",233.2,"5,1,2,0",2,"F")
762;EDPB(233.1,
763"FRV1",233.2,"5,1,3,0",2)
764edp.source.ambulance
765"FRV1",233.2,"5,1,3,0",2,"F")
766;EDPB(233.1,
767"FRV1",233.2,"5,1,4,0",2)
768edp.source.walk-in
769"FRV1",233.2,"5,1,4,0",2,"F")
770;EDPB(233.1,
771"FRV1",233.2,"5,1,5,0",2)
772edp.source.nhci
773"FRV1",233.2,"5,1,5,0",2,"F")
774;EDPB(233.1,
775"FRV1",233.2,"5,1,6,0",2)
776edp.source.code
777"FRV1",233.2,"5,1,6,0",2,"F")
778;EDPB(233.1,
779"FRV1",233.2,"6,1,1,0",2)
780edp.disposition.admitva
781"FRV1",233.2,"6,1,1,0",2,"F")
782;EDPB(233.1,
783"FRV1",233.2,"6,1,10,0",2)
784edp.disposition.telemetry
785"FRV1",233.2,"6,1,10,0",2,"F")
786;EDPB(233.1,
787"FRV1",233.2,"6,1,11,0",2)
788edp.disposition.xferva
789"FRV1",233.2,"6,1,11,0",2,"F")
790;EDPB(233.1,
791"FRV1",233.2,"6,1,12,0",2)
792edp.disposition.xfernon
793"FRV1",233.2,"6,1,12,0",2,"F")
794;EDPB(233.1,
795"FRV1",233.2,"6,1,13,0",2)
796edp.disposition.psych
797"FRV1",233.2,"6,1,13,0",2,"F")
798;EDPB(233.1,
799"FRV1",233.2,"6,1,2,0",2)
800edp.disposition.ama
801"FRV1",233.2,"6,1,2,0",2,"F")
802;EDPB(233.1,
803"FRV1",233.2,"6,1,3,0",2)
804edp.disposition.clinic
805"FRV1",233.2,"6,1,3,0",2,"F")
806;EDPB(233.1,
807"FRV1",233.2,"6,1,4,0",2)
808edp.disposition.deceased
809"FRV1",233.2,"6,1,4,0",2,"F")
810;EDPB(233.1,
811"FRV1",233.2,"6,1,5,0",2)
812edp.disposition.eloped
813"FRV1",233.2,"6,1,5,0",2,"F")
814;EDPB(233.1,
815"FRV1",233.2,"6,1,6,0",2)
816edp.disposition.home
817"FRV1",233.2,"6,1,6,0",2,"F")
818;EDPB(233.1,
819"FRV1",233.2,"6,1,7,0",2)
820edp.disposition.icu
821"FRV1",233.2,"6,1,7,0",2,"F")
822;EDPB(233.1,
823"FRV1",233.2,"6,1,8,0",2)
824edp.disposition.left
825"FRV1",233.2,"6,1,8,0",2,"F")
826;EDPB(233.1,
827"FRV1",233.2,"6,1,9,0",2)
828edp.disposition.nec
829"FRV1",233.2,"6,1,9,0",2,"F")
830;EDPB(233.1,
831"INIT")
832EDPYSRV
833"IX",230,230,"AC",0)
834230^AC^SITE,AREA,IEN when entry is active (not closed)^R^^R^IR^I^230^^^^^S
835"IX",230,230,"AC",1)
836S ^EDP(230,"AC",$E(X(1),1,30),$E(X(2),1,30),DA)=""
837"IX",230,230,"AC",1.4)
838S X='X2(3)
839"IX",230,230,"AC",2)
840K ^EDP(230,"AC",$E(X(1),1,30),$E(X(2),1,30),DA)
841"IX",230,230,"AC",2.5)
842K ^EDP(230,"AC")
843"IX",230,230,"AC",11.1,0)
844^.114IA^3^3
845"IX",230,230,"AC",11.1,1,0)
8461^F^230^.02^30^1^F
847"IX",230,230,"AC",11.1,1,3)
848
849"IX",230,230,"AC",11.1,2,0)
8502^F^230^.03^30^2^F
851"IX",230,230,"AC",11.1,2,3)
852
853"IX",230,230,"AC",11.1,3,0)
8543^F^230^.07^2^^F
855"IX",230,230,"AC",11.1,3,3)
856
857"IX",230,230,"ADUP1",0)
858230^ADUP1^SITE,AREA,LASTNAME,IEN^MU^^R^IR^I^230^^^^^S
859"IX",230,230,"ADUP1",1)
860S ^EDP(230,"ADUP",X(1),X(2),X(3),DA)=""
861"IX",230,230,"ADUP1",1.4)
862S X='X2(4)
863"IX",230,230,"ADUP1",2)
864K ^EDP(230,"ADUP",X(1),X(2),X(3),DA)
865"IX",230,230,"ADUP1",2.5)
866
867"IX",230,230,"ADUP1",11.1,0)
868^.114IA^4^4
869"IX",230,230,"ADUP1",11.1,1,0)
8701^F^230^.02^^1^F
871"IX",230,230,"ADUP1",11.1,2,0)
8722^F^230^.03^^2^F
873"IX",230,230,"ADUP1",11.1,3,0)
8743^F^230^.04^^3^F
875"IX",230,230,"ADUP1",11.1,3,2)
876S X=$P(X,",")
877"IX",230,230,"ADUP1",11.1,4,0)
8784^F^230^.07^^^F
879"IX",230,230,"ADUP2",0)
880230^ADUP2^SITE,AREA,LAST4,IEN for active patients^MU^^R^IR^I^230^^^^^S
881"IX",230,230,"ADUP2",1)
882S ^EDP(230,"ADUP",X(1),X(2),X(3),DA)=""
883"IX",230,230,"ADUP2",1.4)
884S X='X2(4)
885"IX",230,230,"ADUP2",2)
886K ^EDP(230,"ADUP",X(1),X(2),X(3),DA)
887"IX",230,230,"ADUP2",2.5)
888
889"IX",230,230,"ADUP2",11.1,0)
890^.114IA^4^4
891"IX",230,230,"ADUP2",11.1,1,0)
8921^F^230^.02^^1^F
893"IX",230,230,"ADUP2",11.1,1,3)
894
895"IX",230,230,"ADUP2",11.1,2,0)
8962^F^230^.03^^2^F
897"IX",230,230,"ADUP2",11.1,2,3)
898
899"IX",230,230,"ADUP2",11.1,3,0)
9003^F^230^.11^^3^F
901"IX",230,230,"ADUP2",11.1,3,3)
902
903"IX",230,230,"ADUP2",11.1,4,0)
9044^F^230^.07^^^F
905"IX",230,230,"ADUP2",11.1,4,3)
906
907"IX",230,230,"AL",0)
908230^AL^SITE, AREA, LOC, IEN when entry is active^R^^R^IR^I^230^^^^^S
909"IX",230,230,"AL",1)
910S ^EDP(230,"AL",X(1),X(2),X(3),DA)=""
911"IX",230,230,"AL",1.4)
912S X='X2(4)
913"IX",230,230,"AL",2)
914K ^EDP(230,"AL",X(1),X(2),X(3),DA)
915"IX",230,230,"AL",2.5)
916K ^EDP(230,"AL")
917"IX",230,230,"AL",11.1,0)
918^.114IA^4^4
919"IX",230,230,"AL",11.1,1,0)
9201^F^230^.02^^1^F
921"IX",230,230,"AL",11.1,1,3)
922
923"IX",230,230,"AL",11.1,2,0)
9242^F^230^.03^^2^F
925"IX",230,230,"AL",11.1,2,3)
926
927"IX",230,230,"AL",11.1,3,0)
9283^F^230^3.4^^3^F
929"IX",230,230,"AL",11.1,3,3)
930
931"IX",230,230,"AL",11.1,4,0)
9324^F^230^.07^^^F
933"IX",230,230,"AL",11.1,4,3)
934
935"IX",230,230,"AN",0)
936230^AN^SITE,AREA,PTNAME,IEN for active patients^R^^R^IR^I^230^^^^^S
937"IX",230,230,"AN",1)
938S ^EDP(230,"AN",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,50),DA)=""
939"IX",230,230,"AN",1.4)
940S X='X2(4)
941"IX",230,230,"AN",2)
942K ^EDP(230,"AN",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,50),DA)
943"IX",230,230,"AN",2.5)
944K ^EDP(230,"AN")
945"IX",230,230,"AN",11.1,0)
946^.114IA^4^4
947"IX",230,230,"AN",11.1,1,0)
9481^F^230^.02^30^1^F
949"IX",230,230,"AN",11.1,1,3)
950
951"IX",230,230,"AN",11.1,2,0)
9522^F^230^.03^30^2^F
953"IX",230,230,"AN",11.1,2,3)
954
955"IX",230,230,"AN",11.1,3,0)
9563^F^230^.04^50^3^F
957"IX",230,230,"AN",11.1,3,3)
958
959"IX",230,230,"AN",11.1,4,0)
9604^F^230^.07^2^^F
961"IX",230,230,"AN",11.1,4,3)
962
963"IX",230,230,"AP",0)
964230^AP^SITE,DFN,IEN for active patients at site (not closed)^R^^R^IR^I^230^^^^^S
965"IX",230,230,"AP",1)
966S ^EDP(230,"AP",X(1),X(2),DA)=""
967"IX",230,230,"AP",1.4)
968S X='X2(4)
969"IX",230,230,"AP",2)
970K ^EDP(230,"AP",X(1),X(2),DA)
971"IX",230,230,"AP",2.5)
972K ^EDP(230,"AP")
973"IX",230,230,"AP",11.1,0)
974^.114IA^4^3
975"IX",230,230,"AP",11.1,1,0)
9761^F^230^.02^^1^F
977"IX",230,230,"AP",11.1,1,3)
978
979"IX",230,230,"AP",11.1,3,0)
9802^F^230^.06^^2^F
981"IX",230,230,"AP",11.1,3,3)
982
983"IX",230,230,"AP",11.1,4,0)
9844^F^230^.07^^^F
985"IX",230,230,"AP",11.1,4,3)
986
987"IX",230,230,"AS",0)
988230^AS^SITE,AREA,SSN,IEN for active patients^R^^R^IR^I^230^^^^^S
989"IX",230,230,"AS",1)
990S ^EDP(230,"AS",X(1),X(2),X(3),DA)=""
991"IX",230,230,"AS",1.4)
992S X='X2(4)
993"IX",230,230,"AS",2)
994K ^EDP(230,"AS",X(1),X(2),X(3),DA)
995"IX",230,230,"AS",2.5)
996K ^EDP(230,"AS")
997"IX",230,230,"AS",11.1,0)
998^.114IA^4^4
999"IX",230,230,"AS",11.1,1,0)
10001^F^230^.02^^1^F
1001"IX",230,230,"AS",11.1,1,3)
1002
1003"IX",230,230,"AS",11.1,2,0)
10042^F^230^.03^^2^F
1005"IX",230,230,"AS",11.1,2,3)
1006
1007"IX",230,230,"AS",11.1,3,0)
10083^F^230^.05^^3^F
1009"IX",230,230,"AS",11.1,3,3)
1010
1011"IX",230,230,"AS",11.1,4,0)
10124^F^230^.07^^^F
1013"IX",230,230,"AS",11.1,4,3)
1014
1015"IX",230,230,"ATI",0)
1016230^ATI^SITE,TIME IN for reports^MU^^R^IR^I^230^^^^^S
1017"IX",230,230,"ATI",1)
1018S ^EDP(230,"ATI",X(1),+X(2),DA)=""
1019"IX",230,230,"ATI",2)
1020K ^EDP(230,"ATI",X(1),+X(2),DA)
1021"IX",230,230,"ATI",2.5)
1022K ^EDP(230,"ATI")
1023"IX",230,230,"ATI",11.1,0)
1024^.114IA^2^2
1025"IX",230,230,"ATI",11.1,1,0)
10261^F^230^.02^^1^F
1027"IX",230,230,"ATI",11.1,2,0)
10282^F^230^.08^^2^F
1029"IX",230,230,"ATO",0)
1030230^ATO^SITE,TIME OUT for reports^R^^R^IR^I^230^^^^^S
1031"IX",230,230,"ATO",1)
1032S ^EDP(230,"ATO",X(1),X(2),DA)=""
1033"IX",230,230,"ATO",2)
1034K ^EDP(230,"ATO",X(1),X(2),DA)
1035"IX",230,230,"ATO",2.5)
1036K ^EDP(230,"ATO")
1037"IX",230,230,"ATO",11.1,0)
1038^.114IA^2^2
1039"IX",230,230,"ATO",11.1,1,0)
10401^F^230^.02^^1^F
1041"IX",230,230,"ATO",11.1,1,3)
1042
1043"IX",230,230,"ATO",11.1,2,0)
10442^F^230^.09^^2^F
1045"IX",230,230,"ATO",11.1,2,3)
1046
1047"IX",230,230,"PN",0)
1048230^PN^SITE,AREA,PTNAME,IEN for all patients^R^^R^IR^I^230^^^^^LS
1049"IX",230,230,"PN",1)
1050S ^EDP(230,"PN",X(1),X(2),$E(X(3),1,40),DA)=""
1051"IX",230,230,"PN",2)
1052K ^EDP(230,"PN",X(1),X(2),$E(X(3),1,40),DA)
1053"IX",230,230,"PN",2.5)
1054K ^EDP(230,"PN")
1055"IX",230,230,"PN",11.1,0)
1056^.114IA^3^3
1057"IX",230,230,"PN",11.1,1,0)
10581^F^230^.02^^1^F
1059"IX",230,230,"PN",11.1,1,3)
1060
1061"IX",230,230,"PN",11.1,2,0)
10622^F^230^.03^^2^F
1063"IX",230,230,"PN",11.1,2,3)
1064
1065"IX",230,230,"PN",11.1,3,0)
10663^F^230^.04^40^3^F
1067"IX",230,230,"PN",11.1,3,3)
1068
1069"IX",230.1,230.1,"ADF",0)
1070230.1^ADF^Log History by time (LOG, TIME, IEN)^R^^R^IR^I^230.1^^^^^S
1071"IX",230.1,230.1,"ADF",1)
1072S ^EDP(230.1,"ADF",X(1),X(2),DA)=""
1073"IX",230.1,230.1,"ADF",2)
1074K ^EDP(230.1,"ADF",X(1),X(2),DA)
1075"IX",230.1,230.1,"ADF",2.5)
1076K ^EDP(230.1,"ADF")
1077"IX",230.1,230.1,"ADF",11.1,0)
1078^.114IA^2^2
1079"IX",230.1,230.1,"ADF",11.1,1,0)
10801^F^230.1^.01^^1^F
1081"IX",230.1,230.1,"ADF",11.1,1,3)
1082
1083"IX",230.1,230.1,"ADF",11.1,2,0)
10842^F^230.1^.02^^2^F
1085"IX",230.1,230.1,"ADF",11.1,2,3)
1086
1087"IX",230.1,230.1,"ADR",0)
1088230.1^ADR^Log History by inverse time (LOG, INVTIME, IEN)^R^^R^IR^I^230.1^^^^^S
1089"IX",230.1,230.1,"ADR",1)
1090S ^EDP(230.1,"ADR",X(1),X(2),DA)=""
1091"IX",230.1,230.1,"ADR",2)
1092K ^EDP(230.1,"ADR",X(1),X(2),DA)
1093"IX",230.1,230.1,"ADR",2.5)
1094K ^EDP(230.1,"ADR")
1095"IX",230.1,230.1,"ADR",11.1,0)
1096^.114IA^2^2
1097"IX",230.1,230.1,"ADR",11.1,1,0)
10981^F^230.1^.01^^1^F
1099"IX",230.1,230.1,"ADR",11.1,1,3)
1100
1101"IX",230.1,230.1,"ADR",11.1,2,0)
11022^F^230.1^.02^^2^F
1103"IX",230.1,230.1,"ADR",11.1,2,2)
1104S X=9999999-X
1105"IX",230.1,230.1,"ADR",11.1,2,3)
1106
1107"IX",230.1,230.1,"C",0)
1108230.1^C^Indexes changes for a log entry by inverse time.^R^^R^IR^I^230.1^^^^^LS
1109"IX",230.1,230.1,"C",1)
1110S ^EDP(230.1,"C",X(1),X(2),DA)=""
1111"IX",230.1,230.1,"C",2)
1112K ^EDP(230.1,"C",X(1),X(2),DA)
1113"IX",230.1,230.1,"C",2.5)
1114K ^EDP(230.1,"C")
1115"IX",230.1,230.1,"C",11.1,0)
1116^.114IA^2^2
1117"IX",230.1,230.1,"C",11.1,1,0)
11181^F^230.1^.01^^1^F
1119"IX",230.1,230.1,"C",11.1,1,3)
1120
1121"IX",230.1,230.1,"C",11.1,2,0)
11222^F^230.1^.02^^2^F
1123"IX",230.1,230.1,"C",11.1,2,2)
1124S X=9999999-X
1125"IX",230.1,230.1,"C",11.1,2,3)
1126
1127"IX",231.7,231.7,"AC",0)
1128231.7^AC^SITE,AREA,ROLE,IEN if the entry is active^R^^R^IR^I^231.7^^^^^S
1129"IX",231.7,231.7,"AC",1)
1130S ^EDPB(231.7,"AC",X(1),X(2),X(3),DA)=""
1131"IX",231.7,231.7,"AC",1.4)
1132S X='X2(4)
1133"IX",231.7,231.7,"AC",2)
1134K ^EDPB(231.7,"AC",X(1),X(2),X(3),DA)
1135"IX",231.7,231.7,"AC",2.5)
1136K ^EDPB(231.7,"AC")
1137"IX",231.7,231.7,"AC",11.1,0)
1138^.114IA^4^4
1139"IX",231.7,231.7,"AC",11.1,1,0)
11401^F^231.7^.02^^1^F
1141"IX",231.7,231.7,"AC",11.1,1,3)
1142
1143"IX",231.7,231.7,"AC",11.1,2,0)
11442^F^231.7^.03^^2^F
1145"IX",231.7,231.7,"AC",11.1,2,3)
1146
1147"IX",231.7,231.7,"AC",11.1,3,0)
11483^F^231.7^.06^^3^F
1149"IX",231.7,231.7,"AC",11.1,3,3)
1150
1151"IX",231.7,231.7,"AC",11.1,4,0)
11524^F^231.7^.04^^^F
1153"IX",231.7,231.7,"AC",11.1,4,3)
1154
1155"IX",231.7,231.7,"AD",0)
1156231.7^AD^SITE,AREA,DUZ,IEN for all entries^R^^R^IR^I^231.7^^^^^S
1157"IX",231.7,231.7,"AD",1)
1158S ^EDPB(231.7,"AD",X(1),X(2),X(3),DA)=""
1159"IX",231.7,231.7,"AD",2)
1160K ^EDPB(231.7,"AD",X(1),X(2),X(3),DA)
1161"IX",231.7,231.7,"AD",2.5)
1162K ^EDPB(231.7,"AD")
1163"IX",231.7,231.7,"AD",11.1,0)
1164^.114IA^3^3
1165"IX",231.7,231.7,"AD",11.1,1,0)
11661^F^231.7^.02^^1^F
1167"IX",231.7,231.7,"AD",11.1,1,3)
1168
1169"IX",231.7,231.7,"AD",11.1,2,0)
11702^F^231.7^.03^^2^F
1171"IX",231.7,231.7,"AD",11.1,2,3)
1172
1173"IX",231.7,231.7,"AD",11.1,3,0)
11743^F^231.7^.05^^3^F
1175"IX",231.7,231.7,"AD",11.1,3,3)
1176
1177"IX",231.8,231.8,"AC",0)
1178231.8^AC^SITE,AREA,DISPLAYNAME,IEN^R^^R^IR^I^231.8^^^^^S
1179"IX",231.8,231.8,"AC",1)
1180S ^EDPB(231.8,"AC",X(1),X(2),X(3),DA)=""
1181"IX",231.8,231.8,"AC",2)
1182K ^EDPB(231.8,"AC",X(1),X(2),X(3),DA)
1183"IX",231.8,231.8,"AC",2.5)
1184K ^EDPB(231.8,"AC")
1185"IX",231.8,231.8,"AC",11.1,0)
1186^.114IA^3^3
1187"IX",231.8,231.8,"AC",11.1,1,0)
11881^F^231.8^.02^^1^F
1189"IX",231.8,231.8,"AC",11.1,1,3)
1190
1191"IX",231.8,231.8,"AC",11.1,2,0)
11922^F^231.8^.03^^2^F
1193"IX",231.8,231.8,"AC",11.1,2,3)
1194
1195"IX",231.8,231.8,"AC",11.1,3,0)
11963^F^231.8^.06^^3^F
1197"IX",231.8,231.8,"AC",11.1,3,3)
1198
1199"IX",231.8,231.8,"C",0)
1200231.8^C^Index by site and area.^R^^R^IR^I^231.8^^^^^LS
1201"IX",231.8,231.8,"C",1)
1202S ^EDPB(231.8,"C",X(1),X(2),DA)=""
1203"IX",231.8,231.8,"C",2)
1204K ^EDPB(231.8,"C",X(1),X(2),DA)
1205"IX",231.8,231.8,"C",2.5)
1206K ^EDPB(231.8,"C")
1207"IX",231.8,231.8,"C",11.1,0)
1208^.114IA^2^2
1209"IX",231.8,231.8,"C",11.1,1,0)
12101^F^231.8^.02^^1^F
1211"IX",231.8,231.8,"C",11.1,1,3)
1212
1213"IX",231.8,231.8,"C",11.1,2,0)
12142^F^231.8^.03^^2^F
1215"IX",231.8,231.8,"C",11.1,2,3)
1216
1217"KRN",19,13508,-1)
12180^1
1219"KRN",19,13508,0)
1220EDPS TRACKING CONTEXT^ED Tracking Context -- Server^^B^^^^^^^^
1221"KRN",19,13508,"RPC",0)
1222^19.05P^1^1
1223"KRN",19,13508,"RPC",1,0)
1224EDPCTRL RPC
1225"KRN",19,13508,"U")
1226ED TRACKING CONTEXT -- SERVER
1227"KRN",19,13509,-1)
12280^2
1229"KRN",19,13509,0)
1230EDPSERVER^Process incoming scheduling events from MailMan^^S^^^^^^^^EMERGENCY DEPARTMENT
1231"KRN",19,13509,25)
1232EDPMAIL
1233"KRN",19,13509,220)
1234^R^^N^Y^N
1235"KRN",19,13509,"U")
1236PROCESS INCOMING SCHEDULING EV
1237"KRN",8994,2527,-1)
12380^1
1239"KRN",8994,2527,0)
1240EDPCTRL RPC^RPC^EDPCTRL^2^R^^^^1^^1
1241"KRN",8994,2527,2,0)
1242^8994.02A^1^1
1243"KRN",8994,2527,2,1,0)
1244REQ^2^^1^1
1245"KRN",8994,2527,2,"B","REQ",1)
1246
1247"KRN",8994,2527,2,"PARAMSEQ",1,1)
1248
1249"MBREQ")
12500
1251"ORD",16,8994)
12528994;16;1;;;;;;;RPCDEL^XPDIA1
1253"ORD",16,8994,0)
1254REMOTE PROCEDURE
1255"ORD",18,19)
125619;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA
1257"ORD",18,19,0)
1258OPTION
1259"PGL",233.1,0,4,.04)
1260NATIONAL CODE^P233.1'^EDPB(233.1,^0;4^Q
1261"PGL",233.21,0,2,.02)
1262CODE^P233.1'^EDPB(233.1,^0;2^Q
1263"QUES","XPF1",0)
1264Y
1265"QUES","XPF1","??")
1266^D REP^XPDH
1267"QUES","XPF1","A")
1268Shall I write over your |FLAG| File
1269"QUES","XPF1","B")
1270YES
1271"QUES","XPF1","M")
1272D XPF1^XPDIQ
1273"QUES","XPF2",0)
1274Y
1275"QUES","XPF2","??")
1276^D DTA^XPDH
1277"QUES","XPF2","A")
1278Want my data |FLAG| yours
1279"QUES","XPF2","B")
1280YES
1281"QUES","XPF2","M")
1282D XPF2^XPDIQ
1283"QUES","XPI1",0)
1284YO
1285"QUES","XPI1","??")
1286^D INHIBIT^XPDH
1287"QUES","XPI1","A")
1288Want KIDS to INHIBIT LOGONs during the install
1289"QUES","XPI1","B")
1290YES
1291"QUES","XPI1","M")
1292D XPI1^XPDIQ
1293"QUES","XPM1",0)
1294PO^VA(200,:EM
1295"QUES","XPM1","??")
1296^D MG^XPDH
1297"QUES","XPM1","A")
1298Enter the Coordinator for Mail Group '|FLAG|'
1299"QUES","XPM1","B")
1300
1301"QUES","XPM1","M")
1302D XPM1^XPDIQ
1303"QUES","XPO1",0)
1304Y
1305"QUES","XPO1","??")
1306^D MENU^XPDH
1307"QUES","XPO1","A")
1308Want KIDS to Rebuild Menu Trees Upon Completion of Install
1309"QUES","XPO1","B")
1310YES
1311"QUES","XPO1","M")
1312D XPO1^XPDIQ
1313"QUES","XPZ1",0)
1314Y
1315"QUES","XPZ1","??")
1316^D OPT^XPDH
1317"QUES","XPZ1","A")
1318Want to DISABLE Scheduled Options, Menu Options, and Protocols
1319"QUES","XPZ1","B")
1320YES
1321"QUES","XPZ1","M")
1322D XPZ1^XPDIQ
1323"QUES","XPZ2",0)
1324Y
1325"QUES","XPZ2","??")
1326^D RTN^XPDH
1327"QUES","XPZ2","A")
1328Want to MOVE routines to other CPUs
1329"QUES","XPZ2","B")
1330NO
1331"QUES","XPZ2","M")
1332D XPZ2^XPDIQ
1333"RTN")
133436
1335"RTN","EDPBCF")
13360^1^B6377962
1337"RTN","EDPBCF",1,0)
1338EDPBCF ;SLC/KCM - Display Board Configuration
1339"RTN","EDPBCF",2,0)
1340 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
1341"RTN","EDPBCF",3,0)
1342 ;
1343"RTN","EDPBCF",4,0)
1344LOADBRD(AREA) ; Load Board Configuration for an Area
1345"RTN","EDPBCF",5,0)
1346 N I
1347"RTN","EDPBCF",6,0)
1348 S I=0 F S I=$O(^EDPB(231.9,AREA,2,I)) Q:'I D
1349"RTN","EDPBCF",7,0)
1350 . D XML^EDPX(^EDPB(231.9,AREA,2,I,0))
1351"RTN","EDPBCF",8,0)
1352 ;
1353"RTN","EDPBCF",9,0)
1354 D XML^EDPX("<colorSpec>")
1355"RTN","EDPBCF",10,0)
1356 S I=0 F S I=$O(^EDPB(231.9,AREA,3,I)) Q:'I D
1357"RTN","EDPBCF",11,0)
1358 . D XML^EDPX(^EDPB(231.9,AREA,3,I,0))
1359"RTN","EDPBCF",12,0)
1360 D XML^EDPX("</colorSpec>")
1361"RTN","EDPBCF",13,0)
1362 ;
1363"RTN","EDPBCF",14,0)
1364 D XML^EDPX("<columnList>")
1365"RTN","EDPBCF",15,0)
1366 F I=1:1 S NODE=$P($T(COLUMNS+I),";",3,99) Q:$E(NODE,1,5)="zzzzz" D
1367"RTN","EDPBCF",16,0)
1368 . N X
1369"RTN","EDPBCF",17,0)
1370 . S X("label")=$P(NODE,U)
1371"RTN","EDPBCF",18,0)
1372 . S X("att")=$P(NODE,U,2)
1373"RTN","EDPBCF",19,0)
1374 . S X("header")=$P(NODE,U,3)
1375"RTN","EDPBCF",20,0)
1376 . S X("width")=50
1377"RTN","EDPBCF",21,0)
1378 . D XML^EDPX($$XMLA^EDPX("col",.X))
1379"RTN","EDPBCF",22,0)
1380 D XML^EDPX("</columnList>")
1381"RTN","EDPBCF",23,0)
1382 ;
1383"RTN","EDPBCF",24,0)
1384 D XML^EDPX("<colorMaps>")
1385"RTN","EDPBCF",25,0)
1386 D COLORS^EDPBCM
1387"RTN","EDPBCF",26,0)
1388 D XML^EDPX("</colorMaps>")
1389"RTN","EDPBCF",27,0)
1390 ;D XML^EDPX("<colorMapList>")
1391"RTN","EDPBCF",28,0)
1392 ;D LIST^EDPBCM
1393"RTN","EDPBCF",29,0)
1394 ;D XML^EDPX("</colorMapList>")
1395"RTN","EDPBCF",30,0)
1396 ;
1397"RTN","EDPBCF",31,0)
1398 D LOAD^EDPBRM(AREA) ; also load rooms/beds
1399"RTN","EDPBCF",32,0)
1400 D LOAD^EDPBPM(AREA) ; also load parameters
1401"RTN","EDPBCF",33,0)
1402 ;
1403"RTN","EDPBCF",34,0)
1404 Q
1405"RTN","EDPBCF",35,0)
1406SAVEBRD(REQ) ; Save Configuration
1407"RTN","EDPBCF",36,0)
1408 N X,WP,AREA
1409"RTN","EDPBCF",37,0)
1410 S X="col-",AREA=$G(REQ("area",1))
1411"RTN","EDPBCF",38,0)
1412 I 'AREA D XML^EDPX("<save status='fail'>Missing area</save>") Q
1413"RTN","EDPBCF",39,0)
1414 F S X=$O(REQ(X)) Q:$E(X,1,4)'="col-" S WP(+$P(X,"-",2))=REQ(X,1)
1415"RTN","EDPBCF",40,0)
1416 S WP(.1)="<spec>",WP(9999)="</spec>"
1417"RTN","EDPBCF",41,0)
1418 D WP^DIE(231.9,AREA_",",2,"","WP")
1419"RTN","EDPBCF",42,0)
1420 I $D(DIERR) D XML^EDPX("<save status='fail'>save failed</save>") Q
1421"RTN","EDPBCF",43,0)
1422 D XML^EDPX("<save status='ok' />")
1423"RTN","EDPBCF",44,0)
1424 Q
1425"RTN","EDPBCF",45,0)
1426COLUMNS ;; Available columns
1427"RTN","EDPBCF",46,0)
1428 ;;Room / Bed^@bedNm^Room
1429"RTN","EDPBCF",47,0)
1430 ;;Patient Name^@ptNm^Patient
1431"RTN","EDPBCF",48,0)
1432 ;;Patient X9999^@last4^Patient
1433"RTN","EDPBCF",49,0)
1434 ;;Complaint^@complaint^Complaint
1435"RTN","EDPBCF",50,0)
1436 ;;Comment^@comment^Comment
1437"RTN","EDPBCF",51,0)
1438 ;;Provider Initials^@mdNm^Prv
1439"RTN","EDPBCF",52,0)
1440 ;;Resident Initials^@resNm^Res
1441"RTN","EDPBCF",53,0)
1442 ;;Nurse Initials^@rnNm^RN
1443"RTN","EDPBCF",54,0)
1444 ;;Acuity^@acuityNm^Acuity
1445"RTN","EDPBCF",55,0)
1446 ;;Status^@statusNm^Status
1447"RTN","EDPBCF",56,0)
1448 ;;Lab Active/Complete^@lab^L
1449"RTN","EDPBCF",57,0)
1450 ;;Imaging Active/Complete^@rad^I
1451"RTN","EDPBCF",58,0)
1452 ;;New (Unverified) Orders^@ordNew^New
1453"RTN","EDPBCF",59,0)
1454 ;;Total Minutes^@emins^E Mins
1455"RTN","EDPBCF",60,0)
1456 ;;Minutes at Location^@lmins^Mins
1457"RTN","EDPBCF",61,0)
1458 ;;zzzzz
1459"RTN","EDPBCM")
14600^2^B11802573
1461"RTN","EDPBCM",1,0)
1462EDPBCM ;SLC/KCM - Available color maps
1463"RTN","EDPBCM",2,0)
1464 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
1465"RTN","EDPBCM",3,0)
1466 ;
1467"RTN","EDPBCM",4,0)
1468SAVE(REQ) ; Save Configuration
1469"RTN","EDPBCM",5,0)
1470 N X,WP,AREA
1471"RTN","EDPBCM",6,0)
1472 S X="xml-",AREA=$G(REQ("area",1))
1473"RTN","EDPBCM",7,0)
1474 I 'AREA D XML^EDPX("<save status='fail'>Missing area</save>") Q
1475"RTN","EDPBCM",8,0)
1476 F S X=$O(REQ(X)) Q:$E(X,1,4)'="xml-" S WP(+$P(X,"-",2))=REQ(X,1)
1477"RTN","EDPBCM",9,0)
1478 D WP^DIE(231.9,AREA_",",3,"","WP")
1479"RTN","EDPBCM",10,0)
1480 I $D(DIERR) D XML^EDPX("<save status='fail'>save failed</save>") Q
1481"RTN","EDPBCM",11,0)
1482 D XML^EDPX("<save status='ok' />")
1483"RTN","EDPBCM",12,0)
1484 Q
1485"RTN","EDPBCM",13,0)
1486COLORS ;; Available Color Maps
1487"RTN","EDPBCM",14,0)
1488 D ENMAP("none"," ","none") ; for no selection
1489"RTN","EDPBCM",15,0)
1490 ;
1491"RTN","EDPBCM",16,0)
1492 D ENMAP("stsAcuity","Status / Acuity","val")
1493"RTN","EDPBCM",17,0)
1494 D CODES("status"),CODES("acuity"),EXMAP
1495"RTN","EDPBCM",18,0)
1496 ;
1497"RTN","EDPBCM",19,0)
1498 D ENMAP("status","Status","val")
1499"RTN","EDPBCM",20,0)
1500 D CODES("status"),EXMAP
1501"RTN","EDPBCM",21,0)
1502 ;
1503"RTN","EDPBCM",22,0)
1504 D ENMAP("acuity","Acuity","val")
1505"RTN","EDPBCM",23,0)
1506 D CODES("acuity"),EXMAP
1507"RTN","EDPBCM",24,0)
1508 ;
1509"RTN","EDPBCM",25,0)
1510 D ENMAP("bed","Room / Bed","bed")
1511"RTN","EDPBCM",26,0)
1512 D ENMAP("md","Provider","staff")
1513"RTN","EDPBCM",27,0)
1514 D ENMAP("res","Resident","staff")
1515"RTN","EDPBCM",28,0)
1516 D ENMAP("rn","Nurse","staff")
1517"RTN","EDPBCM",29,0)
1518 ;
1519"RTN","EDPBCM",30,0)
1520 D ENMAP("labUrg","Urgency - Lab","val")
1521"RTN","EDPBCM",31,0)
1522 D URG("labUrg"),EXMAP
1523"RTN","EDPBCM",32,0)
1524 ;D ENMAP("medUrg","Urgency - Medications","val")
1525"RTN","EDPBCM",33,0)
1526 ;D URG("medUrg"),EXMAP
1527"RTN","EDPBCM",34,0)
1528 D ENMAP("radUrg","Urgency - Radiology","val")
1529"RTN","EDPBCM",35,0)
1530 D URG("radUrg"),EXMAP
1531"RTN","EDPBCM",36,0)
1532 ;
1533"RTN","EDPBCM",37,0)
1534 D ENMAP("emins","Total Elapsed Minutes","rng")
1535"RTN","EDPBCM",38,0)
1536 D ENMAP("lmins","Minutes at Location","rng")
1537"RTN","EDPBCM",39,0)
1538 D ENMAP("minLab","Minutes for Lab Order","rng")
1539"RTN","EDPBCM",40,0)
1540 ;D ENMAP("minMed","Minutes for Medication Order","rng")
1541"RTN","EDPBCM",41,0)
1542 D ENMAP("minRad","Minutes for Imaging Order","rng")
1543"RTN","EDPBCM",42,0)
1544 D ENMAP("minVer","Minutes for Unverified Order","rng")
1545"RTN","EDPBCM",43,0)
1546 Q
1547"RTN","EDPBCM",44,0)
1548ENMAP(ID,NM,TYP) ; create element for colormap
1549"RTN","EDPBCM",45,0)
1550 N X,END
1551"RTN","EDPBCM",46,0)
1552 S END="/" S:TYP="val" END=""
1553"RTN","EDPBCM",47,0)
1554 S X("id")=ID
1555"RTN","EDPBCM",48,0)
1556 S X("nm")=NM
1557"RTN","EDPBCM",49,0)
1558 S X("type")=TYP
1559"RTN","EDPBCM",50,0)
1560 D XML^EDPX($$XMLA^EDPX("colors",.X,END))
1561"RTN","EDPBCM",51,0)
1562 Q
1563"RTN","EDPBCM",52,0)
1564EXMAP ; create closing tag
1565"RTN","EDPBCM",53,0)
1566 D XML^EDPX("</colors>")
1567"RTN","EDPBCM",54,0)
1568 Q
1569"RTN","EDPBCM",55,0)
1570CODES(NM) ; create map elements for a set of codes
1571"RTN","EDPBCM",56,0)
1572 N CODESET,IEN
1573"RTN","EDPBCM",57,0)
1574 S CODESET=EDPSITE_"."_NM
1575"RTN","EDPBCM",58,0)
1576 I '$D(^EDPB(233.2,"B",CODESET)) S CODESET="edp."_NM
1577"RTN","EDPBCM",59,0)
1578 S IEN=$O(^EDPB(233.2,"B",CODESET,0))
1579"RTN","EDPBCM",60,0)
1580 Q:'IEN
1581"RTN","EDPBCM",61,0)
1582 ;
1583"RTN","EDPBCM",62,0)
1584 N SEQ,CODE,DA
1585"RTN","EDPBCM",63,0)
1586 S SEQ=0 F S SEQ=$O(^EDPB(233.2,IEN,1,"B",SEQ)) Q:'SEQ D
1587"RTN","EDPBCM",64,0)
1588 . S DA=0 F S DA=$O(^EDPB(233.2,IEN,1,"B",SEQ,DA)) Q:'DA D
1589"RTN","EDPBCM",65,0)
1590 . . S CODE=$P(^EDPB(233.2,IEN,1,DA,0),U,2)
1591"RTN","EDPBCM",66,0)
1592 . . Q:'CODE
1593"RTN","EDPBCM",67,0)
1594 . . D MAP(NM,CODE,$P(^EDPB(233.1,CODE,0),U,2))
1595"RTN","EDPBCM",68,0)
1596 Q
1597"RTN","EDPBCM",69,0)
1598URG(ATT) ; create map elements for standard urgencies
1599"RTN","EDPBCM",70,0)
1600 D MAP(ATT,0,"No Orders")
1601"RTN","EDPBCM",71,0)
1602 D MAP(ATT,1,"Active Orders")
1603"RTN","EDPBCM",72,0)
1604 D MAP(ATT,2,"STAT Orders")
1605"RTN","EDPBCM",73,0)
1606 Q
1607"RTN","EDPBCM",74,0)
1608MAP(ATT,VAL,NM) ; create a single map element
1609"RTN","EDPBCM",75,0)
1610 N X
1611"RTN","EDPBCM",76,0)
1612 S X("att")="@"_ATT
1613"RTN","EDPBCM",77,0)
1614 S X("val")=VAL
1615"RTN","EDPBCM",78,0)
1616 S X("nm")=NM
1617"RTN","EDPBCM",79,0)
1618 S X("clr")=0
1619"RTN","EDPBCM",80,0)
1620 D XML^EDPX($$XMLA^EDPX("map",.X))
1621"RTN","EDPBCM",81,0)
1622 Q
1623"RTN","EDPBCM",82,0)
1624LIST ; Build selection list for color maps
1625"RTN","EDPBCM",83,0)
1626 N I,X
1627"RTN","EDPBCM",84,0)
1628 F I=1:1 S X=$P($T(MAPLST+I),";",3,99) Q:$E(X,1,5)="zzzzz" D
1629"RTN","EDPBCM",85,0)
1630 . S X("data")=$P(X,U,1),X("label")=$P(X,U,2)
1631"RTN","EDPBCM",86,0)
1632 . D XML^EDPX($$XMLA^EDPX("colors",.X))
1633"RTN","EDPBCM",87,0)
1634 Q
1635"RTN","EDPBCM",88,0)
1636MAPLST ; list of available color maps
1637"RTN","EDPBCM",89,0)
1638 ;;^ ^
1639"RTN","EDPBCM",90,0)
1640 ;;stsAcuity^Status / Acuity
1641"RTN","EDPBCM",91,0)
1642 ;;status^Status
1643"RTN","EDPBCM",92,0)
1644 ;;acuity^Acuity
1645"RTN","EDPBCM",93,0)
1646 ;;bed^Room / Bed
1647"RTN","EDPBCM",94,0)
1648 ;;staff^Staff
1649"RTN","EDPBCM",95,0)
1650 ;;labUrg^Urgency - Lab
1651"RTN","EDPBCM",96,0)
1652 ;;radUrg^Urgency - Imaging
1653"RTN","EDPBCM",97,0)
1654 ;;emins^Total Minutes
1655"RTN","EDPBCM",98,0)
1656 ;;lmins^Minutes at Location
1657"RTN","EDPBCM",99,0)
1658 ;;labMin^Minutes for Lab Order
1659"RTN","EDPBCM",100,0)
1660 ;;radMin^Minutes for Imaging Order
1661"RTN","EDPBCM",101,0)
1662 ;;ordMin^Minutes for Unverified Order
1663"RTN","EDPBCM",102,0)
1664 ;;zzzzz
1665"RTN","EDPBPM")
16660^3^B2766869
1667"RTN","EDPBPM",1,0)
1668EDPBPM ;SLC/KCM - Parameters for Tracking Area
1669"RTN","EDPBPM",2,0)
1670 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
1671"RTN","EDPBPM",3,0)
1672 ;
1673"RTN","EDPBPM",4,0)
1674LOAD(AREA) ; load parameters for area
1675"RTN","EDPBPM",5,0)
1676 N X,X1
1677"RTN","EDPBPM",6,0)
1678 S X1=$G(^EDPB(231.9,AREA,1))
1679"RTN","EDPBPM",7,0)
1680 S X("reqDiag")=+$P(X1,U,1)
1681"RTN","EDPBPM",8,0)
1682 S X("codedDiag")=+$P(X1,U,2)
1683"RTN","EDPBPM",9,0)
1684 S X("reqDisp")=+$P(X1,U,3)
1685"RTN","EDPBPM",10,0)
1686 S X("reqDelay")=+$P(X1,U,4)
1687"RTN","EDPBPM",11,0)
1688 S X("minDelay")=+$P(X1,U,5)
1689"RTN","EDPBPM",12,0)
1690 S X("shiftOne")=$P(X1,U,6)
1691"RTN","EDPBPM",13,0)
1692 S X("shiftLen")=$P(X1,U,7)
1693"RTN","EDPBPM",14,0)
1694 S X("residents")=$P(X1,U,8)
1695"RTN","EDPBPM",15,0)
1696 D XML^EDPX($$XMLA^EDPX("params",.X))
1697"RTN","EDPBPM",16,0)
1698 Q
1699"RTN","EDPBPM",17,0)
1700SAVE(AREA,PARAM) ; save updated parameters
1701"RTN","EDPBPM",18,0)
1702 I '$D(^EDPB(231.9,AREA,0)) D XML^EDPX("Area not set up") Q
1703"RTN","EDPBPM",19,0)
1704 N FLD D NVPARSE^EDPX(.FLD,PARAM)
1705"RTN","EDPBPM",20,0)
1706 N FDA,FDAIEN,DIERR
1707"RTN","EDPBPM",21,0)
1708 S AREA=AREA_","
1709"RTN","EDPBPM",22,0)
1710 S FDA(231.9,AREA,1.1)=FLD("reqDiag")
1711"RTN","EDPBPM",23,0)
1712 S FDA(231.9,AREA,1.2)=FLD("codedDiag")
1713"RTN","EDPBPM",24,0)
1714 S FDA(231.9,AREA,1.3)=FLD("reqDisp")
1715"RTN","EDPBPM",25,0)
1716 S FDA(231.9,AREA,1.4)=FLD("reqDelay")
1717"RTN","EDPBPM",26,0)
1718 S FDA(231.9,AREA,1.5)=FLD("minDelay")
1719"RTN","EDPBPM",27,0)
1720 S FDA(231.9,AREA,1.6)=FLD("shiftOne")
1721"RTN","EDPBPM",28,0)
1722 S FDA(231.9,AREA,1.7)=FLD("shiftLen")
1723"RTN","EDPBPM",29,0)
1724 S FDA(231.9,AREA,1.8)=FLD("residents")
1725"RTN","EDPBPM",30,0)
1726 D FILE^DIE("","FDA","ERR")
1727"RTN","EDPBPM",31,0)
1728 I $D(DIERR) D FAIL($G(ERR("DIERR",1,"TEXT",1))) Q
1729"RTN","EDPBPM",32,0)
1730 D XML^EDPX("<save status='ok' />")
1731"RTN","EDPBPM",33,0)
1732 Q
1733"RTN","EDPBPM",34,0)
1734TZSAVE(AREA,TZDIFF) ; save time zone difference in minutes
1735"RTN","EDPBPM",35,0)
1736 N FDA,FDAIEN,DIERR
1737"RTN","EDPBPM",36,0)
1738 S AREA=AREA_","
1739"RTN","EDPBPM",37,0)
1740 S FDA(231.9,AREA,.03)=TZDIFF
1741"RTN","EDPBPM",38,0)
1742 D FILE^DIE("","FDA","ERR")
1743"RTN","EDPBPM",39,0)
1744 Q
1745"RTN","EDPBPM",40,0)
1746FAIL(ERR) ; set fail node
1747"RTN","EDPBPM",41,0)
1748 D XML^EDPX("<save status='fail' >"_ERR_"</save>")
1749"RTN","EDPBPM",42,0)
1750 Q
1751"RTN","EDPBRM")
17520^4^B8445684
1753"RTN","EDPBRM",1,0)
1754EDPBRM ;SLC/KCM - Room/Bed Configuration
1755"RTN","EDPBRM",2,0)
1756 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
1757"RTN","EDPBRM",3,0)
1758 ;
1759"RTN","EDPBRM",4,0)
1760LOAD(AREA) ; Load the list of rooms/beds for this area
1761"RTN","EDPBRM",5,0)
1762 N BED,SEQ,BEDS,X0
1763"RTN","EDPBRM",6,0)
1764 ;
1765"RTN","EDPBRM",7,0)
1766 ; Get a list of all the beds in sequence for this area
1767"RTN","EDPBRM",8,0)
1768 S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
1769"RTN","EDPBRM",9,0)
1770 . S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999
1771"RTN","EDPBRM",10,0)
1772 . S BEDS(SEQ,BED)=""
1773"RTN","EDPBRM",11,0)
1774 ;
1775"RTN","EDPBRM",12,0)
1776 ; Build the XML for each bed in sequence
1777"RTN","EDPBRM",13,0)
1778 D XML^EDPX("<beds>")
1779"RTN","EDPBRM",14,0)
1780 S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D
1781"RTN","EDPBRM",15,0)
1782 . S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D
1783"RTN","EDPBRM",16,0)
1784 . . S X0=^EDPB(231.8,BED,0)
1785"RTN","EDPBRM",17,0)
1786 . . N X
1787"RTN","EDPBRM",18,0)
1788 . . S X("id")=BED
1789"RTN","EDPBRM",19,0)
1790 . . S X("name")=$P(X0,U)
1791"RTN","EDPBRM",20,0)
1792 . . S X("site")=$P(X0,U,2)
1793"RTN","EDPBRM",21,0)
1794 . . S X("area")=$P(X0,U,3)
1795"RTN","EDPBRM",22,0)
1796 . . S X("inactive")=$P(X0,U,4)
1797"RTN","EDPBRM",23,0)
1798 . . S X("seq")=$P(X0,U,5)
1799"RTN","EDPBRM",24,0)
1800 . . S X("display")=$P(X0,U,6)
1801"RTN","EDPBRM",25,0)
1802 . . S X("when")=$P(X0,U,7)
1803"RTN","EDPBRM",26,0)
1804 . . S X("status")=$P(X0,U,8)
1805"RTN","EDPBRM",27,0)
1806 . . S X("multi")=$P(X0,U,9)
1807"RTN","EDPBRM",28,0)
1808 . . S X("shared")=$P(X0,U,10)
1809"RTN","EDPBRM",29,0)
1810 . . S X("board")=$P(X0,U,11)
1811"RTN","EDPBRM",30,0)
1812 . . S X("color")=$P(X0,U,12)
1813"RTN","EDPBRM",31,0)
1814 . . D XML^EDPX($$XMLA^EDPX("bed",.X))
1815"RTN","EDPBRM",32,0)
1816 D XML^EDPX("</beds>")
1817"RTN","EDPBRM",33,0)
1818 D CHOICES
1819"RTN","EDPBRM",34,0)
1820 Q
1821"RTN","EDPBRM",35,0)
1822SAVE(REQ) ; Save the updated bed list
1823"RTN","EDPBRM",36,0)
1824 ; loop thru the records and update where changed
1825"RTN","EDPBRM",37,0)
1826 N X,BED,ERR
1827"RTN","EDPBRM",38,0)
1828 S X="bed-",ERR=""
1829"RTN","EDPBRM",39,0)
1830 F S X=$O(REQ(X)) Q:$E(X,1,4)'="bed-" D
1831"RTN","EDPBRM",40,0)
1832 . K BED S BED=""
1833"RTN","EDPBRM",41,0)
1834 . D NVPARSE^EDPX(.BED,REQ(X,1))
1835"RTN","EDPBRM",42,0)
1836 . I BED("changed") D UPD(.BED,.ERR)
1837"RTN","EDPBRM",43,0)
1838 I $L(ERR) D XML^EDPX("<save status='fail' >"_ERR_"</save>") Q
1839"RTN","EDPBRM",44,0)
1840 D XML^EDPX("<save status='ok' />")
1841"RTN","EDPBRM",45,0)
1842 Q
1843"RTN","EDPBRM",46,0)
1844UPD(FLD,ERRMSG) ; Add/Update Record
1845"RTN","EDPBRM",47,0)
1846 N EDPIEN
1847"RTN","EDPBRM",48,0)
1848 S EDPIEN=FLD("id")_","
1849"RTN","EDPBRM",49,0)
1850 I FLD("id")=0 S EDPIEN="+1,"
1851"RTN","EDPBRM",50,0)
1852 ;
1853"RTN","EDPBRM",51,0)
1854 N FDA,FDAIEN,DIERR,ERR
1855"RTN","EDPBRM",52,0)
1856 S FDA(231.8,EDPIEN,.01)=FLD("name")
1857"RTN","EDPBRM",53,0)
1858 S FDA(231.8,EDPIEN,.02)=EDPSITE
1859"RTN","EDPBRM",54,0)
1860 S FDA(231.8,EDPIEN,.03)=FLD("area")
1861"RTN","EDPBRM",55,0)
1862 S FDA(231.8,EDPIEN,.04)=FLD("inactive")
1863"RTN","EDPBRM",56,0)
1864 S FDA(231.8,EDPIEN,.05)=FLD("seq")
1865"RTN","EDPBRM",57,0)
1866 S FDA(231.8,EDPIEN,.06)=FLD("display")
1867"RTN","EDPBRM",58,0)
1868 S FDA(231.8,EDPIEN,.07)=FLD("when")
1869"RTN","EDPBRM",59,0)
1870 S FDA(231.8,EDPIEN,.08)=FLD("status")
1871"RTN","EDPBRM",60,0)
1872 S FDA(231.8,EDPIEN,.09)=FLD("multi")
1873"RTN","EDPBRM",61,0)
1874 S FDA(231.8,EDPIEN,.1)=FLD("shared")
1875"RTN","EDPBRM",62,0)
1876 S FDA(231.8,EDPIEN,.11)=FLD("board")
1877"RTN","EDPBRM",63,0)
1878 S FDA(231.8,EDPIEN,.12)=FLD("color")
1879"RTN","EDPBRM",64,0)
1880 I EDPIEN="+1," D
1881"RTN","EDPBRM",65,0)
1882 . D UPDATE^DIE("","FDA","FDAIEN","ERR")
1883"RTN","EDPBRM",66,0)
1884 . I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. "
1885"RTN","EDPBRM",67,0)
1886 E D
1887"RTN","EDPBRM",68,0)
1888 . D FILE^DIE("","FDA","ERR")
1889"RTN","EDPBRM",69,0)
1890 . I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. "
1891"RTN","EDPBRM",70,0)
1892 Q
1893"RTN","EDPBRM",71,0)
1894CHOICES ; Load the choice lists
1895"RTN","EDPBRM",72,0)
1896 N I,X
1897"RTN","EDPBRM",73,0)
1898 F I=1:1 S X=$P($T(WHEN+I),";",3,99) Q:X="ZZZZZ" D XML^EDPX(X)
1899"RTN","EDPBRM",74,0)
1900 D CODES^EDPQLE1("status","status")
1901"RTN","EDPBRM",75,0)
1902 Q
1903"RTN","EDPBRM",76,0)
1904WHEN ; Display When Choices
1905"RTN","EDPBRM",77,0)
1906 ;;<displayWhen>
1907"RTN","EDPBRM",78,0)
1908 ;;<when label="Occupied" data="0" />
1909"RTN","EDPBRM",79,0)
1910 ;;<when label="Always" data="1" />
1911"RTN","EDPBRM",80,0)
1912 ;;<when label="Never" data="2" />
1913"RTN","EDPBRM",81,0)
1914 ;;</displayWhen>
1915"RTN","EDPBRM",82,0)
1916 ;;ZZZZZ
1917"RTN","EDPBRS")
19180^5^B17301676
1919"RTN","EDPBRS",1,0)
1920EDPBRS ;SLC/KCM - Reset Board Configuration
1921"RTN","EDPBRS",2,0)
1922 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
1923"RTN","EDPBRS",3,0)
1924 ;
1925"RTN","EDPBRS",4,0)
1926RESET(AREA) ; Set initial configuration for site & area
1927"RTN","EDPBRS",5,0)
1928 D SPEC(AREA),COLOR(AREA),ROOMS(AREA),PARAMS(AREA)
1929"RTN","EDPBRS",6,0)
1930 Q
1931"RTN","EDPBRS",7,0)
1932SPEC(AREA) ; Set up default board spec
1933"RTN","EDPBRS",8,0)
1934 ; assumes site, area passed in
1935"RTN","EDPBRS",9,0)
1936 N I,X,WP
1937"RTN","EDPBRS",10,0)
1938 F I=1:1 S X=$P($T(BRDXML+I),";",3,99) Q:$E(X,1,5)="zzzzz" S WP(I)=X
1939"RTN","EDPBRS",11,0)
1940 D WP^DIE(231.9,AREA_",",2,"","WP")
1941"RTN","EDPBRS",12,0)
1942 I $D(DIERR) W !,"spec update failed" Q
1943"RTN","EDPBRS",13,0)
1944 Q
1945"RTN","EDPBRS",14,0)
1946BRDXML ; XML for the board spec
1947"RTN","EDPBRS",15,0)
1948 ;;<spec>
1949"RTN","EDPBRS",16,0)
1950 ;;<row color="stsAcuity"/>
1951"RTN","EDPBRS",17,0)
1952 ;;<col att="@bedNm" header="Room" color="" width="48" label="Room / Bed"/>
1953"RTN","EDPBRS",18,0)
1954 ;;<col att="@last4" header="Patient" color="" width="58" label="Patient X9999"/>
1955"RTN","EDPBRS",19,0)
1956 ;;<col att="@complaint" header="Complaint" color="" width="406" label="Complaint"/>
1957"RTN","EDPBRS",20,0)
1958 ;;<col att="@mdNm" header="Prv" color="" width="51" label="Provider Initials"/>
1959"RTN","EDPBRS",21,0)
1960 ;;<col att="@resNm" header="Res" color="" width="51" label="Resident Initials"/>
1961"RTN","EDPBRS",22,0)
1962 ;;<col att="@rnNm" header="RN" color="" width="51" label="Nurse Initials"/>
1963"RTN","EDPBRS",23,0)
1964 ;;<col att="@acuityNm" header="Acuity" color="" width="51" label="Acuity"/>
1965"RTN","EDPBRS",24,0)
1966 ;;<col att="@emins" header="E Mins" color="" width="51" label="Total Minutes"/>
1967"RTN","EDPBRS",25,0)
1968 ;;<col att="@lab" header="L" color="labUrg" width="51" label="Lab Active/Complete"/>
1969"RTN","EDPBRS",26,0)
1970 ;;<col att="@rad" header="I" color="radUrg" width="61" label="Imaging Active/Complete"/>
1971"RTN","EDPBRS",27,0)
1972 ;;</spec>
1973"RTN","EDPBRS",28,0)
1974 ;;zzzzz
1975"RTN","EDPBRS",29,0)
1976 ;;
1977"RTN","EDPBRS",30,0)
1978COLOR(AREA) ; Set up default colors
1979"RTN","EDPBRS",31,0)
1980 N I,X,WP
1981"RTN","EDPBRS",32,0)
1982 F I=1:1 S X=$P($T(CLRXML+I),";",3,99) Q:$E(X,1,5)="zzzzz" S WP(I)=X
1983"RTN","EDPBRS",33,0)
1984 D WP^DIE(231.9,AREA_",",3,"","WP")
1985"RTN","EDPBRS",34,0)
1986 I $D(DIERR) W !,"spec update failed" Q
1987"RTN","EDPBRS",35,0)
1988 Q
1989"RTN","EDPBRS",36,0)
1990CLRXML ; XML for the color spec
1991"RTN","EDPBRS",37,0)
1992 ;;<colors id="stsAcuity" type="val" >
1993"RTN","EDPBRS",38,0)
1994 ;;<map att="@status" clr="1,0xffffff,0x808000" val="8" />
1995"RTN","EDPBRS",39,0)
1996 ;;<map att="@status" clr="0" val="9" />
1997"RTN","EDPBRS",40,0)
1998 ;;<map att="@status" clr="0" val="10" />
1999"RTN","EDPBRS",41,0)
2000 ;;<map att="@status" clr="0" val="11" />
2001"RTN","EDPBRS",42,0)
2002 ;;<map att="@status" clr="1,0xffffff,0x800000" val="12" />
2003"RTN","EDPBRS",43,0)
2004 ;;<map att="@status" clr="1,0x000000,0xfffbf0" val="13" />
2005"RTN","EDPBRS",44,0)
2006 ;;<map att="@status" clr="1,0xff0000,0xc0dcc0" val="14" />
2007"RTN","EDPBRS",45,0)
2008 ;;<map att="@acuity" clr="1,0x000000,0xff0000" val="1" />
2009"RTN","EDPBRS",46,0)
2010 ;;<map att="@acuity" clr="1,0xffffff,0x0000ff" val="2" />
2011"RTN","EDPBRS",47,0)
2012 ;;<map att="@acuity" clr="1,0x000000,0xff00ff" val="3" />
2013"RTN","EDPBRS",48,0)
2014 ;;<map att="@acuity" clr="1,0x000000,0x00ff00" val="4" />
2015"RTN","EDPBRS",49,0)
2016 ;;<map att="@acuity" clr="0" nm="5" val="5" />
2017"RTN","EDPBRS",50,0)
2018 ;;</colors>
2019"RTN","EDPBRS",51,0)
2020 ;;<colors id="labUrg" nm="Urgency - Lab" type="val" >
2021"RTN","EDPBRS",52,0)
2022 ;;<map att="@labUrg" clr="1,0x000000,0x00ff00" val="0" />
2023"RTN","EDPBRS",53,0)
2024 ;;<map att="@labUrg" clr="1,0x000000,0xffff00" val="1" />
2025"RTN","EDPBRS",54,0)
2026 ;;<map att="@labUrg" clr="1,0x000000,0xff0000" val="2" />
2027"RTN","EDPBRS",55,0)
2028 ;;</colors>
2029"RTN","EDPBRS",56,0)
2030 ;;<colors id="radUrg" nm="Urgency - Radiology" type="val" >
2031"RTN","EDPBRS",57,0)
2032 ;;<map att="@radUrg" clr="1,0x000000,0x00ff00" val="0" />
2033"RTN","EDPBRS",58,0)
2034 ;;<map att="@radUrg" clr="1,0x000000,0xffff00" val="1" />
2035"RTN","EDPBRS",59,0)
2036 ;;<map att="@radUrg" clr="1,0x000000,0xff0000" val="2" />
2037"RTN","EDPBRS",60,0)
2038 ;;</colors>
2039"RTN","EDPBRS",61,0)
2040 ;;zzzzz
2041"RTN","EDPBRS",62,0)
2042 ;;
2043"RTN","EDPBRS",63,0)
2044ROOMS(AREA) ; baseline rooms
2045"RTN","EDPBRS",64,0)
2046 N I,X
2047"RTN","EDPBRS",65,0)
2048 F I=1:1 S X=$P($T(ROOMLST+I),";",3,99) Q:$E(X,1,5)="zzzzz" D
2049"RTN","EDPBRS",66,0)
2050 . N FDA,FDAIEN,DIERR,ERR
2051"RTN","EDPBRS",67,0)
2052 . S FDA(231.8,"+1,",.01)=$P(X,U)
2053"RTN","EDPBRS",68,0)
2054 . S FDA(231.8,"+1,",.02)=EDPSITE
2055"RTN","EDPBRS",69,0)
2056 . S FDA(231.8,"+1,",.03)=AREA
2057"RTN","EDPBRS",70,0)
2058 . S FDA(231.8,"+1,",.05)=$P(X,U,3)
2059"RTN","EDPBRS",71,0)
2060 . S FDA(231.8,"+1,",.06)=$P(X,U,2)
2061"RTN","EDPBRS",72,0)
2062 . S FDA(231.8,"+1,",.07)=$P(X,U,4)
2063"RTN","EDPBRS",73,0)
2064 . S FDA(231.8,"+1,",.09)=$P(X,U,5)
2065"RTN","EDPBRS",74,0)
2066 . D UPDATE^DIE("","FDA","FDAIEN","ERR")
2067"RTN","EDPBRS",75,0)
2068 Q
2069"RTN","EDPBRS",76,0)
2070ROOMLST ; Name^Display Name^Seq^When^Multi
2071"RTN","EDPBRS",77,0)
2072 ;;Waiting^WAIT^1^0^1
2073"RTN","EDPBRS",78,0)
2074 ;;Ambulance^AMBU^5^0^1
2075"RTN","EDPBRS",79,0)
2076 ;;Hallway^HALL^10^0^1
2077"RTN","EDPBRS",80,0)
2078 ;;General Radiology^RAD^110^0^1
2079"RTN","EDPBRS",81,0)
2080 ;;CT^CT^120^0^1
2081"RTN","EDPBRS",82,0)
2082 ;;MRI^MRI^130^0^1
2083"RTN","EDPBRS",83,0)
2084 ;;Cardiac Cath^CATH^140^0^1
2085"RTN","EDPBRS",84,0)
2086 ;;Cardiac Stress Test^STEST^150^0^1
2087"RTN","EDPBRS",85,0)
2088 ;;Dialysis^DIAL^160^0^1
2089"RTN","EDPBRS",86,0)
2090 ;;Subspecialty Clinic^SCLIN^170^0^1
2091"RTN","EDPBRS",87,0)
2092 ;;zzzzz
2093"RTN","EDPBRS",88,0)
2094PARAMS(AREA) ; baseline parameters
2095"RTN","EDPBRS",89,0)
2096 N FDA,DIERR
2097"RTN","EDPBRS",90,0)
2098 S AREA=AREA_","
2099"RTN","EDPBRS",91,0)
2100 S FDA(231.9,AREA,1.1)=1
2101"RTN","EDPBRS",92,0)
2102 S FDA(231.9,AREA,1.2)=1
2103"RTN","EDPBRS",93,0)
2104 S FDA(231.9,AREA,1.3)=1
2105"RTN","EDPBRS",94,0)
2106 S FDA(231.9,AREA,1.4)=1
2107"RTN","EDPBRS",95,0)
2108 S FDA(231.9,AREA,1.5)=300
2109"RTN","EDPBRS",96,0)
2110 S FDA(231.9,AREA,1.6)=420
2111"RTN","EDPBRS",97,0)
2112 S FDA(231.9,AREA,1.7)=480
2113"RTN","EDPBRS",98,0)
2114 S FDA(231.9,AREA,1.8)=1
2115"RTN","EDPBRS",99,0)
2116 D FILE^DIE("","FDA","ERR")
2117"RTN","EDPBRS",100,0)
2118 Q
2119"RTN","EDPBSL")
21200^6^B10687935
2121"RTN","EDPBSL",1,0)
2122EDPBSL ;SLC/KCM - Selection List Configuration
2123"RTN","EDPBSL",2,0)
2124 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
2125"RTN","EDPBSL",3,0)
2126 ;
2127"RTN","EDPBSL",4,0)
2128LOAD(AREA) ; Load selection lists for area
2129"RTN","EDPBSL",5,0)
2130 ;D LIST("acuity","Acuity")
2131"RTN","EDPBSL",6,0)
2132 D LIST("status","Status")
2133"RTN","EDPBSL",7,0)
2134 D LIST("arrival","Mode of Arrival")
2135"RTN","EDPBSL",8,0)
2136 D LIST("disposition","Disposition")
2137"RTN","EDPBSL",9,0)
2138 D LIST("delay","Delay Reason")
2139"RTN","EDPBSL",10,0)
2140 Q
2141"RTN","EDPBSL",11,0)
2142LIST(NM,TITLE) ; build XML for selection list
2143"RTN","EDPBSL",12,0)
2144 N SETNM S SETNM=EDPSITE_"."_NM
2145"RTN","EDPBSL",13,0)
2146 I '$D(^EDPB(233.2,"B",SETNM)) S SETNM="edp."_NM
2147"RTN","EDPBSL",14,0)
2148 D XML^EDPX("<"_NM_" title='"_TITLE_"'>")
2149"RTN","EDPBSL",15,0)
2150 N IEN,SEQ,DA,X0
2151"RTN","EDPBSL",16,0)
2152 S IEN=$O(^EDPB(233.2,"B",SETNM,0))
2153"RTN","EDPBSL",17,0)
2154 S SEQ=0 F S SEQ=$O(^EDPB(233.2,IEN,1,"B",SEQ)) Q:'SEQ D
2155"RTN","EDPBSL",18,0)
2156 . S DA=0 F S DA=$O(^EDPB(233.2,IEN,1,"B",SEQ,DA)) Q:'DA D
2157"RTN","EDPBSL",19,0)
2158 . . S X0=^EDPB(233.2,IEN,1,DA,0)
2159"RTN","EDPBSL",20,0)
2160 . . N X
2161"RTN","EDPBSL",21,0)
2162 . . S X("seq")=SEQ
2163"RTN","EDPBSL",22,0)
2164 . . S X("id")=$P(X0,U,2)
2165"RTN","EDPBSL",23,0)
2166 . . S X("inact")=$P(X0,U,3)
2167"RTN","EDPBSL",24,0)
2168 . . S X("show")=$P(X0,U,4)
2169"RTN","EDPBSL",25,0)
2170 . . S X("abbr")=$P(X0,U,5)
2171"RTN","EDPBSL",26,0)
2172 . . ; switch to entry in 233.1 now
2173"RTN","EDPBSL",27,0)
2174 . . S X0=^EDPB(233.1,X("id"),0)
2175"RTN","EDPBSL",28,0)
2176 . . I X("show")="" S X("show")=$P(X0,U,2)
2177"RTN","EDPBSL",29,0)
2178 . . I X("abbr")="" S X("abbr")=$P(X0,U,3)
2179"RTN","EDPBSL",30,0)
2180 . . S X("flag")=$P(X0,U,5)
2181"RTN","EDPBSL",31,0)
2182 . . D XML^EDPX($$XMLA^EDPX("code",.X))
2183"RTN","EDPBSL",32,0)
2184 D XML^EDPX("</"_NM_">")
2185"RTN","EDPBSL",33,0)
2186 Q
2187"RTN","EDPBSL",34,0)
2188SAVE(REQ) ; save the selection changes
2189"RTN","EDPBSL",35,0)
2190 N CTYP,SET,SETNM,CODE,X,EDPERR
2191"RTN","EDPBSL",36,0)
2192 S EDPERR=""
2193"RTN","EDPBSL",37,0)
2194 F CTYP="status","disposition","delay","arrival" D
2195"RTN","EDPBSL",38,0)
2196 . I $E($O(REQ(CTYP)),1,$L(CTYP))'=CTYP Q
2197"RTN","EDPBSL",39,0)
2198 . S SETNM=EDPSITE_"."_CTYP,SET=$O(^EDPB(233.2,"B",SETNM,0))
2199"RTN","EDPBSL",40,0)
2200 . I 'SET D NEWSET(SETNM) S SET=$O(^EDPB(233.2,"B",SETNM,0))
2201"RTN","EDPBSL",41,0)
2202 . D CLEARSET(SET)
2203"RTN","EDPBSL",42,0)
2204 . S X=CTYP F S X=$O(REQ(X)) Q:$E(X,1,$L(CTYP))'=CTYP D
2205"RTN","EDPBSL",43,0)
2206 . . K CODE S CODE="" D NVPARSE^EDPX(.CODE,REQ(X,1))
2207"RTN","EDPBSL",44,0)
2208 . . I CODE("id")<1 D ADDCODE(CTYP,.CODE)
2209"RTN","EDPBSL",45,0)
2210 . . D ADD2SET(SET,.CODE)
2211"RTN","EDPBSL",46,0)
2212 I $L(EDPERR) D XML^EDPX("<save status='fail' >"_EDPERR_"</save>") Q
2213"RTN","EDPBSL",47,0)
2214 D XML^EDPX("<save status='ok' />")
2215"RTN","EDPBSL",48,0)
2216 Q
2217"RTN","EDPBSL",49,0)
2218NEWSET(SETNM) ; Create a new code set for a site
2219"RTN","EDPBSL",50,0)
2220 N FDA,FDAIEN,DIERR,ERR
2221"RTN","EDPBSL",51,0)
2222 S FDA(233.2,"+1,",.01)=SETNM
2223"RTN","EDPBSL",52,0)
2224 D UPDATE^DIE("","FDA","FDAIEN","ERR")
2225"RTN","EDPBSL",53,0)
2226 I $D(DIERR) S EDPERR=EDPERR_"new code set failed;"
2227"RTN","EDPBSL",54,0)
2228 Q
2229"RTN","EDPBSL",55,0)
2230CLEARSET(SET) ; Clear the CODES mulitple
2231"RTN","EDPBSL",56,0)
2232 I '$O(^EDPB(233.2,SET,1,0)) Q ; no child nodes
2233"RTN","EDPBSL",57,0)
2234 N DA,DIK S DA=0,DA(1)=SET,DIK="^EDPB(233.2,"_DA(1)_",1,"
2235"RTN","EDPBSL",58,0)
2236 F S DA=$O(^EDPB(233.2,SET,1,DA)) Q:'DA D ^DIK
2237"RTN","EDPBSL",59,0)
2238 Q
2239"RTN","EDPBSL",60,0)
2240ADDCODE(CTYP,X) ; Add a new code to the TRACKING CODE file
2241"RTN","EDPBSL",61,0)
2242 Q:X("id")'=0
2243"RTN","EDPBSL",62,0)
2244 N NAME,DNAME,I
2245"RTN","EDPBSL",63,0)
2246 S NAME=EDPSITE_"."_CTYP_"."_$TR(X("show")," ","")
2247"RTN","EDPBSL",64,0)
2248 I $O(^EDPB(233.1,"B",NAME,0)) D
2249"RTN","EDPBSL",65,0)
2250 . F I=1:1:99 Q:'$O(^EDPB(233.1,"B",NAME_I,0))
2251"RTN","EDPBSL",66,0)
2252 . S NAME=NAME_I
2253"RTN","EDPBSL",67,0)
2254 N FDA,FDAIEN,DIERR,ERR
2255"RTN","EDPBSL",68,0)
2256 S FDA(233.1,"+1,",.01)=NAME
2257"RTN","EDPBSL",69,0)
2258 S FDA(233.1,"+1,",.02)=X("show")
2259"RTN","EDPBSL",70,0)
2260 S FDA(233.1,"+1,",.03)=X("abbr")
2261"RTN","EDPBSL",71,0)
2262 S FDA(233.1,"+1,",.05)=X("flag")
2263"RTN","EDPBSL",72,0)
2264 D UPDATE^DIE("","FDA","FDAIEN","ERR")
2265"RTN","EDPBSL",73,0)
2266 I $D(DIERR) S EDPERR=EDPERR_"add code "_NAME_"failed;"
2267"RTN","EDPBSL",74,0)
2268 S X("id")=FDAIEN(1),X("nm")=NAME
2269"RTN","EDPBSL",75,0)
2270 Q
2271"RTN","EDPBSL",76,0)
2272ADD2SET(SET,X) ; Add a new code to the CODES multiple
2273"RTN","EDPBSL",77,0)
2274 N FDA,FDAIEN,DIERR,ERR
2275"RTN","EDPBSL",78,0)
2276 S FDA(233.21,"+1,"_SET_",",.01)=X("seq")
2277"RTN","EDPBSL",79,0)
2278 S FDA(233.21,"+1,"_SET_",",.02)=X("id")
2279"RTN","EDPBSL",80,0)
2280 S FDA(233.21,"+1,"_SET_",",.03)=X("inact")
2281"RTN","EDPBSL",81,0)
2282 S FDA(233.21,"+1,"_SET_",",.04)=X("show")
2283"RTN","EDPBSL",82,0)
2284 S FDA(233.21,"+1,"_SET_",",.05)=X("abbr")
2285"RTN","EDPBSL",83,0)
2286 D UPDATE^DIE("","FDA","FDAIEN","ERR")
2287"RTN","EDPBSL",84,0)
2288 I $D(DIERR) S EDPERR=EDPERR_"add to set "_X("show")_" failed;"
2289"RTN","EDPBSL",85,0)
2290 Q
2291"RTN","EDPBST")
22920^7^B5671603
2293"RTN","EDPBST",1,0)
2294EDPBST ;SLC/KCM - Staff Configuration
2295"RTN","EDPBST",2,0)
2296 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
2297"RTN","EDPBST",3,0)
2298 ;
2299"RTN","EDPBST",4,0)
2300MATCH(X) ; Return matching providers
2301"RTN","EDPBST",5,0)
2302 Q
2303"RTN","EDPBST",6,0)
2304LOAD(AREA) ; Return nurse and provider sources, staff config
2305"RTN","EDPBST",7,0)
2306 D XML^EDPX("<providers>"),ACTIVE(AREA,"P"),XML^EDPX("</providers>")
2307"RTN","EDPBST",8,0)
2308 D XML^EDPX("<residents>"),ACTIVE(AREA,"R"),XML^EDPX("</residents>")
2309"RTN","EDPBST",9,0)
2310 D XML^EDPX("<nurses>"),ACTIVE(AREA,"N"),XML^EDPX("</nurses>")
2311"RTN","EDPBST",10,0)
2312 Q
2313"RTN","EDPBST",11,0)
2314ACTIVE(AREA,ROLE) ; build list of active for a role
2315"RTN","EDPBST",12,0)
2316 N IEN,X0,X
2317"RTN","EDPBST",13,0)
2318 S IEN=0 F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
2319"RTN","EDPBST",14,0)
2320 . S X0=^EDPB(231.7,IEN,0)
2321"RTN","EDPBST",15,0)
2322 . S X("nm")=$P(X0,U)
2323"RTN","EDPBST",16,0)
2324 . S X("duz")=$P(X0,U,5)
2325"RTN","EDPBST",17,0)
2326 . S X("role")=$P(X0,U,6)
2327"RTN","EDPBST",18,0)
2328 . S X("itl")=$P(X0,U,7)
2329"RTN","EDPBST",19,0)
2330 . S X("clr")=$P(X0,U,8)
2331"RTN","EDPBST",20,0)
2332 . D XML^EDPX($$XMLA^EDPX("staff",.X))
2333"RTN","EDPBST",21,0)
2334 Q
2335"RTN","EDPBST",22,0)
2336SAVE(REQ) ; save updated staff members
2337"RTN","EDPBST",23,0)
2338 N X,STAFF,ERR,EDPAREA
2339"RTN","EDPBST",24,0)
2340 S EDPAREA=$G(REQ("area",1))
2341"RTN","EDPBST",25,0)
2342 I EDPAREA="" D XML^EDPX("<save status='fail'>Missing Area</save>") Q
2343"RTN","EDPBST",26,0)
2344 ;
2345"RTN","EDPBST",27,0)
2346 S X="staff-",ERR=""
2347"RTN","EDPBST",28,0)
2348 F S X=$O(REQ(X)) Q:$E(X,1,6)'="staff-" D
2349"RTN","EDPBST",29,0)
2350 . K STAFF S STAFF=""
2351"RTN","EDPBST",30,0)
2352 . D NVPARSE^EDPX(.STAFF,REQ(X,1))
2353"RTN","EDPBST",31,0)
2354 . I STAFF("chg") D UPD(.STAFF,.ERR)
2355"RTN","EDPBST",32,0)
2356 ;
2357"RTN","EDPBST",33,0)
2358 I $L(ERR) D XML^EDPX("<save status='fail' >"_ERR_"</save>") Q
2359"RTN","EDPBST",34,0)
2360 D XML^EDPX("<save status='ok' />")
2361"RTN","EDPBST",35,0)
2362 Q
2363"RTN","EDPBST",36,0)
2364UPD(FLD,ERRMSG) ; Add/Update Record (expects EDPAREA, EDPSITE to be defined)
2365"RTN","EDPBST",37,0)
2366 N EDPIEN
2367"RTN","EDPBST",38,0)
2368 S EDPIEN=$O(^EDPB(231.7,"AD",EDPSITE,EDPAREA,+FLD("duz"),0))_","
2369"RTN","EDPBST",39,0)
2370 I 'EDPIEN,FLD("inact") Q ; don't add inactive selection
2371"RTN","EDPBST",40,0)
2372 I 'EDPIEN S EDPIEN="+1,"
2373"RTN","EDPBST",41,0)
2374 ;
2375"RTN","EDPBST",42,0)
2376 N FDA,FDAIEN,DIERR,ERR
2377"RTN","EDPBST",43,0)
2378 S FDA(231.7,EDPIEN,.01)=FLD("nm")
2379"RTN","EDPBST",44,0)
2380 S FDA(231.7,EDPIEN,.02)=EDPSITE
2381"RTN","EDPBST",45,0)
2382 S FDA(231.7,EDPIEN,.03)=EDPAREA
2383"RTN","EDPBST",46,0)
2384 S FDA(231.7,EDPIEN,.04)=FLD("inact")
2385"RTN","EDPBST",47,0)
2386 S FDA(231.7,EDPIEN,.05)=FLD("duz")
2387"RTN","EDPBST",48,0)
2388 S FDA(231.7,EDPIEN,.06)=FLD("role")
2389"RTN","EDPBST",49,0)
2390 S FDA(231.7,EDPIEN,.07)=FLD("itl")
2391"RTN","EDPBST",50,0)
2392 S FDA(231.7,EDPIEN,.08)=FLD("clr")
2393"RTN","EDPBST",51,0)
2394 I EDPIEN="+1," D
2395"RTN","EDPBST",52,0)
2396 . D UPDATE^DIE("","FDA","FDAIEN","ERR")
2397"RTN","EDPBST",53,0)
2398 . I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. "
2399"RTN","EDPBST",54,0)
2400 E D
2401"RTN","EDPBST",55,0)
2402 . D FILE^DIE("","FDA","ERR")
2403"RTN","EDPBST",56,0)
2404 . I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. "
2405"RTN","EDPBST",57,0)
2406 Q
2407"RTN","EDPCSV")
24080^8^B1174381
2409"RTN","EDPCSV",1,0)
2410EDPCSV ;SLC/MKB - CSV format utilities
2411"RTN","EDPCSV",2,0)
2412 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
2413"RTN","EDPCSV",3,0)
2414 ;
2415"RTN","EDPCSV",4,0)
2416EN(REQ) ; Controller for HTTP request
2417"RTN","EDPCSV",5,0)
2418 ;
2419"RTN","EDPCSV",6,0)
2420 S:'$G(EDPTEST) $ETRAP="D ^%ZTER H"
2421"RTN","EDPCSV",7,0)
2422 ;
2423"RTN","EDPCSV",8,0)
2424 N EDPSITE,EDPHTTP,EDPNULL,EDPFAIL,EDPCSV,I
2425"RTN","EDPCSV",9,0)
2426 D UESREQ^EDPX(.REQ) ; unescape the posted data
2427"RTN","EDPCSV",10,0)
2428 D SET^EDPZCTRL ; set up the environment, use null device
2429"RTN","EDPCSV",11,0)
2430 ;
2431"RTN","EDPCSV",12,0)
2432 D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"),1)
2433"RTN","EDPCSV",13,0)
2434 ;
2435"RTN","EDPCSV",14,0)
2436 U EDPHTTP
2437"RTN","EDPCSV",15,0)
2438 ;W "<results>",!
2439"RTN","EDPCSV",16,0)
2440 S I=0 F S I=$O(EDPCSV(I)) Q:'I W EDPCSV(I),!
2441"RTN","EDPCSV",17,0)
2442 ;W "</results>",!
2443"RTN","EDPCSV",18,0)
2444 Q
2445"RTN","EDPCSV",19,0)
2446 ;
2447"RTN","EDPCSV",20,0)
2448VAL(X) ; return value from request
2449"RTN","EDPCSV",21,0)
2450 Q $G(REQ(X,1))
2451"RTN","EDPCSV",22,0)
2452 ;
2453"RTN","EDPCSV",23,0)
2454ADD(X) ; -- add line X
2455"RTN","EDPCSV",24,0)
2456 S EDPCSV=+$G(EDPCSV)+1,EDPCSV(EDPCSV)=X
2457"RTN","EDPCSV",25,0)
2458 Q
2459"RTN","EDPCSV",26,0)
2460 ;
2461"RTN","EDPCSV",27,0)
2462BLANK ; -- add blank line
2463"RTN","EDPCSV",28,0)
2464 S EDPCSV=+$G(EDPCSV)+1,EDPCSV(EDPCSV)=""
2465"RTN","EDPCSV",29,0)
2466 Q
2467"RTN","EDPCTRL")
24680^9^B34504423
2469"RTN","EDPCTRL",1,0)
2470EDPCTRL ;SLC/KCM - Controller for ED Tracking
2471"RTN","EDPCTRL",2,0)
2472 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
2473"RTN","EDPCTRL",3,0)
2474 ;
2475"RTN","EDPCTRL",4,0)
2476RPC(EDPXML,SESS,PARAMS) ; Process request via RPC instead of CSP
2477"RTN","EDPCTRL",5,0)
2478 N X,REQ,EDPSITE,EDPUSER
2479"RTN","EDPCTRL",6,0)
2480 K EDPXML
2481"RTN","EDPCTRL",7,0)
2482 S EDPUSER=$P($G(SESS),U),EDPSITE=$P($G(SESS),U,2)
2483"RTN","EDPCTRL",8,0)
2484 S X="" F S X=$O(PARAMS(X)) Q:X="" S REQ(X,1)=PARAMS(X)
2485"RTN","EDPCTRL",9,0)
2486 ;
2487"RTN","EDPCTRL",10,0)
2488COMMON ; Come here for both CSP and RPC Mode
2489"RTN","EDPCTRL",11,0)
2490 ;
2491"RTN","EDPCTRL",12,0)
2492 N EDPFAIL,CMD
2493"RTN","EDPCTRL",13,0)
2494 S CMD=$G(REQ("command",1))
2495"RTN","EDPCTRL",14,0)
2496 ;
2497"RTN","EDPCTRL",15,0)
2498 ; switch on command
2499"RTN","EDPCTRL",16,0)
2500 ;
2501"RTN","EDPCTRL",17,0)
2502 ; ---------------------------------
2503"RTN","EDPCTRL",18,0)
2504 ;
2505"RTN","EDPCTRL",19,0)
2506 ; initUser -- MOVED TO FACILITY
2507"RTN","EDPCTRL",20,0)
2508 ; return <user />
2509"RTN","EDPCTRL",21,0)
2510 ; <view />...
2511"RTN","EDPCTRL",22,0)
2512 I CMD="initUser" D G OUT
2513"RTN","EDPCTRL",23,0)
2514 . D SESS^EDPFAA,VIEWS^EDPFAA
2515"RTN","EDPCTRL",24,0)
2516 ;
2517"RTN","EDPCTRL",25,0)
2518 ; ---------------------------------
2519"RTN","EDPCTRL",26,0)
2520 ;
2521"RTN","EDPCTRL",27,0)
2522 ; matchPatients -- MOVED TO FACILITY
2523"RTN","EDPCTRL",28,0)
2524 ; return <ptlk />...<ptlk />
2525"RTN","EDPCTRL",29,0)
2526 I CMD="matchPatients" D G OUT
2527"RTN","EDPCTRL",30,0)
2528 . D MATCH^EDPFPTL($$VAL("partial"))
2529"RTN","EDPCTRL",31,0)
2530 ;
2531"RTN","EDPCTRL",32,0)
2532 ; ---------------------------------
2533"RTN","EDPCTRL",33,0)
2534 ;
2535"RTN","EDPCTRL",34,0)
2536 ; getPatientRecordFlags -- MOVED TO FACILITY
2537"RTN","EDPCTRL",35,0)
2538 ; return <sensitivePatient>
2539"RTN","EDPCTRL",36,0)
2540 ; <patientRecordFlags>
2541"RTN","EDPCTRL",37,0)
2542 I CMD="getPatientRecordFlags" D G OUT
2543"RTN","EDPCTRL",38,0)
2544 . D SEC^EDPFPTS($$VAL("patient"))
2545"RTN","EDPCTRL",39,0)
2546 ;
2547"RTN","EDPCTRL",40,0)
2548 ; ---------------------------------
2549"RTN","EDPCTRL",41,0)
2550 ;
2551"RTN","EDPCTRL",42,0)
2552 ; saveSecurityLog -- MOVED TO FACILITY
2553"RTN","EDPCTRL",43,0)
2554 ; return <save />
2555"RTN","EDPCTRL",44,0)
2556 I CMD="saveSecurityLog" D G OUT
2557"RTN","EDPCTRL",45,0)
2558 . D LOG^EDPFPTS($$VAL("patient"))
2559"RTN","EDPCTRL",46,0)
2560 ;
2561"RTN","EDPCTRL",47,0)
2562 ; ---------------------------------
2563"RTN","EDPCTRL",48,0)
2564 ;
2565"RTN","EDPCTRL",49,0)
2566 ; getLexiconMatches -- MOVED TO FACILITY
2567"RTN","EDPCTRL",50,0)
2568 ; return <items><item />...</items>
2569"RTN","EDPCTRL",51,0)
2570 I CMD="getLexiconMatches" D G OUT
2571"RTN","EDPCTRL",52,0)
2572 . D ICD^EDPFLEX($$VAL("text"))
2573"RTN","EDPCTRL",53,0)
2574 ;
2575"RTN","EDPCTRL",54,0)
2576 ; ---------------------------------
2577"RTN","EDPCTRL",55,0)
2578 ;
2579"RTN","EDPCTRL",56,0)
2580 ; initLogArea
2581"RTN","EDPCTRL",57,0)
2582 ; return <udp />
2583"RTN","EDPCTRL",58,0)
2584 ; <params disposition="" diagnosis="" delay="" delayMinutes="" />
2585"RTN","EDPCTRL",59,0)
2586 ; <logEntries><log />...</logEntries>
2587"RTN","EDPCTRL",60,0)
2588 I CMD="initLogArea" D G OUT
2589"RTN","EDPCTRL",61,0)
2590 . I $L($G(REQ("logEntry",1))) D UPD^EDPLOG(REQ("logEntry",1)) Q:$G(EDPFAIL)
2591"RTN","EDPCTRL",62,0)
2592 . D PARAM^EDPQAR($$VAL("area"))
2593"RTN","EDPCTRL",63,0)
2594 . D GET^EDPQLP($$VAL("area"),-1) ;-1 = force refresh
2595"RTN","EDPCTRL",64,0)
2596 ;
2597"RTN","EDPCTRL",65,0)
2598 ; ---------------------------------
2599"RTN","EDPCTRL",66,0)
2600 ;
2601"RTN","EDPCTRL",67,0)
2602 ; checkLogin -- OBSOLETE
2603"RTN","EDPCTRL",68,0)
2604 ; return <user />
2605"RTN","EDPCTRL",69,0)
2606 I CMD="checkLogin" D SESS^EDPFAA G OUT
2607"RTN","EDPCTRL",70,0)
2608 ;
2609"RTN","EDPCTRL",71,0)
2610 ; ---------------------------------
2611"RTN","EDPCTRL",72,0)
2612 ;
2613"RTN","EDPCTRL",73,0)
2614 ; initTracking
2615"RTN","EDPCTRL",74,0)
2616 ; return <user area="" areaNm="" />...
2617"RTN","EDPCTRL",75,0)
2618 I CMD="initTracking" D DFLTAREA^EDPQAR G OUT
2619"RTN","EDPCTRL",76,0)
2620 ;
2621"RTN","EDPCTRL",77,0)
2622 ; ---------------------------------
2623"RTN","EDPCTRL",78,0)
2624 ;
2625"RTN","EDPCTRL",79,0)
2626 ; refreshLogSelector
2627"RTN","EDPCTRL",80,0)
2628 ; return <logEntries><log />...</logEntries>
2629"RTN","EDPCTRL",81,0)
2630 I CMD="refreshLogSelector" D G OUT
2631"RTN","EDPCTRL",82,0)
2632 . D GET^EDPQLP($$VAL("area"),$$VAL("token"))
2633"RTN","EDPCTRL",83,0)
2634 ;
2635"RTN","EDPCTRL",84,0)
2636 ; ---------------------------------
2637"RTN","EDPCTRL",85,0)
2638 ;
2639"RTN","EDPCTRL",86,0)
2640 ; switchLogEntry
2641"RTN","EDPCTRL",87,0)
2642 ; return <udp />
2643"RTN","EDPCTRL",88,0)
2644 ; <logEntry>log fields...</logEntry>
2645"RTN","EDPCTRL",89,0)
2646 ; <choices>choice lists...</choices>
2647"RTN","EDPCTRL",90,0)
2648 I CMD="switchLogEntry" D G OUT
2649"RTN","EDPCTRL",91,0)
2650 . I $L($G(REQ("logEntry",1))) D UPD^EDPLOG(REQ("logEntry",1)) Q:$G(EDPFAIL)
2651"RTN","EDPCTRL",92,0)
2652 . D GET^EDPQLE($$VAL("logID"),$$VAL("getChoices"))
2653"RTN","EDPCTRL",93,0)
2654 ;
2655"RTN","EDPCTRL",94,0)
2656 ; ---------------------------------
2657"RTN","EDPCTRL",95,0)
2658 ;
2659"RTN","EDPCTRL",96,0)
2660 ; saveLogEntry
2661"RTN","EDPCTRL",97,0)
2662 ; return <upd />
2663"RTN","EDPCTRL",98,0)
2664 I CMD="saveLogEntry" D G OUT
2665"RTN","EDPCTRL",99,0)
2666 . D UPD^EDPLOG(REQ("logEntry",1)) Q:$G(EDPFAIL)
2667"RTN","EDPCTRL",100,0)
2668 ;
2669"RTN","EDPCTRL",101,0)
2670 ; ---------------------------------
2671"RTN","EDPCTRL",102,0)
2672 ;
2673"RTN","EDPCTRL",103,0)
2674 ; addPatientToLog
2675"RTN","EDPCTRL",104,0)
2676 ; return <upd />
2677"RTN","EDPCTRL",105,0)
2678 ; <add />
2679"RTN","EDPCTRL",106,0)
2680 ; <logEntry>log fields...</logEntry>
2681"RTN","EDPCTRL",107,0)
2682 ; <choices>choice lists...</choices>
2683"RTN","EDPCTRL",108,0)
2684 ; <logEntries><log />...</logEntries>
2685"RTN","EDPCTRL",109,0)
2686 I CMD="addPatientToLog" D G OUT
2687"RTN","EDPCTRL",110,0)
2688 . D ADD^EDPLOGA($$VAL("addPatient"),$$VAL("area"),$$VAL("localTime"),$$VAL("getChoices"))
2689"RTN","EDPCTRL",111,0)
2690 . Q:$G(EDPFAIL)
2691"RTN","EDPCTRL",112,0)
2692 . D GET^EDPQLP($$VAL("area"),-1)
2693"RTN","EDPCTRL",113,0)
2694 ;
2695"RTN","EDPCTRL",114,0)
2696 ; ---------------------------------
2697"RTN","EDPCTRL",115,0)
2698 ;
2699"RTN","EDPCTRL",116,0)
2700 ; deleteStubEntry
2701"RTN","EDPCTRL",117,0)
2702 ; return <upd />
2703"RTN","EDPCTRL",118,0)
2704 I CMD="deleteStubEntry" D G OUT
2705"RTN","EDPCTRL",119,0)
2706 . D DEL^EDPLOGA($$VAL("area"),$$VAL("logID"))
2707"RTN","EDPCTRL",120,0)
2708 ;
2709"RTN","EDPCTRL",121,0)
2710 ; ---------------------------------
2711"RTN","EDPCTRL",122,0)
2712 ;
2713"RTN","EDPCTRL",123,0)
2714 ; removeLogEntry
2715"RTN","EDPCTRL",124,0)
2716 ; return <upd />
2717"RTN","EDPCTRL",125,0)
2718 ; <logEntries><log />...</logEntries>
2719"RTN","EDPCTRL",126,0)
2720 I CMD="removeLogEntry" D G OUT
2721"RTN","EDPCTRL",127,0)
2722 . D UPD^EDPLOG(REQ("logEntry",1),1) Q:$G(EDPFAIL)
2723"RTN","EDPCTRL",128,0)
2724 . D GET^EDPQLP($$VAL("area"),-1)
2725"RTN","EDPCTRL",129,0)
2726 ;
2727"RTN","EDPCTRL",130,0)
2728 ; ---------------------------------
2729"RTN","EDPCTRL",131,0)
2730 ;
2731"RTN","EDPCTRL",132,0)
2732 ; initDisplayBoard
2733"RTN","EDPCTRL",133,0)
2734 ; return <spec>
2735"RTN","EDPCTRL",134,0)
2736 ; <color><map />...</color>...
2737"RTN","EDPCTRL",135,0)
2738 ; <rows><row />...</rows>
2739"RTN","EDPCTRL",136,0)
2740 I CMD="initDisplayBoard" D G OUT
2741"RTN","EDPCTRL",137,0)
2742 . D GET^EDPQDBS($$VAL("area"))
2743"RTN","EDPCTRL",138,0)
2744 . D GET^EDPQDB($$VAL("area"),$$VAL("board"),-1)
2745"RTN","EDPCTRL",139,0)
2746 ;
2747"RTN","EDPCTRL",140,0)
2748 ; ---------------------------------
2749"RTN","EDPCTRL",141,0)
2750 ;
2751"RTN","EDPCTRL",142,0)
2752 ; refreshDisplayBoard
2753"RTN","EDPCTRL",143,0)
2754 ; return <rows><row />...</rows>
2755"RTN","EDPCTRL",144,0)
2756 I CMD="refreshDisplayBoard" D G OUT
2757"RTN","EDPCTRL",145,0)
2758 . D GET^EDPQDB($$VAL("area"),$$VAL("board"),-1)
2759"RTN","EDPCTRL",146,0)
2760 ;
2761"RTN","EDPCTRL",147,0)
2762 ; ---------------------------------
2763"RTN","EDPCTRL",148,0)
2764 ;
2765"RTN","EDPCTRL",149,0)
2766 ; matchClosed
2767"RTN","EDPCTRL",150,0)
2768 ; return <visit />...
2769"RTN","EDPCTRL",151,0)
2770 I CMD="matchClosed" D G OUT
2771"RTN","EDPCTRL",152,0)
2772 . D CLOSED^EDPQLP($$VAL("area"),$$VAL("partial"))
2773"RTN","EDPCTRL",153,0)
2774 ;
2775"RTN","EDPCTRL",154,0)
2776 ; ---------------------------------
2777"RTN","EDPCTRL",155,0)
2778 ;
2779"RTN","EDPCTRL",156,0)
2780 ; loadConfiguration
2781"RTN","EDPCTRL",157,0)
2782 ; return <spec><row /><col />...</spec>
2783"RTN","EDPCTRL",158,0)
2784 ; <color><map />...</color>...
2785"RTN","EDPCTRL",159,0)
2786 ; <columnList><col />...</columnList>
2787"RTN","EDPCTRL",160,0)
2788 ; <colorMapList><colorMap><map />...</colorMapList>
2789"RTN","EDPCTRL",161,0)
2790 ; <beds><bed />...</beds>
2791"RTN","EDPCTRL",162,0)
2792 ; <displayWhen><when />...</displayWhen>
2793"RTN","EDPCTRL",163,0)
2794 ; <statusList><status />...</statusList>
2795"RTN","EDPCTRL",164,0)
2796 I CMD="loadConfiguration" D G OUT
2797"RTN","EDPCTRL",165,0)
2798 . D LOADBRD^EDPBCF($$VAL("area"))
2799"RTN","EDPCTRL",166,0)
2800 ;
2801"RTN","EDPCTRL",167,0)
2802 ; ---------------------------------
2803"RTN","EDPCTRL",168,0)
2804 ;
2805"RTN","EDPCTRL",169,0)
2806 ; saveConfigBoard
2807"RTN","EDPCTRL",170,0)
2808 ; return <save />
2809"RTN","EDPCTRL",171,0)
2810 I CMD="saveConfigBoard" D G OUT
2811"RTN","EDPCTRL",172,0)
2812 . D SAVEBRD^EDPBCF(.REQ) ; pass whole request for parsing
2813"RTN","EDPCTRL",173,0)
2814 ;
2815"RTN","EDPCTRL",174,0)
2816 ; ---------------------------------
2817"RTN","EDPCTRL",175,0)
2818 ;
2819"RTN","EDPCTRL",176,0)
2820 ; saveBedConfig
2821"RTN","EDPCTRL",177,0)
2822 ; return <save />
2823"RTN","EDPCTRL",178,0)
2824 I CMD="saveBedConfig" D G OUT
2825"RTN","EDPCTRL",179,0)
2826 . D SAVE^EDPBRM(.REQ) ; pass whole request for parsing
2827"RTN","EDPCTRL",180,0)
2828 ;
2829"RTN","EDPCTRL",181,0)
2830 ; ---------------------------------
2831"RTN","EDPCTRL",182,0)
2832 ;
2833"RTN","EDPCTRL",183,0)
2834 ; saveColorConfig
2835"RTN","EDPCTRL",184,0)
2836 ; return <save />
2837"RTN","EDPCTRL",185,0)
2838 I CMD="saveColorConfig" D G OUT
2839"RTN","EDPCTRL",186,0)
2840 . D SAVE^EDPBCM(.REQ) ; pass whole request for parsing
2841"RTN","EDPCTRL",187,0)
2842 ;
2843"RTN","EDPCTRL",188,0)
2844 ; ---------------------------------
2845"RTN","EDPCTRL",189,0)
2846 ;
2847"RTN","EDPCTRL",190,0)
2848 ; loadSelectionConfig
2849"RTN","EDPCTRL",191,0)
2850 ; return <selectionName><code />....</selectionName>...
2851"RTN","EDPCTRL",192,0)
2852 I CMD="loadSelectionConfig" D G OUT
2853"RTN","EDPCTRL",193,0)
2854 . D LOAD^EDPBSL($$VAL("area"))
2855"RTN","EDPCTRL",194,0)
2856 ;
2857"RTN","EDPCTRL",195,0)
2858 ; ---------------------------------
2859"RTN","EDPCTRL",196,0)
2860 ;
2861"RTN","EDPCTRL",197,0)
2862 ; loadStaffConfig
2863"RTN","EDPCTRL",198,0)
2864 ; return providers, nurses, staff for area
2865"RTN","EDPCTRL",199,0)
2866 I CMD="loadStaffConfig" D G OUT
2867"RTN","EDPCTRL",200,0)
2868 . D LOAD^EDPBST($$VAL("area"))
2869"RTN","EDPCTRL",201,0)
2870 ;
2871"RTN","EDPCTRL",202,0)
2872 ; ---------------------------------
2873"RTN","EDPCTRL",203,0)
2874 ;
2875"RTN","EDPCTRL",204,0)
2876 ; saveStaffConfig
2877"RTN","EDPCTRL",205,0)
2878 ; return <save />
2879"RTN","EDPCTRL",206,0)
2880 I CMD="saveStaffConfig" D G OUT
2881"RTN","EDPCTRL",207,0)
2882 . D SAVE^EDPBST(.REQ) ; pass whole request for parsing
2883"RTN","EDPCTRL",208,0)
2884 ;
2885"RTN","EDPCTRL",209,0)
2886 ; ---------------------------------
2887"RTN","EDPCTRL",210,0)
2888 ;
2889"RTN","EDPCTRL",211,0)
2890 ; matchPersons
2891"RTN","EDPCTRL",212,0)
2892 ; return <per />...<per />
2893"RTN","EDPCTRL",213,0)
2894 I CMD="matchPersons" D G OUT
2895"RTN","EDPCTRL",214,0)
2896 . D MATCH^EDPFPER($$VAL("partial"),$$VAL("personType"))
2897"RTN","EDPCTRL",215,0)
2898 ;
2899"RTN","EDPCTRL",216,0)
2900 ; ---------------------------------
2901"RTN","EDPCTRL",217,0)
2902 ;
2903"RTN","EDPCTRL",218,0)
2904 ; saveParamConfig
2905"RTN","EDPCTRL",219,0)
2906 ; return <save />
2907"RTN","EDPCTRL",220,0)
2908 I CMD="saveParamConfig" D G OUT
2909"RTN","EDPCTRL",221,0)
2910 . D SAVE^EDPBPM($$VAL("area"),$$VAL("param"))
2911"RTN","EDPCTRL",222,0)
2912 ;
2913"RTN","EDPCTRL",223,0)
2914 ; ---------------------------------
2915"RTN","EDPCTRL",224,0)
2916 ;
2917"RTN","EDPCTRL",225,0)
2918 ; saveSelectionConfig
2919"RTN","EDPCTRL",226,0)
2920 ; return <save />
2921"RTN","EDPCTRL",227,0)
2922 I CMD="saveSelectionConfig" D G OUT
2923"RTN","EDPCTRL",228,0)
2924 . D SAVE^EDPBSL(.REQ)
2925"RTN","EDPCTRL",229,0)
2926 ;
2927"RTN","EDPCTRL",230,0)
2928 ; ---------------------------------
2929"RTN","EDPCTRL",231,0)
2930 ;
2931"RTN","EDPCTRL",232,0)
2932 ; getReport
2933"RTN","EDPCTRL",233,0)
2934 ; return <logEntries><log />...</logEntries>
2935"RTN","EDPCTRL",234,0)
2936 ; <averages><all /><not /><adm /></averages>
2937"RTN","EDPCTRL",235,0)
2938 ; <providers><md />...</providers>
2939"RTN","EDPCTRL",236,0)
2940 I CMD="getReport" D G OUT
2941"RTN","EDPCTRL",237,0)
2942 . D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"))
2943"RTN","EDPCTRL",238,0)
2944 ;
2945"RTN","EDPCTRL",239,0)
2946 ; ---------------------------------
2947"RTN","EDPCTRL",240,0)
2948 ;
2949"RTN","EDPCTRL",241,0)
2950 ; getCSV
2951"RTN","EDPCTRL",242,0)
2952 ; return TAB separated values for report
2953"RTN","EDPCTRL",243,0)
2954 I CMD="getCSV" D G OUT
2955"RTN","EDPCTRL",244,0)
2956 . N EDPCSV ; CSV mode uses EDPCSV instead of EDPXML
2957"RTN","EDPCTRL",245,0)
2958 . D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"),1)
2959"RTN","EDPCTRL",246,0)
2960 . M EDPXML=EDPCSV
2961"RTN","EDPCTRL",247,0)
2962 ;
2963"RTN","EDPCTRL",248,0)
2964 ; ---------------------------------
2965"RTN","EDPCTRL",249,0)
2966 ; else
2967"RTN","EDPCTRL",250,0)
2968 D XML^EDPX("<error msg='"_$$MSG^EDPX(2300010)_"' />")
2969"RTN","EDPCTRL",251,0)
2970 ; end switch
2971"RTN","EDPCTRL",252,0)
2972 ;
2973"RTN","EDPCTRL",253,0)
2974OUT ; output the XML
2975"RTN","EDPCTRL",254,0)
2976 I $L($G(EDPHTTP)) D ; if in CSP mode
2977"RTN","EDPCTRL",255,0)
2978 . U EDPHTTP
2979"RTN","EDPCTRL",256,0)
2980 . W "<results>",!
2981"RTN","EDPCTRL",257,0)
2982 . N I S I=0 F S I=$O(EDPXML(I)) Q:'I W EDPXML(I),!
2983"RTN","EDPCTRL",258,0)
2984 . W "</results>",!
2985"RTN","EDPCTRL",259,0)
2986END Q
2987"RTN","EDPCTRL",260,0)
2988 ;
2989"RTN","EDPCTRL",261,0)
2990VAL(X) ; return value from request
2991"RTN","EDPCTRL",262,0)
2992 Q $G(REQ(X,1))
2993"RTN","EDPDD")
29940^10^B107293
2995"RTN","EDPDD",1,0)
2996EDPDD ;SLC/KCM - Test Update ED Log - Update
2997"RTN","EDPDD",2,0)
2998 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
2999"RTN","EDPDD",3,0)
3000 ;
3001"RTN","EDPDD",4,0)
3002ISGONE(STS) ;
3003"RTN","EDPDD",5,0)
3004 Q STS=$O(^EDPB(233.1,"B","edp.status.gone",0))
3005"RTN","EDPLOG")
30060^19^B16849923
3007"RTN","EDPLOG",1,0)
3008EDPLOG ;SLC/KCM - Update ED Log - Update
3009"RTN","EDPLOG",2,0)
3010 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
3011"RTN","EDPLOG",3,0)
3012 ;
3013"RTN","EDPLOG",4,0)
3014 ;TODO: add transaction processing
3015"RTN","EDPLOG",5,0)
3016 ;
3017"RTN","EDPLOG",6,0)
3018UPD(REQ,REMOVE) ; Update a record
3019"RTN","EDPLOG",7,0)
3020 N REC D NVPARSE^EDPX(.REC,REQ)
3021"RTN","EDPLOG",8,0)
3022 N IEN S IEN=$$VAL("id")
3023"RTN","EDPLOG",9,0)
3024 I '$G(IEN) D FAIL("upd",2300007) Q
3025"RTN","EDPLOG",10,0)
3026 I '$D(^EDP(230,IEN,0)) D FAIL("upd",2300006) Q
3027"RTN","EDPLOG",11,0)
3028 N ERR S ERR=$$VALID^EDPLOG1(.REC) I $L(ERR) D FAIL("upd",ERR) Q
3029"RTN","EDPLOG",12,0)
3030 ;
3031"RTN","EDPLOG",13,0)
3032 ; compute the local time
3033"RTN","EDPLOG",14,0)
3034 N TIME S TIME=$$FMADD^XLFDT($$NOW^XLFDT,0,0,+$P(^EDP(230,IEN,0),U,12),0)
3035"RTN","EDPLOG",15,0)
3036 ; before allowing remove, check the required fields
3037"RTN","EDPLOG",16,0)
3038 S REMOVE=$G(REMOVE,0)
3039"RTN","EDPLOG",17,0)
3040 I REMOVE D RDY2RMV Q:REC("status")'=$$CODE^EDPX("edp.status.gone")
3041"RTN","EDPLOG",18,0)
3042 ;
3043"RTN","EDPLOG",19,0)
3044 ; get the existing log entry
3045"RTN","EDPLOG",20,0)
3046 N X0,X1,X2,X3,AREA,I
3047"RTN","EDPLOG",21,0)
3048 S X0=^EDP(230,IEN,0),X1=$G(^(1)),X2=$G(^(2)),X3=$G(^(3))
3049"RTN","EDPLOG",22,0)
3050 S AREA=$P(X0,U,3),^EDPB(231.9,AREA,230)=$H ; last update timestamp
3051"RTN","EDPLOG",23,0)
3052 ;
3053"RTN","EDPLOG",24,0)
3054 ; if new DFN, register at site
3055"RTN","EDPLOG",25,0)
3056 I '$P(X0,U,6),+$$VAL("dfn") D NEWLOG^EDPMAIL(AREA,IEN,$$VAL("dfn"))
3057"RTN","EDPLOG",26,0)
3058 ;
3059"RTN","EDPLOG",27,0)
3060 N NAME,SSN S NAME=$$VAL("name"),SSN=$$VAL("ssn")
3061"RTN","EDPLOG",28,0)
3062 ; Update any fields that have values passed in
3063"RTN","EDPLOG",29,0)
3064 N FDA,FDAIEN,DIERR,HIST
3065"RTN","EDPLOG",30,0)
3066 D SETFDA(X0,4,"name",.04)
3067"RTN","EDPLOG",31,0)
3068 D SETFDA(X0,5,"ssn",.05)
3069"RTN","EDPLOG",32,0)
3070 D SETFDA(X0,6,"dfn",.06)
3071"RTN","EDPLOG",33,0)
3072 D SETFDA(X0,8,"inTS",.08)
3073"RTN","EDPLOG",34,0)
3074 D SETFDA(X0,9,"outTS",.09)
3075"RTN","EDPLOG",35,0)
3076 D SETFDA(X0,10,"arrival",.1)
3077"RTN","EDPLOG",36,0)
3078 D SETFDA(X1,1,"complaint",1.1)
3079"RTN","EDPLOG",37,0)
3080 D SETFDA(X2,1,"compLong",2)
3081"RTN","EDPLOG",38,0)
3082 D SETFDA(X3,2,"status",3.2)
3083"RTN","EDPLOG",39,0)
3084 D SETFDA(X3,3,"acuity",3.3)
3085"RTN","EDPLOG",40,0)
3086 D SETFDA(X3,4,"bed",3.4)
3087"RTN","EDPLOG",41,0)
3088 D SETFDA(X3,5,"provider",3.5)
3089"RTN","EDPLOG",42,0)
3090 D SETFDA(X3,6,"nurse",3.6)
3091"RTN","EDPLOG",43,0)
3092 D SETFDA(X3,7,"resident",3.7)
3093"RTN","EDPLOG",44,0)
3094 D SETFDA(X3,8,"comment",3.8)
3095"RTN","EDPLOG",45,0)
3096 D SETFDA(X1,5,"delay",1.5)
3097"RTN","EDPLOG",46,0)
3098 D SETFDA(X1,2,"disposition",1.2)
3099"RTN","EDPLOG",47,0)
3100 I $G(FDA(230,IEN_",",1.2)) S FDA(230,IEN_",",1.3)=TIME
3101"RTN","EDPLOG",48,0)
3102 I $L(NAME)&$L(SSN) S FDA(230,IEN_",",.11)=$E(NAME)_$E(SSN,6,9)
3103"RTN","EDPLOG",49,0)
3104 I $D(HIST)>9 D SAVE^EDPLOGH(IEN,TIME,.HIST)
3105"RTN","EDPLOG",50,0)
3106 I $D(FDA)>9 D FILE^DIE("","FDA","ERR")
3107"RTN","EDPLOG",51,0)
3108 I $D(DIERR) D FAIL("upd",2300008) Q
3109"RTN","EDPLOG",52,0)
3110 K FDA,ERR
3111"RTN","EDPLOG",53,0)
3112 ;
3113"RTN","EDPLOG",54,0)
3114D1 N DIAG S DIAG="diagnosis-0",I=0
3115"RTN","EDPLOG",55,0)
3116 F S DIAG=$O(REC(DIAG)) Q:$E(DIAG,1,10)'="diagnosis-" D
3117"RTN","EDPLOG",56,0)
3118 . S I=I+1,REC("diagnosis",I)=REC(DIAG)
3119"RTN","EDPLOG",57,0)
3120 I $D(REC("diagnosis"))>9 D Q:$D(DIERR) ; replace the diagnosis multiple
3121"RTN","EDPLOG",58,0)
3122 . D DELDIAG(IEN)
3123"RTN","EDPLOG",59,0)
3124 . S FDA(230,IEN_",",1.4)=TIME
3125"RTN","EDPLOG",60,0)
3126 . S I=0 F S I=$O(REC("diagnosis",I)) Q:'I D
3127"RTN","EDPLOG",61,0)
3128 . . S FDA(230.04,"+"_I_","_IEN_",",.01)=$P(REC("diagnosis",I),U,3)
3129"RTN","EDPLOG",62,0)
3130 . . S FDA(230.04,"+"_I_","_IEN_",",.02)=$P(REC("diagnosis",I),U,2)
3131"RTN","EDPLOG",63,0)
3132 . D UPDATE^DIE("","FDA","FDAIEN","ERR")
3133"RTN","EDPLOG",64,0)
3134 . I $D(DIERR) D FAIL("upd",2300008) Q
3135"RTN","EDPLOG",65,0)
3136 . K FDA,FDAIEN,ERR
3137"RTN","EDPLOG",66,0)
3138 ;
3139"RTN","EDPLOG",67,0)
3140 D XML^EDPX("<upd status='ok' id='"_IEN_"' />")
3141"RTN","EDPLOG",68,0)
3142 Q
3143"RTN","EDPLOG",69,0)
3144DELDIAG(IEN) ; delete the diagnosis multiple
3145"RTN","EDPLOG",70,0)
3146 I '$O(^EDP(230,IEN,4,0)) Q ; no child nodes
3147"RTN","EDPLOG",71,0)
3148 N DA,DIK S DA=0,DA(1)=IEN,DIK="^EDP(230,"_DA(1)_",4,"
3149"RTN","EDPLOG",72,0)
3150 F S DA=$O(^EDP(230,IEN,4,DA)) Q:'DA D ^DIK
3151"RTN","EDPLOG",73,0)
3152 Q
3153"RTN","EDPLOG",74,0)
3154RDY2RMV ; check required fields & set up so ready to remove
3155"RTN","EDPLOG",75,0)
3156 ; called from UPD, expects REC and IEN and TIME
3157"RTN","EDPLOG",76,0)
3158 N X,X1,AREA,MIN
3159"RTN","EDPLOG",77,0)
3160 S X="",AREA=$P(^EDP(230,IEN,0),U,3),X1=$G(^EDPB(231.9,AREA,1))
3161"RTN","EDPLOG",78,0)
3162 S MIN=$$VAL("inTS") S:'MIN MIN=$P(^EDP(230,IEN,0),U,8)
3163"RTN","EDPLOG",79,0)
3164 S MIN=$$FMDIFF^XLFDT(TIME,MIN,2)\60
3165"RTN","EDPLOG",80,0)
3166 I $P(X1,U,1),'$L($$VAL("diagnosis-1")) S X="diagnosis "
3167"RTN","EDPLOG",81,0)
3168 I $P(X1,U,3),'$$VAL("disposition") S X=X_"disposition "
3169"RTN","EDPLOG",82,0)
3170 I $P(X1,U,4),(MIN>$P(X1,U,5)),'$$VAL("delay") S X=X_" delay reason"
3171"RTN","EDPLOG",83,0)
3172 I $L(X) D FAIL("upd","Fields required for remove are missing: "_X) Q
3173"RTN","EDPLOG",84,0)
3174 I '$$VAL("outTS") S REC("outTS")=TIME
3175"RTN","EDPLOG",85,0)
3176 S REC("status")=$$CODE^EDPX("edp.status.gone")
3177"RTN","EDPLOG",86,0)
3178 ; unregister DFN at site
3179"RTN","EDPLOG",87,0)
3180 D DELLOG^EDPMAIL(AREA,IEN)
3181"RTN","EDPLOG",88,0)
3182 Q
3183"RTN","EDPLOG",89,0)
3184VAL(X) ; Returns parameter value or null
3185"RTN","EDPLOG",90,0)
3186 ; HTTP passes HTML-escaped values in an array as REC(param,1)
3187"RTN","EDPLOG",91,0)
3188 Q $G(REC(X))
3189"RTN","EDPLOG",92,0)
3190 ;
3191"RTN","EDPLOG",93,0)
3192SETFDA(NODE,P,SUB,FLD) ; Creates value in FDA & HIST arrays as appropriate
3193"RTN","EDPLOG",94,0)
3194 ; from UPD, expects REC, FDA, HIST to be defined
3195"RTN","EDPLOG",95,0)
3196 Q:'$D(REC(SUB)) ; value not sent in message
3197"RTN","EDPLOG",96,0)
3198 Q:$P(NODE,U,P)=REC(SUB) ; value is the same
3199"RTN","EDPLOG",97,0)
3200 S FDA(230,IEN_",",FLD)=REC(SUB)
3201"RTN","EDPLOG",98,0)
3202 ; save the changed fields in the history
3203"RTN","EDPLOG",99,0)
3204 I $L(REC(SUB)) D
3205"RTN","EDPLOG",100,0)
3206 . S:FLD=1.1 FLD=.07 ; complaint
3207"RTN","EDPLOG",101,0)
3208 . S:FLD=1.2 FLD=.11 ; disposition
3209"RTN","EDPLOG",102,0)
3210 . S:FLD=1.5 FLD=.12 ; delay
3211"RTN","EDPLOG",103,0)
3212 . S HIST(230.1,"+1,",FLD)=REC(SUB)
3213"RTN","EDPLOG",104,0)
3214 Q
3215"RTN","EDPLOG",105,0)
3216FAIL(ELEM,MSG) ; creates failure node for returned XML
3217"RTN","EDPLOG",106,0)
3218 N X
3219"RTN","EDPLOG",107,0)
3220 I +MSG S MSG=$$MSG^EDPX(MSG)
3221"RTN","EDPLOG",108,0)
3222 S X="<"_ELEM_" id='"_$$VAL("id")_"' status='fail' msg='"_MSG_"' />"
3223"RTN","EDPLOG",109,0)
3224 D XML^EDPX(X)
3225"RTN","EDPLOG",110,0)
3226 S EDPFAIL=1
3227"RTN","EDPLOG",111,0)
3228 Q
3229"RTN","EDPLOG1")
32300^20^B2757150
3231"RTN","EDPLOG1",1,0)
3232EDPLOG1 ;SLC/KCM - Update ED Log - Validate
3233"RTN","EDPLOG1",2,0)
3234 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
3235"RTN","EDPLOG1",3,0)
3236 ;
3237"RTN","EDPLOG1",4,0)
3238VALID(REC) ; validate the entries passed in REC
3239"RTN","EDPLOG1",5,0)
3240 D XLATE("arrival")
3241"RTN","EDPLOG1",6,0)
3242 D XLATE("bed")
3243"RTN","EDPLOG1",7,0)
3244 D XLATE("acuity")
3245"RTN","EDPLOG1",8,0)
3246 D XLATE("status")
3247"RTN","EDPLOG1",9,0)
3248 D XLATE("provider")
3249"RTN","EDPLOG1",10,0)
3250 D XLATE("nurse")
3251"RTN","EDPLOG1",11,0)
3252 D XLATE("resident")
3253"RTN","EDPLOG1",12,0)
3254 D XLATE("disposition")
3255"RTN","EDPLOG1",13,0)
3256 D XLATE("delay")
3257"RTN","EDPLOG1",14,0)
3258 ;
3259"RTN","EDPLOG1",15,0)
3260 N ERR S ERR=""
3261"RTN","EDPLOG1",16,0)
3262 D ADDTXT(.ERR,$$CHECK("name",230,.04,"Patient Name"))
3263"RTN","EDPLOG1",17,0)
3264 D ADDTXT(.ERR,$$CHECK("ssn",230,.05,"Social Security Number"))
3265"RTN","EDPLOG1",18,0)
3266 D ADDTXT(.ERR,$$CHECK("complaint",230,1.1,"Complaint"))
3267"RTN","EDPLOG1",19,0)
3268 D ADDTXT(.ERR,$$CHECK("compLong",230,2,"Long Complaint"))
3269"RTN","EDPLOG1",20,0)
3270 D ADDTXT(.ERR,$$CHECK("comment",230,3.8,"Comment"))
3271"RTN","EDPLOG1",21,0)
3272 ;
3273"RTN","EDPLOG1",22,0)
3274 N DIAG S DIAG="diagnosis-0"
3275"RTN","EDPLOG1",23,0)
3276 F S DIAG=$O(REC(DIAG)) Q:$E(DIAG,1,10)'="diagnosis-" D
3277"RTN","EDPLOG1",24,0)
3278 . S REC("edpDiagnosis")=$P(REC(DIAG),U,2)
3279"RTN","EDPLOG1",25,0)
3280 . D ADDTXT(ERR,$$CHECK("edpDiagnosis",230.04,.01,"Diagnosis"))
3281"RTN","EDPLOG1",26,0)
3282 Q ERR
3283"RTN","EDPLOG1",27,0)
3284 ;
3285"RTN","EDPLOG1",28,0)
3286CHECK(NAME,FILE,FIELD,MSG) ; return error msg if field is not valid
3287"RTN","EDPLOG1",29,0)
3288 ; called from VALID, assumes REC is defined
3289"RTN","EDPLOG1",30,0)
3290 N VAL,RESULT
3291"RTN","EDPLOG1",31,0)
3292 S VAL=$G(REC(NAME))
3293"RTN","EDPLOG1",32,0)
3294 Q:VAL="" ""
3295"RTN","EDPLOG1",33,0)
3296 D CHK^DIE(FILE,FIELD,"",VAL,.RESULT)
3297"RTN","EDPLOG1",34,0)
3298 Q:RESULT="^" MSG_" is not valid."
3299"RTN","EDPLOG1",35,0)
3300 Q ""
3301"RTN","EDPLOG1",36,0)
3302ADDTXT(X,NEW) ; add new text comma delimited
3303"RTN","EDPLOG1",37,0)
3304 I $L(NEW),$L(X) S X=X_", "_NEW
3305"RTN","EDPLOG1",38,0)
3306 I $L(NEW),'$L(X) S X=NEW
3307"RTN","EDPLOG1",39,0)
3308 Q
3309"RTN","EDPLOG1",40,0)
3310XLATE(NAME) ;
3311"RTN","EDPLOG1",41,0)
3312 Q:'$D(REC(NAME))
3313"RTN","EDPLOG1",42,0)
3314 ;I REC(NAME)=0 S REC(NAME)="" ; store 0 when removing staff
3315"RTN","EDPLOG1",43,0)
3316 I REC(NAME)=-1 S REC(NAME)="@"
3317"RTN","EDPLOG1",44,0)
3318 Q
3319"RTN","EDPLOGA")
33200^21^B7949056
3321"RTN","EDPLOGA",1,0)
3322EDPLOGA ;SLC/KCM - Add Entry to ED Log
3323"RTN","EDPLOGA",2,0)
3324 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
3325"RTN","EDPLOGA",3,0)
3326 ;
3327"RTN","EDPLOGA",4,0)
3328 ;TODO: add transaction processing
3329"RTN","EDPLOGA",5,0)
3330 ;
3331"RTN","EDPLOGA",6,0)
3332ADD(NEWPT,AREA,TIME,CHOICES) ; Create a new ED Log record for a patient
3333"RTN","EDPLOGA",7,0)
3334 ; add the new record to the returned XML
3335"RTN","EDPLOGA",8,0)
3336 ; NEWPT = dfn \T name \T dob \T ssn
3337"RTN","EDPLOGA",9,0)
3338 N DFN,NAME,SSN,TZMIN,STATUS,BED,ARR,REC,AMB
3339"RTN","EDPLOGA",10,0)
3340 S AMB="(ambulance en route)"
3341"RTN","EDPLOGA",11,0)
3342 ;
3343"RTN","EDPLOGA",12,0)
3344 ; Set up the patient fields that were passed in
3345"RTN","EDPLOGA",13,0)
3346 D NVPARSE^EDPX(.REC,NEWPT)
3347"RTN","EDPLOGA",14,0)
3348 S DFN=REC("dfn")
3349"RTN","EDPLOGA",15,0)
3350 ;I DFN S REC("name")=$P(^DPT(DFN,0),U,1),REC("ssn")=$P(^DPT(DFN,0),U,9)
3351"RTN","EDPLOGA",16,0)
3352 S NAME=REC("name")
3353"RTN","EDPLOGA",17,0)
3354 S SSN=REC("ssn") S:SSN="*SENSITIVE*" SSN=""
3355"RTN","EDPLOGA",18,0)
3356 ; calculate time zone minutes -- add these to server time to get local time
3357"RTN","EDPLOGA",19,0)
3358 S TZMIN=$$FMDIFF^XLFDT($$NOW^XLFDT,TIME,2)\60
3359"RTN","EDPLOGA",20,0)
3360 I $P($G(^EDPB(231.9,AREA,0)),U,3)-TZMIN>10 D TZSAVE^EDPBPM(AREA,TZMIN)
3361"RTN","EDPLOGA",21,0)
3362 ;
3363"RTN","EDPLOGA",22,0)
3364 ; Add default values to stub entry (should be based on config for area)
3365"RTN","EDPLOGA",23,0)
3366 S BED=$O(^EDPB(231.8,"AC",EDPSITE,AREA,"WAIT",0))
3367"RTN","EDPLOGA",24,0)
3368 I $G(REC("name"))=AMB D
3369"RTN","EDPLOGA",25,0)
3370 . S ARR=$O(^EDPB(233.1,"B","edp.arrival.ambulance",0))
3371"RTN","EDPLOGA",26,0)
3372 . S BED=$O(^EDPB(231.8,"AC",EDPSITE,AREA,"AMBU",0))
3373"RTN","EDPLOGA",27,0)
3374 ;
3375"RTN","EDPLOGA",28,0)
3376 I +DFN,$D(^EDP(230,"AP",EDPSITE,AREA,DFN)) D FAIL^EDPLOG("add",2300002) Q
3377"RTN","EDPLOGA",29,0)
3378 I +SSN,$D(^EDP(230,"AS",EDPSITE,AREA,SSN)) D FAIL^EDPLOG("add",2300002) Q
3379"RTN","EDPLOGA",30,0)
3380 N ERR S ERR=$$VALID^EDPLOG1(.REC) I $L(ERR) D FAIL^EDPLOG("add",ERR) Q
3381"RTN","EDPLOGA",31,0)
3382 S ^EDPB(231.9,AREA,230)=$H ; last update timestamp
3383"RTN","EDPLOGA",32,0)
3384 ;
3385"RTN","EDPLOGA",33,0)
3386 ; Create a current log record
3387"RTN","EDPLOGA",34,0)
3388 N FDA,FDAIEN,DIERR,HIST,HISTIEN,LOGIEN
3389"RTN","EDPLOGA",35,0)
3390 S FDA(230,"+1,",.01)=TIME
3391"RTN","EDPLOGA",36,0)
3392 S FDA(230,"+1,",.02)=EDPSITE
3393"RTN","EDPLOGA",37,0)
3394 S FDA(230,"+1,",.03)=AREA
3395"RTN","EDPLOGA",38,0)
3396 S FDA(230,"+1,",.04)=NAME
3397"RTN","EDPLOGA",39,0)
3398 S FDA(230,"+1,",.05)=SSN
3399"RTN","EDPLOGA",40,0)
3400 S FDA(230,"+1,",.06)=DFN
3401"RTN","EDPLOGA",41,0)
3402 S FDA(230,"+1,",.12)=TZMIN
3403"RTN","EDPLOGA",42,0)
3404 S FDA(230,"+1,",3.4)=BED
3405"RTN","EDPLOGA",43,0)
3406 I $L(SSN) S FDA(230,"+1,",.11)=$E(NAME)_$E(SSN,6,9)
3407"RTN","EDPLOGA",44,0)
3408 I NAME=AMB S FDA(230,"+1,",.11)="(amb)"
3409"RTN","EDPLOGA",45,0)
3410 I NAME'=AMB S FDA(230,"+1,",.08)=TIME
3411"RTN","EDPLOGA",46,0)
3412 I $G(ARR) S FDA(230,"+1,",.1)=ARR
3413"RTN","EDPLOGA",47,0)
3414 M HIST(230.1)=FDA(230)
3415"RTN","EDPLOGA",48,0)
3416 D UPDATE^DIE("","FDA","FDAIEN","ERR")
3417"RTN","EDPLOGA",49,0)
3418 I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q
3419"RTN","EDPLOGA",50,0)
3420 S LOGIEN=FDAIEN(1)
3421"RTN","EDPLOGA",51,0)
3422 ;
3423"RTN","EDPLOGA",52,0)
3424 ; Create the first history entry
3425"RTN","EDPLOGA",53,0)
3426 S HIST(230.1,"+1,",.01)=LOGIEN
3427"RTN","EDPLOGA",54,0)
3428 S HIST(230.1,"+1,",.02)=TIME
3429"RTN","EDPLOGA",55,0)
3430 S HIST(230.1,"+1,",.03)=EDPUSER
3431"RTN","EDPLOGA",56,0)
3432 K HIST(230.1,"+1,",.11)
3433"RTN","EDPLOGA",57,0)
3434 D UPDATE^DIE("","HIST","HISTIEN","ERR")
3435"RTN","EDPLOGA",58,0)
3436 I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q
3437"RTN","EDPLOGA",59,0)
3438 ;
3439"RTN","EDPLOGA",60,0)
3440 ; register DFN at site
3441"RTN","EDPLOGA",61,0)
3442 I +DFN D NEWLOG^EDPMAIL(AREA,LOGIEN,DFN)
3443"RTN","EDPLOGA",62,0)
3444 ;
3445"RTN","EDPLOGA",63,0)
3446 D XML^EDPX("<add status='ok' id='"_FDAIEN(1)_"' />")
3447"RTN","EDPLOGA",64,0)
3448 ;
3449"RTN","EDPLOGA",65,0)
3450 D GET^EDPQLE(FDAIEN(1),CHOICES)
3451"RTN","EDPLOGA",66,0)
3452 Q
3453"RTN","EDPLOGA",67,0)
3454 ;
3455"RTN","EDPLOGA",68,0)
3456DEL(AREA,LOGID) ; Delete Stub Log Entry
3457"RTN","EDPLOGA",69,0)
3458 N I,CNT,DIK,DA
3459"RTN","EDPLOGA",70,0)
3460 S I=0,CNT=0 F S I=$O(^EDP(230.1,"B",LOGID,I)) Q:'I S CNT=CNT+1
3461"RTN","EDPLOGA",71,0)
3462 I $L($P($G(^EDP(230,LOGID,1)),U))!(CNT>1) D Q
3463"RTN","EDPLOGA",72,0)
3464 . D FAIL^EDPLOG("upd","Does not appear to be a stub entry")
3465"RTN","EDPLOGA",73,0)
3466 ;
3467"RTN","EDPLOGA",74,0)
3468 ; Delete initial history entry
3469"RTN","EDPLOGA",75,0)
3470 S DIK="^EDP(230.1,",DA=$O(^EDP(230.1,"B",LOGID,0))
3471"RTN","EDPLOGA",76,0)
3472 I DA D ^DIK
3473"RTN","EDPLOGA",77,0)
3474 ; Delete stub log entry
3475"RTN","EDPLOGA",78,0)
3476 S DIK="^EDP(230,",DA=LOGID
3477"RTN","EDPLOGA",79,0)
3478 D ^DIK
3479"RTN","EDPLOGA",80,0)
3480 ;
3481"RTN","EDPLOGA",81,0)
3482 D XML^EDPX("<upd status='ok' />")
3483"RTN","EDPLOGA",82,0)
3484 Q
3485"RTN","EDPLOGH")
34860^22^B269228
3487"RTN","EDPLOGH",1,0)
3488EDPLOGH ;SLC/KCM - Add History Entry for ED Log
3489"RTN","EDPLOGH",2,0)
3490 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
3491"RTN","EDPLOGH",3,0)
3492 ;
3493"RTN","EDPLOGH",4,0)
3494 ;TODO: add transaction processing
3495"RTN","EDPLOGH",5,0)
3496 ;
3497"RTN","EDPLOGH",6,0)
3498SAVE(IEN,TIME,HIST) ; save a new history entry for changed fields
3499"RTN","EDPLOGH",7,0)
3500 Q:$D(HIST)<10
3501"RTN","EDPLOGH",8,0)
3502 ;
3503"RTN","EDPLOGH",9,0)
3504 N HISTIEN,DIERR
3505"RTN","EDPLOGH",10,0)
3506 S HIST(230.1,"+1,",.01)=IEN
3507"RTN","EDPLOGH",11,0)
3508 S HIST(230.1,"+1,",.02)=TIME
3509"RTN","EDPLOGH",12,0)
3510 S HIST(230.1,"+1,",.03)=EDPUSER
3511"RTN","EDPLOGH",13,0)
3512 D UPDATE^DIE("","HIST","HISTIEN","ERR")
3513"RTN","EDPLOGH",14,0)
3514 Q
3515"RTN","EDPMAIL")
35160^23^B8624060
3517"RTN","EDPMAIL",1,0)
3518EDPMAIL ;SLC/KCM - Process incoming mail for posted events
3519"RTN","EDPMAIL",2,0)
3520 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
3521"RTN","EDPMAIL",3,0)
3522 ;
3523"RTN","EDPMAIL",4,0)
3524 ; INCOMING
3525"RTN","EDPMAIL",5,0)
3526 ;
3527"RTN","EDPMAIL",6,0)
3528IN ; parse incoming message from facility
3529"RTN","EDPMAIL",7,0)
3530 N I,PARAM,LOG,ORIFN
3531"RTN","EDPMAIL",8,0)
3532 F I=1:1 X XMREC Q:XMER<0 I XMRG?1.E1"="1.E D
3533"RTN","EDPMAIL",9,0)
3534 . S PARAM($P(XMRG,"="))=$P(XMRG,"=",2,99)
3535"RTN","EDPMAIL",10,0)
3536 S LOG=$$VAL("id"),ORIFN=$$VAL("orifn")
3537"RTN","EDPMAIL",11,0)
3538 I $$VAL("command")="newOrder" D NEW
3539"RTN","EDPMAIL",12,0)
3540 I $$VAL("command")="updateOrder" D UPD
3541"RTN","EDPMAIL",13,0)
3542 I $$VAL("command")="deleteOrder" D DEL
3543"RTN","EDPMAIL",14,0)
3544 I $$VAL("command")="verifyOrder" D VER
3545"RTN","EDPMAIL",15,0)
3546 I $$VAL("command")="completeOrder" D COMP
3547"RTN","EDPMAIL",16,0)
3548 I $$VAL("command")="patientCheckIn" D CHKIN
3549"RTN","EDPMAIL",17,0)
3550 I $$VAL("command")="sendDomain" D SETDOM
3551"RTN","EDPMAIL",18,0)
3552 Q
3553"RTN","EDPMAIL",19,0)
3554 ;
3555"RTN","EDPMAIL",20,0)
3556NEW ; add new order
3557"RTN","EDPMAIL",21,0)
3558 Q:'LOG Q:'ORIFN
3559"RTN","EDPMAIL",22,0)
3560 N X,Y,DIC,DA
3561"RTN","EDPMAIL",23,0)
3562 S DIC="^EDP(230,"_LOG_",8,",DIC(0)="LZ",DA(1)=LOG,X=+ORIFN
3563"RTN","EDPMAIL",24,0)
3564 S DIC("DR")=".02///"_$$VAL("pkg")_";.03///N;.05///"_$$VAL("release")
3565"RTN","EDPMAIL",25,0)
3566 S:$$VAL("stat") DIC("DR")=DIC("DR")_";.04///1"
3567"RTN","EDPMAIL",26,0)
3568 D FILE^DICN
3569"RTN","EDPMAIL",27,0)
3570 Q
3571"RTN","EDPMAIL",28,0)
3572UPD ; update order
3573"RTN","EDPMAIL",29,0)
3574 Q:'LOG Q:'ORIFN Q:'$L($$VAL("sts"))
3575"RTN","EDPMAIL",30,0)
3576 N IEN S IEN=$$FIND Q:IEN<1
3577"RTN","EDPMAIL",31,0)
3578 I $D(^EDP(230,LOG,8,+DA,0)) S $P(^(0),U,3)=$$VAL("sts")
3579"RTN","EDPMAIL",32,0)
3580 Q
3581"RTN","EDPMAIL",33,0)
3582DEL ; delete order
3583"RTN","EDPMAIL",34,0)
3584 Q:'LOG Q:'ORIFN
3585"RTN","EDPMAIL",35,0)
3586 N DIK,DA
3587"RTN","EDPMAIL",36,0)
3588 S DA=$$FIND Q:DA<1
3589"RTN","EDPMAIL",37,0)
3590 S DIK="^EDP(230,"_LOG_",8,",DA(1)=LOG
3591"RTN","EDPMAIL",38,0)
3592 D ^DIK
3593"RTN","EDPMAIL",39,0)
3594 Q
3595"RTN","EDPMAIL",40,0)
3596VER ; verify order
3597"RTN","EDPMAIL",41,0)
3598 Q:'LOG Q:'ORIFN
3599"RTN","EDPMAIL",42,0)
3600 N IEN S IEN=$$FIND Q:IEN<1
3601"RTN","EDPMAIL",43,0)
3602 I $P($G(^EDP(230,LOG,8,IEN,0)),U,3)'="C" S $P(^(0),U,3)="A"
3603"RTN","EDPMAIL",44,0)
3604 Q
3605"RTN","EDPMAIL",45,0)
3606COMP ; complete order
3607"RTN","EDPMAIL",46,0)
3608 Q:'LOG Q:'ORIFN
3609"RTN","EDPMAIL",47,0)
3610 N IEN S IEN=$$FIND Q:IEN<1
3611"RTN","EDPMAIL",48,0)
3612 S $P(^(0),U,3)="C"
3613"RTN","EDPMAIL",49,0)
3614 Q
3615"RTN","EDPMAIL",50,0)
3616 ;
3617"RTN","EDPMAIL",51,0)
3618FIND() ; -- return ien of ORIFN in multiple
3619"RTN","EDPMAIL",52,0)
3620 N Y S Y=+$O(^EDP(230,LOG,8,"B",+ORIFN,0))
3621"RTN","EDPMAIL",53,0)
3622 Q Y
3623"RTN","EDPMAIL",54,0)
3624 ;
3625"RTN","EDPMAIL",55,0)
3626VAL(X) ; -- return parameter value or null if undefined
3627"RTN","EDPMAIL",56,0)
3628 Q $G(PARAM(X))
3629"RTN","EDPMAIL",57,0)
3630 ;
3631"RTN","EDPMAIL",58,0)
3632CHKIN ; check in a patient
3633"RTN","EDPMAIL",59,0)
3634 Q:'$$VAL("dfn") Q:'$$VAL("ssn") Q:'$L($$VAL("ptNm")) Q:'$L($$VAL("site"))
3635"RTN","EDPMAIL",60,0)
3636 N NEWPT
3637"RTN","EDPMAIL",61,0)
3638 S NEWPT=$$VAL("dfn")_$C(9)_$$VAL("ptNm")_$C(9)_$$VAL("dob")_$C(9)_$$VAL("ssn")
3639"RTN","EDPMAIL",62,0)
3640 N AREA
3641"RTN","EDPMAIL",63,0)
3642 S AREA=$O(^EDPB(231.9,"C",$$VAL("site"),0)) Q:'AREA
3643"RTN","EDPMAIL",64,0)
3644 N EDPXML,EDPSITE
3645"RTN","EDPMAIL",65,0)
3646 S EDPSITE=$$VAL("site")
3647"RTN","EDPMAIL",66,0)
3648 D ADD^EDPLOGA(NEWPT,AREA,$$VAL("time"),0)
3649"RTN","EDPMAIL",67,0)
3650 Q
3651"RTN","EDPMAIL",68,0)
3652SETDOM ; set the mail domain for a site
3653"RTN","EDPMAIL",69,0)
3654 N EDPSITE,EDPXML,AREA
3655"RTN","EDPMAIL",70,0)
3656 S EDPSITE=$$VAL("station")
3657"RTN","EDPMAIL",71,0)
3658 D DFLTAREA^EDPQAR
3659"RTN","EDPMAIL",72,0)
3660 S AREA=$O(^EDPB(231.9,"C",EDPSITE,0))
3661"RTN","EDPMAIL",73,0)
3662 I AREA D
3663"RTN","EDPMAIL",74,0)
3664 . N FDA,FDAIEN,DIERR,ERR
3665"RTN","EDPMAIL",75,0)
3666 . S FDA(231.9,AREA_",",.04)=$$VAL("domain")
3667"RTN","EDPMAIL",76,0)
3668 . D FILE^DIE("","FDA","ERR")
3669"RTN","EDPMAIL",77,0)
3670 Q
3671"RTN","EDPMAIL",78,0)
3672 ;
3673"RTN","EDPMAIL",79,0)
3674 ; OUTGOING
3675"RTN","EDPMAIL",80,0)
3676 ;
3677"RTN","EDPMAIL",81,0)
3678NEWLOG(AREA,LOG,DFN) ; send registration message for new log entry
3679"RTN","EDPMAIL",82,0)
3680 D SEND(AREA,"registerLog:"_LOG_":"_DFN)
3681"RTN","EDPMAIL",83,0)
3682 Q
3683"RTN","EDPMAIL",84,0)
3684DELLOG(AREA,LOG) ; send delete message for removed log entry
3685"RTN","EDPMAIL",85,0)
3686 D SEND(AREA,"removeLog:"_LOG)
3687"RTN","EDPMAIL",86,0)
3688 Q
3689"RTN","EDPMAIL",87,0)
3690SEND(AREA,MSG) ; Send message to local facility
3691"RTN","EDPMAIL",88,0)
3692 N DOMAIN S DOMAIN=$P(^EDPB(231.9,AREA,0),U,4)
3693"RTN","EDPMAIL",89,0)
3694 Q:'$L(DOMAIN)
3695"RTN","EDPMAIL",90,0)
3696 ;
3697"RTN","EDPMAIL",91,0)
3698 N XMSUB,XMY,XMTEXT,EDPMSG
3699"RTN","EDPMAIL",92,0)
3700 S XMSUB="EDIS Registration Event"
3701"RTN","EDPMAIL",93,0)
3702 S EDPMSG(1)=MSG
3703"RTN","EDPMAIL",94,0)
3704 S XMTEXT="EDPMSG("
3705"RTN","EDPMAIL",95,0)
3706 S XMY("S.EDPFLOGLISTENER@"_DOMAIN)=""
3707"RTN","EDPMAIL",96,0)
3708 D ^XMD
3709"RTN","EDPMAIL",97,0)
3710 Q
3711"RTN","EDPQAR")
37120^24^B1525958
3713"RTN","EDPQAR",1,0)
3714EDPQAR ;SLC/KCM - Log Area Information
3715"RTN","EDPQAR",2,0)
3716 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
3717"RTN","EDPQAR",3,0)
3718 ;
3719"RTN","EDPQAR",4,0)
3720PARAM(AREA) ; return parameters for area
3721"RTN","EDPQAR",5,0)
3722 N X,X1
3723"RTN","EDPQAR",6,0)
3724 S X1=$G(^EDPB(231.9,AREA,1))
3725"RTN","EDPQAR",7,0)
3726 S X("reqDiag")=+$P(X1,U,1)
3727"RTN","EDPQAR",8,0)
3728 S X("codedDiag")=+$P(X1,U,2)
3729"RTN","EDPQAR",9,0)
3730 S X("reqDisp")=+$P(X1,U,3)
3731"RTN","EDPQAR",10,0)
3732 S X("reqDelay")=+$P(X1,U,4)
3733"RTN","EDPQAR",11,0)
3734 S X("minDelay")=+$P(X1,U,5)
3735"RTN","EDPQAR",12,0)
3736 S X("residents")=+$P(X1,U,8)
3737"RTN","EDPQAR",13,0)
3738 D XML^EDPX($$XMLA^EDPX("params",.X))
3739"RTN","EDPQAR",14,0)
3740 Q
3741"RTN","EDPQAR",15,0)
3742DFLTAREA ; return the default area for a site
3743"RTN","EDPQAR",16,0)
3744 N X,DFLT
3745"RTN","EDPQAR",17,0)
3746 S DFLT=$O(^EDPB(231.9,"C",EDPSITE,0))
3747"RTN","EDPQAR",18,0)
3748 I 'DFLT D ADDAREA S DFLT=$O(^EDPB(231.9,"C",EDPSITE,0))
3749"RTN","EDPQAR",19,0)
3750 S X("area")=DFLT
3751"RTN","EDPQAR",20,0)
3752 I X("area") S X("areaNm")=$P(^EDPB(231.9,X("area"),0),U)
3753"RTN","EDPQAR",21,0)
3754 D XML^EDPX($$XMLA^EDPX("user",.X))
3755"RTN","EDPQAR",22,0)
3756 Q
3757"RTN","EDPQAR",23,0)
3758ADDAREA ; add area if none is defined for this site
3759"RTN","EDPQAR",24,0)
3760 N FDA,FDAIEN,DIERR,ERR
3761"RTN","EDPQAR",25,0)
3762 S FDA(231.9,"+1,",.01)="Emergency Department"
3763"RTN","EDPQAR",26,0)
3764 S FDA(231.9,"+1,",.02)=EDPSITE
3765"RTN","EDPQAR",27,0)
3766 D UPDATE^DIE("","FDA","FDAIEN","ERR")
3767"RTN","EDPQAR",28,0)
3768 Q:$D(DIERR)
3769"RTN","EDPQAR",29,0)
3770 ;
3771"RTN","EDPQAR",30,0)
3772 N AREA S AREA=FDAIEN(1)
3773"RTN","EDPQAR",31,0)
3774 D RESET^EDPBRS(AREA)
3775"RTN","EDPQAR",32,0)
3776 Q
3777"RTN","EDPQDB")
37780^25^B23470314
3779"RTN","EDPQDB",1,0)
3780EDPQDB ;SLC/KCM - Display Active Log Entries
3781"RTN","EDPQDB",2,0)
3782 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
3783"RTN","EDPQDB",3,0)
3784 ;
3785"RTN","EDPQDB",4,0)
3786NXT() ; Increment to the next line
3787"RTN","EDPQDB",5,0)
3788 S XML=XML+1
3789"RTN","EDPQDB",6,0)
3790 Q XML
3791"RTN","EDPQDB",7,0)
3792 ;
3793"RTN","EDPQDB",8,0)
3794GET(AREA,BOARD,TOKEN) ; Get display board contents
3795"RTN","EDPQDB",9,0)
3796 I $G(^EDPB(231.9,AREA,230))=TOKEN D XML^EDPX("<rows status='same' />") Q
3797"RTN","EDPQDB",10,0)
3798 ;
3799"RTN","EDPQDB",11,0)
3800 N EDPTIME S EDPTIME=$$FMADD^XLFDT($$NOW^XLFDT,0,0,+$P(^EDPB(231.9,AREA,0),U,3),0)
3801"RTN","EDPQDB",12,0)
3802 N SEQ,BED,LOG,BEDS,DWHEN,DUP,ACU
3803"RTN","EDPQDB",13,0)
3804 D XML^EDPX("<rows status='new' >")
3805"RTN","EDPQDB",14,0)
3806 ;
3807"RTN","EDPQDB",15,0)
3808 ; Get a list of all the beds in sequence for this area
3809"RTN","EDPQDB",16,0)
3810 S BOARD=$G(BOARD)
3811"RTN","EDPQDB",17,0)
3812 S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
3813"RTN","EDPQDB",18,0)
3814 . S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999
3815"RTN","EDPQDB",19,0)
3816 . S BEDS(SEQ,BED)="",BEDS("B",BED,SEQ)=""
3817"RTN","EDPQDB",20,0)
3818 ;
3819"RTN","EDPQDB",21,0)
3820 ; Insert the active log entries into the correct sequence for the beds
3821"RTN","EDPQDB",22,0)
3822 S BED=0 F S BED=$O(^EDP(230,"AL",EDPSITE,AREA,BED)) Q:'BED D
3823"RTN","EDPQDB",23,0)
3824 . S LOG=0 F S LOG=$O(^EDP(230,"AL",EDPSITE,AREA,BED,LOG)) Q:'LOG D
3825"RTN","EDPQDB",24,0)
3826 . . I '$D(BEDS("B",BED)) S BEDS(99999,BED)="",BEDS("B",BED,99999)=""
3827"RTN","EDPQDB",25,0)
3828 . . S SEQ=$O(BEDS("B",BED,0))
3829"RTN","EDPQDB",26,0)
3830 . . S ACU=$P($G(^EDP(230,LOG,3)),U,3) S:'ACU ACU=99
3831"RTN","EDPQDB",27,0)
3832 . . S BEDS(SEQ,BED,ACU,LOG)=""
3833"RTN","EDPQDB",28,0)
3834 ;
3835"RTN","EDPQDB",29,0)
3836 ; Loop thru the sequence of beds to create display board rows
3837"RTN","EDPQDB",30,0)
3838 D BLDDUP^EDPQLP(.DUP,AREA)
3839"RTN","EDPQDB",31,0)
3840 S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D
3841"RTN","EDPQDB",32,0)
3842 . S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D
3843"RTN","EDPQDB",33,0)
3844 . . I $L(BOARD),($P(^EDPB(231.8,BED,0),U,11)'=BOARD) Q
3845"RTN","EDPQDB",34,0)
3846 . . S DWHEN=$P(^EDPB(231.8,BED,0),U,7)
3847"RTN","EDPQDB",35,0)
3848 . . ; never display DWHEN=2
3849"RTN","EDPQDB",36,0)
3850 . . Q:DWHEN=2
3851"RTN","EDPQDB",37,0)
3852 . . ; always display DWHEN=1
3853"RTN","EDPQDB",38,0)
3854 . . I ($D(BEDS(SEQ,BED))<10)&(DWHEN=1) D EMPTY(BED) Q
3855"RTN","EDPQDB",39,0)
3856 . . ; display if occupied DWHEN=0
3857"RTN","EDPQDB",40,0)
3858 . . S ACU=0 F S ACU=$O(BEDS(SEQ,BED,ACU)) Q:'ACU D
3859"RTN","EDPQDB",41,0)
3860 . . . S LOG=0 F S LOG=$O(BEDS(SEQ,BED,ACU,LOG)) Q:'LOG D OCCUPIED(LOG,.DUP)
3861"RTN","EDPQDB",42,0)
3862 ;
3863"RTN","EDPQDB",43,0)
3864 D XML^EDPX("</rows>")
3865"RTN","EDPQDB",44,0)
3866 Q
3867"RTN","EDPQDB",45,0)
3868EMPTY(BED) ; add row if unoccupied be should show
3869"RTN","EDPQDB",46,0)
3870 N ROW
3871"RTN","EDPQDB",47,0)
3872 S ROW("bed")=BED
3873"RTN","EDPQDB",48,0)
3874 S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6)
3875"RTN","EDPQDB",49,0)
3876 D XML^EDPX($$XMLA^EDPX("row",.ROW))
3877"RTN","EDPQDB",50,0)
3878 Q
3879"RTN","EDPQDB",51,0)
3880OCCUPIED(LOG,DUP) ; add log entry row
3881"RTN","EDPQDB",52,0)
3882 N X0,X1,X3,ROW
3883"RTN","EDPQDB",53,0)
3884 S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3))
3885"RTN","EDPQDB",54,0)
3886 S ROW("id")=LOG
3887"RTN","EDPQDB",55,0)
3888 S ROW("bed")=BED
3889"RTN","EDPQDB",56,0)
3890 S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6)
3891"RTN","EDPQDB",57,0)
3892 S ROW("ptNm")=$P($P(X0,U,4),",")
3893"RTN","EDPQDB",58,0)
3894 S ROW("last4")=$P(X0,U,11)
3895"RTN","EDPQDB",59,0)
3896 S ROW("complaint")=$P(X1,U,1)
3897"RTN","EDPQDB",60,0)
3898 S ROW("md")=$P(X3,U,5)
3899"RTN","EDPQDB",61,0)
3900 S ROW("mdNm")=$$INITIAL($P(X3,U,5))
3901"RTN","EDPQDB",62,0)
3902 S ROW("rn")=$P(X3,U,6)
3903"RTN","EDPQDB",63,0)
3904 S ROW("rnNm")=$$INITIAL($P(X3,U,6))
3905"RTN","EDPQDB",64,0)
3906 S ROW("res")=$P(X3,U,7)
3907"RTN","EDPQDB",65,0)
3908 S ROW("resNm")=$$INITIAL($P(X3,U,7))
3909"RTN","EDPQDB",66,0)
3910 S ROW("status")=$P(X3,U,2)
3911"RTN","EDPQDB",67,0)
3912 S ROW("statusNm")=$$CAB($P(X3,U,2))
3913"RTN","EDPQDB",68,0)
3914 S ROW("acuity")=$P(X3,U,3)
3915"RTN","EDPQDB",69,0)
3916 S ROW("acuityNm")=$$CAB($P(X3,U,3))
3917"RTN","EDPQDB",70,0)
3918 S ROW("emins")=$$MIN($P(X0,U,8))
3919"RTN","EDPQDB",71,0)
3920 S ROW("lmins")=$$LMIN(LOG)
3921"RTN","EDPQDB",72,0)
3922 S ROW("similar")=$$SIM^EDPQLP(ROW("ptNm"),ROW("last4"),.DUP)
3923"RTN","EDPQDB",73,0)
3924 ;
3925"RTN","EDPQDB",74,0)
3926 N STS D ORDSTS(LOG,.STS)
3927"RTN","EDPQDB",75,0)
3928 S ROW("lab")=STS("LP")_"/"_STS("LC")
3929"RTN","EDPQDB",76,0)
3930 S ROW("labUrg")=STS("LS")
3931"RTN","EDPQDB",77,0)
3932 S ROW("labMin")=STS("LO")
3933"RTN","EDPQDB",78,0)
3934 S ROW("rad")=STS("RP")_"/"_STS("RC")
3935"RTN","EDPQDB",79,0)
3936 S ROW("radUrg")=STS("RS")
3937"RTN","EDPQDB",80,0)
3938 S ROW("radMin")=STS("RO")
3939"RTN","EDPQDB",81,0)
3940 S ROW("ordNew")=STS("ON")
3941"RTN","EDPQDB",82,0)
3942 S ROW("ordMin")=STS("OO")
3943"RTN","EDPQDB",83,0)
3944 D XML^EDPX($$XMLA^EDPX("row",.ROW))
3945"RTN","EDPQDB",84,0)
3946 Q
3947"RTN","EDPQDB",85,0)
3948INITIAL(LOCID) ; Return initials
3949"RTN","EDPQDB",86,0)
3950 Q:'LOCID ""
3951"RTN","EDPQDB",87,0)
3952 N IEN S IEN=$O(^EDPB(231.7,"AD",EDPSITE,AREA,LOCID,0))
3953"RTN","EDPQDB",88,0)
3954 Q:IEN $P(^EDPB(231.7,IEN,0),U,7)
3955"RTN","EDPQDB",89,0)
3956 Q ""
3957"RTN","EDPQDB",90,0)
3958CAB(IEN) ; Return code abbreviation
3959"RTN","EDPQDB",91,0)
3960 Q:IEN $P(^EDPB(233.1,IEN,0),U,3)
3961"RTN","EDPQDB",92,0)
3962 Q ""
3963"RTN","EDPQDB",93,0)
3964MIN(START) ; Return elapse time
3965"RTN","EDPQDB",94,0)
3966 I 'START Q ""
3967"RTN","EDPQDB",95,0)
3968 Q $$FMDIFF^XLFDT(EDPTIME,START,2)\60
3969"RTN","EDPQDB",96,0)
3970 ;
3971"RTN","EDPQDB",97,0)
3972LMIN(LOG) ; Return time at location
3973"RTN","EDPQDB",98,0)
3974 N IEN,TS,TM S TM=0
3975"RTN","EDPQDB",99,0)
3976 S TS=0 F S TS=$O(^EDP(230.1,"ADR",LOG,TS)) Q:'TS D Q:TM
3977"RTN","EDPQDB",100,0)
3978 . S IEN=0 F S IEN=$O(^EDP(230.1,"ADR",LOG,TS,IEN)) Q:'IEN D Q:TM
3979"RTN","EDPQDB",101,0)
3980 . . I +$P($G(^EDP(230.1,IEN,3)),U,4) S TM=$P($G(^EDP(230.1,IEN,0)),U,2)
3981"RTN","EDPQDB",102,0)
3982 I TM Q $$FMDIFF^XLFDT(EDPTIME,TM,2)\60
3983"RTN","EDPQDB",103,0)
3984 Q 0
3985"RTN","EDPQDB",104,0)
3986 ;
3987"RTN","EDPQDB",105,0)
3988ORDSTS(LOG,STS) ; compute statuses of orders
3989"RTN","EDPQDB",106,0)
3990 N IEN,X0
3991"RTN","EDPQDB",107,0)
3992 S STS("OO")=9999999,STS("ON")=0 ; oldest order, new orders
3993"RTN","EDPQDB",108,0)
3994 S STS("LP")=0,STS("LO")=9999999,STS("LS")=0,STS("LC")=0
3995"RTN","EDPQDB",109,0)
3996 S STS("RP")=0,STS("RO")=9999999,STS("RS")=0,STS("RC")=0
3997"RTN","EDPQDB",110,0)
3998 S IEN=0 F S IEN=$O(^EDP(230,LOG,8,IEN)) Q:'IEN D
3999"RTN","EDPQDB",111,0)
4000 . S X0=^EDP(230,LOG,8,IEN,0)
4001"RTN","EDPQDB",112,0)
4002 . I ($P(X0,U,3)="N")!($P(X0,U,3)="A") D
4003"RTN","EDPQDB",113,0)
4004 . . I $P(X0,U,5)<STS("OO") S STS("OO")=$P(X0,U,5) ; oldest order
4005"RTN","EDPQDB",114,0)
4006 . . I $P(X0,U,2)="L" D
4007"RTN","EDPQDB",115,0)
4008 . . . S STS("LP")=STS("LP")+1 ; pending labs
4009"RTN","EDPQDB",116,0)
4010 . . . I $P(X0,U,5)<STS("LO") S STS("LO")=$P(X0,U,5) ; oldest lab
4011"RTN","EDPQDB",117,0)
4012 . . . I $P(X0,U,4) S STS("LS")=1 ; stat lab
4013"RTN","EDPQDB",118,0)
4014 . . I $P(X0,U,2)="R" D
4015"RTN","EDPQDB",119,0)
4016 . . . S STS("RP")=STS("RP")+1 ; pending radiology
4017"RTN","EDPQDB",120,0)
4018 . . . I $P(X0,U,5)<STS("RO") S STS("RO")=$P(X0,U,5) ; oldest radiology
4019"RTN","EDPQDB",121,0)
4020 . . . I $P(X0,U,4) S STS("RS")=1 ; stat radiology
4021"RTN","EDPQDB",122,0)
4022 . I $P(X0,U,3)="N" S STS("ON")=STS("ON")+1
4023"RTN","EDPQDB",123,0)
4024 . I $P(X0,U,3)="C" D
4025"RTN","EDPQDB",124,0)
4026 . . I $P(X0,U,2)="L" S STS("LC")=STS("LC")+1 ; completed labs
4027"RTN","EDPQDB",125,0)
4028 . . I $P(X0,U,2)="R" S STS("RC")=STS("RC")+1 ; completed radiology
4029"RTN","EDPQDB",126,0)
4030 S:STS("OO")=9999999 STS("OO")=0
4031"RTN","EDPQDB",127,0)
4032 S:STS("LO")=9999999 STS("LO")=0
4033"RTN","EDPQDB",128,0)
4034 S:STS("RO")=9999999 STS("RO")=0
4035"RTN","EDPQDB",129,0)
4036 Q
4037"RTN","EDPQDBS")
40380^26^B2926745
4039"RTN","EDPQDBS",1,0)
4040EDPQDBS ;SLC/KCM - Display Board Specs
4041"RTN","EDPQDBS",2,0)
4042 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
4043"RTN","EDPQDBS",3,0)
4044 ;
4045"RTN","EDPQDBS",4,0)
4046GET(AREA) ; Get Display Board Specs
4047"RTN","EDPQDBS",5,0)
4048 N I S I=0
4049"RTN","EDPQDBS",6,0)
4050 F S I=$O(^EDPB(231.9,AREA,2,I)) Q:'I D XML^EDPX(^EDPB(231.9,AREA,2,I,0))
4051"RTN","EDPQDBS",7,0)
4052 ;
4053"RTN","EDPQDBS",8,0)
4054 D XML^EDPX("<colorSpec>")
4055"RTN","EDPQDBS",9,0)
4056 D CLRBED(AREA)
4057"RTN","EDPQDBS",10,0)
4058 D CLRSTAFF(AREA,"md","P")
4059"RTN","EDPQDBS",11,0)
4060 D CLRSTAFF(AREA,"res","R")
4061"RTN","EDPQDBS",12,0)
4062 D CLRSTAFF(AREA,"rn","N")
4063"RTN","EDPQDBS",13,0)
4064 N I S I=0
4065"RTN","EDPQDBS",14,0)
4066 F S I=$O(^EDPB(231.9,AREA,3,I)) Q:'I D XML^EDPX(^EDPB(231.9,AREA,3,I,0))
4067"RTN","EDPQDBS",15,0)
4068 D XML^EDPX("</colorSpec>")
4069"RTN","EDPQDBS",16,0)
4070 Q
4071"RTN","EDPQDBS",17,0)
4072CLRBED(AREA) ; add bed colors
4073"RTN","EDPQDBS",18,0)
4074 D XML^EDPX("<colors id='bed' type='bed' >")
4075"RTN","EDPQDBS",19,0)
4076 N BED
4077"RTN","EDPQDBS",20,0)
4078 S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
4079"RTN","EDPQDBS",21,0)
4080 . S X0=^EDPB(231.8,BED,0)
4081"RTN","EDPQDBS",22,0)
4082 . I $P(X0,U,12)="" Q
4083"RTN","EDPQDBS",23,0)
4084 . N X
4085"RTN","EDPQDBS",24,0)
4086 . S X("att")="@bed"
4087"RTN","EDPQDBS",25,0)
4088 . S X("clr")=$P(X0,U,12)
4089"RTN","EDPQDBS",26,0)
4090 . S X("val")=BED
4091"RTN","EDPQDBS",27,0)
4092 . D XML^EDPX($$XMLA^EDPX("map",.X))
4093"RTN","EDPQDBS",28,0)
4094 D XML^EDPX("</colors>")
4095"RTN","EDPQDBS",29,0)
4096 Q
4097"RTN","EDPQDBS",30,0)
4098CLRSTAFF(AREA,ROLEID,ROLE) ; add staff colors
4099"RTN","EDPQDBS",31,0)
4100 D XML^EDPX("<colors id='"_ROLEID_"' type='staff' >")
4101"RTN","EDPQDBS",32,0)
4102 N IEN
4103"RTN","EDPQDBS",33,0)
4104 S IEN="" F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
4105"RTN","EDPQDBS",34,0)
4106 . S X0=^EDPB(231.7,IEN,0) Q:'$P(X0,U,8)
4107"RTN","EDPQDBS",35,0)
4108 . N X
4109"RTN","EDPQDBS",36,0)
4110 . S X("att")=$S(ROLE="P":"@md",ROLE="N":"@rn",ROLE="R":"@res",1:"nop")
4111"RTN","EDPQDBS",37,0)
4112 . S X("clr")=$P(X0,U,8)
4113"RTN","EDPQDBS",38,0)
4114 . S X("val")=$P(X0,U,5)
4115"RTN","EDPQDBS",39,0)
4116 . D XML^EDPX($$XMLA^EDPX("map",.X))
4117"RTN","EDPQDBS",40,0)
4118 D XML^EDPX("</colors>")
4119"RTN","EDPQDBS",41,0)
4120 Q
4121"RTN","EDPQLE")
41220^27^B11635607
4123"RTN","EDPQLE",1,0)
4124EDPQLE ;SLC/KCM - Retrieve Log Entry
4125"RTN","EDPQLE",2,0)
4126 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
4127"RTN","EDPQLE",3,0)
4128 ;
4129"RTN","EDPQLE",4,0)
4130GET(LOG,CHOICES) ; Get a log entry by request
4131"RTN","EDPQLE",5,0)
4132 N CURBED,CURVAL,PERSON
4133"RTN","EDPQLE",6,0)
4134 S AREA=$P(^EDP(230,LOG,0),U,3)
4135"RTN","EDPQLE",7,0)
4136 N EDPTIME S EDPTIME=$$FMADD^XLFDT($$NOW^XLFDT,0,0,+$P(^EDPB(231.9,AREA,0),U,3),0)
4137"RTN","EDPQLE",8,0)
4138 D LOG(LOG)
4139"RTN","EDPQLE",9,0)
4140 D XML^EDPX("<choices>")
4141"RTN","EDPQLE",10,0)
4142 D BEDS,PERSONS
4143"RTN","EDPQLE",11,0)
4144 I $G(CHOICES) D CHOICES^EDPQLE1(AREA)
4145"RTN","EDPQLE",12,0)
4146 D XML^EDPX("</choices>")
4147"RTN","EDPQLE",13,0)
4148 Q
4149"RTN","EDPQLE",14,0)
4150LOG(LOG) ; return the log entry as XML
4151"RTN","EDPQLE",15,0)
4152 N X,X0,X1,X3
4153"RTN","EDPQLE",16,0)
4154 S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3))
4155"RTN","EDPQLE",17,0)
4156 S X("id")=LOG
4157"RTN","EDPQLE",18,0)
4158 S X("site")=$P(X0,U,2)
4159"RTN","EDPQLE",19,0)
4160 S X("area")=$P(X0,U,3)
4161"RTN","EDPQLE",20,0)
4162 S X("name")=$P(X0,U,4)
4163"RTN","EDPQLE",21,0)
4164 S X("ssn")=$P(X0,U,5)
4165"RTN","EDPQLE",22,0)
4166 S X("dfn")=$P(X0,U,6)
4167"RTN","EDPQLE",23,0)
4168 S X("dob")=$$DOB($P(X0,U,6))
4169"RTN","EDPQLE",24,0)
4170 S X("inTS")=$P(X0,U,8)
4171"RTN","EDPQLE",25,0)
4172 S X("outTS")=$P(X0,U,9)
4173"RTN","EDPQLE",26,0)
4174 S X("arrival")=$P(X0,U,10)
4175"RTN","EDPQLE",27,0)
4176 S X("complaint")=$P(X1,U,1)
4177"RTN","EDPQLE",28,0)
4178 S X("compLong")=$G(^EDP(230,LOG,2))
4179"RTN","EDPQLE",29,0)
4180 S X("status")=$P(X3,U,2)
4181"RTN","EDPQLE",30,0)
4182 S X("acuity")=$P(X3,U,3)
4183"RTN","EDPQLE",31,0)
4184 S X("bed")=$P(X3,U,4)
4185"RTN","EDPQLE",32,0)
4186 S X("md")=$P(X3,U,5),PERSON("provider")=X("md")
4187"RTN","EDPQLE",33,0)
4188 S X("nurse")=$P(X3,U,6),PERSON("nurse")=X("nurse")
4189"RTN","EDPQLE",34,0)
4190 S X("res")=$P(X3,U,7),PERSON("resident")=X("res")
4191"RTN","EDPQLE",35,0)
4192 S X("comment")=$P(X3,U,8)
4193"RTN","EDPQLE",36,0)
4194 S X("delay")=$P(X1,U,5)
4195"RTN","EDPQLE",37,0)
4196 S X("disposition")=$P(X1,U,2)
4197"RTN","EDPQLE",38,0)
4198 S X("required")=$$REQ(.X)
4199"RTN","EDPQLE",39,0)
4200 S CURBED=X("bed") ; for later use by BEDS
4201"RTN","EDPQLE",40,0)
4202 ;
4203"RTN","EDPQLE",41,0)
4204 D XML^EDPX("<logEntry>")
4205"RTN","EDPQLE",42,0)
4206 D XMLE^EDPX(.X)
4207"RTN","EDPQLE",43,0)
4208 ;
4209"RTN","EDPQLE",44,0)
4210 N DIAG,CODE,LABEL,X4
4211"RTN","EDPQLE",45,0)
4212 S DIAG=0 F S DIAG=$O(^EDP(230,LOG,4,DIAG)) Q:'DIAG D
4213"RTN","EDPQLE",46,0)
4214 . S X4=^EDP(230,LOG,4,DIAG,0),X4("code")=$P(X4,U,2),X4("label")=$P(X4,U,1)
4215"RTN","EDPQLE",47,0)
4216 . D XML^EDPX($$XMLA^EDPX("diagnosis",.X4))
4217"RTN","EDPQLE",48,0)
4218 ;
4219"RTN","EDPQLE",49,0)
4220 D XML^EDPX("</logEntry>")
4221"RTN","EDPQLE",50,0)
4222 Q
4223"RTN","EDPQLE",51,0)
4224DOB(DFN) ; Return date of birth (external)
4225"RTN","EDPQLE",52,0)
4226 I 'DFN Q ""
4227"RTN","EDPQLE",53,0)
4228 N VA,VADM,X,Y
4229"RTN","EDPQLE",54,0)
4230 D DEM^VADPT
4231"RTN","EDPQLE",55,0)
4232 Q $P(VADM(3),U,2)
4233"RTN","EDPQLE",56,0)
4234 ;
4235"RTN","EDPQLE",57,0)
4236BEDS ; add a list of available room/beds for this area
4237"RTN","EDPQLE",58,0)
4238 D XML^EDPX("<bedList>")
4239"RTN","EDPQLE",59,0)
4240 ;D XML^EDPX($$XMLS^EDPX("bed",0," ")) ; non-selected value
4241"RTN","EDPQLE",60,0)
4242 N BED,X0
4243"RTN","EDPQLE",61,0)
4244 S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
4245"RTN","EDPQLE",62,0)
4246 . S X0=^EDPB(231.8,BED,0)
4247"RTN","EDPQLE",63,0)
4248 . ; QUIT if inactive bed
4249"RTN","EDPQLE",64,0)
4250 . I $P(X0,U,4) Q
4251"RTN","EDPQLE",65,0)
4252 . ; QUIT if occupied, unless own bed or multi-assign
4253"RTN","EDPQLE",66,0)
4254 . I $D(^EDP(230,"AL",EDPSITE,AREA,BED)),((BED'=CURBED)&'$P(X0,U,9)) Q
4255"RTN","EDPQLE",67,0)
4256 . ;
4257"RTN","EDPQLE",68,0)
4258 . S X("data")=BED
4259"RTN","EDPQLE",69,0)
4260 . S X("label")=$P(X0,U,6)_" ("_$P(X0,U)_")"
4261"RTN","EDPQLE",70,0)
4262 . D XML^EDPX($$XMLA^EDPX("bed",.X))
4263"RTN","EDPQLE",71,0)
4264 D XML^EDPX("</bedList>")
4265"RTN","EDPQLE",72,0)
4266 Q
4267"RTN","EDPQLE",73,0)
4268PERSONS ; add the internal/external values for persons
4269"RTN","EDPQLE",74,0)
4270 N ROLE,NAME,LOCID,IEN,X
4271"RTN","EDPQLE",75,0)
4272 D XML^EDPX("<persons>")
4273"RTN","EDPQLE",76,0)
4274 F ROLE="provider","nurse","resident" S LOCID=$G(PERSON(ROLE)) D
4275"RTN","EDPQLE",77,0)
4276 . Q:'LOCID
4277"RTN","EDPQLE",78,0)
4278 . S IEN=$O(^EDPB(231.7,"AD",EDPSITE,AREA,LOCID,0))
4279"RTN","EDPQLE",79,0)
4280 . Q:'IEN
4281"RTN","EDPQLE",80,0)
4282 . S NAME=$P(^EDPB(231.7,IEN,0),U)
4283"RTN","EDPQLE",81,0)
4284 . S X("data")=LOCID,X("label")=NAME
4285"RTN","EDPQLE",82,0)
4286 . D XML^EDPX($$XMLA^EDPX(ROLE,.X))
4287"RTN","EDPQLE",83,0)
4288 D XML^EDPX("</persons>")
4289"RTN","EDPQLE",84,0)
4290 Q
4291"RTN","EDPQLE",85,0)
4292REQ(VAL) ; return the fields required to close this entry
4293"RTN","EDPQLE",86,0)
4294 ; called from LOG, AREA is assumed to be defined
4295"RTN","EDPQLE",87,0)
4296 N NEED,PARAM
4297"RTN","EDPQLE",88,0)
4298 S PARAM=$G(^EDPB(231.9,AREA,1)),NEED=""
4299"RTN","EDPQLE",89,0)
4300 I $P(PARAM,U,1) S $P(NEED,",",1)="diag"
4301"RTN","EDPQLE",90,0)
4302 I $P(PARAM,U,3) S $P(NEED,",",2)="disp"
4303"RTN","EDPQLE",91,0)
4304 I $$DLYREQ,$$NOTOBS,$$EXCEED S $P(NEED,",",3)="delay"
4305"RTN","EDPQLE",92,0)
4306 Q NEED
4307"RTN","EDPQLE",93,0)
4308 ;
4309"RTN","EDPQLE",94,0)
4310DLYREQ() ; return true if delay params set to required
4311"RTN","EDPQLE",95,0)
4312 ; called from REQ, PARAM is assumed to be defined
4313"RTN","EDPQLE",96,0)
4314 Q $P(PARAM,U,4)&$P(PARAM,U,5)
4315"RTN","EDPQLE",97,0)
4316 ;
4317"RTN","EDPQLE",98,0)
4318NOTOBS() ; return true if not in observation status
4319"RTN","EDPQLE",99,0)
4320 ; called from REQ, VAL is assumed to be defined
4321"RTN","EDPQLE",100,0)
4322 N STS S STS=+$G(VAL("status"))
4323"RTN","EDPQLE",101,0)
4324 Q:'STS 1
4325"RTN","EDPQLE",102,0)
4326 Q:$P(^EDPB(233.1,STS,0),U,5)["O" 0
4327"RTN","EDPQLE",103,0)
4328 Q 1
4329"RTN","EDPQLE",104,0)
4330 ;
4331"RTN","EDPQLE",105,0)
4332EXCEED() ; return true if delay time exceeded
4333"RTN","EDPQLE",106,0)
4334 ; called from REQ, VAL and PARAM are assumed to be defined
4335"RTN","EDPQLE",107,0)
4336 N IN S IN=$G(VAL("inTS"))
4337"RTN","EDPQLE",108,0)
4338 N MAX S MAX=$P(PARAM,U,5)
4339"RTN","EDPQLE",109,0)
4340 Q ($$FMDIFF^XLFDT(EDPTIME,IN,2)\60)>MAX
4341"RTN","EDPQLE1")
43420^28^B4294300
4343"RTN","EDPQLE1",1,0)
4344EDPQLE1 ;SLC/KCM - Retrive Log Entry - Supporting Info
4345"RTN","EDPQLE1",2,0)
4346 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
4347"RTN","EDPQLE1",3,0)
4348 ;
4349"RTN","EDPQLE1",4,0)
4350CHOICES(AREA) ; Add choice lists for editing log entry to XML
4351"RTN","EDPQLE1",5,0)
4352 ; called from EDPQLE
4353"RTN","EDPQLE1",6,0)
4354 ;
4355"RTN","EDPQLE1",7,0)
4356 D STAFF("md","P")
4357"RTN","EDPQLE1",8,0)
4358 D STAFF("res","R")
4359"RTN","EDPQLE1",9,0)
4360 D STAFF("nurse","N")
4361"RTN","EDPQLE1",10,0)
4362 ;
4363"RTN","EDPQLE1",11,0)
4364 D CODES("arrival","arrival")
4365"RTN","EDPQLE1",12,0)
4366 D CODES("acuity","acuity")
4367"RTN","EDPQLE1",13,0)
4368 D CODES("status","status")
4369"RTN","EDPQLE1",14,0)
4370 D CODES("disposition","disposition")
4371"RTN","EDPQLE1",15,0)
4372 D CODES("delay","delay")
4373"RTN","EDPQLE1",16,0)
4374 Q
4375"RTN","EDPQLE1",17,0)
4376STAFF(LABEL,ROLE) ; add staff for this area to XML
4377"RTN","EDPQLE1",18,0)
4378 N IEN,X0
4379"RTN","EDPQLE1",19,0)
4380 D XML^EDPX("<"_LABEL_"List>")
4381"RTN","EDPQLE1",20,0)
4382 D XML^EDPX($$XMLS^EDPX(LABEL,0," ")) ;non-selected (-1 will delete)
4383"RTN","EDPQLE1",21,0)
4384 S IEN=0 F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
4385"RTN","EDPQLE1",22,0)
4386 . S X0=^EDPB(231.7,IEN,0)
4387"RTN","EDPQLE1",23,0)
4388 . D XML^EDPX($$XMLS^EDPX(LABEL,$P(X0,U,5),$P(X0,U)))
4389"RTN","EDPQLE1",24,0)
4390 D XML^EDPX("</"_LABEL_"List>")
4391"RTN","EDPQLE1",25,0)
4392 Q
4393"RTN","EDPQLE1",26,0)
4394CODES(LABEL,SETNM) ; build nodes for set of codes
4395"RTN","EDPQLE1",27,0)
4396 D XML^EDPX("<"_LABEL_"List>")
4397"RTN","EDPQLE1",28,0)
4398 I "^arrival^acuity^status^disposition^delay^"[(U_LABEL_U) D
4399"RTN","EDPQLE1",29,0)
4400 . N NOVAL S NOVAL=+$O(^EDPB(233.1,"B","edp.reserved.novalue",0))
4401"RTN","EDPQLE1",30,0)
4402 . D XML^EDPX($$XMLS^EDPX(LABEL,NOVAL," ")) ; non-selected value
4403"RTN","EDPQLE1",31,0)
4404 ;
4405"RTN","EDPQLE1",32,0)
4406 I $D(^EDPB(233.2,"B",EDPSITE_"."_SETNM)) S SETNM=EDPSITE_"."_SETNM I 1
4407"RTN","EDPQLE1",33,0)
4408 E S SETNM="edp."_SETNM
4409"RTN","EDPQLE1",34,0)
4410 ;
4411"RTN","EDPQLE1",35,0)
4412 N SET,SEQ,I,X0,IEN,SHOW
4413"RTN","EDPQLE1",36,0)
4414 S SET=$O(^EDPB(233.2,"B",SETNM,0))
4415"RTN","EDPQLE1",37,0)
4416 S SEQ=0 F S SEQ=$O(^EDPB(233.2,SET,1,"B",SEQ)) Q:'SEQ D
4417"RTN","EDPQLE1",38,0)
4418 . S I=0 F S I=$O(^EDPB(233.2,SET,1,"B",SEQ,I)) Q:'I D
4419"RTN","EDPQLE1",39,0)
4420 . . S X0=^EDPB(233.2,SET,1,I,0)
4421"RTN","EDPQLE1",40,0)
4422 . . Q:$P(X0,U,3) ; inactive
4423"RTN","EDPQLE1",41,0)
4424 . . S IEN=$P(X0,U,2)
4425"RTN","EDPQLE1",42,0)
4426 . . S SHOW=$P(X0,U,4)
4427"RTN","EDPQLE1",43,0)
4428 . . I SHOW="" S SHOW=$P(^EDPB(233.1,IEN,0),U,2)
4429"RTN","EDPQLE1",44,0)
4430 . . D XML^EDPX($$XMLS^EDPX(LABEL,IEN,SHOW))
4431"RTN","EDPQLE1",45,0)
4432 ;
4433"RTN","EDPQLE1",46,0)
4434 D XML^EDPX("</"_LABEL_"List>")
4435"RTN","EDPQLE1",47,0)
4436 Q
4437"RTN","EDPQLP")
44380^29^B5675430
4439"RTN","EDPQLP",1,0)
4440EDPQLP ;SLC/KCM - Log Entry Patients
4441"RTN","EDPQLP",2,0)
4442 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
4443"RTN","EDPQLP",3,0)
4444 ;
4445"RTN","EDPQLP",4,0)
4446GET(AREA,TOKEN) ; Return lists for edit context
4447"RTN","EDPQLP",5,0)
4448 ;
4449"RTN","EDPQLP",6,0)
4450 ; don't rebuild the list if it is unchanged
4451"RTN","EDPQLP",7,0)
4452 ;I $G(^EDPB(231.9,AREA,230))=TOKEN D Q
4453"RTN","EDPQLP",8,0)
4454 ;. D XML^EDPX("<logEntries status='same' />")
4455"RTN","EDPQLP",9,0)
4456 ;
4457"RTN","EDPQLP",10,0)
4458 ; build sequence based on bed sequence
4459"RTN","EDPQLP",11,0)
4460 N IEN,X0,NAME,SSN,LAST4,BED,SEQ,DUP,LST
4461"RTN","EDPQLP",12,0)
4462 D BLDDUP(.DUP,AREA)
4463"RTN","EDPQLP",13,0)
4464 S IEN=0 F S IEN=$O(^EDP(230,"AC",EDPSITE,AREA,IEN)) Q:'IEN D
4465"RTN","EDPQLP",14,0)
4466 . S X0=^EDP(230,IEN,0)
4467"RTN","EDPQLP",15,0)
4468 . S NAME=$P(X0,U,4),SSN=$P(X0,U,5),LAST4=$P(X0,U,11)
4469"RTN","EDPQLP",16,0)
4470 . S BED=$P($G(^EDP(230,IEN,3)),U,4)
4471"RTN","EDPQLP",17,0)
4472 . S SEQ=0
4473"RTN","EDPQLP",18,0)
4474 . I BED S SEQ=$P($G(^EDPB(231.8,BED,0)),U,5)
4475"RTN","EDPQLP",19,0)
4476 . I 'SEQ S SEQ=999999
4477"RTN","EDPQLP",20,0)
4478 . I BED S BED=$P(^EDPB(231.8,BED,0),U,6)
4479"RTN","EDPQLP",21,0)
4480 . S LST(SEQ,IEN)=NAME_U_SSN_U_LAST4_U_BED_U_$$SIM(NAME,LAST4,.DUP)
4481"RTN","EDPQLP",22,0)
4482 ;
4483"RTN","EDPQLP",23,0)
4484 D XML^EDPX("<logEntries status='new' token='"_$G(^EDPB(231.9,AREA,230))_"' >")
4485"RTN","EDPQLP",24,0)
4486 S SEQ=0 F S SEQ=$O(LST(SEQ)) Q:'SEQ D
4487"RTN","EDPQLP",25,0)
4488 . S IEN=0 F S IEN=$O(LST(SEQ,IEN)) Q:'IEN D
4489"RTN","EDPQLP",26,0)
4490 . . S X("id")=IEN
4491"RTN","EDPQLP",27,0)
4492 . . S X("seq")=SEQ
4493"RTN","EDPQLP",28,0)
4494 . . S X("name")=$P(LST(SEQ,IEN),U)
4495"RTN","EDPQLP",29,0)
4496 . . S X("ssn")=$P(LST(SEQ,IEN),U,2)
4497"RTN","EDPQLP",30,0)
4498 . . S X("last4")=$P(LST(SEQ,IEN),U,3)
4499"RTN","EDPQLP",31,0)
4500 . . S X("bed")=$P(LST(SEQ,IEN),U,4)
4501"RTN","EDPQLP",32,0)
4502 . . S X("same")=$P(LST(SEQ,IEN),U,5)
4503"RTN","EDPQLP",33,0)
4504 . . D XML^EDPX($$XMLA^EDPX("log",.X))
4505"RTN","EDPQLP",34,0)
4506 D XML^EDPX("</logEntries>")
4507"RTN","EDPQLP",35,0)
4508 Q
4509"RTN","EDPQLP",36,0)
4510BLDDUP(DUP,AREA) ; Build duplicate name/last4 counters
4511"RTN","EDPQLP",37,0)
4512 ; called from GET^EDPQLP, GET^EDPQDB -- expect EDPSITE
4513"RTN","EDPQLP",38,0)
4514 N X,IEN,CNT
4515"RTN","EDPQLP",39,0)
4516 S X="" F S X=$O(^EDP(230,"ADUP",EDPSITE,AREA,X)) Q:X="" D
4517"RTN","EDPQLP",40,0)
4518 . S IEN=0,CNT=0
4519"RTN","EDPQLP",41,0)
4520 . F S IEN=$O(^EDP(230,"ADUP",EDPSITE,AREA,X,IEN)) Q:'IEN S CNT=CNT+1
4521"RTN","EDPQLP",42,0)
4522 . S DUP(X)=CNT
4523"RTN","EDPQLP",43,0)
4524 Q
4525"RTN","EDPQLP",44,0)
4526SIM(NAME,LAST4,DUP) ; Return true if similar patient name/last4
4527"RTN","EDPQLP",45,0)
4528 I $L(LAST4),$G(DUP(LAST4))>1 Q 1
4529"RTN","EDPQLP",46,0)
4530 I $G(DUP($P(NAME,",")))>1 Q 1
4531"RTN","EDPQLP",47,0)
4532 Q 0
4533"RTN","EDPQLP",48,0)
4534 ;
4535"RTN","EDPQLP",49,0)
4536CLOSED(AREA,PARTIAL) ; find matches on name
4537"RTN","EDPQLP",50,0)
4538 S PARTIAL=$$UP^XLFSTR(PARTIAL)
4539"RTN","EDPQLP",51,0)
4540 Q:PARTIAL=""
4541"RTN","EDPQLP",52,0)
4542 ;
4543"RTN","EDPQLP",53,0)
4544 N IEN,NAME,X
4545"RTN","EDPQLP",54,0)
4546 S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,PARTIAL),-1)
4547"RTN","EDPQLP",55,0)
4548 F S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,NAME)) Q:$E(NAME,1,$L(PARTIAL))'=PARTIAL Q:NAME="" D
4549"RTN","EDPQLP",56,0)
4550 . S IEN=0 F S IEN=$O(^EDP(230,"PN",EDPSITE,AREA,NAME,IEN)) Q:'IEN D
4551"RTN","EDPQLP",57,0)
4552 . . S X("id")=IEN,X("name")=NAME,X("inTS")=$P(^EDP(230,IEN,0),U,8)
4553"RTN","EDPQLP",58,0)
4554 . . D XML^EDPX($$XMLA^EDPX("visit",.X))
4555"RTN","EDPQLP",59,0)
4556 Q
4557"RTN","EDPRPT")
45580^30^B8926561
4559"RTN","EDPRPT",1,0)
4560EDPRPT ;SLC/MKB - Reports
4561"RTN","EDPRPT",2,0)
4562 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
4563"RTN","EDPRPT",3,0)
4564 ;
4565"RTN","EDPRPT",4,0)
4566EN(BEG,END,RPT,ID,CSV) ; Get RPT data for EDPSITE by date range
4567"RTN","EDPRPT",5,0)
4568 I BEG,END D ;check
4569"RTN","EDPRPT",6,0)
4570 . N X I END<BEG S X=BEG,BEG=END,END=X ;switch
4571"RTN","EDPRPT",7,0)
4572 . S:$L(END,".")<2 END=END_".2359"
4573"RTN","EDPRPT",8,0)
4574 S RPT=$$UP^XLFSTR($G(RPT))
4575"RTN","EDPRPT",9,0)
4576 ; switch on report type
4577"RTN","EDPRPT",10,0)
4578 I RPT="EXPOSURE" D EXP^EDPRPT7(ID) G CONT
4579"RTN","EDPRPT",11,0)
4580 I BEG<1 D ERR(2300012) G CONT
4581"RTN","EDPRPT",12,0)
4582 I RPT="SHIFT" D SFT^EDPRPT5(BEG) G CONT
4583"RTN","EDPRPT",13,0)
4584 I END<1 D ERR(2300012) G CONT
4585"RTN","EDPRPT",14,0)
4586 I RPT="ACTIVITY" D ACT^EDPRPT1(BEG,END) G CONT
4587"RTN","EDPRPT",15,0)
4588 I RPT["DELAY" D DEL^EDPRPT2(BEG,END) G CONT
4589"RTN","EDPRPT",16,0)
4590 I RPT="SUMMARY" D SUM^EDPRPT4(BEG,END) G CONT
4591"RTN","EDPRPT",17,0)
4592 I RPT="MISSEDOP" D MO^EDPRPT3(BEG,END) G CONT
4593"RTN","EDPRPT",18,0)
4594 I RPT="PROVIDER" D PRV^EDPRPT6(BEG,END) G CONT
4595"RTN","EDPRPT",19,0)
4596 I RPT="ACUITY" D ACU^EDPRPT8(BEG,END) G CONT
4597"RTN","EDPRPT",20,0)
4598 I RPT="PATIENT" D XRF^EDPRPT9(BEG,END) G CONT
4599"RTN","EDPRPT",21,0)
4600 I RPT="ADMISSIONS" D ADM^EDPRPT10(BEG,END) G CONT
4601"RTN","EDPRPT",22,0)
4602 I RPT="INTAKE" D CNT^EDPRPT11(BEG,END) G CONT
4603"RTN","EDPRPT",23,0)
4604 ; else
4605"RTN","EDPRPT",24,0)
4606 D ERR(2300011)
4607"RTN","EDPRPT",25,0)
4608CONT ; end switch
4609"RTN","EDPRPT",26,0)
4610 Q
4611"RTN","EDPRPT",27,0)
4612 ;
4613"RTN","EDPRPT",28,0)
4614ERR(MSG) ; -- return error MSG
4615"RTN","EDPRPT",29,0)
4616 N X S X=$$MSG^EDPX(MSG)
4617"RTN","EDPRPT",30,0)
4618 I $G(CSV) D ADD^EDPCSV(X) Q
4619"RTN","EDPRPT",31,0)
4620 D XML^EDPX("<error msg='"_X_"' />")
4621"RTN","EDPRPT",32,0)
4622 Q
4623"RTN","EDPRPT",33,0)
4624 ;
4625"RTN","EDPRPT",34,0)
4626NOW() ; -- Return local value of NOW, based on EDPSITE
4627"RTN","EDPRPT",35,0)
4628 N TA,OFF,NOW
4629"RTN","EDPRPT",36,0)
4630 S TA=+$O(^EDPB(231.9,"C",+$G(EDPSITE),0)),OFF=$P($G(^EDPB(231.9,TA,0)),U,3)
4631"RTN","EDPRPT",37,0)
4632 S NOW=$$NOW^XLFDT S:OFF NOW=$$FMADD^XLFDT(NOW,,,OFF) ;time zone
4633"RTN","EDPRPT",38,0)
4634 Q NOW
4635"RTN","EDPRPT",39,0)
4636 ;
4637"RTN","EDPRPT",40,0)
4638PROV(MD) ; add list of assigned providers to XML
4639"RTN","EDPRPT",41,0)
4640 N I,X0,X
4641"RTN","EDPRPT",42,0)
4642 D XML^EDPX("<providers>")
4643"RTN","EDPRPT",43,0)
4644 S I=0 F S I=$O(MD(I)) Q:I<1 D
4645"RTN","EDPRPT",44,0)
4646 . S X0=$G(^EDPB(231.7,I,0)),X="<md id='"_I_"' name='"_$$ESC^EDPX($P(X0,U))_"' initials='"_$$ESC^EDPX($P(X0,U,2))_"'/>"
4647"RTN","EDPRPT",45,0)
4648 . D XML^EDPX(X)
4649"RTN","EDPRPT",46,0)
4650 D XML^EDPX("</providers>")
4651"RTN","EDPRPT",47,0)
4652 Q
4653"RTN","EDPRPT",48,0)
4654 ;
4655"RTN","EDPRPT",49,0)
4656ECODE(IEN) ; Return external value for a Code
4657"RTN","EDPRPT",50,0)
4658 Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,3) ;code
4659"RTN","EDPRPT",51,0)
4660 Q ""
4661"RTN","EDPRPT",52,0)
4662 ;
4663"RTN","EDPRPT",53,0)
4664EPERS(IEN) ; Return external value for a Person (file 200)
4665"RTN","EDPRPT",54,0)
4666 Q:IEN $P($G(^EDPB(231.7,IEN,0)),U)
4667"RTN","EDPRPT",55,0)
4668 Q ""
4669"RTN","EDPRPT",56,0)
4670 ;
4671"RTN","EDPRPT",57,0)
4672EDATE(FMDT) ; Return external value for a Date/Time
4673"RTN","EDPRPT",58,0)
4674 Q:FMDT $TR($$FMTE^XLFDT(FMDT,"2M"),"@"," ") ;MM/DD/YY HH:MM
4675"RTN","EDPRPT",59,0)
4676 Q ""
4677"RTN","EDPRPT",60,0)
4678 ;
4679"RTN","EDPRPT",61,0)
4680ETIME(MINS) ; Return #minutes as HH:MM
4681"RTN","EDPRPT",62,0)
4682 N H,M,Y
4683"RTN","EDPRPT",63,0)
4684 S H=MINS\60,M=MINS#60
4685"RTN","EDPRPT",64,0)
4686 S Y=H_":"_$S($L(M)=1:"0"_M,1:M)
4687"RTN","EDPRPT",65,0)
4688 Q Y
4689"RTN","EDPRPT",66,0)
4690 ;
4691"RTN","EDPRPT",67,0)
4692ASSIGNED(LOG,PCE) ; Return time PCE was first assigned
4693"RTN","EDPRPT",68,0)
4694 N D,I,Y S Y=""
4695"RTN","EDPRPT",69,0)
4696 S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) I $P($G(^EDP(230.1,I,3)),U,PCE)'="" S Y=D Q
4697"RTN","EDPRPT",70,0)
4698 Q Y
4699"RTN","EDPRPT",71,0)
4700 ;
4701"RTN","EDPRPT",72,0)
4702NWBED(LOG) ; Return 1st time non-wait bed was assigned
4703"RTN","EDPRPT",73,0)
4704 N D,I,X,Y,BED S Y=""
4705"RTN","EDPRPT",74,0)
4706 S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D Q:Y
4707"RTN","EDPRPT",75,0)
4708 . S BED=+$P($G(^EDP(230.1,I,3)),U,4)
4709"RTN","EDPRPT",76,0)
4710 . S X=$P($G(^EDPB(231.8,BED,0)),U,9) ;allow multiple assignments?
4711"RTN","EDPRPT",77,0)
4712 . I X=0!(X="false") S Y=D Q
4713"RTN","EDPRPT",78,0)
4714 Q Y
4715"RTN","EDPRPT",79,0)
4716 ;
4717"RTN","EDPRPT",80,0)
4718ADMSTS(LOG) ; Return 1st time admit status was assigned
4719"RTN","EDPRPT",81,0)
4720 N D,I,X3,X,Y S Y=""
4721"RTN","EDPRPT",82,0)
4722 S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D Q:Y
4723"RTN","EDPRPT",83,0)
4724 . S X3=$G(^EDP(230.1,I,3))
4725"RTN","EDPRPT",84,0)
4726 . I $P(X3,U,2) S X=$$ECODE($P(X3,U,2)) S:X["Adm"!(X["Obs") Y=D
4727"RTN","EDPRPT",85,0)
4728 Q Y
4729"RTN","EDPRPT1")
47300^31^B33830475
4731"RTN","EDPRPT1",1,0)
4732EDPRPT1 ;SLC/MKB - Activity Report
4733"RTN","EDPRPT1",2,0)
4734 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
4735"RTN","EDPRPT1",3,0)
4736 ;
4737"RTN","EDPRPT1",4,0)
4738ACT(BEG,END) ; Get Activity Report for EDPSITE by date range
4739"RTN","EDPRPT1",5,0)
4740 N LOG,X,X0,X1,X3,X4,IN,OUT,ROW,PROV,I,NOW
4741"RTN","EDPRPT1",6,0)
4742 N ELAPSE,TRIAGE,WAIT,ADMDEC,ADMDEL,ALL,ADM,NOT,DISP
4743"RTN","EDPRPT1",7,0)
4744 D INIT ;set counters, sums to 0
4745"RTN","EDPRPT1",8,0)
4746 D:'$G(CSV) XML^EDPX("<logEntries>") I $G(CSV) D ;headers
4747"RTN","EDPRPT1",9,0)
4748 . N TAB S TAB=$C(9)
4749"RTN","EDPRPT1",10,0)
4750 . S X="ED"_TAB_"Time In"_TAB_"Time Out"_TAB_"Complaint"_TAB_"MD"_TAB_"Acuity"_TAB_"Elapsed"_TAB_"Triage"_TAB_"Wait"_TAB_"Dispo"_TAB_"Adm Dec"_TAB_"Adm Delay"_TAB_"Arrival"_TAB_"Diagnosis"_TAB_"ICD9"
4751"RTN","EDPRPT1",11,0)
4752 . D ADD^EDPCSV(X)
4753"RTN","EDPRPT1",12,0)
4754 S IN=BEG-.000001
4755"RTN","EDPRPT1",13,0)
4756 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
4757"RTN","EDPRPT1",14,0)
4758 . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
4759"RTN","EDPRPT1",15,0)
4760 . S OUT=$P(X0,U,9)
4761"RTN","EDPRPT1",16,0)
4762 . K ROW S ROW("id")=LOG,ALL=ALL+1
4763"RTN","EDPRPT1",17,0)
4764 . S ROW("inTS")=$$EDATE^EDPRPT(IN)
4765"RTN","EDPRPT1",18,0)
4766 . S ROW("outTS")=$$EDATE^EDPRPT(OUT)
4767"RTN","EDPRPT1",19,0)
4768 . S ROW("complaint")=$P(X1,U)
4769"RTN","EDPRPT1",20,0)
4770 . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),ROW("disposition")=DISP
4771"RTN","EDPRPT1",21,0)
4772 . S ROW("arrival")=$$ECODE($P(X1,U,10))
4773"RTN","EDPRPT1",22,0)
4774 . S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3))
4775"RTN","EDPRPT1",23,0)
4776 . S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
4777"RTN","EDPRPT1",24,0)
4778 . S:$P(X3,U,5) PROV(+$P(X3,U,5))=""
4779"RTN","EDPRPT1",25,0)
4780 . S ROW("dx")=$P(X4,U),ROW("icd")=$P(X4,U,2)
4781"RTN","EDPRPT1",26,0)
4782 . S:'$L(DISP) DISP="none" ;need as subscript
4783"RTN","EDPRPT1",27,0)
4784 . S DISP(DISP)=DISP(DISP)+1
4785"RTN","EDPRPT1",28,0)
4786 . ;
4787"RTN","EDPRPT1",29,0)
4788A1 . ; calculate times
4789"RTN","EDPRPT1",30,0)
4790 . S:OUT="" OUT=NOW ;for calculations
4791"RTN","EDPRPT1",31,0)
4792 . S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60)
4793"RTN","EDPRPT1",32,0)
4794 . S ROW("elapsed")=ELAPSE_$S(ELAPSE>359:" *",1:"")
4795"RTN","EDPRPT1",33,0)
4796 . S ALL("elapsed")=ALL("elapsed")+ELAPSE
4797"RTN","EDPRPT1",34,0)
4798 . S DISP(DISP,"elapsed")=DISP(DISP,"elapsed")+ELAPSE
4799"RTN","EDPRPT1",35,0)
4800 . ;
4801"RTN","EDPRPT1",36,0)
4802 . S X=$$ASSIGNED^EDPRPT(LOG,3),TRIAGE=0 ;acuity
4803"RTN","EDPRPT1",37,0)
4804 . S TRIAGE=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0),ROW("triage")=TRIAGE
4805"RTN","EDPRPT1",38,0)
4806 . S ALL("triage")=ALL("triage")+TRIAGE
4807"RTN","EDPRPT1",39,0)
4808 . S DISP(DISP,"triage")=DISP(DISP,"triage")+TRIAGE
4809"RTN","EDPRPT1",40,0)
4810 . ;
4811"RTN","EDPRPT1",41,0)
4812 . S X=$$NWBED^EDPRPT(LOG),WAIT=0
4813"RTN","EDPRPT1",42,0)
4814 . S WAIT=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0),ROW("wait")=WAIT
4815"RTN","EDPRPT1",43,0)
4816 . S ALL("wait")=ALL("wait")+WAIT
4817"RTN","EDPRPT1",44,0)
4818 . S DISP(DISP,"wait")=DISP(DISP,"wait")+WAIT
4819"RTN","EDPRPT1",45,0)
4820 . ;
4821"RTN","EDPRPT1",46,0)
4822 . S X=$$ADMSTS^EDPRPT(LOG) I X<1 D
4823"RTN","EDPRPT1",47,0)
4824 .. S NOT=NOT+1,NOT("elapsed")=NOT("elapsed")+ELAPSE
4825"RTN","EDPRPT1",48,0)
4826 .. S NOT("triage")=NOT("triage")+TRIAGE
4827"RTN","EDPRPT1",49,0)
4828 .. S NOT("wait")=NOT("wait")+WAIT
4829"RTN","EDPRPT1",50,0)
4830 . E D ;decision to admit
4831"RTN","EDPRPT1",51,0)
4832 .. S ADMDEC=($$FMDIFF^XLFDT(X,IN,2)\60),ROW("admDec")=ADMDEC
4833"RTN","EDPRPT1",52,0)
4834 .. S ADMDEL=($$FMDIFF^XLFDT(OUT,X,2)\60),ROW("admDel")=ADMDEL
4835"RTN","EDPRPT1",53,0)
4836 .. S ADM=ADM+1,ADM("elapsed")=ADM("elapsed")+ELAPSE
4837"RTN","EDPRPT1",54,0)
4838 .. S ADM("triage")=ADM("triage")+TRIAGE
4839"RTN","EDPRPT1",55,0)
4840 .. S ADM("wait")=ADM("wait")+WAIT
4841"RTN","EDPRPT1",56,0)
4842 .. S ADM("admDec")=ADM("admDec")+ADMDEC
4843"RTN","EDPRPT1",57,0)
4844 .. S ADM("admDel")=ADM("admDel")+ADMDEL
4845"RTN","EDPRPT1",58,0)
4846 .. S DISP(DISP,"admDec")=DISP(DISP,"admDec")+ADMDEC
4847"RTN","EDPRPT1",59,0)
4848 .. S DISP(DISP,"admDel")=DISP(DISP,"admDel")+ADMDEL
4849"RTN","EDPRPT1",60,0)
4850 . ;
4851"RTN","EDPRPT1",61,0)
4852 . I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
4853"RTN","EDPRPT1",62,0)
4854 . S X=ROW("id")
4855"RTN","EDPRPT1",63,0)
4856 . F I="inTS","outTS","complaint","md","acuity","elapsed","triage","wait","disposition","admDec","admDel","arrival","dx","icd" S X=X_$C(9)_$G(ROW(I))
4857"RTN","EDPRPT1",64,0)
4858 . D ADD^EDPCSV(X)
4859"RTN","EDPRPT1",65,0)
4860 D:'$G(CSV) XML^EDPX("</logEntries>")
4861"RTN","EDPRPT1",66,0)
4862 ;
4863"RTN","EDPRPT1",67,0)
4864A2 ; calculate & include averages
4865"RTN","EDPRPT1",68,0)
4866 Q:ALL<1 ;no visits found
4867"RTN","EDPRPT1",69,0)
4868 S ALL("type")="All Patients",NOT("type")="Not Admitted",ADM("type")="Admitted"
4869"RTN","EDPRPT1",70,0)
4870 F I="elapsed","triage","wait" S ALL(I)=$$ETIME^EDPRPT(ALL(I)\ALL)
4871"RTN","EDPRPT1",71,0)
4872 F I="elapsed","triage","wait" S NOT(I)=$S(NOT:$$ETIME^EDPRPT(NOT(I)\NOT),1:"00:00")
4873"RTN","EDPRPT1",72,0)
4874 F I="elapsed","triage","wait","admDec","admDel" S ADM(I)=$S(ADM:$$ETIME^EDPRPT(ADM(I)\ADM),1:"00:00")
4875"RTN","EDPRPT1",73,0)
4876 F I="admDec","admDel" S ALL(I)=ADM(I)
4877"RTN","EDPRPT1",74,0)
4878 S ALL("total")=ALL,NOT("total")=NOT,ADM("total")=ADM
4879"RTN","EDPRPT1",75,0)
4880 S X="" F S X=$O(DISP(X)) Q:X="" I DISP(X) D
4881"RTN","EDPRPT1",76,0)
4882 . S DISP(X,"total")=DISP(X),DISP(X,"type")=X
4883"RTN","EDPRPT1",77,0)
4884 . F I="elapsed","triage","wait","admDec","admDel" S DISP(X,I)=$$ETIME^EDPRPT(DISP(X,I)\DISP(X))
4885"RTN","EDPRPT1",78,0)
4886 ;
4887"RTN","EDPRPT1",79,0)
4888A3 I $G(CSV) D Q ;CSV format
4889"RTN","EDPRPT1",80,0)
4890 . N TAB,D S TAB=$C(9)
4891"RTN","EDPRPT1",81,0)
4892 . D BLANK^EDPCSV
4893"RTN","EDPRPT1",82,0)
4894 . S X=TAB_"Total Patients"_TAB_ALL_TAB_TAB_TAB_TAB_ALL("elapsed")_TAB_ALL("triage")_TAB_ALL("wait")_TAB_TAB_ALL("admDec")_TAB_ALL("admDel")
4895"RTN","EDPRPT1",83,0)
4896 . D ADD^EDPCSV(X),BLANK^EDPCSV
4897"RTN","EDPRPT1",84,0)
4898 . S X=TAB_TAB_TAB_TAB_"Total"_TAB_"Visit"_TAB_"Triage"_TAB_"Wait"_TAB_"Adm Dec"_TAB_"Adm Del"
4899"RTN","EDPRPT1",85,0)
4900 . D ADD^EDPCSV(X),BLANK^EDPCSV
4901"RTN","EDPRPT1",86,0)
4902 . S X=TAB_TAB_TAB_"Patients Not Admitted"_TAB_NOT_TAB_NOT("elapsed")_TAB_NOT("triage")_TAB_NOT("wait")
4903"RTN","EDPRPT1",87,0)
4904 . D ADD^EDPCSV(X),BLANK^EDPCSV
4905"RTN","EDPRPT1",88,0)
4906 . S X=TAB_TAB_TAB_"Patients Admitted"_TAB_ADM_TAB_ADM("elapsed")_TAB_ADM("triage")_TAB_ADM("wait")_TAB_ADM("admDec")_TAB_ADM("admDel")
4907"RTN","EDPRPT1",89,0)
4908 . D ADD^EDPCSV(X),BLANK^EDPCSV
4909"RTN","EDPRPT1",90,0)
4910 . S X=TAB_TAB_TAB_"Disposition" D ADD^EDPCSV(X)
4911"RTN","EDPRPT1",91,0)
4912 . S D="" F S D=$O(DISP(D)) Q:D="" I DISP(D) D
4913"RTN","EDPRPT1",92,0)
4914 .. S X=D_TAB_DISP(D)_TAB_DISP(D,"elapsed")_TAB_DISP(D,"triage")_TAB_DISP(D,"wait")_TAB_DISP(D,"admDec")_TAB_DISP(D,"admDel")
4915"RTN","EDPRPT1",93,0)
4916 .. D ADD^EDPCSV(X)
4917"RTN","EDPRPT1",94,0)
4918 D XML^EDPX("<averages>")
4919"RTN","EDPRPT1",95,0)
4920 S X=$$XMLA^EDPX("average",.ALL) D XML^EDPX(X)
4921"RTN","EDPRPT1",96,0)
4922 S X=$$XMLA^EDPX("average",.NOT) D XML^EDPX(X)
4923"RTN","EDPRPT1",97,0)
4924 S X=$$XMLA^EDPX("average",.ADM) D XML^EDPX(X)
4925"RTN","EDPRPT1",98,0)
4926 S I="" F S I=$O(DISP(I)) Q:I="" I DISP(I) K ROW M ROW=DISP(I) S X=$$XMLA^EDPX("average",.ROW) D XML^EDPX(X)
4927"RTN","EDPRPT1",99,0)
4928 D XML^EDPX("</averages>")
4929"RTN","EDPRPT1",100,0)
4930 ; include list of providers assigned
4931"RTN","EDPRPT1",101,0)
4932 I $O(PROV(0)) D PROV^EDPRPT(.PROV)
4933"RTN","EDPRPT1",102,0)
4934 Q
4935"RTN","EDPRPT1",103,0)
4936 ;
4937"RTN","EDPRPT1",104,0)
4938INIT ; Initialize counters and sums
4939"RTN","EDPRPT1",105,0)
4940 N I,NM S (ALL,ADM,NOT)=0
4941"RTN","EDPRPT1",106,0)
4942 F I="elapsed","triage","wait" S (ALL(I),NOT(I),ADM(I))=0
4943"RTN","EDPRPT1",107,0)
4944 F I="admDec","admDel" S ADM(I)=0
4945"RTN","EDPRPT1",108,0)
4946 S NM="" F S NM=$O(^EDPB(233.1,"B",NM)) Q:NM="" I $P(NM,".",2)="disposition" S I=+$O(^(NM,0)) D
4947"RTN","EDPRPT1",109,0)
4948 . S X=$P($G(^EDPB(233.1,I,0)),U,3),DISP(X)=0
4949"RTN","EDPRPT1",110,0)
4950 . F I="elapsed","triage","wait","admDec","admDel" S DISP(X,I)=0
4951"RTN","EDPRPT1",111,0)
4952 S DISP("none")=0 F I="elapsed","triage","wait","admDec","admDel" S DISP("none",I)=0
4953"RTN","EDPRPT1",112,0)
4954 S NOW=$$NOW^EDPRPT
4955"RTN","EDPRPT1",113,0)
4956 Q
4957"RTN","EDPRPT1",114,0)
4958 ;
4959"RTN","EDPRPT1",115,0)
4960ECODE(IEN) ; Return external value for a Code
4961"RTN","EDPRPT1",116,0)
4962 Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
4963"RTN","EDPRPT1",117,0)
4964 Q ""
4965"RTN","EDPRPT10")
49660^32^B17116118
4967"RTN","EDPRPT10",1,0)
4968EDPRPT10 ;SLC/MKB - Admissions Report
4969"RTN","EDPRPT10",2,0)
4970 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
4971"RTN","EDPRPT10",3,0)
4972 ;
4973"RTN","EDPRPT10",4,0)
4974ADM(BEG,END) ; Get Admissions Report for EDPSITE by date range
4975"RTN","EDPRPT10",5,0)
4976 N IN,OUT,LOG,X,X0,X1,X3,X4,DISP,ROW,NOW,TAB
4977"RTN","EDPRPT10",6,0)
4978 N ELAPSE,TRIAGE,WAIT,ADMDEC,ADMDEL
4979"RTN","EDPRPT10",7,0)
4980 D INIT ;set counters, sums to 0
4981"RTN","EDPRPT10",8,0)
4982 D:'$G(CSV) XML^EDPX("<logEntries>") I $G(CSV) D ;headers
4983"RTN","EDPRPT10",9,0)
4984 . S TAB=$C(9)
4985"RTN","EDPRPT10",10,0)
4986 . S X="ED"_TAB_"Time Out"_TAB_"Complaint"_TAB_"MD"_TAB_"Acuity"_TAB_"Dispo"_TAB_"Adm Dec"_TAB_"Adm Delay"_TAB_"Diagnosis"_TAB_"ICD9" ;_TAB_"ER Spec Visit"
4987"RTN","EDPRPT10",11,0)
4988 . D ADD^EDPCSV(X)
4989"RTN","EDPRPT10",12,0)
4990 S IN=BEG-.000001
4991"RTN","EDPRPT10",13,0)
4992 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
4993"RTN","EDPRPT10",14,0)
4994 . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
4995"RTN","EDPRPT10",15,0)
4996 . S DISP=$$ECODE^EDPRPT($P(X1,U,2)) Q:"^VA^ICU^T^OBS^"'[(U_DISP_U)
4997"RTN","EDPRPT10",16,0)
4998 . S OUT=$P(X0,U,9)
4999"RTN","EDPRPT10",17,0)
5000 . K ROW S ROW("id")=LOG
5001"RTN","EDPRPT10",18,0)
5002 . S ROW("outTS")=$$EDATE^EDPRPT(OUT)
5003"RTN","EDPRPT10",19,0)
5004 . S ROW("complaint")=$P(X1,U)
5005"RTN","EDPRPT10",20,0)
5006 . S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
5007"RTN","EDPRPT10",21,0)
5008 . S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3))
5009"RTN","EDPRPT10",22,0)
5010 . S ROW("disposition")=DISP
5011"RTN","EDPRPT10",23,0)
5012 . S ROW("dx")=$P(X4,U),ROW("icd")=$P(X4,U,2)
5013"RTN","EDPRPT10",24,0)
5014 . ; ER Special Visit ?? -- ck ^DPT dispositions
5015"RTN","EDPRPT10",25,0)
5016 . S CNT("ALL")=CNT("ALL")+1,CNT(DISP)=CNT(DISP)+1
5017"RTN","EDPRPT10",26,0)
5018 . ;
5019"RTN","EDPRPT10",27,0)
5020A1 . ; calculate times
5021"RTN","EDPRPT10",28,0)
5022 . S:OUT="" OUT=NOW
5023"RTN","EDPRPT10",29,0)
5024 . S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60)
5025"RTN","EDPRPT10",30,0)
5026 . F I="ALL",DISP S MIN(I,"elapsed")=MIN(I,"elapsed")+ELAPSE
5027"RTN","EDPRPT10",31,0)
5028 . ;
5029"RTN","EDPRPT10",32,0)
5030 . S X=$$ASSIGNED^EDPRPT(LOG,3) ;acuity assigned
5031"RTN","EDPRPT10",33,0)
5032 . S TRIAGE=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
5033"RTN","EDPRPT10",34,0)
5034 . F I="ALL",DISP S MIN(I,"triage")=MIN(I,"triage")+TRIAGE
5035"RTN","EDPRPT10",35,0)
5036 . ;
5037"RTN","EDPRPT10",36,0)
5038 . S X=$$NWBED^EDPRPT(LOG) ;non-wait bed assigned
5039"RTN","EDPRPT10",37,0)
5040 . S WAIT=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
5041"RTN","EDPRPT10",38,0)
5042 . F I="ALL",DISP S MIN(I,"wait")=MIN(I,"wait")+WAIT
5043"RTN","EDPRPT10",39,0)
5044 . ;
5045"RTN","EDPRPT10",40,0)
5046 . S X=$$ADMSTS^EDPRPT(LOG) ;decision to admit
5047"RTN","EDPRPT10",41,0)
5048 . S ADMDEC=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
5049"RTN","EDPRPT10",42,0)
5050 . F I="ALL",DISP S MIN(I,"admDec")=MIN(I,"admDec")+ADMDEC
5051"RTN","EDPRPT10",43,0)
5052 . S ROW("admDec")=ADMDEC
5053"RTN","EDPRPT10",44,0)
5054 . ;
5055"RTN","EDPRPT10",45,0)
5056 . S ADMDEL=$S(X:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0)
5057"RTN","EDPRPT10",46,0)
5058 . F I="ALL",DISP S MIN(I,"admDel")=MIN(I,"admDel")+ADMDEL
5059"RTN","EDPRPT10",47,0)
5060 . S ROW("admDel")=ADMDEL
5061"RTN","EDPRPT10",48,0)
5062 . ;
5063"RTN","EDPRPT10",49,0)
5064 . I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
5065"RTN","EDPRPT10",50,0)
5066 . S X=ROW("id")
5067"RTN","EDPRPT10",51,0)
5068 . F I="outTS","complaint","md","acuity","disposition","admDec","admDel","dx","icd" S X=X_$C(9)_$G(ROW(I))
5069"RTN","EDPRPT10",52,0)
5070 . D ADD^EDPCSV(X)
5071"RTN","EDPRPT10",53,0)
5072 D:'$G(CSV) XML^EDPX("</logEntries>")
5073"RTN","EDPRPT10",54,0)
5074 ;
5075"RTN","EDPRPT10",55,0)
5076A2 ; calculate & include averages
5077"RTN","EDPRPT10",56,0)
5078 Q:CNT("ALL")<1 ;no visits found
5079"RTN","EDPRPT10",57,0)
5080 I $G(CSV) D Q ;return as CSV
5081"RTN","EDPRPT10",58,0)
5082 . S X=TAB_TAB_TAB_" Activity Summary"_TAB_"Total"_TAB_"Visit"_TAB_"Triage"_TAB_"Wait"_TAB_"Adm Dec"_TAB_"Adm Delay"
5083"RTN","EDPRPT10",59,0)
5084 . D BLANK^EDPCSV,ADD^EDPCSV(X),BLANK^EDPCSV
5085"RTN","EDPRPT10",60,0)
5086 . S X=TAB_TAB_TAB_"Total Patients VA Admitted"_TAB_CNT("ALL")
5087"RTN","EDPRPT10",61,0)
5088 . F I="elapsed","triage","wait","admDec","admDel" D
5089"RTN","EDPRPT10",62,0)
5090 .. S Y=MIN("ALL",I)\CNT("ALL"),X=X_TAB_$S(Y:$$ETIME^EDPRPT(Y),1:"0:00")
5091"RTN","EDPRPT10",63,0)
5092 . D ADD^EDPCSV(X),BLANK^EDPCSV
5093"RTN","EDPRPT10",64,0)
5094 . S X=TAB_TAB_TAB_" Disposition" D ADD^EDPCSV(X)
5095"RTN","EDPRPT10",65,0)
5096 . F DISP="VA","ICU","T","OBS" I CNT(DISP) D
5097"RTN","EDPRPT10",66,0)
5098 .. S X=TAB_TAB_TAB_DISP_TAB_CNT(DISP)
5099"RTN","EDPRPT10",67,0)
5100 .. F I="elapsed","triage","wait","admDec","admDel" D
5101"RTN","EDPRPT10",68,0)
5102 ... S Y=MIN(DISP,I)\CNT(DISP),X=X_TAB_$S(Y:$$ETIME^EDPRPT(Y),1:"0:00")
5103"RTN","EDPRPT10",69,0)
5104 .. D ADD^EDPCSV(X)
5105"RTN","EDPRPT10",70,0)
5106 ; or as XML
5107"RTN","EDPRPT10",71,0)
5108 D XML^EDPX("<averages>")
5109"RTN","EDPRPT10",72,0)
5110 F DISP="ALL","VA","ICU","T","OBS" I CNT(DISP) D
5111"RTN","EDPRPT10",73,0)
5112 . S MIN(DISP,"type")=$S(DISP="ALL":"Total Patients VA Admitted",1:DISP)
5113"RTN","EDPRPT10",74,0)
5114 . S MIN(DISP,"total")=CNT(DISP)
5115"RTN","EDPRPT10",75,0)
5116 . F I="elapsed","triage","wait","admDec","admDel" D
5117"RTN","EDPRPT10",76,0)
5118 .. S X=MIN(DISP,I)\CNT(DISP)
5119"RTN","EDPRPT10",77,0)
5120 .. S MIN(DISP,I)=$S(X:$$ETIME^EDPRPT(X),1:"0:00")
5121"RTN","EDPRPT10",78,0)
5122 . K ROW M ROW=MIN(DISP)
5123"RTN","EDPRPT10",79,0)
5124 . S X=$$XMLA^EDPX("average",.ROW) D XML^EDPX(X)
5125"RTN","EDPRPT10",80,0)
5126 D XML^EDPX("</averages>")
5127"RTN","EDPRPT10",81,0)
5128 Q
5129"RTN","EDPRPT10",82,0)
5130 ;
5131"RTN","EDPRPT10",83,0)
5132INIT ; Initialize counters and sums
5133"RTN","EDPRPT10",84,0)
5134 N D,I
5135"RTN","EDPRPT10",85,0)
5136 F D="VA","T","ICU","OBS","ALL" D
5137"RTN","EDPRPT10",86,0)
5138 . S CNT(D)=0
5139"RTN","EDPRPT10",87,0)
5140 . F I="elapsed","triage","wait","admDec","admDel" S MIN(D,I)=0
5141"RTN","EDPRPT10",88,0)
5142 S NOW=$$NOW^EDPRPT
5143"RTN","EDPRPT10",89,0)
5144 Q
5145"RTN","EDPRPT10",90,0)
5146 ;
5147"RTN","EDPRPT10",91,0)
5148ECODE(IEN) ; Return external value for a Code
5149"RTN","EDPRPT10",92,0)
5150 Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
5151"RTN","EDPRPT10",93,0)
5152 Q ""
5153"RTN","EDPRPT11")
51540^33^B8284389
5155"RTN","EDPRPT11",1,0)
5156EDPRPT11 ;SLC/MKB - Patient Intake Report
5157"RTN","EDPRPT11",2,0)
5158 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
5159"RTN","EDPRPT11",3,0)
5160 ;
5161"RTN","EDPRPT11",4,0)
5162CNT(BEG,END) ; Get Patient Intake Report for EDPSITE by date range
5163"RTN","EDPRPT11",5,0)
5164 ; CNT = counters
5165"RTN","EDPRPT11",6,0)
5166 N IN,LOG,LAST,X,CNT,DAY,%H,%T,%Y,T,D,ROW,NM,NMA,TAB
5167"RTN","EDPRPT11",7,0)
5168 D INIT S LAST="" ;set counters to 0
5169"RTN","EDPRPT11",8,0)
5170 S IN=BEG-.000001,TAB=$C(9)
5171"RTN","EDPRPT11",9,0)
5172 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
5173"RTN","EDPRPT11",10,0)
5174 . S X=$P($G(^EDP(230,LOG,0)),U,8) Q:X<1
5175"RTN","EDPRPT11",11,0)
5176 . D H^%DTC S T=%T\3600,D=%Y
5177"RTN","EDPRPT11",12,0)
5178 . S CNT=CNT+1,CNT(T)=CNT(T)+1,CNT(T,D)=CNT(T,D)+1
5179"RTN","EDPRPT11",13,0)
5180 . S CNT("D",D)=CNT("D",D)+1
5181"RTN","EDPRPT11",14,0)
5182 . I LAST=""!(LAST'=D) S DAY(D)=DAY(D)+1
5183"RTN","EDPRPT11",15,0)
5184C1 ; return counts and averages
5185"RTN","EDPRPT11",16,0)
5186 D:'$G(CSV) XML^EDPX("<averages>") I $G(CSV) D ;headers
5187"RTN","EDPRPT11",17,0)
5188 . S X="Time/Day"_TAB_"Sunday"_TAB_"Avg/Sun"_TAB_"Monday"_TAB_"Avg/Mon"_TAB_"Tuesday"_TAB_"Avg/Tue"_TAB_"Wednesday"_TAB_"Avg/Wed"_TAB_"Thursday"_TAB_"Avg/Thu"_TAB_"Friday"_TAB_"Avg/Fri"_TAB_"Saturday"_TAB_"Avg/Sat"_TAB_"Totals"_TAB_"Avg/Day"
5189"RTN","EDPRPT11",18,0)
5190 . D ADD^EDPCSV(X),BLANK^EDPCSV
5191"RTN","EDPRPT11",19,0)
5192 F T=0:1:23 D
5193"RTN","EDPRPT11",20,0)
5194 . K ROW S ROW("time")=$$TIME(T)_"-"_$$TIME(T+1)
5195"RTN","EDPRPT11",21,0)
5196 . S ROW=ROW("time") ;CSV
5197"RTN","EDPRPT11",22,0)
5198 . F D=0:1:6 S NM=$$DAY(D) D
5199"RTN","EDPRPT11",23,0)
5200 .. S ROW(NM)=CNT(T,D),NMA="avg"_$E(NM,1,3)
5201"RTN","EDPRPT11",24,0)
5202 .. S X=$S(DAY(D):CNT(T,D)/DAY(D),1:0)
5203"RTN","EDPRPT11",25,0)
5204 .. S ROW(NMA)=$$ROUND(X)
5205"RTN","EDPRPT11",26,0)
5206 .. S ROW=ROW_TAB_ROW(NM)_TAB_ROW(NMA) ;CSV
5207"RTN","EDPRPT11",27,0)
5208 . S ROW("total")=CNT(T),ROW("average")=$$ROUND(CNT(T)/24)
5209"RTN","EDPRPT11",28,0)
5210 . I '$G(CSV) S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) Q
5211"RTN","EDPRPT11",29,0)
5212 . S ROW=ROW_TAB_ROW("total")_TAB_ROW("average") D ADD^EDPCSV(ROW)
5213"RTN","EDPRPT11",30,0)
5214 ; totals row
5215"RTN","EDPRPT11",31,0)
5216 K ROW S ROW("time")="Totals",ROW=ROW("time")
5217"RTN","EDPRPT11",32,0)
5218 F D=0:1:6 S NM=$$DAY(D) D
5219"RTN","EDPRPT11",33,0)
5220 . S ROW(NM)=CNT("D",D),NMA="avg"_$E(NM,1,3)
5221"RTN","EDPRPT11",34,0)
5222 . S X=$S(DAY(D):CNT("D",D)/DAY(D),1:0)
5223"RTN","EDPRPT11",35,0)
5224 . S ROW(NMA)=$$ROUND(X)
5225"RTN","EDPRPT11",36,0)
5226 . S ROW=ROW_TAB_ROW(NM)_TAB_ROW(NMA) ;CSV
5227"RTN","EDPRPT11",37,0)
5228 S ROW("total")=CNT,ROW=ROW_TAB_ROW("total")
5229"RTN","EDPRPT11",38,0)
5230 I $G(CSV) D BLANK^EDPCSV,ADD^EDPCSV(ROW) Q
5231"RTN","EDPRPT11",39,0)
5232 S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X)
5233"RTN","EDPRPT11",40,0)
5234 D XML^EDPX("</averages>")
5235"RTN","EDPRPT11",41,0)
5236 Q
5237"RTN","EDPRPT11",42,0)
5238 ;
5239"RTN","EDPRPT11",43,0)
5240INIT ; Initialize counters and sums
5241"RTN","EDPRPT11",44,0)
5242 N T,D S CNT=0
5243"RTN","EDPRPT11",45,0)
5244 F T=0:1:23 S CNT(T)=0 F D=0:1:6 S CNT(T,D)=0
5245"RTN","EDPRPT11",46,0)
5246 F D=0:1:6 S CNT("D",D)=0,DAY(D)=0
5247"RTN","EDPRPT11",47,0)
5248 Q
5249"RTN","EDPRPT11",48,0)
5250 ;
5251"RTN","EDPRPT11",49,0)
5252ROUND(X) ; Round X to nearest integer
5253"RTN","EDPRPT11",50,0)
5254 N Y S Y=+$E($P(X,".",2)),X=X\1
5255"RTN","EDPRPT11",51,0)
5256 S:Y>4 X=X+1
5257"RTN","EDPRPT11",52,0)
5258 Q X
5259"RTN","EDPRPT11",53,0)
5260 ;
5261"RTN","EDPRPT11",54,0)
5262TIME(X) ; Return 0000 form of hour# X
5263"RTN","EDPRPT11",55,0)
5264 N Y S Y=$S($L(X)=1:"0"_X,1:X)_"00"
5265"RTN","EDPRPT11",56,0)
5266 Q Y
5267"RTN","EDPRPT11",57,0)
5268 ;
5269"RTN","EDPRPT11",58,0)
5270DAY(X) ; Return name of day# X
5271"RTN","EDPRPT11",59,0)
5272 I X=1 Q "Monday"
5273"RTN","EDPRPT11",60,0)
5274 I X=2 Q "Tuesday"
5275"RTN","EDPRPT11",61,0)
5276 I X=3 Q "Wednesday"
5277"RTN","EDPRPT11",62,0)
5278 I X=4 Q "Thursday"
5279"RTN","EDPRPT11",63,0)
5280 I X=5 Q "Friday"
5281"RTN","EDPRPT11",64,0)
5282 I X=6 Q "Saturday"
5283"RTN","EDPRPT11",65,0)
5284 Q "Sunday"
5285"RTN","EDPRPT2")
52860^34^B16129042
5287"RTN","EDPRPT2",1,0)
5288EDPRPT2 ;SLC/MKB - Delay Report
5289"RTN","EDPRPT2",2,0)
5290 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
5291"RTN","EDPRPT2",3,0)
5292 ;
5293"RTN","EDPRPT2",4,0)
5294DEL(BEG,END) ; Get Delay Report for EDPSITE by date range
5295"RTN","EDPRPT2",5,0)
5296 ; CNT = counters
5297"RTN","EDPRPT2",6,0)
5298 ; MIN = accumulate #minutes
5299"RTN","EDPRPT2",7,0)
5300 N IN,OUT,LOG,X,X0,X1,X3,X4,ELAPSE,ADMDEC,ADMDEL,DISP,CNT,MIN,DEL,ACU,NOW
5301"RTN","EDPRPT2",8,0)
5302 D INIT ;set counters, sums to 0
5303"RTN","EDPRPT2",9,0)
5304 D:'$G(CSV) XML^EDPX("<logEntries>") I $G(CSV) D ;headers
5305"RTN","EDPRPT2",10,0)
5306 . N TAB S TAB=$C(9)
5307"RTN","EDPRPT2",11,0)
5308 . S X="ED IEN"_TAB_"Time In"_TAB_"Elapsed"_TAB_"Dispo"_TAB_"Delay Reason"_TAB_"MD"_TAB_"Adm Dec"_TAB_"Adm Delay"_TAB_"Acuity"_TAB_"Diagnosis"
5309"RTN","EDPRPT2",12,0)
5310 . D ADD^EDPCSV(X)
5311"RTN","EDPRPT2",13,0)
5312 S IN=BEG-.000001
5313"RTN","EDPRPT2",14,0)
5314 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
5315"RTN","EDPRPT2",15,0)
5316 . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
5317"RTN","EDPRPT2",16,0)
5318 . S ACU=$$ECODE^EDPRPT($P(X3,U,3)),CNT=CNT+1
5319"RTN","EDPRPT2",17,0)
5320 . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),DEL=+$P(X1,U,5)
5321"RTN","EDPRPT2",18,0)
5322 . S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
5323"RTN","EDPRPT2",19,0)
5324 . S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60),MIN=MIN+ELAPSE
5325"RTN","EDPRPT2",20,0)
5326D1 . ; all admissions
5327"RTN","EDPRPT2",21,0)
5328 . S (ADMDEC,ADMDEL)=0
5329"RTN","EDPRPT2",22,0)
5330 . S X=$$ADMSTS^EDPRPT(LOG) I X D
5331"RTN","EDPRPT2",23,0)
5332 .. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60
5333"RTN","EDPRPT2",24,0)
5334 .. S:ADMDEC CNT("DEC")=CNT("DEC")+1,MIN("DEC")=MIN("DEC")+ADMDEC
5335"RTN","EDPRPT2",25,0)
5336 .. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60
5337"RTN","EDPRPT2",26,0)
5338D2 . ; VA admissions only
5339"RTN","EDPRPT2",27,0)
5340 . I DISP="VA" D
5341"RTN","EDPRPT2",28,0)
5342 .. S CNT("VA")=CNT("VA")+1
5343"RTN","EDPRPT2",29,0)
5344 .. S MIN("VA")=MIN("VA")+ELAPSE
5345"RTN","EDPRPT2",30,0)
5346 .. S MIN("VADEC")=MIN("VADEC")+ADMDEC
5347"RTN","EDPRPT2",31,0)
5348 .. S MIN("VADEL")=MIN("VADEL")+ADMDEL
5349"RTN","EDPRPT2",32,0)
5350 .. S:ADMDEL>359 CNT("VADEL6")=CNT("VADEL6")+1
5351"RTN","EDPRPT2",33,0)
5352D3 . ; elapsed visit time >=6 hrs
5353"RTN","EDPRPT2",34,0)
5354 . S:ELAPSE>1380 CNT("23+")=CNT("23+")+1
5355"RTN","EDPRPT2",35,0)
5356 . I ELAPSE>359 D
5357"RTN","EDPRPT2",36,0)
5358 .. S CNT("6+")=CNT("6+")+1
5359"RTN","EDPRPT2",37,0)
5360 .. S:DISP="VA" CNT("VA6")=CNT("VA6")+1
5361"RTN","EDPRPT2",38,0)
5362 .. N ROW S ROW("id")=LOG,ROW("inTS")=$$EDATE^EDPRPT(IN)
5363"RTN","EDPRPT2",39,0)
5364 .. S ROW("elapsed")=$$ETIME^EDPRPT(ELAPSE)_" *"
5365"RTN","EDPRPT2",40,0)
5366 .. S ROW("disposition")=DISP
5367"RTN","EDPRPT2",41,0)
5368 .. S ROW("acuity")=ACU
5369"RTN","EDPRPT2",42,0)
5370 .. S ROW("delayReason")=$$ECODE(DEL)
5371"RTN","EDPRPT2",43,0)
5372 .. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
5373"RTN","EDPRPT2",44,0)
5374 .. S ROW("dx")=$P(X4,U)
5375"RTN","EDPRPT2",45,0)
5376 .. S ROW("admDec")=ADMDEC
5377"RTN","EDPRPT2",46,0)
5378 .. S ROW("admDel")=ADMDEL
5379"RTN","EDPRPT2",47,0)
5380 .. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
5381"RTN","EDPRPT2",48,0)
5382 .. S X=ROW("id")
5383"RTN","EDPRPT2",49,0)
5384 .. F I="inTS","elapsed","disposition","delayReason","md","admDec","admDel","acuity","dx" S X=X_$C(9)_$G(ROW(I))
5385"RTN","EDPRPT2",50,0)
5386 .. D ADD^EDPCSV(X)
5387"RTN","EDPRPT2",51,0)
5388 . S:ACU="" ACU="none"
5389"RTN","EDPRPT2",52,0)
5390 . S:DEL CNT(DEL,ACU)=+$G(CNT(DEL,ACU))+1,CNT(DEL)=+$G(CNT(DEL))+1
5391"RTN","EDPRPT2",53,0)
5392 D:'$G(CSV) XML^EDPX("</logEntries>")
5393"RTN","EDPRPT2",54,0)
5394 Q
5395"RTN","EDPRPT2",55,0)
5396 ;
5397"RTN","EDPRPT2",56,0)
5398D4 ; return counts and averages
5399"RTN","EDPRPT2",57,0)
5400 D XML^EDPX("<averages>")
5401"RTN","EDPRPT2",58,0)
5402 S X="<average type='All Patients' total='"_CNT_"' avgTime='"_$$ETIME^EDPRPT(MIN/CNT)_"' num6hr='"_CNT("6+")_"' num23hr='"_CNT("23+")_"' avgAdmDec='"_$$ETIME^EDPRPT(MIN("DEC")/CNT("DEC"))_"' />"
5403"RTN","EDPRPT2",59,0)
5404 D XML^EDPX(X)
5405"RTN","EDPRPT2",60,0)
5406 S X="<average type='Not VA Admitted' total='"_(CNT-CNT("VA"))_"' avgTime='"_$$ETIME^EDPRPT((MIN-MIN("VA")/(CNT-CNT("VA"))))_"' />"
5407"RTN","EDPRPT2",61,0)
5408 D XML^EDPX(X)
5409"RTN","EDPRPT2",62,0)
5410 S X="<average type='VA Admitted' total='"_CNT("VA")_"' num6hr='"_CNT("VA6")_"' numAdmDel6hr='"_CNT("VADEL6")_"' avgAdmDel='"_$$ETIME^EDPRPT(MIN("VADEL")/CNT("VA"))_"' avgAdmDec='"_$$ETIME^EDPRPT(MIN("VADEC")/CNT("VA"))_"' />"
5411"RTN","EDPRPT2",63,0)
5412 D XML^EDPX(X)
5413"RTN","EDPRPT2",64,0)
5414 I $G(SUMONLY) S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D
5415"RTN","EDPRPT2",65,0)
5416 . S CNT(DEL,"reason")=$$ECODE(DEL)
5417"RTN","EDPRPT2",66,0)
5418 . S CNT(DEL,"total")=CNT(DEL)
5419"RTN","EDPRPT2",67,0)
5420 . K ROW M ROW=CNT(DEL)
5421"RTN","EDPRPT2",68,0)
5422 . S X=$$XMLA^EDPX("delay",.ROW) D XML^EDPX(X)
5423"RTN","EDPRPT2",69,0)
5424 D XML^EDPX("</averages>")
5425"RTN","EDPRPT2",70,0)
5426 Q
5427"RTN","EDPRPT2",71,0)
5428 ;
5429"RTN","EDPRPT2",72,0)
5430INIT ; Initialize counters and sums
5431"RTN","EDPRPT2",73,0)
5432 N I S (CNT,MIN)=0
5433"RTN","EDPRPT2",74,0)
5434 F I="DEC","VA","VA6","VADEL6","6+","23+" S CNT(I)=0
5435"RTN","EDPRPT2",75,0)
5436 F I="DEC","VA","VADEC","VADEL" S MIN(I)=0
5437"RTN","EDPRPT2",76,0)
5438 S NOW=$$NOW^EDPRPT
5439"RTN","EDPRPT2",77,0)
5440 Q
5441"RTN","EDPRPT2",78,0)
5442 ;
5443"RTN","EDPRPT2",79,0)
5444ECODE(IEN) ; Return external value for a Code
5445"RTN","EDPRPT2",80,0)
5446 Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
5447"RTN","EDPRPT2",81,0)
5448 Q ""
5449"RTN","EDPRPT3")
54500^35^B6932750
5451"RTN","EDPRPT3",1,0)
5452EDPRPT3 ;SLC/MKB - Missed Opportunity Report
5453"RTN","EDPRPT3",2,0)
5454 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
5455"RTN","EDPRPT3",3,0)
5456 ;
5457"RTN","EDPRPT3",4,0)
5458MO(BEG,END) ; Get Missed Opp Report for EDPSITE by date range
5459"RTN","EDPRPT3",5,0)
5460 ; CNT = counters
5461"RTN","EDPRPT3",6,0)
5462 N IN,OUT,LOG,DISP,X,X0,X1,X3,X4,ADMDEC,ADMDEL,CNT,ROW,NOW
5463"RTN","EDPRPT3",7,0)
5464 S CNT=0 F X="L","AMA","E" S CNT(X)=0
5465"RTN","EDPRPT3",8,0)
5466 S NOW=$$NOW^EDPRPT
5467"RTN","EDPRPT3",9,0)
5468 D:'$G(CSV) XML^EDPX("<logEntries>") I $G(CSV) D ;headers
5469"RTN","EDPRPT3",10,0)
5470 . N TAB S TAB=$C(9)
5471"RTN","EDPRPT3",11,0)
5472 . S X="ED"_TAB_"Time In"_TAB_"Complaint"_TAB_"MD"_TAB_"Acuity"_TAB_"Elapsed"_TAB_"Triage"_TAB_"Wait"_TAB_"Dispo"_TAB_"Adm Dec"
5473"RTN","EDPRPT3",12,0)
5474 . D ADD^EDPCSV(X)
5475"RTN","EDPRPT3",13,0)
5476 S IN=BEG-.000001
5477"RTN","EDPRPT3",14,0)
5478 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
5479"RTN","EDPRPT3",15,0)
5480 . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
5481"RTN","EDPRPT3",16,0)
5482 . S DISP=$$ECODE^EDPRPT($P(X1,U,2)) Q:"^L^AMA^E^"'[(U_DISP_U)
5483"RTN","EDPRPT3",17,0)
5484 . S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
5485"RTN","EDPRPT3",18,0)
5486 . K ROW S ROW("id")=LOG
5487"RTN","EDPRPT3",19,0)
5488 . S ROW("inTS")=$$EDATE^EDPRPT(IN)
5489"RTN","EDPRPT3",20,0)
5490 . S ROW("complaint")=$P(X1,U)
5491"RTN","EDPRPT3",21,0)
5492 . S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3))
5493"RTN","EDPRPT3",22,0)
5494 . S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
5495"RTN","EDPRPT3",23,0)
5496 . S ROW("disposition")=DISP,CNT(DISP)=CNT(DISP)+1
5497"RTN","EDPRPT3",24,0)
5498 . ;calculate times
5499"RTN","EDPRPT3",25,0)
5500 . S ROW("elapsed")=($$FMDIFF^XLFDT(OUT,IN,2)\60)
5501"RTN","EDPRPT3",26,0)
5502 . S X=$$ASSIGNED^EDPRPT(LOG,3),ROW("triage")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) ;acuity
5503"RTN","EDPRPT3",27,0)
5504 . S X=$$NWBED^EDPRPT(LOG),ROW("wait")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) ;non-wait bed
5505"RTN","EDPRPT3",28,0)
5506 . S X=$$ADMSTS^EDPRPT(LOG)
5507"RTN","EDPRPT3",29,0)
5508 . S ROW("admDec")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
5509"RTN","EDPRPT3",30,0)
5510 . I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
5511"RTN","EDPRPT3",31,0)
5512 . S X=ROW("id")
5513"RTN","EDPRPT3",32,0)
5514 . F I="inTS","complaint","md","acuity","elapsed","triage","wait","disposition","admDec" S X=X_$C(9)_$G(ROW(I))
5515"RTN","EDPRPT3",33,0)
5516 . D ADD^EDPCSV(X)
5517"RTN","EDPRPT3",34,0)
5518 D:'$G(CSV) XML^EDPX("</logEntries>")
5519"RTN","EDPRPT3",35,0)
5520 ;
5521"RTN","EDPRPT3",36,0)
5522 ; return totals, as XML or CSV
5523"RTN","EDPRPT3",37,0)
5524 I '$G(CSV) S X=$$XMLA^EDPX("totals",.CNT) D XML^EDPX(X) Q
5525"RTN","EDPRPT3",38,0)
5526 N TAB S TAB=$C(9)
5527"RTN","EDPRPT3",39,0)
5528 D BLANK^EDPCSV
5529"RTN","EDPRPT3",40,0)
5530 S X=TAB_TAB_TAB_TAB_"Total Left without being Seen: "_CNT("L")
5531"RTN","EDPRPT3",41,0)
5532 D ADD^EDPCSV(X),BLANK^EDPCSV
5533"RTN","EDPRPT3",42,0)
5534 S X=TAB_TAB_TAB_TAB_"Total Left AMA: "_CNT("AMA")
5535"RTN","EDPRPT3",43,0)
5536 D ADD^EDPCSV(X),BLANK^EDPCSV
5537"RTN","EDPRPT3",44,0)
5538 S X=TAB_TAB_TAB_TAB_"Total Eloped: "_CNT("E") D ADD^EDPCSV(X)
5539"RTN","EDPRPT3",45,0)
5540 Q
5541"RTN","EDPRPT4")
55420^36^B21631654
5543"RTN","EDPRPT4",1,0)
5544EDPRPT4 ;SLC/MKB - Delay Summary Report
5545"RTN","EDPRPT4",2,0)
5546 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
5547"RTN","EDPRPT4",3,0)
5548 ;
5549"RTN","EDPRPT4",4,0)
5550SUM(BEG,END) ; Get Delay Report for EDPSITE by date range
5551"RTN","EDPRPT4",5,0)
5552 ; CNT = counters
5553"RTN","EDPRPT4",6,0)
5554 ; MIN = accumulate #minutes
5555"RTN","EDPRPT4",7,0)
5556 N IN,OUT,LOG,X,X0,X1,X3,X4,ELAPSE,ADMDEC,ADMDEL,DISP,CNT,MIN,PROV,DEL,ACU,Y,NOW
5557"RTN","EDPRPT4",8,0)
5558 D INIT ;set counters, sums to 0
5559"RTN","EDPRPT4",9,0)
5560 S IN=BEG-.000001
5561"RTN","EDPRPT4",10,0)
5562 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
5563"RTN","EDPRPT4",11,0)
5564 . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
5565"RTN","EDPRPT4",12,0)
5566 . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),ACU=$$ECODE($P(X3,U,3))
5567"RTN","EDPRPT4",13,0)
5568 . S DEL=+$P(X1,U,5),CNT=CNT+1
5569"RTN","EDPRPT4",14,0)
5570 . S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
5571"RTN","EDPRPT4",15,0)
5572 . S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60),MIN=MIN+ELAPSE
5573"RTN","EDPRPT4",16,0)
5574D1 . ; all admissions
5575"RTN","EDPRPT4",17,0)
5576 . S (ADMDEC,ADMDEL)=0
5577"RTN","EDPRPT4",18,0)
5578 . S X=$$ADMSTS^EDPRPT(LOG) I X D
5579"RTN","EDPRPT4",19,0)
5580 .. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60
5581"RTN","EDPRPT4",20,0)
5582 .. S:ADMDEC CNT("DEC")=CNT("DEC")+1,MIN("DEC")=MIN("DEC")+ADMDEC
5583"RTN","EDPRPT4",21,0)
5584 .. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60
5585"RTN","EDPRPT4",22,0)
5586D2 . ; VA admissions only
5587"RTN","EDPRPT4",23,0)
5588 . I DISP="VA" D
5589"RTN","EDPRPT4",24,0)
5590 .. S CNT("VA")=CNT("VA")+1
5591"RTN","EDPRPT4",25,0)
5592 .. S MIN("VA")=MIN("VA")+ELAPSE
5593"RTN","EDPRPT4",26,0)
5594 .. S MIN("VADEC")=MIN("VADEC")+ADMDEC
5595"RTN","EDPRPT4",27,0)
5596 .. S MIN("VADEL")=MIN("VADEL")+ADMDEL
5597"RTN","EDPRPT4",28,0)
5598 .. S:ADMDEL>359 CNT("VADEL6")=CNT("VADEL6")+1
5599"RTN","EDPRPT4",29,0)
5600D3 . ; elapsed visit time >=6 hrs
5601"RTN","EDPRPT4",30,0)
5602 . S:ELAPSE>1380 CNT("23+")=CNT("23+")+1
5603"RTN","EDPRPT4",31,0)
5604 . I ELAPSE>359 D
5605"RTN","EDPRPT4",32,0)
5606 .. S CNT("6+")=CNT("6+")+1
5607"RTN","EDPRPT4",33,0)
5608 .. S:DISP="VA" CNT("VA6")=CNT("VA6")+1
5609"RTN","EDPRPT4",34,0)
5610 . S:DEL CNT(DEL,ACU)=+$G(CNT(DEL,ACU))+1,CNT(DEL)=+$G(CNT(DEL))+1
5611"RTN","EDPRPT4",35,0)
5612 ;
5613"RTN","EDPRPT4",36,0)
5614D4 ; return counts and averages as CSV
5615"RTN","EDPRPT4",37,0)
5616 I $G(CSV) D Q
5617"RTN","EDPRPT4",38,0)
5618 . N TAB S TAB=$C(9)
5619"RTN","EDPRPT4",39,0)
5620 . S X=TAB_TAB_"Delay Reason"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total"
5621"RTN","EDPRPT4",40,0)
5622 . D ADD^EDPCSV(X) ;headers
5623"RTN","EDPRPT4",41,0)
5624 . S X="Total ED Visits: "_CNT_TAB
5625"RTN","EDPRPT4",42,0)
5626 . S X=X_"Average ED Visit Time: "_$S(CNT:$$ETIME^EDPRPT(MIN\CNT),1:0)
5627"RTN","EDPRPT4",43,0)
5628 . D ADD^EDPCSV(X),BLANK^EDPCSV
5629"RTN","EDPRPT4",44,0)
5630 . S X="Total Visits Over 6 Hours: "_CNT("6+")_TAB
5631"RTN","EDPRPT4",45,0)
5632 . S X=X_"Total Visits Over 23 Hours: "_CNT("23+")
5633"RTN","EDPRPT4",46,0)
5634 . D ADD^EDPCSV(X),BLANK^EDPCSV
5635"RTN","EDPRPT4",47,0)
5636 . S Y=CNT-CNT("VA"),X="Total Visits Not VA Admitted: "_Y_TAB
5637"RTN","EDPRPT4",48,0)
5638 . S X=X_"Average Visit Time for Not VA Admitted: "_$S(Y:$$ETIME^EDPRPT((MIN-MIN("VA")\Y)),1:0)
5639"RTN","EDPRPT4",49,0)
5640 . D ADD^EDPCSV(X),BLANK^EDPCSV
5641"RTN","EDPRPT4",50,0)
5642 . S Y=CNT("VA"),X="Total VA Admits: "_Y_TAB
5643"RTN","EDPRPT4",51,0)
5644 . S X=X_"Total VA Admit Delay Over 6 Hours: "_CNT("VADEL6")
5645"RTN","EDPRPT4",52,0)
5646 . D ADD^EDPCSV(X),BLANK^EDPCSV
5647"RTN","EDPRPT4",53,0)
5648 . S X="Average VA Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEC")\Y),1:0)_TAB
5649"RTN","EDPRPT4",54,0)
5650 . S X=X_"Average VA Admit Delay Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEL")\Y),1:0)
5651"RTN","EDPRPT4",55,0)
5652 . D ADD^EDPCSV(X),BLANK^EDPCSV
5653"RTN","EDPRPT4",56,0)
5654 . S Y=CNT("DEC"),X="Average All Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("DEC")\Y),1:0)
5655"RTN","EDPRPT4",57,0)
5656 . D ADD^EDPCSV(X),BLANK^EDPCSV
5657"RTN","EDPRPT4",58,0)
5658 . S X=TAB_TAB_"Delay Chart" D ADD^EDPCSV(X),BLANK^EDPCSV
5659"RTN","EDPRPT4",59,0)
5660 . S X=TAB_TAB_"Acuity"_TAB_"None"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total"
5661"RTN","EDPRPT4",60,0)
5662 . D ADD^EDPCSV(X),BLANK^EDPCSV
5663"RTN","EDPRPT4",61,0)
5664 . S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D
5665"RTN","EDPRPT4",62,0)
5666 .. S X=TAB_TAB_$$ENAME(DEL)
5667"RTN","EDPRPT4",63,0)
5668 .. F I="none","one","two","three","four","five" S X=X_TAB_+$G(CNT(DEL,I))
5669"RTN","EDPRPT4",64,0)
5670 .. S X=X_TAB_CNT(DEL) D ADD^EDPCSV(X)
5671"RTN","EDPRPT4",65,0)
5672D5 ; or return counts and averages as XML
5673"RTN","EDPRPT4",66,0)
5674 D XML^EDPX("<averages>")
5675"RTN","EDPRPT4",67,0)
5676 S X="<average type='All Patients' total='"_CNT
5677"RTN","EDPRPT4",68,0)
5678 S X=X_"' avgTime='"_$S(CNT:$$ETIME^EDPRPT(MIN\CNT),1:0)
5679"RTN","EDPRPT4",69,0)
5680 S X=X_"' num6hr='"_CNT("6+")_"' num23hr='"_CNT("23+"),Y=CNT("DEC")
5681"RTN","EDPRPT4",70,0)
5682 S X=X_"' avgAdmDec='"_$S(Y:$$ETIME^EDPRPT(MIN("DEC")\Y),1:0)_"' />"
5683"RTN","EDPRPT4",71,0)
5684 D XML^EDPX(X)
5685"RTN","EDPRPT4",72,0)
5686 S Y=CNT-CNT("VA")
5687"RTN","EDPRPT4",73,0)
5688 S X="<average type='Not VA Admitted' total='"_Y_"' avgTime='"_$S(Y:$$ETIME^EDPRPT((MIN-MIN("VA")\Y)),1:0)_"' />"
5689"RTN","EDPRPT4",74,0)
5690 D XML^EDPX(X)
5691"RTN","EDPRPT4",75,0)
5692 S Y=CNT("VA"),X="<average type='VA Admitted' total='"_Y
5693"RTN","EDPRPT4",76,0)
5694 S X=X_"' num6hr='"_CNT("VA6")_"' numAdmDel6hr='"_CNT("VADEL6")
5695"RTN","EDPRPT4",77,0)
5696 S X=X_"' avgAdmDel='"_$S(Y:$$ETIME^EDPRPT(MIN("VADEL")\Y),1:0)
5697"RTN","EDPRPT4",78,0)
5698 S X=X_"' avgAdmDec='"_$S(Y:$$ETIME^EDPRPT(MIN("VADEC")\Y),1:0)_"' />"
5699"RTN","EDPRPT4",79,0)
5700 D XML^EDPX(X)
5701"RTN","EDPRPT4",80,0)
5702 D XML^EDPX("</averages>")
5703"RTN","EDPRPT4",81,0)
5704 D XML^EDPX("<delayChart>")
5705"RTN","EDPRPT4",82,0)
5706 S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D
5707"RTN","EDPRPT4",83,0)
5708 . S CNT(DEL,"reason")=$$ENAME(DEL)
5709"RTN","EDPRPT4",84,0)
5710 . S CNT(DEL,"total")=CNT(DEL)
5711"RTN","EDPRPT4",85,0)
5712 . F I="none","one","two","three","four","five" S CNT(DEL,I)=+$G(CNT(DEL,I))
5713"RTN","EDPRPT4",86,0)
5714 . K ROW M ROW=CNT(DEL)
5715"RTN","EDPRPT4",87,0)
5716 . S X=$$XMLA^EDPX("delay",.ROW) D XML^EDPX(X)
5717"RTN","EDPRPT4",88,0)
5718 D XML^EDPX("</delayChart>")
5719"RTN","EDPRPT4",89,0)
5720 Q
5721"RTN","EDPRPT4",90,0)
5722 ;
5723"RTN","EDPRPT4",91,0)
5724INIT ; Initialize counters and sums
5725"RTN","EDPRPT4",92,0)
5726 N I S (CNT,MIN)=0
5727"RTN","EDPRPT4",93,0)
5728 F I="DEC","VA","VA6","VADEL6","6+","23+" S CNT(I)=0
5729"RTN","EDPRPT4",94,0)
5730 F I="DEC","VA","VADEC","VADEL" S MIN(I)=0
5731"RTN","EDPRPT4",95,0)
5732 S NOW=$$NOW^EDPRPT
5733"RTN","EDPRPT4",96,0)
5734 Q
5735"RTN","EDPRPT4",97,0)
5736 ;
5737"RTN","EDPRPT4",98,0)
5738ECODE(IEN) ; Return external value for an Acuity code
5739"RTN","EDPRPT4",99,0)
5740 N X,Y S X=$P($G(^EDPB(233.1,+IEN,0)),U,3) ;code
5741"RTN","EDPRPT4",100,0)
5742 S Y=$S(X="":"none",'X:X,X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"X")
5743"RTN","EDPRPT4",101,0)
5744 Q Y
5745"RTN","EDPRPT4",102,0)
5746 ;
5747"RTN","EDPRPT4",103,0)
5748ENAME(IEN) ; Return external value for a Code
5749"RTN","EDPRPT4",104,0)
5750 Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
5751"RTN","EDPRPT4",105,0)
5752 Q ""
5753"RTN","EDPRPT5")
57540^37^B33876185
5755"RTN","EDPRPT5",1,0)
5756EDPRPT5 ;SLC/MKB - Shift Report
5757"RTN","EDPRPT5",2,0)
5758 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
5759"RTN","EDPRPT5",3,0)
5760 ;
5761"RTN","EDPRPT5",4,0)
5762SFT(DAY) ; Get Shift Report for EDPSITE on DAY
5763"RTN","EDPRPT5",5,0)
5764 N BEG,END,IN,OUT,LOG,X,X0,X1,X3,X4,S,SOUT,SHIFT,NOW
5765"RTN","EDPRPT5",6,0)
5766 N CNT,VA,DX,OTH,HR6,TRG,OCB,MO,DIE,UNK,PREV,NEXT,SUB
5767"RTN","EDPRPT5",7,0)
5768 N ELAPSE,ADMDEC,STS,DISP,COL
5769"RTN","EDPRPT5",8,0)
5770 D INIT ;set counters to 0, SHIFT(#) = start time in seconds
5771"RTN","EDPRPT5",9,0)
5772 I 'SHIFT D ERR^EDPRPT(2300013) Q
5773"RTN","EDPRPT5",10,0)
5774 S BEG=$S(SHIFT(1)>0:$$FMADD^XLFDT(DAY,-1,,,SHIFT(SHIFT)),1:DAY)
5775"RTN","EDPRPT5",11,0)
5776 S END=$S(SHIFT(1)>0:$$FMADD^XLFDT(DAY,,,,SHIFT(SHIFT)),1:DAY_".2359")
5777"RTN","EDPRPT5",12,0)
5778 S IN=BEG-.000001 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END D
5779"RTN","EDPRPT5",13,0)
5780 . S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
5781"RTN","EDPRPT5",14,0)
5782 .. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
5783"RTN","EDPRPT5",15,0)
5784 .. S STS=$$ECODE^EDPRPT($P(X3,U,2))
5785"RTN","EDPRPT5",16,0)
5786 .. S DISP=$$ECODE^EDPRPT($P(X1,U,2))
5787"RTN","EDPRPT5",17,0)
5788 .. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
5789"RTN","EDPRPT5",18,0)
5790 .. S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60) ;#min
5791"RTN","EDPRPT5",19,0)
5792 .. S ADMDEC=$$ADMSTS^EDPRPT(LOG)
5793"RTN","EDPRPT5",20,0)
5794D1 .. ; all visits
5795"RTN","EDPRPT5",21,0)
5796 .. S S=$$SHIFT(IN,1),SOUT=$$SHIFT(OUT,1)
5797"RTN","EDPRPT5",22,0)
5798 .. S CNT(S)=CNT(S)+1
5799"RTN","EDPRPT5",23,0)
5800 .. S:'$P(X3,U,3) TRG(S)=TRG(S)+1
5801"RTN","EDPRPT5",24,0)
5802 .. S:ELAPSE>359 HR6(S)=HR6(S)+1
5803"RTN","EDPRPT5",25,0)
5804 .. S:DISP="O" OTH(S)=OTH(S)+1
5805"RTN","EDPRPT5",26,0)
5806 .. S:DISP="D" DIE(S)=DIE(S)+1
5807"RTN","EDPRPT5",27,0)
5808 .. S:(DISP="AMA")!(DISP="L")!(DISP="E") MO(S)=MO(S)+1
5809"RTN","EDPRPT5",28,0)
5810 .. S:DISP="" UNK(S)=UNK(S)+1
5811"RTN","EDPRPT5",29,0)
5812 .. I $L(STS),$$UP^XLFSTR(STS)'="GONE",S'=SOUT S OCB(S)=OCB(S)+1
5813"RTN","EDPRPT5",30,0)
5814D2 S OUT=BEG-.000001 F S OUT=$O(^EDP(230,"ATO",EDPSITE,OUT)) Q:'OUT Q:OUT>END D
5815"RTN","EDPRPT5",31,0)
5816 . S LOG=0 F S LOG=+$O(^EDP(230,"ATO",EDPSITE,OUT,LOG)) Q:LOG<1 D
5817"RTN","EDPRPT5",32,0)
5818 .. S DX(SOUT)=DX(SOUT)+1,IN=$P(X0,U,8)
5819"RTN","EDPRPT5",33,0)
5820 .. S:IN<BEG PREV=PREV+1
5821"RTN","EDPRPT5",34,0)
5822 .. I ADMDEC,ADMDEC>BEG,"^VA^ICU^T^"[(U_DISP_U) S S=$$SHIFT(ADMDEC,1),VA(S)=VA(S)+1
5823"RTN","EDPRPT5",35,0)
5824D3 ; calculate #carried over
5825"RTN","EDPRPT5",36,0)
5826 S S=SUB(SHIFT),NEXT(S)=PREV+CNT(S)-DX(S)
5827"RTN","EDPRPT5",37,0)
5828 S PREV("one")=NEXT(S),PREV(S)=PREV
5829"RTN","EDPRPT5",38,0)
5830 F I=1:1:(SHIFT-1) S S=SUB(I),X=SUB($S(I>1:I-1,1:SHIFT)),NEXT(S)=NEXT(X)+CNT(S)-DX(S)
5831"RTN","EDPRPT5",39,0)
5832 F I=2:1:(SHIFT-1) S PREV(SUB(I))=NEXT(SUB(I-1))
5833"RTN","EDPRPT5",40,0)
5834 ;S NEXT("three")=PREV+CNT("three")-DX("three")
5835"RTN","EDPRPT5",41,0)
5836 ;S NEXT("one")=NEXT("three")+CNT("one")-DX("one")
5837"RTN","EDPRPT5",42,0)
5838 ;S NEXT("two")=NEXT("one")+CNT("two")-DX("two")
5839"RTN","EDPRPT5",43,0)
5840 ;S PREV("one")=NEXT("three"),PREV("two")=NEXT("one"),PREV("three")=PREV
5841"RTN","EDPRPT5",44,0)
5842D4 ; return column info
5843"RTN","EDPRPT5",45,0)
5844 F I=1:1:SHIFT D ;convert #seconds to HH[:MM]
5845"RTN","EDPRPT5",46,0)
5846 . N X,Y S X=SHIFT(I)
5847"RTN","EDPRPT5",47,0)
5848 . S Y=X\3600 S:Y=0 Y=12 S:Y>12 Y=Y-12
5849"RTN","EDPRPT5",48,0)
5850 . S SHIFT(I)=Y_$S(X#3600:":"_(X#3600)\60,1:"")
5851"RTN","EDPRPT5",49,0)
5852 F I=1:1:SHIFT D ;build column captions
5853"RTN","EDPRPT5",50,0)
5854 . S COL(I,"name")=SHIFT(I)_" to "_SHIFT($S(I+1>SHIFT:1,1:I+1))
5855"RTN","EDPRPT5",51,0)
5856 . S COL(I,"shiftId")=SUB(I)
5857"RTN","EDPRPT5",52,0)
5858 ;S COL(1,"name")="7 to 3",COL(1,"shiftId")="one"
5859"RTN","EDPRPT5",53,0)
5860 ;S COL(2,"name")="3 to 11",COL(2,"shiftId")="two"
5861"RTN","EDPRPT5",54,0)
5862 ;S COL(3,"name")="11 to 7",COL(3,"shiftId")="three"
5863"RTN","EDPRPT5",55,0)
5864 I $G(CSV) D CSV Q
5865"RTN","EDPRPT5",56,0)
5866 D XML^EDPX("<columns>")
5867"RTN","EDPRPT5",57,0)
5868 F S=1:1:SHIFT K X M X=COL(S) S X=$$XMLA^EDPX("column",.X) D XML^EDPX(X)
5869"RTN","EDPRPT5",58,0)
5870 D XML^EDPX("</columns>")
5871"RTN","EDPRPT5",59,0)
5872D5 ; return counts and averages as XML
5873"RTN","EDPRPT5",60,0)
5874 D XML^EDPX("<categories>")
5875"RTN","EDPRPT5",61,0)
5876 S X=$$XMLA^EDPX("category",.PREV) D XML^EDPX(X)
5877"RTN","EDPRPT5",62,0)
5878 S X=$$XMLA^EDPX("category",.CNT) D XML^EDPX(X)
5879"RTN","EDPRPT5",63,0)
5880 S X=$$XMLA^EDPX("category",.DX) D XML^EDPX(X)
5881"RTN","EDPRPT5",64,0)
5882 S X=$$XMLA^EDPX("category",.VA) D XML^EDPX(X)
5883"RTN","EDPRPT5",65,0)
5884 S X=$$XMLA^EDPX("category",.OTH) D XML^EDPX(X)
5885"RTN","EDPRPT5",66,0)
5886 S X=$$XMLA^EDPX("category",.HR6) D XML^EDPX(X)
5887"RTN","EDPRPT5",67,0)
5888 S X=$$XMLA^EDPX("category",.TRG) D XML^EDPX(X)
5889"RTN","EDPRPT5",68,0)
5890 S X=$$XMLA^EDPX("category",.OCB) D XML^EDPX(X)
5891"RTN","EDPRPT5",69,0)
5892 S X=$$XMLA^EDPX("category",.MO) D XML^EDPX(X)
5893"RTN","EDPRPT5",70,0)
5894 S X=$$XMLA^EDPX("category",.DIE) D XML^EDPX(X)
5895"RTN","EDPRPT5",71,0)
5896 S X=$$XMLA^EDPX("category",.UNK) D XML^EDPX(X)
5897"RTN","EDPRPT5",72,0)
5898 S X=$$XMLA^EDPX("category",.NEXT) D XML^EDPX(X)
5899"RTN","EDPRPT5",73,0)
5900 D XML^EDPX("</categories>")
5901"RTN","EDPRPT5",74,0)
5902 Q
5903"RTN","EDPRPT5",75,0)
5904 ;
5905"RTN","EDPRPT5",76,0)
5906CSV ; Return headers, counts and averages as CSV
5907"RTN","EDPRPT5",77,0)
5908 N X,TAB S TAB=$C(9)
5909"RTN","EDPRPT5",78,0)
5910 S X="Category"_TAB_COL(SHIFT,"name")
5911"RTN","EDPRPT5",79,0)
5912 F I=1:1:(SHIFT-1) S X=X_TAB_COL(I,"name")
5913"RTN","EDPRPT5",80,0)
5914 D ADD^EDPCSV(X) ;headers
5915"RTN","EDPRPT5",81,0)
5916 D ROW("Carried Over at Report Start",.PREV)
5917"RTN","EDPRPT5",82,0)
5918 D ROW("Number of New Patients",.CNT)
5919"RTN","EDPRPT5",83,0)
5920 D ROW("Number of Patients Discharged",.DX)
5921"RTN","EDPRPT5",84,0)
5922 D ROW("Number Dec to Admit to Va",.VA)
5923"RTN","EDPRPT5",85,0)
5924 D ROW("Number Dec to Admit to Other",.OTH)
5925"RTN","EDPRPT5",86,0)
5926 D ROW("Number Over 6 Hours",.HR6)
5927"RTN","EDPRPT5",87,0)
5928 D ROW("Number Waiting for Triage",.TRG)
5929"RTN","EDPRPT5",88,0)
5930 D ROW("Number of Occupied Beds",.OCB)
5931"RTN","EDPRPT5",89,0)
5932 D ROW("Number of Missed Opportunities",.MO)
5933"RTN","EDPRPT5",90,0)
5934 D ROW("Number Deceased",.DIE)
5935"RTN","EDPRPT5",91,0)
5936 D ROW("Number With No Disposition",.UNK)
5937"RTN","EDPRPT5",92,0)
5938 D ROW("Carry Over to Next Shift",.NEXT)
5939"RTN","EDPRPT5",93,0)
5940 Q
5941"RTN","EDPRPT5",94,0)
5942 ;
5943"RTN","EDPRPT5",95,0)
5944ROW(NAME,LIST) ; add row
5945"RTN","EDPRPT5",96,0)
5946 N S,I
5947"RTN","EDPRPT5",97,0)
5948 S S=SUB(SHIFT),X=NAME_TAB_LIST(S)
5949"RTN","EDPRPT5",98,0)
5950 F I=1:1:(SHIFT-1) S S=SUB(I),X=X_TAB_LIST(S)
5951"RTN","EDPRPT5",99,0)
5952 D ADD^EDPCSV(X)
5953"RTN","EDPRPT5",100,0)
5954 Q
5955"RTN","EDPRPT5",101,0)
5956 ;
5957"RTN","EDPRPT5",102,0)
5958INIT ; Initialize counters and sums
5959"RTN","EDPRPT5",103,0)
5960 N I,S
5961"RTN","EDPRPT5",104,0)
5962 S PREV=0,DAY=$P(DAY,".")
5963"RTN","EDPRPT5",105,0)
5964 D SETUP F I=1:1:SHIFT D
5965"RTN","EDPRPT5",106,0)
5966 . S S=$$WORD(I),SUB(I)=S
5967"RTN","EDPRPT5",107,0)
5968 . S CNT(S)=0,CNT("category")="Number of New Patients"
5969"RTN","EDPRPT5",108,0)
5970 . S DX(S)=0,DX("category")="Number of Patients Discharged"
5971"RTN","EDPRPT5",109,0)
5972 . S VA(S)=0,VA("category")="Number Dec to Admit to VA"
5973"RTN","EDPRPT5",110,0)
5974 . S OTH(S)=0,OTH("category")="Number Dec to Admit to Other"
5975"RTN","EDPRPT5",111,0)
5976 . S HR6(S)=0,HR6("category")="Number Over 6 Hours"
5977"RTN","EDPRPT5",112,0)
5978 . S TRG(S)=0,TRG("category")="Number Waiting for Triage" ;no acuity
5979"RTN","EDPRPT5",113,0)
5980 . S OCB(S)=0,OCB("category")="Number of Occupied Beds"
5981"RTN","EDPRPT5",114,0)
5982 . S MO(S)=0,MO("category")="Number of Missed Opportunities"
5983"RTN","EDPRPT5",115,0)
5984 . S DIE(S)=0,DIE("category")="Number Deceased"
5985"RTN","EDPRPT5",116,0)
5986 . S UNK(S)=0,UNK("category")="Number With No Disposition"
5987"RTN","EDPRPT5",117,0)
5988 . S PREV(S)=0,PREV("category")="Carried Over at Report Start"
5989"RTN","EDPRPT5",118,0)
5990 . S NEXT(S)=0,NEXT("category")="Carry Over to Next Shift"
5991"RTN","EDPRPT5",119,0)
5992 S NOW=$$NOW^EDPRPT
5993"RTN","EDPRPT5",120,0)
5994 Q
5995"RTN","EDPRPT5",121,0)
5996 ;
5997"RTN","EDPRPT5",122,0)
5998WORD(X) ; Return name of number X
5999"RTN","EDPRPT5",123,0)
6000 N Y S Y=$S(X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",X=6:"six",X=7:"seven",X=8:"eight",X=9:"nine",X=10:"ten",X=11:"eleven",X=12:"twelve",1:"none")
6001"RTN","EDPRPT5",124,0)
6002 Q Y
6003"RTN","EDPRPT5",125,0)
6004 ;
6005"RTN","EDPRPT5",126,0)
6006SETUP ; Create SHIFT(#) list of shift times
6007"RTN","EDPRPT5",127,0)
6008 N TA,X1,X,DUR
6009"RTN","EDPRPT5",128,0)
6010 S TA=+$O(^EDPB(231.9,"C",EDPSITE,0)),X1=$G(^EDPB(231.9,TA,1))
6011"RTN","EDPRPT5",129,0)
6012 S X=$P(X1,U,6),DUR=$P(X1,U,7)*60 I DUR'>0 S SHIFT=0 Q
6013"RTN","EDPRPT5",130,0)
6014 S SHIFT=1,SHIFT(1)=X*60 ;seconds
6015"RTN","EDPRPT5",131,0)
6016 F S X=SHIFT(SHIFT)+DUR Q:X>86340 S SHIFT=SHIFT+1,SHIFT(SHIFT)=X
6017"RTN","EDPRPT5",132,0)
6018 Q
6019"RTN","EDPRPT5",133,0)
6020 ;
6021"RTN","EDPRPT5",134,0)
6022SHIFT(X,TXT) ; Return shift # for time X using SHIFT(#)
6023"RTN","EDPRPT5",135,0)
6024 N TM,Y
6025"RTN","EDPRPT5",136,0)
6026 S TM=$P($$FMTH^XLFDT(X),",",2) ;#seconds since midnight
6027"RTN","EDPRPT5",137,0)
6028 I TM<SHIFT(1)!(TM>=SHIFT(SHIFT)) S Y=SHIFT
6029"RTN","EDPRPT5",138,0)
6030 E F I=2:1:SHIFT I TM<SHIFT(I) S Y=I-1 Q
6031"RTN","EDPRPT5",139,0)
6032 S:$G(TXT) Y=$$WORD(Y)
6033"RTN","EDPRPT5",140,0)
6034 ;S Y=$S(TM<25200:"three",TM<54000:"one",TM<82800:"two",1:"three")
6035"RTN","EDPRPT5",141,0)
6036 Q Y
6037"RTN","EDPRPT5",142,0)
6038 ;
6039"RTN","EDPRPT5",143,0)
6040ECODE(IEN) ; Return external value for an Acuity code
6041"RTN","EDPRPT5",144,0)
6042 N X,Y S X=$P($G(^EDPB(233.1,IEN,0)),U,3) ;code
6043"RTN","EDPRPT5",145,0)
6044 S Y=$S(X="":"none",'X:X,X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"X")
6045"RTN","EDPRPT5",146,0)
6046 Q Y
6047"RTN","EDPRPT6")
60480^38^B9535777
6049"RTN","EDPRPT6",1,0)
6050EDPRPT6 ;SLC/MKB - Provider Report
6051"RTN","EDPRPT6",2,0)
6052 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
6053"RTN","EDPRPT6",3,0)
6054 ;
6055"RTN","EDPRPT6",4,0)
6056PRV(BEG,END) ; Get Provider Report for EDPSITE by date range
6057"RTN","EDPRPT6",5,0)
6058 N IN,LOG,X,X0,X1,X3,X4,MD,MDTIME,DISP,S,ACU
6059"RTN","EDPRPT6",6,0)
6060 N CNT,IN2MD,MD2DS,ROW,SHIFT
6061"RTN","EDPRPT6",7,0)
6062 S IN=BEG-.000001 D SETUP^EDPRPT5 ;build SHIFT(#)
6063"RTN","EDPRPT6",8,0)
6064 I 'SHIFT D ERR^EDPRPT(2300013) Q
6065"RTN","EDPRPT6",9,0)
6066 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
6067"RTN","EDPRPT6",10,0)
6068 . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
6069"RTN","EDPRPT6",11,0)
6070 . S MD=$P(X3,U,5) Q:MD<1 ;no provider
6071"RTN","EDPRPT6",12,0)
6072 . S DISP=$P(X1,U,3),ACU=$$ACUITY($P(X3,U,3))
6073"RTN","EDPRPT6",13,0)
6074 . S MDTIME=$$ASSIGNED^EDPRPT(LOG,5)
6075"RTN","EDPRPT6",14,0)
6076 . D INIT(MD) ;set counters,sums to 0 per provider
6077"RTN","EDPRPT6",15,0)
6078D1 . ; all visits
6079"RTN","EDPRPT6",16,0)
6080 . S S=$$SHIFT^EDPRPT5(MDTIME)
6081"RTN","EDPRPT6",17,0)
6082 . S CNT(MD)=CNT(MD)+1,CNT(MD,S,ACU)=CNT(MD,S,ACU)+1
6083"RTN","EDPRPT6",18,0)
6084 . S IN2MD=$$FMDIFF^XLFDT(MDTIME,IN,2)\60
6085"RTN","EDPRPT6",19,0)
6086 . S IN2MD(MD)=IN2MD(MD)+IN2MD,IN2MD(MD,S,ACU)=IN2MD(MD,S,ACU)+IN2MD
6087"RTN","EDPRPT6",20,0)
6088 . S MD2DS=$S(DISP:$$FMDIFF^XLFDT(DISP,MDTIME,2)\60,1:0)
6089"RTN","EDPRPT6",21,0)
6090 . S MD2DS(MD)=MD2DS(MD)+MD2DS,MD2DS(MD,S,ACU)=MD2DS(MD,S,ACU)+MD2DS
6091"RTN","EDPRPT6",22,0)
6092D2 ; calculate & return averages as CSV
6093"RTN","EDPRPT6",23,0)
6094 I $G(CSV) D Q
6095"RTN","EDPRPT6",24,0)
6096 . N TAB,NM,SFT S TAB=$C(9)
6097"RTN","EDPRPT6",25,0)
6098 . S X="MD Name"_TAB_"Shift"_TAB_"Acuity"_TAB_"# Patients"_TAB_"Time In to MD Assigned"_TAB_"MD Assign to Dispo"
6099"RTN","EDPRPT6",26,0)
6100 . D ADD^EDPCSV(X)
6101"RTN","EDPRPT6",27,0)
6102 . S MD=0 F S MD=$O(CNT(MD)) Q:MD<1 I CNT(MD) D
6103"RTN","EDPRPT6",28,0)
6104 .. S NM=$$EPERS^EDPRPT(MD) F S=1:1:SHIFT D
6105"RTN","EDPRPT6",29,0)
6106 ... S SFT=S F ACU=0:1:5 I CNT(MD,S,ACU) D
6107"RTN","EDPRPT6",30,0)
6108 .... S X=NM_TAB_SFT_TAB_ACU_TAB_CNT(MD,S,ACU)
6109"RTN","EDPRPT6",31,0)
6110 .... S X=X_TAB_$$ETIME^EDPRPT(IN2MD(MD,S,ACU)/CNT(MD,S,ACU))
6111"RTN","EDPRPT6",32,0)
6112 .... S X=X_TAB_$$ETIME^EDPRPT(MD2DS(MD,S,ACU)/CNT(MD,S,ACU))
6113"RTN","EDPRPT6",33,0)
6114 .... D ADD^EDPCSV(X) S (NM,SFT)=""
6115"RTN","EDPRPT6",34,0)
6116 .. S X=" MD TOTALS"_TAB_TAB_TAB_CNT(MD)
6117"RTN","EDPRPT6",35,0)
6118 .. S X=X_TAB_$$ETIME^EDPRPT(IN2MD(MD)/CNT(MD))
6119"RTN","EDPRPT6",36,0)
6120 .. S X=X_TAB_$$ETIME^EDPRPT(MD2DS(MD)/CNT(MD))
6121"RTN","EDPRPT6",37,0)
6122 .. D ADD^EDPCSV(X)
6123"RTN","EDPRPT6",38,0)
6124D3 ; or as XML
6125"RTN","EDPRPT6",39,0)
6126 D XML^EDPX("<providers>")
6127"RTN","EDPRPT6",40,0)
6128 S MD=0 F S MD=$O(CNT(MD)) Q:MD<1 I CNT(MD) D
6129"RTN","EDPRPT6",41,0)
6130 . K ROW S ROW("name")=$$EPERS^EDPRPT(MD),ROW("total")=CNT(MD)
6131"RTN","EDPRPT6",42,0)
6132 . S ROW("timeMD")=$$ETIME^EDPRPT(IN2MD(MD)/CNT(MD))
6133"RTN","EDPRPT6",43,0)
6134 . S ROW("timeDisp")=$$ETIME^EDPRPT(MD2DS(MD)/CNT(MD))
6135"RTN","EDPRPT6",44,0)
6136 . S X=$$XMLA^EDPX("md",.ROW),X=$TR(X,"/") D XML^EDPX(X)
6137"RTN","EDPRPT6",45,0)
6138 . D XML^EDPX("<shifts>")
6139"RTN","EDPRPT6",46,0)
6140 . F S=1:1:SHIFT D
6141"RTN","EDPRPT6",47,0)
6142 .. F ACU=0:1:5 I CNT(MD,S,ACU) D
6143"RTN","EDPRPT6",48,0)
6144 ... K ROW S ROW("total")=CNT(MD,S,ACU)
6145"RTN","EDPRPT6",49,0)
6146 ... S ROW("number")=S,ROW("acuity")=ACU
6147"RTN","EDPRPT6",50,0)
6148 ... S ROW("timeMD")=$$ETIME^EDPRPT(IN2MD(MD,S,ACU)/CNT(MD,S,ACU))
6149"RTN","EDPRPT6",51,0)
6150 ... S ROW("timeDisp")=$$ETIME^EDPRPT(MD2DS(MD,S,ACU)/CNT(MD,S,ACU))
6151"RTN","EDPRPT6",52,0)
6152 ... S X=$$XMLA^EDPX("shift",.ROW) D XML^EDPX(X)
6153"RTN","EDPRPT6",53,0)
6154 . D XML^EDPX("</shifts>"),XML^EDPX("</md>")
6155"RTN","EDPRPT6",54,0)
6156 D XML^EDPX("</providers>")
6157"RTN","EDPRPT6",55,0)
6158 Q
6159"RTN","EDPRPT6",56,0)
6160 ;
6161"RTN","EDPRPT6",57,0)
6162INIT(DR) ; Initialize counters and sums
6163"RTN","EDPRPT6",58,0)
6164 N S,A
6165"RTN","EDPRPT6",59,0)
6166 S (CNT(DR),IN2MD(DR),MD2DS(DR))=0
6167"RTN","EDPRPT6",60,0)
6168 F S=1:1:SHIFT D
6169"RTN","EDPRPT6",61,0)
6170 . F A=0:1:5 S (CNT(DR,S,A),IN2MD(DR,S,A),MD2DS(DR,S,A))=0
6171"RTN","EDPRPT6",62,0)
6172 Q
6173"RTN","EDPRPT6",63,0)
6174 ;
6175"RTN","EDPRPT6",64,0)
6176ACUITY(IEN) ; Return external value [0-5] for an Acuity code
6177"RTN","EDPRPT6",65,0)
6178 N X0,Y S X0=$G(^EDPB(233.1,+IEN,0))
6179"RTN","EDPRPT6",66,0)
6180 S Y=$P(X0,U,3) S:Y<1 Y=+$P(X0,U,4) ;code or nat'l code
6181"RTN","EDPRPT6",67,0)
6182 Q Y
6183"RTN","EDPRPT7")
61840^39^B21032834
6185"RTN","EDPRPT7",1,0)
6186EDPRPT7 ;SLC/MKB - Exposure Report
6187"RTN","EDPRPT7",2,0)
6188 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
6189"RTN","EDPRPT7",3,0)
6190 ;
6191"RTN","EDPRPT7",4,0)
6192EXP(IEN) ; Get Exposure Report for IEN at EDPSITE
6193"RTN","EDPRPT7",5,0)
6194 S IEN=+$G(IEN) Q:IEN<1 Q:'$D(^EDP(230,IEN,0))
6195"RTN","EDPRPT7",6,0)
6196 I $G(CSV) D EXP^EDPRPT7C(IEN) Q ;CSV format instead
6197"RTN","EDPRPT7",7,0)
6198 N BEG,END,LIST,LOG,IN,OUT,X,X0,Y,WAIT,RLIST,TREAT,OTHER,MD,RN,RES,I,J
6199"RTN","EDPRPT7",8,0)
6200 N SHIFT D SETUP^EDPRPT5 ;build SHIFT(#)
6201"RTN","EDPRPT7",9,0)
6202 I 'SHIFT D ERR^EDPRPT(2300013) Q
6203"RTN","EDPRPT7",10,0)
6204 S X0=^EDP(230,IEN,0),BEG=$P(X0,U,8),END=$P(X0,U,9)
6205"RTN","EDPRPT7",11,0)
6206 S:'BEG BEG=$P(X0,U) S:'END END=$$NOW^EDPRPT
6207"RTN","EDPRPT7",12,0)
6208 S WAIT=$$NWBED^EDPRPT(IEN) D ROOMS(IEN,END)
6209"RTN","EDPRPT7",13,0)
6210 ; put IEN info into XML
6211"RTN","EDPRPT7",14,0)
6212 D XML^EDPX("<patient>")
6213"RTN","EDPRPT7",15,0)
6214 D ADD(IEN),STAFF(IEN)
6215"RTN","EDPRPT7",16,0)
6216 D XML^EDPX("</patient>")
6217"RTN","EDPRPT7",17,0)
6218 ; look for patients also in ED between BEG and END
6219"RTN","EDPRPT7",18,0)
6220 D FIND(BEG,END) ;create LIST(#) list of ien's to check
6221"RTN","EDPRPT7",19,0)
6222 S LOG=0 F S LOG=+$O(LIST(LOG)) Q:'LOG I LOG'=IEN D
6223"RTN","EDPRPT7",20,0)
6224 . S X0=$G(^EDP(230,LOG,0)),IN=$P(X0,U,8),OUT=$P(X0,U,9)
6225"RTN","EDPRPT7",21,0)
6226 . D ROOMS(LOG,OUT)
6227"RTN","EDPRPT7",22,0)
6228 . ; in waiting room at same time?
6229"RTN","EDPRPT7",23,0)
6230 . I WAIT,(BEG<=IN)&(IN<=WAIT) S WAIT(LOG)="" Q ;in
6231"RTN","EDPRPT7",24,0)
6232 . S X=$$NWBED^EDPRPT(LOG)
6233"RTN","EDPRPT7",25,0)
6234 . I X,(BEG<=X)&(X<=WAIT) S WAIT(LOG)="" Q ;out
6235"RTN","EDPRPT7",26,0)
6236 . ; compare treatment rooms
6237"RTN","EDPRPT7",27,0)
6238 . S I=1 F S I=$O(RLIST(IEN,I)) Q:I<1 D
6239"RTN","EDPRPT7",28,0)
6240 .. N RIN,ROUT S RIN=$P(RLIST(IEN,I),U,2),ROUT=$P(RLIST(IEN,I),U,3)
6241"RTN","EDPRPT7",29,0)
6242 .. S J=0 F S J=$O(RLIST(LOG,J)) Q:J<1 I $P(RLIST(IEN,I),U)=$P(RLIST(LOG,J),U) D
6243"RTN","EDPRPT7",30,0)
6244 ... S X=$P(RLIST(LOG,J),U,2) ;in to treatment room
6245"RTN","EDPRPT7",31,0)
6246 ... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
6247"RTN","EDPRPT7",32,0)
6248 ... S X=$P(RLIST(LOG,J),U,3) ;out of treatment room
6249"RTN","EDPRPT7",33,0)
6250 ... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
6251"RTN","EDPRPT7",34,0)
6252 . I '$D(TREAT(LOG)) S OTHER(LOG)=""
6253"RTN","EDPRPT7",35,0)
6254E1 ; return waiting room patients
6255"RTN","EDPRPT7",36,0)
6256 I $O(WAIT(0)) D
6257"RTN","EDPRPT7",37,0)
6258 . D XML^EDPX("<waitingRoom>")
6259"RTN","EDPRPT7",38,0)
6260 . S LOG=0 F S LOG=$O(WAIT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
6261"RTN","EDPRPT7",39,0)
6262 . D XML^EDPX("</waitingRoom>")
6263"RTN","EDPRPT7",40,0)
6264 ; return treatment room patients
6265"RTN","EDPRPT7",41,0)
6266 I $O(TREAT(0)) D
6267"RTN","EDPRPT7",42,0)
6268 . D XML^EDPX("<treatmentRoom>")
6269"RTN","EDPRPT7",43,0)
6270 . S LOG=0 F S LOG=$O(TREAT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
6271"RTN","EDPRPT7",44,0)
6272 . D XML^EDPX("</treatmentRoom>")
6273"RTN","EDPRPT7",45,0)
6274 ; return other ED patients
6275"RTN","EDPRPT7",46,0)
6276 I $O(OTHER(0)) D
6277"RTN","EDPRPT7",47,0)
6278 . D XML^EDPX("<otherPatients>")
6279"RTN","EDPRPT7",48,0)
6280 . S LOG=0 F S LOG=$O(OTHER(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
6281"RTN","EDPRPT7",49,0)
6282 . D XML^EDPX("</otherPatients>")
6283"RTN","EDPRPT7",50,0)
6284E2 ; return staff on duty
6285"RTN","EDPRPT7",51,0)
6286 D XML^EDPX("<onDutyStaff>")
6287"RTN","EDPRPT7",52,0)
6288 I $O(MD(0)) D
6289"RTN","EDPRPT7",53,0)
6290 . D XML^EDPX("<doctors>")
6291"RTN","EDPRPT7",54,0)
6292 . S I=0 F S I=$O(MD(I)) Q:I<1 D
6293"RTN","EDPRPT7",55,0)
6294 .. S X="<md name='"_$$ESC^EDPX(MD(I))_"' />"
6295"RTN","EDPRPT7",56,0)
6296 .. D XML^EDPX(X)
6297"RTN","EDPRPT7",57,0)
6298 . D XML^EDPX("</doctors>")
6299"RTN","EDPRPT7",58,0)
6300 I $O(RN(0)) D
6301"RTN","EDPRPT7",59,0)
6302 . D XML^EDPX("<nurses>")
6303"RTN","EDPRPT7",60,0)
6304 . S I=0 F S I=$O(RN(I)) Q:I<1 D
6305"RTN","EDPRPT7",61,0)
6306 .. S X="<rn name='"_$$ESC^EDPX(RN(I))_"' />"
6307"RTN","EDPRPT7",62,0)
6308 .. D XML^EDPX(X)
6309"RTN","EDPRPT7",63,0)
6310 . D XML^EDPX("</nurses>")
6311"RTN","EDPRPT7",64,0)
6312 I $O(RES(0)) D
6313"RTN","EDPRPT7",65,0)
6314 . D XML^EDPX("<residents>")
6315"RTN","EDPRPT7",66,0)
6316 . S I=0 F S I=$O(RES(I)) Q:I<1 D
6317"RTN","EDPRPT7",67,0)
6318 .. S X="<md name='"_$$ESC^EDPX(RES(I))_"' />"
6319"RTN","EDPRPT7",68,0)
6320 .. D XML^EDPX(X)
6321"RTN","EDPRPT7",69,0)
6322 . D XML^EDPX("</residents>")
6323"RTN","EDPRPT7",70,0)
6324 D XML^EDPX("</onDutyStaff>")
6325"RTN","EDPRPT7",71,0)
6326 Q
6327"RTN","EDPRPT7",72,0)
6328 ;
6329"RTN","EDPRPT7",73,0)
6330FIND(IN,OUT) ; create LIST(#) of visits at same time
6331"RTN","EDPRPT7",74,0)
6332 N IDX,TIME,I K LIST
6333"RTN","EDPRPT7",75,0)
6334 F IDX="ATI","ATO" D
6335"RTN","EDPRPT7",76,0)
6336 . S TIME=IN
6337"RTN","EDPRPT7",77,0)
6338 . F S TIME=$O(^EDP(230,IDX,EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D
6339"RTN","EDPRPT7",78,0)
6340 .. S I=0 F S I=$O(^EDP(230,IDX,EDPSITE,TIME,I)) Q:I<1 S LIST(I)=""
6341"RTN","EDPRPT7",79,0)
6342 Q
6343"RTN","EDPRPT7",80,0)
6344 ;
6345"RTN","EDPRPT7",81,0)
6346ROOMS(LOG,OUT) ; Return RLIST(LOG,n)= room ^ time in ^ time out
6347"RTN","EDPRPT7",82,0)
6348 N D,I,N,X S N=0
6349"RTN","EDPRPT7",83,0)
6350 S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
6351"RTN","EDPRPT7",84,0)
6352 . S X=+$P($G(^EDP(230.1,I,3)),U,4) Q:'X ;no location change
6353"RTN","EDPRPT7",85,0)
6354 . S:N $P(RLIST(LOG,N),U,3)=D ;time out = time in of next room
6355"RTN","EDPRPT7",86,0)
6356 . S N=N+1,RLIST(LOG,N)=X_U_D
6357"RTN","EDPRPT7",87,0)
6358 I N,'$P(RLIST(LOG,N),U,3) S $P(RLIST(LOG,N),U,3)=OUT
6359"RTN","EDPRPT7",88,0)
6360 Q
6361"RTN","EDPRPT7",89,0)
6362 ;
6363"RTN","EDPRPT7",90,0)
6364ADD(LOG) ; Add row to XML for each room used during visit
6365"RTN","EDPRPT7",91,0)
6366 N EDPI,EDPX,ROW,LABS,XRAY
6367"RTN","EDPRPT7",92,0)
6368 S EDPI=0 F S EDPI=$O(RLIST(LOG,EDPI)) Q:EDPI<1 S EDPX=RLIST(LOG,EDPI) D
6369"RTN","EDPRPT7",93,0)
6370 . K ROW S ROW("id")=LOG ;only return for EDPI=1 ??
6371"RTN","EDPRPT7",94,0)
6372 . S ROW("bed")=$P($G(^EDPB(231.8,+EDPX,0)),U)
6373"RTN","EDPRPT7",95,0)
6374 . S X=$P(EDPX,U,2)
6375"RTN","EDPRPT7",96,0)
6376 . S ROW("shiftTimeIn")=$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
6377"RTN","EDPRPT7",97,0)
6378 . S X=$P(EDPX,U,3)
6379"RTN","EDPRPT7",98,0)
6380 . S ROW("shiftTimeOut")=$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
6381"RTN","EDPRPT7",99,0)
6382 . S ROW("dx")=$P($G(^EDP(230,LOG,4,1,0)),U)
6383"RTN","EDPRPT7",100,0)
6384 . S X=$P($G(^EDP(230,LOG,1)),U,2),ROW("disposition")=$$ECODE^EDPRPT(X)
6385"RTN","EDPRPT7",101,0)
6386 . S X=$P($G(^EDP(230,LOG,0)),U,10),ROW("arrival")=$$ECODE(X)
6387"RTN","EDPRPT7",102,0)
6388 . S LABS=$D(^EDP(230,LOG,8,"AC","L")),XRAY=$D(^("R")),X=""
6389"RTN","EDPRPT7",103,0)
6390 . I LABS!XRAY D S X=X_" ordered"
6391"RTN","EDPRPT7",104,0)
6392 .. I LABS&XRAY S X="Labs and Imaging" Q
6393"RTN","EDPRPT7",105,0)
6394 .. S:LABS X="Labs" S:XRAY X="Imaging"
6395"RTN","EDPRPT7",106,0)
6396 . S ROW("notes")=X
6397"RTN","EDPRPT7",107,0)
6398 . S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X)
6399"RTN","EDPRPT7",108,0)
6400 Q
6401"RTN","EDPRPT7",109,0)
6402 ;
6403"RTN","EDPRPT7",110,0)
6404STAFF(LOG) ; save staff involved in patient care
6405"RTN","EDPRPT7",111,0)
6406 N D,I,X,ACT S LOG=+$G(LOG)
6407"RTN","EDPRPT7",112,0)
6408 S D=0 F S D=$O(^EDP(230.1,LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
6409"RTN","EDPRPT7",113,0)
6410 . S ACT=$G(^EDP(230.1,I,3))
6411"RTN","EDPRPT7",114,0)
6412 . S X=+$P(ACT,U,5) S:X MD(X)=$$EPERS^EDPRPT(X)
6413"RTN","EDPRPT7",115,0)
6414 . S X=+$P(ACT,U,6) S:X RN(X)=$$EPERS^EDPRPT(X)
6415"RTN","EDPRPT7",116,0)
6416 . S X=+$P(ACT,U,7) S:X RES(X)=$$EPERS^EDPRPT(X)
6417"RTN","EDPRPT7",117,0)
6418 Q
6419"RTN","EDPRPT7",118,0)
6420 ;
6421"RTN","EDPRPT7",119,0)
6422ECODE(IEN) ; Return external value for a Code
6423"RTN","EDPRPT7",120,0)
6424 Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
6425"RTN","EDPRPT7",121,0)
6426 Q ""
6427"RTN","EDPRPT7C")
64280^40^B21231553
6429"RTN","EDPRPT7C",1,0)
6430EDPRPT7C ;SLC/MKB - Exposure Report (CSV format)
6431"RTN","EDPRPT7C",2,0)
6432 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
6433"RTN","EDPRPT7C",3,0)
6434 ;
6435"RTN","EDPRPT7C",4,0)
6436EXP(IEN) ; Get Exposure Report for IEN at EDPSITE
6437"RTN","EDPRPT7C",5,0)
6438 S IEN=+$G(IEN) Q:IEN<1 Q:'$D(^EDP(230,IEN,0))
6439"RTN","EDPRPT7C",6,0)
6440 N BEG,END,LIST,LOG,IN,OUT,X,X0,Y,WAIT,RLIST,TREAT,OTHER,MD,RN,RES,I,J,TAB
6441"RTN","EDPRPT7C",7,0)
6442 N SHIFT D SETUP^EDPRPT5 ;build SHIFT(#)
6443"RTN","EDPRPT7C",8,0)
6444 I 'SHIFT D ERR^EDPRPT(2300013) Q
6445"RTN","EDPRPT7C",9,0)
6446 S X0=^EDP(230,IEN,0),BEG=$P(X0,U,8),END=$P(X0,U,9),TAB=$C(9)
6447"RTN","EDPRPT7C",10,0)
6448 S:'BEG BEG=$P(X0,U) S:'END END=$$NOW^EDPRPT
6449"RTN","EDPRPT7C",11,0)
6450 S WAIT=$$NWBED^EDPRPT(IEN) D ROOMS(IEN,END)
6451"RTN","EDPRPT7C",12,0)
6452 ; put IEN info into CSV
6453"RTN","EDPRPT7C",13,0)
6454 S X="ED"_TAB_"Bed"_TAB_"Shift - Time In"_TAB_"Shift - Time Out"_TAB_"Diagnosis"_TAB_"Dispo"_TAB_"Arr Mode"_TAB_"Notes"
6455"RTN","EDPRPT7C",14,0)
6456 D ADD^EDPCSV(X) ;headers
6457"RTN","EDPRPT7C",15,0)
6458 S X=TAB_TAB_"Contagious Patient Information"
6459"RTN","EDPRPT7C",16,0)
6460 D ADD^EDPCSV(X),BLANK^EDPCSV
6461"RTN","EDPRPT7C",17,0)
6462 D ADD(IEN),STAFF(IEN)
6463"RTN","EDPRPT7C",18,0)
6464 D BLANK^EDPCSV
6465"RTN","EDPRPT7C",19,0)
6466 ; look for patients also in ED between BEG and END
6467"RTN","EDPRPT7C",20,0)
6468 D FIND(BEG,END) ;create LIST(#) list of ien's to check
6469"RTN","EDPRPT7C",21,0)
6470 S LOG=0 F S LOG=+$O(LIST(LOG)) Q:'LOG I LOG'=IEN D
6471"RTN","EDPRPT7C",22,0)
6472 . S X0=$G(^EDP(230,LOG,0)),IN=$P(X0,U,8),OUT=$P(X0,U,9)
6473"RTN","EDPRPT7C",23,0)
6474 . D ROOMS(LOG,OUT)
6475"RTN","EDPRPT7C",24,0)
6476 . ; in waiting room at same time?
6477"RTN","EDPRPT7C",25,0)
6478 . I WAIT,(BEG<=IN)&(IN<=WAIT) S WAIT(LOG)="" Q ;in
6479"RTN","EDPRPT7C",26,0)
6480 . S X=$$NWBED^EDPRPT(LOG)
6481"RTN","EDPRPT7C",27,0)
6482 . I X,(BEG<=X)&(X<=WAIT) S WAIT(LOG)="" Q ;out
6483"RTN","EDPRPT7C",28,0)
6484 . ; compare treatment rooms
6485"RTN","EDPRPT7C",29,0)
6486 . S I=1 F S I=$O(RLIST(IEN,I)) Q:I<1 D
6487"RTN","EDPRPT7C",30,0)
6488 .. N RIN,ROUT S RIN=$P(RLIST(IEN,I),U,2),ROUT=$P(RLIST(IEN,I),U,3)
6489"RTN","EDPRPT7C",31,0)
6490 .. S J=0 F S J=$O(RLIST(LOG,J)) Q:J<1 I $P(RLIST(IEN,I),U)=$P(RLIST(LOG,J),U) D
6491"RTN","EDPRPT7C",32,0)
6492 ... S X=$P(RLIST(LOG,J),U,2) ;in to treatment room
6493"RTN","EDPRPT7C",33,0)
6494 ... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
6495"RTN","EDPRPT7C",34,0)
6496 ... S X=$P(RLIST(LOG,J),U,3) ;out of treatment room
6497"RTN","EDPRPT7C",35,0)
6498 ... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
6499"RTN","EDPRPT7C",36,0)
6500 . I '$D(TREAT(LOG)) S OTHER(LOG)=""
6501"RTN","EDPRPT7C",37,0)
6502E1 ; return waiting room patients
6503"RTN","EDPRPT7C",38,0)
6504 D ADD^EDPCSV(TAB_TAB_"Exposed in the Waiting Room"),BLANK^EDPCSV
6505"RTN","EDPRPT7C",39,0)
6506 I '$O(WAIT(0)) D ADD^EDPCSV(TAB_TAB_" None")
6507"RTN","EDPRPT7C",40,0)
6508 E S LOG=0 F S LOG=$O(WAIT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
6509"RTN","EDPRPT7C",41,0)
6510 D BLANK^EDPCSV
6511"RTN","EDPRPT7C",42,0)
6512 ; return treatment room patients
6513"RTN","EDPRPT7C",43,0)
6514 D ADD^EDPCSV(TAB_TAB_"Exposed in Treatment Room"),BLANK^EDPCSV
6515"RTN","EDPRPT7C",44,0)
6516 I '$O(TREAT(0)) D ADD^EDPCSV(TAB_TAB_" None")
6517"RTN","EDPRPT7C",45,0)
6518 E S LOG=0 F S LOG=$O(TREAT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
6519"RTN","EDPRPT7C",46,0)
6520 D BLANK^EDPCSV
6521"RTN","EDPRPT7C",47,0)
6522 ; return other ED patients
6523"RTN","EDPRPT7C",48,0)
6524 D ADD^EDPCSV(TAB_TAB_"Other ED Patients"),BLANK^EDPCSV
6525"RTN","EDPRPT7C",49,0)
6526 I '$O(OTHER(0)) D ADD^EDPCSV(TAB_TAB_" None")
6527"RTN","EDPRPT7C",50,0)
6528 E S LOG=0 F S LOG=$O(OTHER(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
6529"RTN","EDPRPT7C",51,0)
6530 D BLANK^EDPCSV
6531"RTN","EDPRPT7C",52,0)
6532E2 ; return staff on duty
6533"RTN","EDPRPT7C",53,0)
6534 N MAX,MORE D ADD^EDPCSV(TAB_TAB_"On Duty Staff")
6535"RTN","EDPRPT7C",54,0)
6536 D ADD^EDPCSV(TAB_"Doctors"_TAB_"Nurses"_TAB_"Residents")
6537"RTN","EDPRPT7C",55,0)
6538 S MAX=+$G(RN) S:$G(MD)>MAX MAX=+MD S:$G(RES)>MAX MAX=+RES
6539"RTN","EDPRPT7C",56,0)
6540 S MORE=1,(MD,RN,RES)=0 F D Q:'MORE
6541"RTN","EDPRPT7C",57,0)
6542 . S:MD'="" MD=$O(MD(MD)) S:RN'="" RN=$O(RN(RN))
6543"RTN","EDPRPT7C",58,0)
6544 . S:RES'="" RES=$O(RES(RES)) ;get next
6545"RTN","EDPRPT7C",59,0)
6546 . I MD="",RN="",RES="" S MORE=0 Q ;done
6547"RTN","EDPRPT7C",60,0)
6548 . S X=TAB_$S(MD:MD(MD),1:"")_TAB_$S(RN:RN(RN),1:"")_TAB_$S(RES:RES(RES),1:"")
6549"RTN","EDPRPT7C",61,0)
6550 . D ADD^EDPCSV(X)
6551"RTN","EDPRPT7C",62,0)
6552 Q
6553"RTN","EDPRPT7C",63,0)
6554 ;
6555"RTN","EDPRPT7C",64,0)
6556FIND(IN,OUT) ; create LIST(#) of visits at same time
6557"RTN","EDPRPT7C",65,0)
6558 N IDX,TIME,I K LIST
6559"RTN","EDPRPT7C",66,0)
6560 F IDX="ATI","ATO" D
6561"RTN","EDPRPT7C",67,0)
6562 . S TIME=IN
6563"RTN","EDPRPT7C",68,0)
6564 . F S TIME=$O(^EDP(230,IDX,EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D
6565"RTN","EDPRPT7C",69,0)
6566 .. S I=0 F S I=$O(^EDP(230,IDX,EDPSITE,TIME,I)) Q:I<1 S LIST(I)=""
6567"RTN","EDPRPT7C",70,0)
6568 Q
6569"RTN","EDPRPT7C",71,0)
6570 ;
6571"RTN","EDPRPT7C",72,0)
6572ROOMS(LOG,OUT) ; Return RLIST(LOG,n)= room ^ time in ^ time out
6573"RTN","EDPRPT7C",73,0)
6574 N D,I,N,X S N=0
6575"RTN","EDPRPT7C",74,0)
6576 S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
6577"RTN","EDPRPT7C",75,0)
6578 . S X=+$P($G(^EDP(230.1,I,3)),U,4) Q:'X ;no location change
6579"RTN","EDPRPT7C",76,0)
6580 . S:N $P(RLIST(LOG,N),U,3)=D ;time out = time in of next room
6581"RTN","EDPRPT7C",77,0)
6582 . S N=N+1,RLIST(LOG,N)=X_U_D
6583"RTN","EDPRPT7C",78,0)
6584 I N,'$P(RLIST(LOG,N),U,3) S $P(RLIST(LOG,N),U,3)=OUT
6585"RTN","EDPRPT7C",79,0)
6586 Q
6587"RTN","EDPRPT7C",80,0)
6588 ;
6589"RTN","EDPRPT7C",81,0)
6590ADD(LOG) ; Add row to CSV for each room used during visit
6591"RTN","EDPRPT7C",82,0)
6592 N EDPI,EDPX,ROW,LABS,XRAY,X
6593"RTN","EDPRPT7C",83,0)
6594 S EDPI=0 F S EDPI=$O(RLIST(LOG,EDPI)) Q:EDPI<1 S EDPX=RLIST(LOG,EDPI) D
6595"RTN","EDPRPT7C",84,0)
6596 . S ROW=$S(EDPI=1:LOG,1:"")_TAB_$P($G(^EDPB(231.8,+EDPX,0)),U)
6597"RTN","EDPRPT7C",85,0)
6598 . S X=$P(EDPX,U,2) ;shiftTimeIn
6599"RTN","EDPRPT7C",86,0)
6600 . S ROW=ROW_TAB_$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
6601"RTN","EDPRPT7C",87,0)
6602 . S X=$P(EDPX,U,3) ;shiftTimeOut
6603"RTN","EDPRPT7C",88,0)
6604 . S ROW=ROW_TAB_$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
6605"RTN","EDPRPT7C",89,0)
6606 . S ROW=ROW_TAB_$P($G(^EDP(230,LOG,4,1,0)),U) ;Dx
6607"RTN","EDPRPT7C",90,0)
6608 . S X=$P($G(^EDP(230,LOG,1)),U,2),ROW=ROW_TAB_$$ECODE^EDPRPT(X) ;dis
6609"RTN","EDPRPT7C",91,0)
6610 . S X=$P($G(^EDP(230,LOG,0)),U,10),ROW=ROW_TAB_$$ECODE(X) ;arrival
6611"RTN","EDPRPT7C",92,0)
6612 . S LABS=$D(^EDP(230,LOG,8,"AC","L")),XRAY=$D(^("R")),X=""
6613"RTN","EDPRPT7C",93,0)
6614 . I LABS!XRAY D S X=X_" ordered"
6615"RTN","EDPRPT7C",94,0)
6616 .. I LABS&XRAY S X="Labs and Imaging" Q
6617"RTN","EDPRPT7C",95,0)
6618 .. S:LABS X="Labs" S:XRAY X="Imaging"
6619"RTN","EDPRPT7C",96,0)
6620 . S ROW=ROW_TAB_X ;notes
6621"RTN","EDPRPT7C",97,0)
6622 . D ADD^EDPCSV(ROW)
6623"RTN","EDPRPT7C",98,0)
6624 Q
6625"RTN","EDPRPT7C",99,0)
6626 ;
6627"RTN","EDPRPT7C",100,0)
6628STAFF(LOG) ; save staff involved in patient care
6629"RTN","EDPRPT7C",101,0)
6630 N D,I,X,ACT S LOG=+$G(LOG)
6631"RTN","EDPRPT7C",102,0)
6632 S D=0 F S D=$O(^EDP(230.1,LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
6633"RTN","EDPRPT7C",103,0)
6634 . S ACT=$G(^EDP(230.1,I,3))
6635"RTN","EDPRPT7C",104,0)
6636 . S X=+$P(ACT,U,5) S:X MD(X)=$$EPERS^EDPRPT(X)
6637"RTN","EDPRPT7C",105,0)
6638 . S X=+$P(ACT,U,6) S:X RN(X)=$$EPERS^EDPRPT(X)
6639"RTN","EDPRPT7C",106,0)
6640 . S X=+$P(ACT,U,7) S:X RES(X)=$$EPERS^EDPRPT(X)
6641"RTN","EDPRPT7C",107,0)
6642 Q
6643"RTN","EDPRPT7C",108,0)
6644 ;
6645"RTN","EDPRPT7C",109,0)
6646ECODE(IEN) ; Return external value for a Code
6647"RTN","EDPRPT7C",110,0)
6648 Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
6649"RTN","EDPRPT7C",111,0)
6650 Q ""
6651"RTN","EDPRPT8")
66520^41^B15360284
6653"RTN","EDPRPT8",1,0)
6654EDPRPT8 ;SLC/MKB - Acuity Report
6655"RTN","EDPRPT8",2,0)
6656 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
6657"RTN","EDPRPT8",3,0)
6658 ;
6659"RTN","EDPRPT8",4,0)
6660ACU(BEG,END) ; Get Acuity Report for EDPSITE by date range
6661"RTN","EDPRPT8",5,0)
6662 ; CNT = counters for admissions
6663"RTN","EDPRPT8",6,0)
6664 ; MIN = accumulate #minutes
6665"RTN","EDPRPT8",7,0)
6666 ; ACU = counters by acuity
6667"RTN","EDPRPT8",8,0)
6668 ; VA = counters for disposition=VA only
6669"RTN","EDPRPT8",9,0)
6670 N IN,OUT,X,X0,X1,X3,X4,DISP,CNT,MIN,ACU,VA,TOT,ROW,NOW
6671"RTN","EDPRPT8",10,0)
6672 D INIT ;set counters, sums to 0
6673"RTN","EDPRPT8",11,0)
6674 S IN=BEG-.000001
6675"RTN","EDPRPT8",12,0)
6676 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
6677"RTN","EDPRPT8",13,0)
6678 . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
6679"RTN","EDPRPT8",14,0)
6680 . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),ACU=$$ECODE($P(X3,U,3)),TOT=TOT+1
6681"RTN","EDPRPT8",15,0)
6682 . ; all admissions
6683"RTN","EDPRPT8",16,0)
6684 . S (ADMDEC,ADMDEL)=0
6685"RTN","EDPRPT8",17,0)
6686 . S X=$$ADMSTS^EDPRPT(LOG) I X S CNT=CNT+1 D:$L(ACU) ;decision to admit
6687"RTN","EDPRPT8",18,0)
6688 .. S CNT(ACU)=CNT(ACU)+1
6689"RTN","EDPRPT8",19,0)
6690 .. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60
6691"RTN","EDPRPT8",20,0)
6692 .. S:ADMDEC MIN("DEC")=MIN("DEC")+ADMDEC,MIN("DEC",ACU)=MIN("DEC",ACU)+ADMDEC
6693"RTN","EDPRPT8",21,0)
6694 .. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
6695"RTN","EDPRPT8",22,0)
6696 .. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60
6697"RTN","EDPRPT8",23,0)
6698 .. ;S:ADMDEL MIN("DEL",ACU)=MIN("DEL",ACU)+ADMDEL
6699"RTN","EDPRPT8",24,0)
6700 . I $L(ACU) S ACU(ACU)=ACU(ACU)+1 D:DISP="VA" ;VA admissions
6701"RTN","EDPRPT8",25,0)
6702 .. S VA=VA+1,VA(ACU)=VA(ACU)+1
6703"RTN","EDPRPT8",26,0)
6704 .. S MIN(ACU)=MIN(ACU)+ADMDEC
6705"RTN","EDPRPT8",27,0)
6706 .. S MIN("VADEC")=MIN("VADEC")+ADMDEC
6707"RTN","EDPRPT8",28,0)
6708 .. S MIN("VADEC",ACU)=MIN("VADEC",ACU)+ADMDEC
6709"RTN","EDPRPT8",29,0)
6710 .. S MIN("VADEL")=MIN("VADEL")+ADMDEL
6711"RTN","EDPRPT8",30,0)
6712 .. S MIN("VADEL",ACU)=MIN("VADEL",ACU)+ADMDEL
6713"RTN","EDPRPT8",31,0)
6714A1 ; return counts and averages
6715"RTN","EDPRPT8",32,0)
6716 S I="" F S I=$O(ACU(I)) Q:I="" D ;avg #min admit dec by acuity
6717"RTN","EDPRPT8",33,0)
6718 . S MIN("DEC",I)=$S(CNT(I):$$ETIME(MIN("DEC",I)\CNT(I)),1:0)
6719"RTN","EDPRPT8",34,0)
6720 . S MIN("VADEC",I)=$S(VA(I):$$ETIME(MIN("VADEC",I)\VA(I)),1:0)
6721"RTN","EDPRPT8",35,0)
6722 . S MIN("VADEL",I)=$S(VA(I):$$ETIME(MIN("VADEL",I)\VA(I)),1:0)
6723"RTN","EDPRPT8",36,0)
6724 S ACU("total")=TOT,CNT("total")=CNT,VA("total")=VA
6725"RTN","EDPRPT8",37,0)
6726 S ACU("type")="Number of Patients",CNT("type")="Number Admitted",VA("type")="Number VA Admitted"
6727"RTN","EDPRPT8",38,0)
6728 S MIN("DEC","type")="Avg All Admit Dec Time",MIN("VADEC","type")="Avg VA Admit Dec Time",MIN("VADEL","type")="Avg VA Admit Delay Time"
6729"RTN","EDPRPT8",39,0)
6730 S MIN("DEC","total")=$S(CNT:$$ETIME(MIN("DEC")\CNT),1:0)
6731"RTN","EDPRPT8",40,0)
6732 S MIN("VADEC","total")=$S(VA:$$ETIME(MIN("VADEC")\VA),1:0)
6733"RTN","EDPRPT8",41,0)
6734 S MIN("VADEL","total")=$S(VA:$$ETIME(MIN("VADEL")\VA),1:0)
6735"RTN","EDPRPT8",42,0)
6736 ; as CSV
6737"RTN","EDPRPT8",43,0)
6738 I $G(CSV) D Q
6739"RTN","EDPRPT8",44,0)
6740 . N TAB S TAB=$C(9)
6741"RTN","EDPRPT8",45,0)
6742 . S X="Acuity->"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total/Average"
6743"RTN","EDPRPT8",46,0)
6744 . D ADD^EDPCSV(X)
6745"RTN","EDPRPT8",47,0)
6746 . D ROW("Number of Patients",.ACU)
6747"RTN","EDPRPT8",48,0)
6748 . D ROW("Number Admitted",.CNT)
6749"RTN","EDPRPT8",49,0)
6750 . D ROW("Number VA Admitted",.VA)
6751"RTN","EDPRPT8",50,0)
6752 . M ROW=MIN("DEC") D ROW("Avg All Admit Dec Time",.ROW) K ROW
6753"RTN","EDPRPT8",51,0)
6754 . M ROW=MIN("VADEC") D ROW("Avg VA Admit Dec Time",.ROW) K ROW
6755"RTN","EDPRPT8",52,0)
6756 . M ROW=MIN("VADEL") D ROW("Avg VA Admit Delay Time",.ROW) K ROW
6757"RTN","EDPRPT8",53,0)
6758 ; or as XML
6759"RTN","EDPRPT8",54,0)
6760 D XML^EDPX("<statistics>")
6761"RTN","EDPRPT8",55,0)
6762 S X=$$XMLA^EDPX("row",.ACU) D XML^EDPX(X)
6763"RTN","EDPRPT8",56,0)
6764 S X=$$XMLA^EDPX("row",.CNT) D XML^EDPX(X)
6765"RTN","EDPRPT8",57,0)
6766 S X=$$XMLA^EDPX("row",.VA) D XML^EDPX(X)
6767"RTN","EDPRPT8",58,0)
6768 M ROW=MIN("DEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW
6769"RTN","EDPRPT8",59,0)
6770 M ROW=MIN("VADEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW
6771"RTN","EDPRPT8",60,0)
6772 M ROW=MIN("VADEL") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW
6773"RTN","EDPRPT8",61,0)
6774 D XML^EDPX("</statistics>")
6775"RTN","EDPRPT8",62,0)
6776 Q
6777"RTN","EDPRPT8",63,0)
6778 ;
6779"RTN","EDPRPT8",64,0)
6780ROW(NAME,LIST) ; add line
6781"RTN","EDPRPT8",65,0)
6782 N I S X=NAME
6783"RTN","EDPRPT8",66,0)
6784 F I="none","one","two","three","four","five","total" S X=X_TAB_LIST(I)
6785"RTN","EDPRPT8",67,0)
6786 D ADD^EDPCSV(X)
6787"RTN","EDPRPT8",68,0)
6788 Q
6789"RTN","EDPRPT8",69,0)
6790 ;
6791"RTN","EDPRPT8",70,0)
6792INIT ; Initialize acuity counters
6793"RTN","EDPRPT8",71,0)
6794 N X S (TOT,CNT,VA)=0
6795"RTN","EDPRPT8",72,0)
6796 F X="none","one","two","three","four","five" D
6797"RTN","EDPRPT8",73,0)
6798 . S (CNT(X),VA(X),ACU(X),MIN(X),MIN("DEC",X),MIN("VADEC",X),MIN("VADEL",X))=0
6799"RTN","EDPRPT8",74,0)
6800 F X="DEC","DEL","VADEC","VADEL" S MIN(X)=0
6801"RTN","EDPRPT8",75,0)
6802 S NOW=$$NOW^EDPRPT
6803"RTN","EDPRPT8",76,0)
6804 Q
6805"RTN","EDPRPT8",77,0)
6806 ;
6807"RTN","EDPRPT8",78,0)
6808ECODE(IEN) ; Return external value for an Acuity code
6809"RTN","EDPRPT8",79,0)
6810 N X0,X,Y S X0=$G(^EDPB(233.1,+IEN,0))
6811"RTN","EDPRPT8",80,0)
6812 S X=$P(X0,U,3) S:X<1 X=$P(X0,U,4) ;code or nat'l code
6813"RTN","EDPRPT8",81,0)
6814 S Y=$S(X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"none")
6815"RTN","EDPRPT8",82,0)
6816 Q Y
6817"RTN","EDPRPT8",83,0)
6818 ;
6819"RTN","EDPRPT8",84,0)
6820ETIME(MINS) ; Return #minutes as HH:MM
6821"RTN","EDPRPT8",85,0)
6822 N H,M,Y
6823"RTN","EDPRPT8",86,0)
6824 S H=MINS\60,M=MINS#60
6825"RTN","EDPRPT8",87,0)
6826 S Y=$E("0"_H,1,2)_":"_$E("0"_M,1,2)
6827"RTN","EDPRPT8",88,0)
6828 Q Y
6829"RTN","EDPRPT9")
68300^42^B1592058
6831"RTN","EDPRPT9",1,0)
6832EDPRPT9 ;SLC/MKB - Patient Xref Report
6833"RTN","EDPRPT9",2,0)
6834 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
6835"RTN","EDPRPT9",3,0)
6836 ;
6837"RTN","EDPRPT9",4,0)
6838XRF(BEG,END) ; Get Patient Xref Report for EDPSITE by date range
6839"RTN","EDPRPT9",5,0)
6840 ; CNT = counters
6841"RTN","EDPRPT9",6,0)
6842 N IN,LOG,DFN,ID,X,ROW,TAB
6843"RTN","EDPRPT9",7,0)
6844 D:'$G(CSV) XML^EDPX("<patients>") I $G(CSV) D ;headers
6845"RTN","EDPRPT9",8,0)
6846 . S TAB=$C(9),X="ED"_TAB_"Patient ID"_TAB_"Patient DFN"
6847"RTN","EDPRPT9",9,0)
6848 . D ADD^EDPCSV(X)
6849"RTN","EDPRPT9",10,0)
6850 S IN=BEG-.000001
6851"RTN","EDPRPT9",11,0)
6852 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
6853"RTN","EDPRPT9",12,0)
6854 . S DFN=$P($G(^EDP(230,LOG,0)),U,6),ID=$P($G(^(0)),U,11) Q:DFN<1
6855"RTN","EDPRPT9",13,0)
6856 . I $G(CSV) S X=LOG_TAB_ID_TAB_DFN D ADD^EDPCSV(X) Q
6857"RTN","EDPRPT9",14,0)
6858 . K ROW S ROW("id")=LOG
6859"RTN","EDPRPT9",15,0)
6860 . S ROW("patientDfn")=DFN
6861"RTN","EDPRPT9",16,0)
6862 . S ROW("patientId")=ID
6863"RTN","EDPRPT9",17,0)
6864 . S X=$$XMLA^EDPX("patient",.ROW) D XML^EDPX(X)
6865"RTN","EDPRPT9",18,0)
6866 D:'$G(CSV) XML^EDPX("</patients>")
6867"RTN","EDPRPT9",19,0)
6868 Q
6869"RTN","EDPX")
68700^46^B6480298
6871"RTN","EDPX",1,0)
6872EDPX ;SLC/KCM - Common Utilities
6873"RTN","EDPX",2,0)
6874 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
6875"RTN","EDPX",3,0)
6876 ;
6877"RTN","EDPX",4,0)
6878ESC(X) ; Escape for XML transmission
6879"RTN","EDPX",5,0)
6880 Q $ZCONVERT(X,"O","HTML")
6881"RTN","EDPX",6,0)
6882 ;
6883"RTN","EDPX",7,0)
6884UES(X) ; Unescape XML
6885"RTN","EDPX",8,0)
6886 Q $ZCONVERT(X,"I","HTML")
6887"RTN","EDPX",9,0)
6888 ;
6889"RTN","EDPX",10,0)
6890UESREQ(REQ) ; Unescape HTTP post
6891"RTN","EDPX",11,0)
6892 N I,X
6893"RTN","EDPX",12,0)
6894 S X="" F S X=$O(REQ(X)) Q:X="" D
6895"RTN","EDPX",13,0)
6896 . S I=0 F S I=$O(REQ(X,I)) Q:'I D
6897"RTN","EDPX",14,0)
6898 . . S REQ(X,I)=$ZCONVERT(REQ(X,I),"I","HTML")
6899"RTN","EDPX",15,0)
6900 Q
6901"RTN","EDPX",16,0)
6902VAL(X,R) ; Returns parameter value or null
6903"RTN","EDPX",17,0)
6904 ; HTTP passes HTML-escaped values in an array as REC(param,1)
6905"RTN","EDPX",18,0)
6906 Q $G(R(X,1))
6907"RTN","EDPX",19,0)
6908 ;
6909"RTN","EDPX",20,0)
6910NVPARSE(LST,IN) ; Parses tab delimited name-value pairs into array
6911"RTN","EDPX",21,0)
6912 N I,X,TAB,NM,VAL
6913"RTN","EDPX",22,0)
6914 S TAB=$C(9)
6915"RTN","EDPX",23,0)
6916 F I=1:1:$L(IN,TAB) S X=$P(IN,TAB,I),NM=$P(X,"="),VAL=$P(X,"=",2,999) S:$L(NM) LST(NM)=VAL
6917"RTN","EDPX",24,0)
6918 Q
6919"RTN","EDPX",25,0)
6920XMLS(TAG,DATA,LBL) ; Return XML node as <TAG data="9" label="XXX" />
6921"RTN","EDPX",26,0)
6922 Q "<"_TAG_" data="""_$$ESC(DATA)_""" label="""_$$ESC(LBL)_""" />"
6923"RTN","EDPX",27,0)
6924 ;
6925"RTN","EDPX",28,0)
6926XMLA(TAG,ATT,END) ; Return XML node as <TAG att1="a" att2="b"... />
6927"RTN","EDPX",29,0)
6928 N NODE S NODE="<"_TAG_" "
6929"RTN","EDPX",30,0)
6930 N X
6931"RTN","EDPX",31,0)
6932 S X="" F S X=$O(ATT(X)) Q:X="" I $L(ATT(X)) S NODE=NODE_X_"="""_$$ESC(ATT(X))_""" "
6933"RTN","EDPX",32,0)
6934 S NODE=NODE_$G(END,"/")_">"
6935"RTN","EDPX",33,0)
6936 Q NODE
6937"RTN","EDPX",34,0)
6938 ;
6939"RTN","EDPX",35,0)
6940XMLE(SRC) ; Append list to XML array as elements
6941"RTN","EDPX",36,0)
6942 N X,NODE
6943"RTN","EDPX",37,0)
6944 S X="" F S X=$O(SRC(X)) Q:X="" D
6945"RTN","EDPX",38,0)
6946 . S NODE="<"_X_">"_$$ESC(SRC(X))_"</"_X_">"
6947"RTN","EDPX",39,0)
6948 . D XML(NODE)
6949"RTN","EDPX",40,0)
6950 Q
6951"RTN","EDPX",41,0)
6952XML(X) ; Add a line of XML to be returned
6953"RTN","EDPX",42,0)
6954 S EDPXML=$G(EDPXML)+1
6955"RTN","EDPX",43,0)
6956 S EDPXML(EDPXML)=X
6957"RTN","EDPX",44,0)
6958 Q
6959"RTN","EDPX",45,0)
6960CODE(X) ; Return internal value for a code
6961"RTN","EDPX",46,0)
6962 Q $O(^EDPB(233.1,"B",X,0))
6963"RTN","EDPX",47,0)
6964 ;
6965"RTN","EDPX",48,0)
6966MSG(MSG) ; Write out error message
6967"RTN","EDPX",49,0)
6968 I MSG=1 S X="some error"
6969"RTN","EDPX",50,0)
6970 I MSG=2300001 S X="Station Number is missing"
6971"RTN","EDPX",51,0)
6972 I MSG=2300002 S X="Patient is already active in log"
6973"RTN","EDPX",52,0)
6974 I MSG=2300003 S X="Unable to create lock for new record"
6975"RTN","EDPX",53,0)
6976 I MSG=2300004 S X="Error creating new record"
6977"RTN","EDPX",54,0)
6978 I MSG=2300005 S X="Error creating sub-record"
6979"RTN","EDPX",55,0)
6980 I MSG=2300006 S X="Missing log record"
6981"RTN","EDPX",56,0)
6982 I MSG=2300007 S X="Missing log IEN"
6983"RTN","EDPX",57,0)
6984 I MSG=2300008 S X="Error updating record"
6985"RTN","EDPX",58,0)
6986 I MSG=2300009 S X="Error updating sub-record"
6987"RTN","EDPX",59,0)
6988 I MSG=2300010 S X="Command missing or not recognized"
6989"RTN","EDPX",60,0)
6990 I MSG=2300011 S X="Unknown report type"
6991"RTN","EDPX",61,0)
6992 I MSG=2300012 S X="Missing or invalid date range"
6993"RTN","EDPX",62,0)
6994 I MSG=2300013 S X="Shift times not defined for this site"
6995"RTN","EDPX",63,0)
6996 Q $$ESC^EDPX(X)
6997"RTN","EDPYSRV")
69980^^B257666
6999"RTN","EDPYSRV",1,0)
7000EDPYSRV ;SLC/KCM - Post-init for server install
7001"RTN","EDPYSRV",2,0)
7002 ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6
7003"RTN","EDPYSRV",3,0)
7004 ;
7005"RTN","EDPYSRV",4,0)
7006PROXY ; Create proxy user
7007"RTN","EDPYSRV",5,0)
7008 Q:$O(^VA(200,"B","EDPTRACKING,PROXY",0))
7009"RTN","EDPYSRV",6,0)
7010 N X
7011"RTN","EDPYSRV",7,0)
7012 S X=$$CREATE^XUSAP("EDPTRACKING,PROXY","","EDPS TRACKING CONTEXT")
7013"RTN","EDPYSRV",8,0)
7014 Q
7015"SEC","^DIC",230,230,0,"AUDIT")
7016@
7017"SEC","^DIC",230,230,0,"DD")
7018@
7019"SEC","^DIC",230,230,0,"DEL")
7020@
7021"SEC","^DIC",230,230,0,"LAYGO")
7022@
7023"SEC","^DIC",230,230,0,"RD")
7024@
7025"SEC","^DIC",230,230,0,"WR")
7026@
7027"SEC","^DIC",230.1,230.1,0,"AUDIT")
7028@
7029"SEC","^DIC",230.1,230.1,0,"DD")
7030@
7031"SEC","^DIC",230.1,230.1,0,"DEL")
7032@
7033"SEC","^DIC",230.1,230.1,0,"LAYGO")
7034@
7035"SEC","^DIC",230.1,230.1,0,"RD")
7036@
7037"SEC","^DIC",230.1,230.1,0,"WR")
7038@
7039"SEC","^DIC",231.7,231.7,0,"AUDIT")
7040@
7041"SEC","^DIC",231.7,231.7,0,"DD")
7042@
7043"SEC","^DIC",231.7,231.7,0,"DEL")
7044@
7045"SEC","^DIC",231.7,231.7,0,"LAYGO")
7046@
7047"SEC","^DIC",231.7,231.7,0,"RD")
7048@
7049"SEC","^DIC",231.7,231.7,0,"WR")
7050@
7051"SEC","^DIC",231.8,231.8,0,"AUDIT")
7052@
7053"SEC","^DIC",231.8,231.8,0,"DD")
7054@
7055"SEC","^DIC",231.8,231.8,0,"DEL")
7056@
7057"SEC","^DIC",231.8,231.8,0,"LAYGO")
7058@
7059"SEC","^DIC",231.8,231.8,0,"RD")
7060@
7061"SEC","^DIC",231.8,231.8,0,"WR")
7062@
7063"SEC","^DIC",231.9,231.9,0,"AUDIT")
7064@
7065"SEC","^DIC",231.9,231.9,0,"DD")
7066@
7067"SEC","^DIC",231.9,231.9,0,"DEL")
7068@
7069"SEC","^DIC",231.9,231.9,0,"LAYGO")
7070@
7071"SEC","^DIC",231.9,231.9,0,"RD")
7072@
7073"SEC","^DIC",231.9,231.9,0,"WR")
7074@
7075"SEC","^DIC",233.1,233.1,0,"AUDIT")
7076@
7077"SEC","^DIC",233.1,233.1,0,"DD")
7078@
7079"SEC","^DIC",233.1,233.1,0,"DEL")
7080@
7081"SEC","^DIC",233.1,233.1,0,"LAYGO")
7082@
7083"SEC","^DIC",233.1,233.1,0,"RD")
7084@
7085"SEC","^DIC",233.1,233.1,0,"WR")
7086@
7087"SEC","^DIC",233.2,233.2,0,"AUDIT")
7088@
7089"SEC","^DIC",233.2,233.2,0,"DD")
7090@
7091"SEC","^DIC",233.2,233.2,0,"DEL")
7092@
7093"SEC","^DIC",233.2,233.2,0,"LAYGO")
7094@
7095"SEC","^DIC",233.2,233.2,0,"RD")
7096@
7097"SEC","^DIC",233.2,233.2,0,"WR")
7098@
7099"VER")
71008.0^22.0
7101"^DD",230,230,0)
7102FIELD^^.12^27
7103"^DD",230,230,0,"DT")
71043071227
7105"^DD",230,230,0,"IX","B",230,.01)
7106
7107"^DD",230,230,0,"NM","ED LOG")
7108
7109"^DD",230,230,0,"PT",230.1,.01)
7110
7111"^DD",230,230,.01,0)
7112LOG ENTRY TIME^RD^^0;1^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
7113"^DD",230,230,.01,1,0)
7114^.1
7115"^DD",230,230,.01,1,1,0)
7116230^B
7117"^DD",230,230,.01,1,1,1)
7118S ^EDP(230,"B",$E(X,1,30),DA)=""
7119"^DD",230,230,.01,1,1,2)
7120K ^EDP(230,"B",$E(X,1,30),DA)
7121"^DD",230,230,.01,3)
7122
7123"^DD",230,230,.01,"DT")
71243070721
7125"^DD",230,230,.02,0)
7126STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X
7127"^DD",230,230,.02,1,0)
7128^.1^^0
7129"^DD",230,230,.02,3)
7130Answer must be 1-15 characters in length.
7131"^DD",230,230,.02,"DT")
71323071221
7133"^DD",230,230,.03,0)
7134AREA^P231.9'^EDPB(231.9,^0;3^Q
7135"^DD",230,230,.03,1,0)
7136^.1^^0
7137"^DD",230,230,.03,"DT")
71383071216
7139"^DD",230,230,.04,0)
7140PATIENT NAME^F^^0;4^K:$L(X)>40!($L(X)<3) X
7141"^DD",230,230,.04,3)
7142Answer must be 3-40 characters in length.
7143"^DD",230,230,.04,"DT")
71443071216
7145"^DD",230,230,.05,0)
7146PATIENT SSN^F^^0;5^K:$L(X)>10!($L(X)<1) X
7147"^DD",230,230,.05,1,0)
7148^.1^^0
7149"^DD",230,230,.05,3)
7150Answer must be 1-10 characters in length.
7151"^DD",230,230,.05,"DT")
71523070920
7153"^DD",230,230,.06,0)
7154PATIENT ID^F^^0;6^K:$L(X)>20!($L(X)<1) X
7155"^DD",230,230,.06,3)
7156Answer must be 1-20 characters in length.
7157"^DD",230,230,.06,"DT")
71583071115
7159"^DD",230,230,.07,0)
7160CLOSED^S^1:YES;0:NO;^0;7^Q
7161"^DD",230,230,.07,1,0)
7162^.1^^0
7163"^DD",230,230,.07,5,1,0)
7164230^3.2^1
7165"^DD",230,230,.07,9)
7166^
7167"^DD",230,230,.07,"DT")
71683071129
7169"^DD",230,230,.08,0)
7170TIME IN^D^^0;8^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
7171"^DD",230,230,.08,"DT")
71723071120
7173"^DD",230,230,.09,0)
7174TIME OUT^D^^0;9^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
7175"^DD",230,230,.09,"DT")
71763071018
7177"^DD",230,230,.1,0)
7178ARRIVAL MODE^P233.1'^EDPB(233.1,^0;10^Q
7179"^DD",230,230,.1,"DT")
71803070913
7181"^DD",230,230,.11,0)
7182PATIENT BRIEF ID^F^^0;11^K:$L(X)>10!($L(X)<4) X
7183"^DD",230,230,.11,3)
7184Answer must be 4-10 characters in length.
7185"^DD",230,230,.11,"DT")
71863071129
7187"^DD",230,230,.12,0)
7188TIME ZONE DIFFERENCE^NJ3,0^^0;12^K:+X'=X!(X>720)!(X<-720)!(X?.E1"."1N.N) X
7189"^DD",230,230,.12,3)
7190Type a Number between -720 and 720, 0 Decimal Digits
7191"^DD",230,230,.12,21,0)
7192^^1^1^3071227^
7193"^DD",230,230,.12,21,1,0)
7194Minutes difference between the server time zone and the local time zone.
7195"^DD",230,230,.12,"DT")
71963071227
7197"^DD",230,230,1.1,0)
7198COMPLAINT^F^^1;1^K:$L(X)>50!($L(X)<1) X
7199"^DD",230,230,1.1,3)
7200Answer must be 1-50 characters in length.
7201"^DD",230,230,1.1,"DT")
72023070720
7203"^DD",230,230,1.2,0)
7204DISPOSITION^P233.1'^EDPB(233.1,^1;2^Q
7205"^DD",230,230,1.2,"DT")
72063070720
7207"^DD",230,230,1.3,0)
7208DISPOSITION TIME^D^^1;3^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
7209"^DD",230,230,1.3,"DT")
72103070720
7211"^DD",230,230,1.4,0)
7212DIAGNOSIS TIME^D^^1;4^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
7213"^DD",230,230,1.4,3)
7214
7215"^DD",230,230,1.4,"DT")
72163070720
7217"^DD",230,230,1.5,0)
7218DELAY^P233.1'^EDPB(233.1,^1;5^Q
7219"^DD",230,230,1.5,"DT")
72203070720
7221"^DD",230,230,2,0)
7222COMPLAINT (LONG)^F^^2;1^K:$L(X)>220!($L(X)<1) X
7223"^DD",230,230,2,3)
7224Answer must be 1-220 characters in length.
7225"^DD",230,230,2,"DT")
72263070720
7227"^DD",230,230,3.2,0)
7228STATUS^P233.1'^EDPB(233.1,^3;2^Q
7229"^DD",230,230,3.2,1,0)
7230^.1
7231"^DD",230,230,3.2,1,1,0)
7232^^TRIGGER^230^.07
7233"^DD",230,230,3.2,1,1,1)
7234K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^EDP(230,D0,0)):^(0),1:"") S X=$P(Y(1),U,7),X=X S DIU=X K Y S X=DIV S X=$$ISGONE^EDPDD(X) S DIH=$G(^EDP(230,DIV(0),0)),DIV=X S $P(^(0),U,7)=DIV,DIH=230,DIG=.07 D ^DICR
7235"^DD",230,230,3.2,1,1,2)
7236Q
7237"^DD",230,230,3.2,1,1,"CREATE VALUE")
7238S X=$$ISGONE^EDPDD(X)
7239"^DD",230,230,3.2,1,1,"DELETE VALUE")
7240NO EFFECT
7241"^DD",230,230,3.2,1,1,"FIELD")
7242CLOSED
7243"^DD",230,230,3.2,"DT")
72443071129
7245"^DD",230,230,3.3,0)
7246ACUITY^P233.1'^EDPB(233.1,^3;3^Q
7247"^DD",230,230,3.3,"DT")
72483071129
7249"^DD",230,230,3.4,0)
7250LOC^P231.8'^EDPB(231.8,^3;4^Q
7251"^DD",230,230,3.4,"DT")
72523071129
7253"^DD",230,230,3.5,0)
7254MD ASSIGNED^F^^3;5^K:$L(X)>20!($L(X)<1) X
7255"^DD",230,230,3.5,3)
7256Answer must be 1-20 characters in length.
7257"^DD",230,230,3.5,"DT")
72583071129
7259"^DD",230,230,3.6,0)
7260NURSE ASSIGNED^F^^3;6^K:$L(X)>20!($L(X)<1) X
7261"^DD",230,230,3.6,3)
7262Answer must be 1-20 characters in length.
7263"^DD",230,230,3.6,"DT")
72643071129
7265"^DD",230,230,3.7,0)
7266RESIDENT ASSIGNED^F^^3;7^K:$L(X)>20!($L(X)<1) X
7267"^DD",230,230,3.7,3)
7268Answer must be 1-20 characters in length.
7269"^DD",230,230,3.7,"DT")
72703071129
7271"^DD",230,230,3.8,0)
7272COMMENT^F^^3;8^K:$L(X)>80!($L(X)<1) X
7273"^DD",230,230,3.8,3)
7274Answer must be 1-80 characters in length.
7275"^DD",230,230,3.8,"DT")
72763071129
7277"^DD",230,230,4,0)
7278DISCHARGE DIAGNOSIS^230.04A^^4;0
7279"^DD",230,230,8,0)
7280ORDERS^230.08A^^8;0
7281"^DD",230,230.04,0)
7282DISCHARGE DIAGNOSIS SUB-FIELD^^.02^2
7283"^DD",230,230.04,0,"DT")
72843070720
7285"^DD",230,230.04,0,"IX","B",230.04,.01)
7286
7287"^DD",230,230.04,0,"NM","DISCHARGE DIAGNOSIS")
7288
7289"^DD",230,230.04,0,"UP")
7290230
7291"^DD",230,230.04,.01,0)
7292DISCHARGE DIAGNOSIS^MF^^0;1^K:$L(X)>50!($L(X)<1) X
7293"^DD",230,230.04,.01,1,0)
7294^.1
7295"^DD",230,230.04,.01,1,1,0)
7296230.04^B
7297"^DD",230,230.04,.01,1,1,1)
7298S ^EDP(230,DA(1),4,"B",$E(X,1,30),DA)=""
7299"^DD",230,230.04,.01,1,1,2)
7300K ^EDP(230,DA(1),4,"B",$E(X,1,30),DA)
7301"^DD",230,230.04,.01,3)
7302Answer must be 1-50 characters in length.
7303"^DD",230,230.04,.01,"DT")
73043070720
7305"^DD",230,230.04,.02,0)
7306ICD9 CODE^F^^0;2^K:$L(X)>20!($L(X)<1) X
7307"^DD",230,230.04,.02,3)
7308Answer must be 1-20 characters in length.
7309"^DD",230,230.04,.02,"DT")
73103070720
7311"^DD",230,230.08,0)
7312ORDERS SUB-FIELD^^.05^5
7313"^DD",230,230.08,0,"DT")
73143071115
7315"^DD",230,230.08,0,"IX","AC",230.08,.02)
7316
7317"^DD",230,230.08,0,"IX","B",230.08,.01)
7318
7319"^DD",230,230.08,0,"NM","ORDERS")
7320
7321"^DD",230,230.08,0,"UP")
7322230
7323"^DD",230,230.08,.01,0)
7324ORDER^MF^^0;1^K:$L(X)>30!($L(X)<1) X
7325"^DD",230,230.08,.01,1,0)
7326^.1
7327"^DD",230,230.08,.01,1,1,0)
7328230.08^B
7329"^DD",230,230.08,.01,1,1,1)
7330S ^EDP(230,DA(1),8,"B",$E(X,1,30),DA)=""
7331"^DD",230,230.08,.01,1,1,2)
7332K ^EDP(230,DA(1),8,"B",$E(X,1,30),DA)
7333"^DD",230,230.08,.01,3)
7334Answer must be 1-30 characters in length.
7335"^DD",230,230.08,.01,"DT")
73363070918
7337"^DD",230,230.08,.02,0)
7338SERVICE^S^M:medication;L:lab;R:radiology;C:consult;A:all other;^0;2^Q
7339"^DD",230,230.08,.02,1,0)
7340^.1
7341"^DD",230,230.08,.02,1,1,0)
7342230.08^AC
7343"^DD",230,230.08,.02,1,1,1)
7344S ^EDP(230,DA(1),8,"AC",$E(X,1,30),DA)=""
7345"^DD",230,230.08,.02,1,1,2)
7346K ^EDP(230,DA(1),8,"AC",$E(X,1,30),DA)
7347"^DD",230,230.08,.02,1,1,"%D",0)
7348^^2^2^3071115^
7349"^DD",230,230.08,.02,1,1,"%D",1,0)
7350Allows quick check for the existence of various types of orders for this
7351"^DD",230,230.08,.02,1,1,"%D",2,0)
7352ED visit.
7353"^DD",230,230.08,.02,1,1,"DT")
73543071115
7355"^DD",230,230.08,.02,"DT")
73563071115
7357"^DD",230,230.08,.03,0)
7358STATUS^S^N:new;A:active;C:complete;^0;3^Q
7359"^DD",230,230.08,.03,"DT")
73603070911
7361"^DD",230,230.08,.04,0)
7362STAT^S^1:stat;^0;4^Q
7363"^DD",230,230.08,.04,"DT")
73643070911
7365"^DD",230,230.08,.05,0)
7366RELEASE TIME^D^^0;5^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
7367"^DD",230,230.08,.05,"DT")
73683071115
7369"^DD",230.1,230.1,0)
7370FIELD^^3.8^21
7371"^DD",230.1,230.1,0,"DT")
73723071129
7373"^DD",230.1,230.1,0,"IX","B",230.1,.01)
7374
7375"^DD",230.1,230.1,0,"NM","ED LOG HISTORY")
7376
7377"^DD",230.1,230.1,.01,0)
7378LOG ENTRY^RP230'^EDP(230,^0;1^Q
7379"^DD",230.1,230.1,.01,1,0)
7380^.1
7381"^DD",230.1,230.1,.01,1,1,0)
7382230.1^B
7383"^DD",230.1,230.1,.01,1,1,1)
7384S ^EDP(230.1,"B",$E(X,1,30),DA)=""
7385"^DD",230.1,230.1,.01,1,1,2)
7386K ^EDP(230.1,"B",$E(X,1,30),DA)
7387"^DD",230.1,230.1,.01,3)
7388
7389"^DD",230.1,230.1,.01,"DT")
73903071129
7391"^DD",230.1,230.1,.02,0)
7392TIME^D^^0;2^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
7393"^DD",230.1,230.1,.02,"DT")
73943071129
7395"^DD",230.1,230.1,.03,0)
7396ENTERED BY^F^^0;3^K:$L(X)>12!($L(X)<1) X
7397"^DD",230.1,230.1,.03,3)
7398Answer must be 1-12 characters in length.
7399"^DD",230.1,230.1,.03,"DT")
74003071123
7401"^DD",230.1,230.1,.04,0)
7402PATIENT NAME^F^^0;4^K:$L(X)>40!($L(X)<3) X
7403"^DD",230.1,230.1,.04,3)
7404Answer must be 3-40 characters in length.
7405"^DD",230.1,230.1,.04,"DT")
74063071123
7407"^DD",230.1,230.1,.05,0)
7408PATIENT SSN^F^^0;5^K:$L(X)>10!($L(X)<1) X
7409"^DD",230.1,230.1,.05,3)
7410Answer must be 1-10 characters in length.
7411"^DD",230.1,230.1,.05,"DT")
74123071123
7413"^DD",230.1,230.1,.06,0)
7414PATIENT ID^F^^0;6^K:$L(X)>20!($L(X)<1) X
7415"^DD",230.1,230.1,.06,3)
7416Answer must be 1-20 characters in length.
7417"^DD",230.1,230.1,.06,"DT")
74183071123
7419"^DD",230.1,230.1,.07,0)
7420COMPLAINT^F^^0;7^K:$L(X)>50!($L(X)<1) X
7421"^DD",230.1,230.1,.07,3)
7422Answer must be 1-50 characters in length.
7423"^DD",230.1,230.1,.07,"DT")
74243071123
7425"^DD",230.1,230.1,.08,0)
7426TIME IN^D^^0;8^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
7427"^DD",230.1,230.1,.08,"DT")
74283071123
7429"^DD",230.1,230.1,.09,0)
7430TIME OUT^D^^0;9^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
7431"^DD",230.1,230.1,.09,"DT")
74323071123
7433"^DD",230.1,230.1,.1,0)
7434ARRIVAL MODE^P233.1'^EDPB(233.1,^0;10^Q
7435"^DD",230.1,230.1,.1,"DT")
74363071123
7437"^DD",230.1,230.1,.11,0)
7438DISPOSITION^P233.1'^EDPB(233.1,^0;11^Q
7439"^DD",230.1,230.1,.11,"DT")
74403071123
7441"^DD",230.1,230.1,.12,0)
7442DELAY^P233.1'^EDPB(233.1,^0;12^Q
7443"^DD",230.1,230.1,.12,"DT")
74443071123
7445"^DD",230.1,230.1,1,0)
7446COMPLAINT (LONG)^F^^1;1^K:$L(X)>220!($L(X)<1) X
7447"^DD",230.1,230.1,1,3)
7448Answer must be 1-220 characters in length.
7449"^DD",230.1,230.1,1,"DT")
74503071123
7451"^DD",230.1,230.1,2,0)
7452COMPLAINT (LONG)^F^^2;1^K:$L(X)>220!($L(X)<1) X
7453"^DD",230.1,230.1,2,3)
7454Answer must be 1-220 characters in length.
7455"^DD",230.1,230.1,2,"DT")
74563071129
7457"^DD",230.1,230.1,3.2,0)
7458STATUS^P233.1'^EDPB(233.1,^3;2^Q
7459"^DD",230.1,230.1,3.2,"DT")
74603071129
7461"^DD",230.1,230.1,3.3,0)
7462ACUITY^P233.1'^EDPB(233.1,^3;3^Q
7463"^DD",230.1,230.1,3.3,"DT")
74643071129
7465"^DD",230.1,230.1,3.4,0)
7466LOC^P231.8'^EDPB(231.8,^3;4^Q
7467"^DD",230.1,230.1,3.4,"DT")
74683071129
7469"^DD",230.1,230.1,3.5,0)
7470MD ASSIGNED^F^^3;5^K:$L(X)>20!($L(X)<1) X
7471"^DD",230.1,230.1,3.5,3)
7472Answer must be 1-20 characters in length.
7473"^DD",230.1,230.1,3.5,"DT")
74743071129
7475"^DD",230.1,230.1,3.6,0)
7476NURSE ASSIGNED^F^^3;6^K:$L(X)>20!($L(X)<1) X
7477"^DD",230.1,230.1,3.6,3)
7478Answer must be 1-20 characters in length.
7479"^DD",230.1,230.1,3.6,"DT")
74803071129
7481"^DD",230.1,230.1,3.7,0)
7482RESIDENT ASSIGNED^F^^3;7^K:$L(X)>20!($L(X)<1) X
7483"^DD",230.1,230.1,3.7,3)
7484Answer must be 1-20 characters in length.
7485"^DD",230.1,230.1,3.7,"DT")
74863071129
7487"^DD",230.1,230.1,3.8,0)
7488COMMENT^F^^3;8^K:$L(X)>80!($L(X)<1) X
7489"^DD",230.1,230.1,3.8,3)
7490Answer must be 1-80 characters in length.
7491"^DD",230.1,230.1,3.8,"DT")
74923071129
7493"^DD",231.7,231.7,0)
7494FIELD^^.08^8
7495"^DD",231.7,231.7,0,"DT")
74963071221
7497"^DD",231.7,231.7,0,"IX","B",231.7,.01)
7498
7499"^DD",231.7,231.7,0,"NM","TRACKING STAFF")
7500
7501"^DD",231.7,231.7,.01,0)
7502NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
7503"^DD",231.7,231.7,.01,1,0)
7504^.1
7505"^DD",231.7,231.7,.01,1,1,0)
7506231.7^B
7507"^DD",231.7,231.7,.01,1,1,1)
7508S ^EDPB(231.7,"B",$E(X,1,30),DA)=""
7509"^DD",231.7,231.7,.01,1,1,2)
7510K ^EDPB(231.7,"B",$E(X,1,30),DA)
7511"^DD",231.7,231.7,.01,3)
7512NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
7513"^DD",231.7,231.7,.01,"DT")
75143071124
7515"^DD",231.7,231.7,.02,0)
7516STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X
7517"^DD",231.7,231.7,.02,3)
7518Answer must be 1-15 characters in length.
7519"^DD",231.7,231.7,.02,"DT")
75203071221
7521"^DD",231.7,231.7,.03,0)
7522AREA^P231.9'^EDPB(231.9,^0;3^Q
7523"^DD",231.7,231.7,.03,"DT")
75243071127
7525"^DD",231.7,231.7,.04,0)
7526INACTIVE^S^0:ACTIVE;1:INACTIVE;^0;4^Q
7527"^DD",231.7,231.7,.04,"DT")
75283071124
7529"^DD",231.7,231.7,.05,0)
7530LOCAL ID^F^^0;5^K:$L(X)>12!($L(X)<1) X
7531"^DD",231.7,231.7,.05,3)
7532Answer must be 1-12 characters in length.
7533"^DD",231.7,231.7,.05,"DT")
75343071127
7535"^DD",231.7,231.7,.06,0)
7536ROLE^S^P:provider;R:resident;N:nurse;^0;6^Q
7537"^DD",231.7,231.7,.06,"DT")
75383071124
7539"^DD",231.7,231.7,.07,0)
7540INITIALS^F^^0;7^K:$L(X)>7!($L(X)<1) X
7541"^DD",231.7,231.7,.07,3)
7542Answer must be 1-7 characters in length.
7543"^DD",231.7,231.7,.07,"DT")
75443071124
7545"^DD",231.7,231.7,.08,0)
7546COLOR^F^^0;8^K:$L(X)>20!($L(X)<1) X
7547"^DD",231.7,231.7,.08,3)
7548Answer must be 1-20 characters in length.
7549"^DD",231.7,231.7,.08,"DT")
75503071124
7551"^DD",231.8,231.8,0)
7552FIELD^^.12^12
7553"^DD",231.8,231.8,0,"DT")
75543071221
7555"^DD",231.8,231.8,0,"IX","B",231.8,.01)
7556
7557"^DD",231.8,231.8,0,"NM","TRACKING ROOM-BED")
7558
7559"^DD",231.8,231.8,0,"PT",230,3.4)
7560
7561"^DD",231.8,231.8,0,"PT",230.1,3.4)
7562
7563"^DD",231.8,231.8,.01,0)
7564NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
7565"^DD",231.8,231.8,.01,1,0)
7566^.1
7567"^DD",231.8,231.8,.01,1,1,0)
7568231.8^B
7569"^DD",231.8,231.8,.01,1,1,1)
7570S ^EDPB(231.8,"B",$E(X,1,30),DA)=""
7571"^DD",231.8,231.8,.01,1,1,2)
7572K ^EDPB(231.8,"B",$E(X,1,30),DA)
7573"^DD",231.8,231.8,.01,3)
7574NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
7575"^DD",231.8,231.8,.02,0)
7576STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X
7577"^DD",231.8,231.8,.02,3)
7578Answer must be 1-15 characters in length.
7579"^DD",231.8,231.8,.02,"DT")
75803080111
7581"^DD",231.8,231.8,.03,0)
7582AREA^P231.9'^EDPB(231.9,^0;3^Q
7583"^DD",231.8,231.8,.03,"DT")
75843080111
7585"^DD",231.8,231.8,.04,0)
7586INACTIVE^S^0:ACTIVE;1:INACTIVE;^0;4^Q
7587"^DD",231.8,231.8,.04,"DT")
75883070911
7589"^DD",231.8,231.8,.05,0)
7590SEQUENCE^NJ7,2^^0;5^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."3N.N) X
7591"^DD",231.8,231.8,.05,3)
7592Type a Number between 1 and 9999, 2 Decimal Digits
7593"^DD",231.8,231.8,.05,"DT")
75943070911
7595"^DD",231.8,231.8,.06,0)
7596DISPLAY NAME^F^^0;6^K:$L(X)>30!($L(X)<1) X
7597"^DD",231.8,231.8,.06,3)
7598Answer must be 1-30 characters in length.
7599"^DD",231.8,231.8,.06,"DT")
76003080111
7601"^DD",231.8,231.8,.07,0)
7602DISPLAY WHEN^S^0:OCCUPIED;1:ALWAYS;2:NEVER;^0;7^Q
7603"^DD",231.8,231.8,.07,"DT")
76043070912
7605"^DD",231.8,231.8,.08,0)
7606DEFAULT STATUS^P233.1'^EDPB(233.1,^0;8^Q
7607"^DD",231.8,231.8,.08,"DT")
76083070911
7609"^DD",231.8,231.8,.09,0)
7610MULTIPLE ASSIGN^S^0:NO;1:YES;^0;9^Q
7611"^DD",231.8,231.8,.09,"DT")
76123070911
7613"^DD",231.8,231.8,.1,0)
7614SHARED NAME^F^^0;10^K:$L(X)>30!($L(X)<1) X
7615"^DD",231.8,231.8,.1,3)
7616Answer must be 1-30 characters in length.
7617"^DD",231.8,231.8,.1,"DT")
76183070911
7619"^DD",231.8,231.8,.11,0)
7620BOARD^F^^0;11^K:$L(X)>30!($L(X)<1) X
7621"^DD",231.8,231.8,.11,3)
7622Answer must be 1-30 characters in length.
7623"^DD",231.8,231.8,.11,"DT")
76243071030
7625"^DD",231.8,231.8,.12,0)
7626COLOR^F^^0;12^K:$L(X)>20!($L(X)<1) X
7627"^DD",231.8,231.8,.12,3)
7628Answer must be 1-20 characters in length.
7629"^DD",231.8,231.8,.12,"DT")
76303071123
7631"^DD",231.9,231.9,0)
7632FIELD^^.04^15
7633"^DD",231.9,231.9,0,"DT")
76343071228
7635"^DD",231.9,231.9,0,"IX","B",231.9,.01)
7636
7637"^DD",231.9,231.9,0,"IX","C",231.9,.02)
7638
7639"^DD",231.9,231.9,0,"NM","TRACKING AREA")
7640
7641"^DD",231.9,231.9,0,"PT",230,.03)
7642
7643"^DD",231.9,231.9,0,"PT",231.7,.03)
7644
7645"^DD",231.9,231.9,0,"PT",231.8,.03)
7646
7647"^DD",231.9,231.9,.01,0)
7648NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
7649"^DD",231.9,231.9,.01,1,0)
7650^.1
7651"^DD",231.9,231.9,.01,1,1,0)
7652231.9^B
7653"^DD",231.9,231.9,.01,1,1,1)
7654S ^EDPB(231.9,"B",$E(X,1,30),DA)=""
7655"^DD",231.9,231.9,.01,1,1,2)
7656K ^EDPB(231.9,"B",$E(X,1,30),DA)
7657"^DD",231.9,231.9,.01,3)
7658NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
7659"^DD",231.9,231.9,.02,0)
7660STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X
7661"^DD",231.9,231.9,.02,1,0)
7662^.1
7663"^DD",231.9,231.9,.02,1,1,0)
7664231.9^C
7665"^DD",231.9,231.9,.02,1,1,1)
7666S ^EDPB(231.9,"C",$E(X,1,30),DA)=""
7667"^DD",231.9,231.9,.02,1,1,2)
7668K ^EDPB(231.9,"C",$E(X,1,30),DA)
7669"^DD",231.9,231.9,.02,1,1,"DT")
76703070913
7671"^DD",231.9,231.9,.02,3)
7672Answer must be 1-15 characters in length.
7673"^DD",231.9,231.9,.02,"DT")
76743071221
7675"^DD",231.9,231.9,.03,0)
7676TIME ZONE DIFFERENCE^NJ3,0^^0;3^K:+X'=X!(X>720)!(X<-720)!(X?.E1"."1N.N) X
7677"^DD",231.9,231.9,.03,3)
7678Type a Number between -720 and 720, 0 Decimal Digits
7679"^DD",231.9,231.9,.03,"DT")
76803071227
7681"^DD",231.9,231.9,.04,0)
7682MAIL DOMAIN^F^^0;4^K:$L(X)>45!($L(X)<3) X
7683"^DD",231.9,231.9,.04,3)
7684Answer must be 3-45 characters in length.
7685"^DD",231.9,231.9,.04,"DT")
76863071228
7687"^DD",231.9,231.9,1.1,0)
7688DIAGNOSIS REQUIRED^S^0:NO;1:YES;^1;1^Q
7689"^DD",231.9,231.9,1.1,"DT")
76903071015
7691"^DD",231.9,231.9,1.2,0)
7692CODED DIAGNOSIS^S^0:NO;1:YES;^1;2^Q
7693"^DD",231.9,231.9,1.2,"DT")
76943071015
7695"^DD",231.9,231.9,1.3,0)
7696DISPOSITION REQUIRED^S^0:NO;1:YES;^1;3^Q
7697"^DD",231.9,231.9,1.3,"DT")
76983071015
7699"^DD",231.9,231.9,1.4,0)
7700DELAY REQUIRED^S^0:NO;1:YES;^1;4^Q
7701"^DD",231.9,231.9,1.4,"DT")
77023071015
7703"^DD",231.9,231.9,1.5,0)
7704DELAY MINUTES^NJ4,0^^1;5^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X
7705"^DD",231.9,231.9,1.5,3)
7706Type a Number between 1 and 9999, 0 Decimal Digits
7707"^DD",231.9,231.9,1.5,"DT")
77083071015
7709"^DD",231.9,231.9,1.6,0)
7710FIRST SHIFT START^NJ5,0^^1;6^K:+X'=X!(X>86400)!(X<0)!(X?.E1"."1N.N) X
7711"^DD",231.9,231.9,1.6,3)
7712Type a Number between 0 and 86400, 0 Decimal Digits
7713"^DD",231.9,231.9,1.6,"DT")
77143071130
7715"^DD",231.9,231.9,1.7,0)
7716SHIFT DURATION^NJ5,0^^1;7^K:+X'=X!(X>86400)!(X<0)!(X?.E1"."1N.N) X
7717"^DD",231.9,231.9,1.7,3)
7718Type a Number between 0 and 86400, 0 Decimal Digits
7719"^DD",231.9,231.9,1.7,"DT")
77203071130
7721"^DD",231.9,231.9,1.8,0)
7722PROMPT RESIDENTS^S^0:NO;1:YES;^1;8^Q
7723"^DD",231.9,231.9,1.8,"DT")
77243071130
7725"^DD",231.9,231.9,2,0)
7726DISPLAY BOARD SPEC^231.92^^2;0
7727"^DD",231.9,231.9,3,0)
7728COLOR SPEC^231.93^^3;0
7729"^DD",231.9,231.9,230.1,0)
7730TRACKING UPDATED^F^^230;1^K:$L(X)>30!($L(X)<1) X
7731"^DD",231.9,231.9,230.1,3)
7732Answer must be 1-30 characters in length.
7733"^DD",231.9,231.9,230.1,"DT")
77343071006
7735"^DD",231.9,231.92,0)
7736DISPLAY BOARD SPEC SUB-FIELD^^.01^1
7737"^DD",231.9,231.92,0,"DT")
77383071022
7739"^DD",231.9,231.92,0,"NM","DISPLAY BOARD SPEC")
7740
7741"^DD",231.9,231.92,0,"UP")
7742231.9
7743"^DD",231.9,231.92,.01,0)
7744DISPLAY BOARD SPEC^WL^^0;1^Q
7745"^DD",231.9,231.92,.01,"DT")
77463071022
7747"^DD",231.9,231.93,0)
7748COLOR SPEC SUB-FIELD^^.01^1
7749"^DD",231.9,231.93,0,"DT")
77503071027
7751"^DD",231.9,231.93,0,"NM","COLOR SPEC")
7752
7753"^DD",231.9,231.93,0,"UP")
7754231.9
7755"^DD",231.9,231.93,.01,0)
7756COLOR SPEC^WL^^0;1^Q
7757"^DD",231.9,231.93,.01,"DT")
77583071027
7759"^DD",233.1,233.1,0)
7760FIELD^^2^6
7761"^DD",233.1,233.1,0,"DT")
77623080102
7763"^DD",233.1,233.1,0,"IX","B",233.1,.01)
7764
7765"^DD",233.1,233.1,0,"NM","TRACKING CODE")
7766
7767"^DD",233.1,233.1,0,"PT",230,.06)
7768
7769"^DD",233.1,233.1,0,"PT",230,.1)
7770
7771"^DD",233.1,233.1,0,"PT",230,1.2)
7772
7773"^DD",233.1,233.1,0,"PT",230,1.5)
7774
7775"^DD",233.1,233.1,0,"PT",230,3.2)
7776
7777"^DD",233.1,233.1,0,"PT",230,3.3)
7778
7779"^DD",233.1,233.1,0,"PT",230.1,.1)
7780
7781"^DD",233.1,233.1,0,"PT",230.1,.11)
7782
7783"^DD",233.1,233.1,0,"PT",230.1,.12)
7784
7785"^DD",233.1,233.1,0,"PT",230.1,3.2)
7786
7787"^DD",233.1,233.1,0,"PT",230.1,3.3)
7788
7789"^DD",233.1,233.1,0,"PT",231.41,.03)
7790
7791"^DD",233.1,233.1,0,"PT",231.8,.05)
7792
7793"^DD",233.1,233.1,0,"PT",231.8,.08)
7794
7795"^DD",233.1,233.1,0,"PT",233.1,.04)
7796
7797"^DD",233.1,233.1,0,"PT",233.21,.02)
7798
7799"^DD",233.1,233.1,.01,0)
7800NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
7801"^DD",233.1,233.1,.01,1,0)
7802^.1
7803"^DD",233.1,233.1,.01,1,1,0)
7804233.1^B
7805"^DD",233.1,233.1,.01,1,1,1)
7806S ^EDPB(233.1,"B",$E(X,1,30),DA)=""
7807"^DD",233.1,233.1,.01,1,1,2)
7808K ^EDPB(233.1,"B",$E(X,1,30),DA)
7809"^DD",233.1,233.1,.01,3)
7810NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
7811"^DD",233.1,233.1,.02,0)
7812DISPLAY NAME^F^^0;2^K:$L(X)>60!($L(X)<1) X
7813"^DD",233.1,233.1,.02,3)
7814Answer must be 1-60 characters in length.
7815"^DD",233.1,233.1,.02,"DT")
78163070720
7817"^DD",233.1,233.1,.03,0)
7818ABBREVIATION^F^^0;3^K:$L(X)>30!($L(X)<1) X
7819"^DD",233.1,233.1,.03,3)
7820Answer must be 1-30 characters in length.
7821"^DD",233.1,233.1,.03,"DT")
78223070719
7823"^DD",233.1,233.1,.04,0)
7824NATIONAL CODE^P233.1'^EDPB(233.1,^0;4^Q
7825"^DD",233.1,233.1,.04,"DT")
78263070719
7827"^DD",233.1,233.1,.05,0)
7828FLAGS^F^^0;5^K:$L(X)>5!($L(X)<1) X
7829"^DD",233.1,233.1,.05,3)
7830Answer must be 1-5 characters in length.
7831"^DD",233.1,233.1,.05,"DT")
78323080102
7833"^DD",233.1,233.1,2,0)
7834DESCRIPTION^233.12^^2;0
7835"^DD",233.1,233.12,0)
7836DESCRIPTION SUB-FIELD^^.01^1
7837"^DD",233.1,233.12,0,"DT")
78383070720
7839"^DD",233.1,233.12,0,"NM","DESCRIPTION")
7840
7841"^DD",233.1,233.12,0,"UP")
7842233.1
7843"^DD",233.1,233.12,.01,0)
7844DESCRIPTION^W^^0;1^Q
7845"^DD",233.1,233.12,.01,"DT")
78463070720
7847"^DD",233.2,233.2,0)
7848FIELD^^1^2
7849"^DD",233.2,233.2,0,"DT")
78503071229
7851"^DD",233.2,233.2,0,"IX","B",233.2,.01)
7852
7853"^DD",233.2,233.2,0,"NM","TRACKING CODE SET")
7854
7855"^DD",233.2,233.2,.01,0)
7856NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
7857"^DD",233.2,233.2,.01,1,0)
7858^.1
7859"^DD",233.2,233.2,.01,1,1,0)
7860233.2^B
7861"^DD",233.2,233.2,.01,1,1,1)
7862S ^EDPB(233.2,"B",$E(X,1,30),DA)=""
7863"^DD",233.2,233.2,.01,1,1,2)
7864K ^EDPB(233.2,"B",$E(X,1,30),DA)
7865"^DD",233.2,233.2,.01,3)
7866NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
7867"^DD",233.2,233.2,1,0)
7868CODES^233.21A^^1;0
7869"^DD",233.2,233.21,0)
7870CODES SUB-FIELD^^.05^5
7871"^DD",233.2,233.21,0,"DT")
78723071229
7873"^DD",233.2,233.21,0,"IX","B",233.21,.01)
7874
7875"^DD",233.2,233.21,0,"NM","CODES")
7876
7877"^DD",233.2,233.21,0,"UP")
7878233.2
7879"^DD",233.2,233.21,.01,0)
7880SEQUENCE^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X
7881"^DD",233.2,233.21,.01,1,0)
7882^.1
7883"^DD",233.2,233.21,.01,1,1,0)
7884233.21^B
7885"^DD",233.2,233.21,.01,1,1,1)
7886S ^EDPB(233.2,DA(1),1,"B",$E(X,1,30),DA)=""
7887"^DD",233.2,233.21,.01,1,1,2)
7888K ^EDPB(233.2,DA(1),1,"B",$E(X,1,30),DA)
7889"^DD",233.2,233.21,.01,3)
7890Type a Number between 1 and 9999, 0 Decimal Digits
7891"^DD",233.2,233.21,.01,"DT")
78923070719
7893"^DD",233.2,233.21,.02,0)
7894CODE^P233.1'^EDPB(233.1,^0;2^Q
7895"^DD",233.2,233.21,.02,"DT")
78963070719
7897"^DD",233.2,233.21,.03,0)
7898INACTIVE^S^1:INACTIVE;0:ACTIVE;^0;3^Q
7899"^DD",233.2,233.21,.03,"DT")
79003071228
7901"^DD",233.2,233.21,.04,0)
7902NAME AT SITE^F^^0;4^K:$L(X)>60!($L(X)<1) X
7903"^DD",233.2,233.21,.04,3)
7904Answer must be 1-60 characters in length.
7905"^DD",233.2,233.21,.04,"DT")
79063080102
7907"^DD",233.2,233.21,.05,0)
7908ABBREVIATION AT SITE^F^^0;5^K:$L(X)>30!($L(X)<1) X
7909"^DD",233.2,233.21,.05,3)
7910Answer must be 1-30 characters in length.
7911"^DD",233.2,233.21,.05,"DT")
79123080102
7913"^DIC",230,230,0)
7914ED LOG^230
7915"^DIC",230,230,0,"GL")
7916^EDP(230,
7917"^DIC",230,"B","ED LOG",230)
7918
7919"^DIC",230.1,230.1,0)
7920ED LOG HISTORY^230.1
7921"^DIC",230.1,230.1,0,"GL")
7922^EDP(230.1,
7923"^DIC",230.1,"B","ED LOG HISTORY",230.1)
7924
7925"^DIC",231.7,231.7,0)
7926TRACKING STAFF^231.7
7927"^DIC",231.7,231.7,0,"GL")
7928^EDPB(231.7,
7929"^DIC",231.7,"B","TRACKING STAFF",231.7)
7930
7931"^DIC",231.8,231.8,0)
7932TRACKING ROOM-BED^231.8
7933"^DIC",231.8,231.8,0,"GL")
7934^EDPB(231.8,
7935"^DIC",231.8,"B","TRACKING ROOM-BED",231.8)
7936
7937"^DIC",231.9,231.9,0)
7938TRACKING AREA^231.9
7939"^DIC",231.9,231.9,0,"GL")
7940^EDPB(231.9,
7941"^DIC",231.9,"B","TRACKING AREA",231.9)
7942
7943"^DIC",233.1,233.1,0)
7944TRACKING CODE^233.1
7945"^DIC",233.1,233.1,0,"GL")
7946^EDPB(233.1,
7947"^DIC",233.1,"B","TRACKING CODE",233.1)
7948
7949"^DIC",233.2,233.2,0)
7950TRACKING CODE SET^233.2
7951"^DIC",233.2,233.2,0,"GL")
7952^EDPB(233.2,
7953"^DIC",233.2,"B","TRACKING CODE SET",233.2)
7954
7955**END**
7956**END**
Note: See TracBrowser for help on using the repository browser.