KIDS Distribution saved on Jan 30, 2008@13:25:26
EDP Server Build 1.0 T2
**KIDS**:EDP SERVER 1.0^
**INSTALL NAME**
EDP SERVER 1.0
"BLD",6766,0)
EDP SERVER 1.0^^0^3080130^n
"BLD",6766,1,0)
^^4^4^3080130^
"BLD",6766,1,1,0)
This installs the EDIS (Emergency Department Information System)
"BLD",6766,1,2,0)
Tracking application on a server. The application is designed so that
"BLD",6766,1,3,0)
one server can service any number of sites. There is a corresponding
"BLD",6766,1,4,0)
KIDS build that is installed at the facility.
"BLD",6766,4,0)
^9.64PA^233.2^7
"BLD",6766,4,230,0)
230
"BLD",6766,4,230,222)
y^y^f^^^^n
"BLD",6766,4,230.1,0)
230.1
"BLD",6766,4,230.1,222)
y^y^f^^^^n
"BLD",6766,4,231.7,0)
231.7
"BLD",6766,4,231.7,222)
y^y^f^^^^n
"BLD",6766,4,231.8,0)
231.8
"BLD",6766,4,231.8,222)
y^y^f^^^^n
"BLD",6766,4,231.9,0)
231.9
"BLD",6766,4,231.9,222)
y^y^f^^^^n
"BLD",6766,4,233.1,0)
233.1
"BLD",6766,4,233.1,222)
y^y^f^^y^^y^o^n
"BLD",6766,4,233.1,224)
I $E(^(0),1,4)="edp."
"BLD",6766,4,233.2,0)
233.2
"BLD",6766,4,233.2,222)
y^y^f^^y^^y^o^n
"BLD",6766,4,233.2,224)
I $E(^(0),1,4)="edp."
"BLD",6766,4,"B",230,230)
"BLD",6766,4,"B",230.1,230.1)
"BLD",6766,4,"B",231.7,231.7)
"BLD",6766,4,"B",231.8,231.8)
"BLD",6766,4,"B",231.9,231.9)
"BLD",6766,4,"B",233.1,233.1)
"BLD",6766,4,"B",233.2,233.2)
"BLD",6766,6.3)
7
"BLD",6766,"INIT")
EDPYSRV
"BLD",6766,"KRN",0)
^9.67PA^8989.52^19
"BLD",6766,"KRN",.4,0)
.4
"BLD",6766,"KRN",.401,0)
.401
"BLD",6766,"KRN",.402,0)
.402
"BLD",6766,"KRN",.403,0)
.403
"BLD",6766,"KRN",.5,0)
.5
"BLD",6766,"KRN",.84,0)
.84
"BLD",6766,"KRN",3.6,0)
3.6
"BLD",6766,"KRN",3.8,0)
3.8
"BLD",6766,"KRN",9.2,0)
9.2
"BLD",6766,"KRN",9.8,0)
9.8
"BLD",6766,"KRN",9.8,"NM",0)
^9.68A^46^35
"BLD",6766,"KRN",9.8,"NM",1,0)
EDPBCF^^0^B6377962
"BLD",6766,"KRN",9.8,"NM",2,0)
EDPBCM^^0^B11802573
"BLD",6766,"KRN",9.8,"NM",3,0)
EDPBPM^^0^B2766869
"BLD",6766,"KRN",9.8,"NM",4,0)
EDPBRM^^0^B8445684
"BLD",6766,"KRN",9.8,"NM",5,0)
EDPBRS^^0^B17301676
"BLD",6766,"KRN",9.8,"NM",6,0)
EDPBSL^^0^B10687935
"BLD",6766,"KRN",9.8,"NM",7,0)
EDPBST^^0^B5671603
"BLD",6766,"KRN",9.8,"NM",8,0)
EDPCSV^^0^B1174381
"BLD",6766,"KRN",9.8,"NM",9,0)
EDPCTRL^^0^B34504423
"BLD",6766,"KRN",9.8,"NM",10,0)
EDPDD^^0^B107293
"BLD",6766,"KRN",9.8,"NM",19,0)
EDPLOG^^0^B16849923
"BLD",6766,"KRN",9.8,"NM",20,0)
EDPLOG1^^0^B2757150
"BLD",6766,"KRN",9.8,"NM",21,0)
EDPLOGA^^0^B7949056
"BLD",6766,"KRN",9.8,"NM",22,0)
EDPLOGH^^0^B269228
"BLD",6766,"KRN",9.8,"NM",23,0)
EDPMAIL^^0^B8916423
"BLD",6766,"KRN",9.8,"NM",24,0)
EDPQAR^^0^B1525958
"BLD",6766,"KRN",9.8,"NM",25,0)
EDPQDB^^0^B23470314
"BLD",6766,"KRN",9.8,"NM",26,0)
EDPQDBS^^0^B2926745
"BLD",6766,"KRN",9.8,"NM",27,0)
EDPQLE^^0^B11635607
"BLD",6766,"KRN",9.8,"NM",28,0)
EDPQLE1^^0^B4294300
"BLD",6766,"KRN",9.8,"NM",29,0)
EDPQLP^^0^B5675430
"BLD",6766,"KRN",9.8,"NM",30,0)
EDPRPT^^0^B8892171
"BLD",6766,"KRN",9.8,"NM",31,0)
EDPRPT1^^0^B33830475
"BLD",6766,"KRN",9.8,"NM",32,0)
EDPRPT10^^0^B19054284
"BLD",6766,"KRN",9.8,"NM",33,0)
EDPRPT11^^0^B8284389
"BLD",6766,"KRN",9.8,"NM",34,0)
EDPRPT2^^0^B16939211
"BLD",6766,"KRN",9.8,"NM",35,0)
EDPRPT3^^0^B6932750
"BLD",6766,"KRN",9.8,"NM",36,0)
EDPRPT4^^0^B21986629
"BLD",6766,"KRN",9.8,"NM",37,0)
EDPRPT5^^0^B33876185
"BLD",6766,"KRN",9.8,"NM",38,0)
EDPRPT6^^0^B9535777
"BLD",6766,"KRN",9.8,"NM",39,0)
EDPRPT7^^0^B21032834
"BLD",6766,"KRN",9.8,"NM",40,0)
EDPRPT7C^^0^B21231553
"BLD",6766,"KRN",9.8,"NM",41,0)
EDPRPT8^^0^B15368168
"BLD",6766,"KRN",9.8,"NM",42,0)
EDPRPT9^^0^B1592058
"BLD",6766,"KRN",9.8,"NM",46,0)
EDPX^^0^B6480298
"BLD",6766,"KRN",9.8,"NM","B","EDPBCF",1)
"BLD",6766,"KRN",9.8,"NM","B","EDPBCM",2)
"BLD",6766,"KRN",9.8,"NM","B","EDPBPM",3)
"BLD",6766,"KRN",9.8,"NM","B","EDPBRM",4)
"BLD",6766,"KRN",9.8,"NM","B","EDPBRS",5)
"BLD",6766,"KRN",9.8,"NM","B","EDPBSL",6)
"BLD",6766,"KRN",9.8,"NM","B","EDPBST",7)
"BLD",6766,"KRN",9.8,"NM","B","EDPCSV",8)
"BLD",6766,"KRN",9.8,"NM","B","EDPCTRL",9)
"BLD",6766,"KRN",9.8,"NM","B","EDPDD",10)
"BLD",6766,"KRN",9.8,"NM","B","EDPLOG",19)
"BLD",6766,"KRN",9.8,"NM","B","EDPLOG1",20)
"BLD",6766,"KRN",9.8,"NM","B","EDPLOGA",21)
"BLD",6766,"KRN",9.8,"NM","B","EDPLOGH",22)
"BLD",6766,"KRN",9.8,"NM","B","EDPMAIL",23)
"BLD",6766,"KRN",9.8,"NM","B","EDPQAR",24)
"BLD",6766,"KRN",9.8,"NM","B","EDPQDB",25)
"BLD",6766,"KRN",9.8,"NM","B","EDPQDBS",26)
"BLD",6766,"KRN",9.8,"NM","B","EDPQLE",27)
"BLD",6766,"KRN",9.8,"NM","B","EDPQLE1",28)
"BLD",6766,"KRN",9.8,"NM","B","EDPQLP",29)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT",30)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT1",31)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT10",32)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT11",33)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT2",34)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT3",35)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT4",36)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT5",37)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT6",38)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT7",39)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT7C",40)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT8",41)
"BLD",6766,"KRN",9.8,"NM","B","EDPRPT9",42)
"BLD",6766,"KRN",9.8,"NM","B","EDPX",46)
"BLD",6766,"KRN",19,0)
19
"BLD",6766,"KRN",19,"NM",0)
^9.68A^2^2
"BLD",6766,"KRN",19,"NM",1,0)
EDPS TRACKING CONTEXT^^0
"BLD",6766,"KRN",19,"NM",2,0)
EDPSERVER^^0
"BLD",6766,"KRN",19,"NM","B","EDPS TRACKING CONTEXT",1)
"BLD",6766,"KRN",19,"NM","B","EDPSERVER",2)
"BLD",6766,"KRN",19.1,0)
19.1
"BLD",6766,"KRN",101,0)
101
"BLD",6766,"KRN",101,"NM",0)
^9.68A^^
"BLD",6766,"KRN",409.61,0)
409.61
"BLD",6766,"KRN",771,0)
771
"BLD",6766,"KRN",870,0)
870
"BLD",6766,"KRN",8989.51,0)
8989.51
"BLD",6766,"KRN",8989.52,0)
8989.52
"BLD",6766,"KRN",8994,0)
8994
"BLD",6766,"KRN",8994,"NM",0)
^9.68A^1^1
"BLD",6766,"KRN",8994,"NM",1,0)
EDPCTRL RPC^^0
"BLD",6766,"KRN",8994,"NM","B","EDPCTRL RPC",1)
"BLD",6766,"KRN","B",.4,.4)
"BLD",6766,"KRN","B",.401,.401)
"BLD",6766,"KRN","B",.402,.402)
"BLD",6766,"KRN","B",.403,.403)
"BLD",6766,"KRN","B",.5,.5)
"BLD",6766,"KRN","B",.84,.84)
"BLD",6766,"KRN","B",3.6,3.6)
"BLD",6766,"KRN","B",3.8,3.8)
"BLD",6766,"KRN","B",9.2,9.2)
"BLD",6766,"KRN","B",9.8,9.8)
"BLD",6766,"KRN","B",19,19)
"BLD",6766,"KRN","B",19.1,19.1)
"BLD",6766,"KRN","B",101,101)
"BLD",6766,"KRN","B",409.61,409.61)
"BLD",6766,"KRN","B",771,771)
"BLD",6766,"KRN","B",870,870)
"BLD",6766,"KRN","B",8989.51,8989.51)
"BLD",6766,"KRN","B",8989.52,8989.52)
"BLD",6766,"KRN","B",8994,8994)
"BLD",6766,"QUES",0)
^9.62^^
"BLD",6766,"REQB",0)
^9.611^^
"DATA",233.1,1,0)
edp.acuity.esi1^1^1
"DATA",233.1,1,2,0)
^^1^1^3070720^
"DATA",233.1,1,2,1,0)
Most critical
"DATA",233.1,2,0)
edp.acuity.esi2^2^2
"DATA",233.1,3,0)
edp.acuity.esi3^3^3
"DATA",233.1,4,0)
edp.acuity.esi4^4^4
"DATA",233.1,5,0)
edp.acuity.esi5^5^5
"DATA",233.1,8,0)
edp.status.admitted^Admitted - Still in ED^Admit^^A
"DATA",233.1,9,0)
edp.status.edobs^ED Observation^EDObs^^AO
"DATA",233.1,11,0)
edp.status.gone^No Longer in ED^Gone
"DATA",233.1,12,0)
edp.status.observation^Observation^Obs^^AO
"DATA",233.1,13,0)
edp.status.overflow^Overflow^Ovf
"DATA",233.1,15,0)
edp.delay.inptbed^Obtain Inpatient Bed^13k
"DATA",233.1,16,0)
edp.delay.overcrowd^Overcrowding of ED^13a
"DATA",233.1,17,0)
edp.delay.admiteval^Admitting Physician Evaluation^13c
"DATA",233.1,18,0)
edp.delay.admitorders^Admit MD Writing Admit Orders^13h
"DATA",233.1,19,0)
edp.delay.admitobs^Patient Admitted to Observation^OBS
"DATA",233.1,20,0)
edp.delay.stafflimit^ED Staff Limits^13b
"DATA",233.1,21,0)
edp.delay.interfacility^Interfacility Transfer^13m
"DATA",233.1,22,0)
edp.delay.ambulance^Obtain Ambulance Services^13n
"DATA",233.1,23,0)
edp.delay.imageresult^Obtain Imaging Results^13g
"DATA",233.1,24,0)
edp.delay.imagestudy^Obtain Imaging Studies^13f
"DATA",233.1,25,0)
edp.delay.pharm^Obtain Drugs/Pharmacology^13j
"DATA",233.1,26,0)
edp.delay.labresult^Obtain Lab Results^13e
"DATA",233.1,27,0)
edp.delay.labstudy^Obtain Lab Studies^13d
"DATA",233.1,28,0)
edp.delay.supplies^Obtain Medical Supplies^13i
"DATA",233.1,29,0)
edp.delay.surgery^Arrange Emergency Surgery^13l
"DATA",233.1,30,0)
edp.delay.home^Patient Transport Home^13p
"DATA",233.1,31,0)
edp.delay.transport^Patient Transport Other^13o
"DATA",233.1,32,0)
edp.source.ambulance^Ambulance
"DATA",233.1,33,0)
edp.source.walk-in^Walk-in
"DATA",233.1,35,0)
edp.disposition.home^Home^H
"DATA",233.1,36,0)
edp.disposition.admitva^Admitted to VA Ward^VA^^A
"DATA",233.1,37,0)
edp.disposition.left^Left Without Being Treated/Seen^L
"DATA",233.1,38,0)
edp.disposition.xferva^Transferred to VA Facility^O
"DATA",233.1,39,0)
edp.disposition.ama^AMA^AMA
"DATA",233.1,40,0)
edp.disposition.clinic^Sent to Urgent Care Clinic^CL
"DATA",233.1,41,0)
edp.disposition.deceased^Deceased^D
"DATA",233.1,42,0)
edp.disposition.telemetry^Admitted to Telemetry^T^^A
"DATA",233.1,43,0)
edp.disposition.icu^Admitted to ICU^ICU^^A
"DATA",233.1,44,0)
edp.disposition.nec^Sent to Nurse Eval / Drop In Clinic^NEC
"DATA",233.1,45,0)
edp.disposition.eloped^Eloped^E
"DATA",233.1,46,0)
edp.reserved.novalue^
"DATA",233.1,53,0)
edp.source.clinic^Clinic
"DATA",233.1,54,0)
edp.source.cboc^CBOC
"DATA",233.1,55,0)
edp.source.nhci^NHCI
"DATA",233.1,56,0)
edp.source.code^Emergency Code
"DATA",233.1,57,0)
edp.disposition.xfernon^Transfer to non-VA Facility^NVA
"DATA",233.1,58,0)
edp.disposition.psych^Admitted to Psychiatry^PSY^^A
"DATA",233.1,59,0)
edp.delay.consult^Obtain Consultation^CSLT
"DATA",233.2,1,0)
edp.acuity
"DATA",233.2,1,1,0)
^233.21A^5^5
"DATA",233.2,1,1,1,0)
1^1
"DATA",233.2,1,1,2,0)
2^2
"DATA",233.2,1,1,3,0)
3^3
"DATA",233.2,1,1,4,0)
4^4
"DATA",233.2,1,1,5,0)
5^5
"DATA",233.2,3,0)
edp.status
"DATA",233.2,3,1,0)
^233.21A^8^4
"DATA",233.2,3,1,1,0)
10^8
"DATA",233.2,3,1,2,0)
20^9
"DATA",233.2,3,1,7,0)
30^12
"DATA",233.2,3,1,8,0)
40^13
"DATA",233.2,4,0)
edp.delay
"DATA",233.2,4,1,0)
^233.21A^18^18
"DATA",233.2,4,1,1,0)
3^15
"DATA",233.2,4,1,2,0)
5^16
"DATA",233.2,4,1,3,0)
10^17
"DATA",233.2,4,1,4,0)
15^18
"DATA",233.2,4,1,5,0)
20^19
"DATA",233.2,4,1,6,0)
25^20
"DATA",233.2,4,1,7,0)
30^21
"DATA",233.2,4,1,8,0)
35^22
"DATA",233.2,4,1,9,0)
40^23
"DATA",233.2,4,1,10,0)
45^24
"DATA",233.2,4,1,11,0)
50^25
"DATA",233.2,4,1,12,0)
55^26
"DATA",233.2,4,1,13,0)
60^27
"DATA",233.2,4,1,14,0)
65^28
"DATA",233.2,4,1,15,0)
70^29
"DATA",233.2,4,1,16,0)
75^30
"DATA",233.2,4,1,17,0)
80^31
"DATA",233.2,4,1,18,0)
85^59
"DATA",233.2,5,0)
edp.arrival
"DATA",233.2,5,1,0)
^233.21A^6^6
"DATA",233.2,5,1,1,0)
10^53
"DATA",233.2,5,1,2,0)
20^54
"DATA",233.2,5,1,3,0)
30^32
"DATA",233.2,5,1,4,0)
40^33
"DATA",233.2,5,1,5,0)
50^55
"DATA",233.2,5,1,6,0)
60^56
"DATA",233.2,6,0)
edp.disposition
"DATA",233.2,6,1,0)
^233.21A^13^13
"DATA",233.2,6,1,1,0)
10^36
"DATA",233.2,6,1,2,0)
60^39
"DATA",233.2,6,1,3,0)
130^40
"DATA",233.2,6,1,4,0)
110^41
"DATA",233.2,6,1,5,0)
80^45
"DATA",233.2,6,1,6,0)
50^35
"DATA",233.2,6,1,7,0)
30^43
"DATA",233.2,6,1,8,0)
70^37
"DATA",233.2,6,1,9,0)
120^44
"DATA",233.2,6,1,10,0)
20^42
"DATA",233.2,6,1,11,0)
90^38
"DATA",233.2,6,1,12,0)
100^57
"DATA",233.2,6,1,13,0)
40^58
"FIA",230)
ED LOG
"FIA",230,0)
^EDP(230,
"FIA",230,0,0)
230D
"FIA",230,0,1)
y^y^f^^^^n
"FIA",230,0,10)
"FIA",230,0,11)
"FIA",230,0,"RLRO")
"FIA",230,230)
0
"FIA",230,230.04)
0
"FIA",230,230.08)
0
"FIA",230.1)
ED LOG HISTORY
"FIA",230.1,0)
^EDP(230.1,
"FIA",230.1,0,0)
230.1P
"FIA",230.1,0,1)
y^y^f^^^^n
"FIA",230.1,0,10)
"FIA",230.1,0,11)
"FIA",230.1,0,"RLRO")
"FIA",230.1,230.1)
0
"FIA",231.7)
TRACKING STAFF
"FIA",231.7,0)
^EDPB(231.7,
"FIA",231.7,0,0)
231.7
"FIA",231.7,0,1)
y^y^f^^^^n
"FIA",231.7,0,10)
"FIA",231.7,0,11)
"FIA",231.7,0,"RLRO")
"FIA",231.7,231.7)
0
"FIA",231.8)
TRACKING ROOM-BED
"FIA",231.8,0)
^EDPB(231.8,
"FIA",231.8,0,0)
231.8
"FIA",231.8,0,1)
y^y^f^^^^n
"FIA",231.8,0,10)
"FIA",231.8,0,11)
"FIA",231.8,0,"RLRO")
"FIA",231.8,231.8)
0
"FIA",231.9)
TRACKING AREA
"FIA",231.9,0)
^EDPB(231.9,
"FIA",231.9,0,0)
231.9
"FIA",231.9,0,1)
y^y^f^^^^n
"FIA",231.9,0,10)
"FIA",231.9,0,11)
"FIA",231.9,0,"RLRO")
"FIA",231.9,231.9)
0
"FIA",231.9,231.92)
0
"FIA",231.9,231.93)
0
"FIA",233.1)
TRACKING CODE
"FIA",233.1,0)
^EDPB(233.1,
"FIA",233.1,0,0)
233.1
"FIA",233.1,0,1)
y^y^f^^y^^y^o^n
"FIA",233.1,0,10)
"FIA",233.1,0,11)
I $E(^(0),1,4)="edp."
"FIA",233.1,0,"RLRO")
"FIA",233.1,233.1)
0
"FIA",233.1,233.12)
0
"FIA",233.2)
TRACKING CODE SET
"FIA",233.2,0)
^EDPB(233.2,
"FIA",233.2,0,0)
233.2
"FIA",233.2,0,1)
y^y^f^^y^^y^o^n
"FIA",233.2,0,10)
"FIA",233.2,0,11)
I $E(^(0),1,4)="edp."
"FIA",233.2,0,"RLRO")
"FIA",233.2,233.2)
0
"FIA",233.2,233.21)
0
"FRV1",233.2,"1,1,1,0",2)
edp.acuity.esi1
"FRV1",233.2,"1,1,1,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"1,1,2,0",2)
edp.acuity.esi2
"FRV1",233.2,"1,1,2,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"1,1,3,0",2)
edp.acuity.esi3
"FRV1",233.2,"1,1,3,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"1,1,4,0",2)
edp.acuity.esi4
"FRV1",233.2,"1,1,4,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"1,1,5,0",2)
edp.acuity.esi5
"FRV1",233.2,"1,1,5,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"3,1,1,0",2)
edp.status.admitted
"FRV1",233.2,"3,1,1,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"3,1,2,0",2)
edp.status.edobs
"FRV1",233.2,"3,1,2,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"3,1,7,0",2)
edp.status.observation
"FRV1",233.2,"3,1,7,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"3,1,8,0",2)
edp.status.overflow
"FRV1",233.2,"3,1,8,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,1,0",2)
edp.delay.inptbed
"FRV1",233.2,"4,1,1,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,10,0",2)
edp.delay.imagestudy
"FRV1",233.2,"4,1,10,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,11,0",2)
edp.delay.pharm
"FRV1",233.2,"4,1,11,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,12,0",2)
edp.delay.labresult
"FRV1",233.2,"4,1,12,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,13,0",2)
edp.delay.labstudy
"FRV1",233.2,"4,1,13,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,14,0",2)
edp.delay.supplies
"FRV1",233.2,"4,1,14,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,15,0",2)
edp.delay.surgery
"FRV1",233.2,"4,1,15,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,16,0",2)
edp.delay.home
"FRV1",233.2,"4,1,16,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,17,0",2)
edp.delay.transport
"FRV1",233.2,"4,1,17,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,18,0",2)
edp.delay.consult
"FRV1",233.2,"4,1,18,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,2,0",2)
edp.delay.overcrowd
"FRV1",233.2,"4,1,2,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,3,0",2)
edp.delay.admiteval
"FRV1",233.2,"4,1,3,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,4,0",2)
edp.delay.admitorders
"FRV1",233.2,"4,1,4,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,5,0",2)
edp.delay.admitobs
"FRV1",233.2,"4,1,5,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,6,0",2)
edp.delay.stafflimit
"FRV1",233.2,"4,1,6,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,7,0",2)
edp.delay.interfacility
"FRV1",233.2,"4,1,7,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,8,0",2)
edp.delay.ambulance
"FRV1",233.2,"4,1,8,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"4,1,9,0",2)
edp.delay.imageresult
"FRV1",233.2,"4,1,9,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"5,1,1,0",2)
edp.source.clinic
"FRV1",233.2,"5,1,1,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"5,1,2,0",2)
edp.source.cboc
"FRV1",233.2,"5,1,2,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"5,1,3,0",2)
edp.source.ambulance
"FRV1",233.2,"5,1,3,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"5,1,4,0",2)
edp.source.walk-in
"FRV1",233.2,"5,1,4,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"5,1,5,0",2)
edp.source.nhci
"FRV1",233.2,"5,1,5,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"5,1,6,0",2)
edp.source.code
"FRV1",233.2,"5,1,6,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,1,0",2)
edp.disposition.admitva
"FRV1",233.2,"6,1,1,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,10,0",2)
edp.disposition.telemetry
"FRV1",233.2,"6,1,10,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,11,0",2)
edp.disposition.xferva
"FRV1",233.2,"6,1,11,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,12,0",2)
edp.disposition.xfernon
"FRV1",233.2,"6,1,12,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,13,0",2)
edp.disposition.psych
"FRV1",233.2,"6,1,13,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,2,0",2)
edp.disposition.ama
"FRV1",233.2,"6,1,2,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,3,0",2)
edp.disposition.clinic
"FRV1",233.2,"6,1,3,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,4,0",2)
edp.disposition.deceased
"FRV1",233.2,"6,1,4,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,5,0",2)
edp.disposition.eloped
"FRV1",233.2,"6,1,5,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,6,0",2)
edp.disposition.home
"FRV1",233.2,"6,1,6,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,7,0",2)
edp.disposition.icu
"FRV1",233.2,"6,1,7,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,8,0",2)
edp.disposition.left
"FRV1",233.2,"6,1,8,0",2,"F")
;EDPB(233.1,
"FRV1",233.2,"6,1,9,0",2)
edp.disposition.nec
"FRV1",233.2,"6,1,9,0",2,"F")
;EDPB(233.1,
"INIT")
EDPYSRV
"IX",230,230,"AC",0)
230^AC^SITE,AREA,IEN when entry is active (not closed)^R^^R^IR^I^230^^^^^S
"IX",230,230,"AC",1)
S ^EDP(230,"AC",$E(X(1),1,30),$E(X(2),1,30),DA)=""
"IX",230,230,"AC",1.4)
S X='X2(3)
"IX",230,230,"AC",2)
K ^EDP(230,"AC",$E(X(1),1,30),$E(X(2),1,30),DA)
"IX",230,230,"AC",2.5)
K ^EDP(230,"AC")
"IX",230,230,"AC",11.1,0)
^.114IA^3^3
"IX",230,230,"AC",11.1,1,0)
1^F^230^.02^30^1^F
"IX",230,230,"AC",11.1,1,3)
"IX",230,230,"AC",11.1,2,0)
2^F^230^.03^30^2^F
"IX",230,230,"AC",11.1,2,3)
"IX",230,230,"AC",11.1,3,0)
3^F^230^.07^2^^F
"IX",230,230,"AC",11.1,3,3)
"IX",230,230,"ADUP1",0)
230^ADUP1^SITE,AREA,LASTNAME,IEN^MU^^R^IR^I^230^^^^^S
"IX",230,230,"ADUP1",1)
S ^EDP(230,"ADUP",X(1),X(2),X(3),DA)=""
"IX",230,230,"ADUP1",1.4)
S X='X2(4)
"IX",230,230,"ADUP1",2)
K ^EDP(230,"ADUP",X(1),X(2),X(3),DA)
"IX",230,230,"ADUP1",2.5)
"IX",230,230,"ADUP1",11.1,0)
^.114IA^4^4
"IX",230,230,"ADUP1",11.1,1,0)
1^F^230^.02^^1^F
"IX",230,230,"ADUP1",11.1,2,0)
2^F^230^.03^^2^F
"IX",230,230,"ADUP1",11.1,3,0)
3^F^230^.04^^3^F
"IX",230,230,"ADUP1",11.1,3,2)
S X=$P(X,",")
"IX",230,230,"ADUP1",11.1,4,0)
4^F^230^.07^^^F
"IX",230,230,"ADUP2",0)
230^ADUP2^SITE,AREA,LAST4,IEN for active patients^MU^^R^IR^I^230^^^^^S
"IX",230,230,"ADUP2",1)
S ^EDP(230,"ADUP",X(1),X(2),X(3),DA)=""
"IX",230,230,"ADUP2",1.4)
S X='X2(4)
"IX",230,230,"ADUP2",2)
K ^EDP(230,"ADUP",X(1),X(2),X(3),DA)
"IX",230,230,"ADUP2",2.5)
"IX",230,230,"ADUP2",11.1,0)
^.114IA^4^4
"IX",230,230,"ADUP2",11.1,1,0)
1^F^230^.02^^1^F
"IX",230,230,"ADUP2",11.1,1,3)
"IX",230,230,"ADUP2",11.1,2,0)
2^F^230^.03^^2^F
"IX",230,230,"ADUP2",11.1,2,3)
"IX",230,230,"ADUP2",11.1,3,0)
3^F^230^.11^^3^F
"IX",230,230,"ADUP2",11.1,3,3)
"IX",230,230,"ADUP2",11.1,4,0)
4^F^230^.07^^^F
"IX",230,230,"ADUP2",11.1,4,3)
"IX",230,230,"AL",0)
230^AL^SITE, AREA, LOC, IEN when entry is active^R^^R^IR^I^230^^^^^S
"IX",230,230,"AL",1)
S ^EDP(230,"AL",X(1),X(2),X(3),DA)=""
"IX",230,230,"AL",1.4)
S X='X2(4)
"IX",230,230,"AL",2)
K ^EDP(230,"AL",X(1),X(2),X(3),DA)
"IX",230,230,"AL",2.5)
K ^EDP(230,"AL")
"IX",230,230,"AL",11.1,0)
^.114IA^4^4
"IX",230,230,"AL",11.1,1,0)
1^F^230^.02^^1^F
"IX",230,230,"AL",11.1,1,3)
"IX",230,230,"AL",11.1,2,0)
2^F^230^.03^^2^F
"IX",230,230,"AL",11.1,2,3)
"IX",230,230,"AL",11.1,3,0)
3^F^230^3.4^^3^F
"IX",230,230,"AL",11.1,3,3)
"IX",230,230,"AL",11.1,4,0)
4^F^230^.07^^^F
"IX",230,230,"AL",11.1,4,3)
"IX",230,230,"AN",0)
230^AN^SITE,AREA,PTNAME,IEN for active patients^R^^R^IR^I^230^^^^^S
"IX",230,230,"AN",1)
S ^EDP(230,"AN",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,50),DA)=""
"IX",230,230,"AN",1.4)
S X='X2(4)
"IX",230,230,"AN",2)
K ^EDP(230,"AN",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,50),DA)
"IX",230,230,"AN",2.5)
K ^EDP(230,"AN")
"IX",230,230,"AN",11.1,0)
^.114IA^4^4
"IX",230,230,"AN",11.1,1,0)
1^F^230^.02^30^1^F
"IX",230,230,"AN",11.1,1,3)
"IX",230,230,"AN",11.1,2,0)
2^F^230^.03^30^2^F
"IX",230,230,"AN",11.1,2,3)
"IX",230,230,"AN",11.1,3,0)
3^F^230^.04^50^3^F
"IX",230,230,"AN",11.1,3,3)
"IX",230,230,"AN",11.1,4,0)
4^F^230^.07^2^^F
"IX",230,230,"AN",11.1,4,3)
"IX",230,230,"AP",0)
230^AP^SITE,DFN,IEN for active patients at site (not closed)^R^^R^IR^I^230^^^^^S
"IX",230,230,"AP",1)
S ^EDP(230,"AP",X(1),X(2),DA)=""
"IX",230,230,"AP",1.4)
S X='X2(4)
"IX",230,230,"AP",2)
K ^EDP(230,"AP",X(1),X(2),DA)
"IX",230,230,"AP",2.5)
K ^EDP(230,"AP")
"IX",230,230,"AP",11.1,0)
^.114IA^4^3
"IX",230,230,"AP",11.1,1,0)
1^F^230^.02^^1^F
"IX",230,230,"AP",11.1,1,3)
"IX",230,230,"AP",11.1,3,0)
2^F^230^.06^^2^F
"IX",230,230,"AP",11.1,3,3)
"IX",230,230,"AP",11.1,4,0)
4^F^230^.07^^^F
"IX",230,230,"AP",11.1,4,3)
"IX",230,230,"AS",0)
230^AS^SITE,AREA,SSN,IEN for active patients^R^^R^IR^I^230^^^^^S
"IX",230,230,"AS",1)
S ^EDP(230,"AS",X(1),X(2),X(3),DA)=""
"IX",230,230,"AS",1.4)
S X='X2(4)
"IX",230,230,"AS",2)
K ^EDP(230,"AS",X(1),X(2),X(3),DA)
"IX",230,230,"AS",2.5)
K ^EDP(230,"AS")
"IX",230,230,"AS",11.1,0)
^.114IA^4^4
"IX",230,230,"AS",11.1,1,0)
1^F^230^.02^^1^F
"IX",230,230,"AS",11.1,1,3)
"IX",230,230,"AS",11.1,2,0)
2^F^230^.03^^2^F
"IX",230,230,"AS",11.1,2,3)
"IX",230,230,"AS",11.1,3,0)
3^F^230^.05^^3^F
"IX",230,230,"AS",11.1,3,3)
"IX",230,230,"AS",11.1,4,0)
4^F^230^.07^^^F
"IX",230,230,"AS",11.1,4,3)
"IX",230,230,"ATI",0)
230^ATI^SITE,TIME IN for reports^MU^^R^IR^I^230^^^^^S
"IX",230,230,"ATI",1)
S ^EDP(230,"ATI",X(1),+X(2),DA)=""
"IX",230,230,"ATI",2)
K ^EDP(230,"ATI",X(1),+X(2),DA)
"IX",230,230,"ATI",2.5)
K ^EDP(230,"ATI")
"IX",230,230,"ATI",11.1,0)
^.114IA^2^2
"IX",230,230,"ATI",11.1,1,0)
1^F^230^.02^^1^F
"IX",230,230,"ATI",11.1,2,0)
2^F^230^.08^^2^F
"IX",230,230,"ATO",0)
230^ATO^SITE,TIME OUT for reports^R^^R^IR^I^230^^^^^S
"IX",230,230,"ATO",1)
S ^EDP(230,"ATO",X(1),X(2),DA)=""
"IX",230,230,"ATO",2)
K ^EDP(230,"ATO",X(1),X(2),DA)
"IX",230,230,"ATO",2.5)
K ^EDP(230,"ATO")
"IX",230,230,"ATO",11.1,0)
^.114IA^2^2
"IX",230,230,"ATO",11.1,1,0)
1^F^230^.02^^1^F
"IX",230,230,"ATO",11.1,1,3)
"IX",230,230,"ATO",11.1,2,0)
2^F^230^.09^^2^F
"IX",230,230,"ATO",11.1,2,3)
"IX",230,230,"PN",0)
230^PN^SITE,AREA,PTNAME,IEN for all patients^R^^R^IR^I^230^^^^^LS
"IX",230,230,"PN",1)
S ^EDP(230,"PN",X(1),X(2),$E(X(3),1,40),DA)=""
"IX",230,230,"PN",2)
K ^EDP(230,"PN",X(1),X(2),$E(X(3),1,40),DA)
"IX",230,230,"PN",2.5)
K ^EDP(230,"PN")
"IX",230,230,"PN",11.1,0)
^.114IA^3^3
"IX",230,230,"PN",11.1,1,0)
1^F^230^.02^^1^F
"IX",230,230,"PN",11.1,1,3)
"IX",230,230,"PN",11.1,2,0)
2^F^230^.03^^2^F
"IX",230,230,"PN",11.1,2,3)
"IX",230,230,"PN",11.1,3,0)
3^F^230^.04^40^3^F
"IX",230,230,"PN",11.1,3,3)
"IX",230.1,230.1,"ADF",0)
230.1^ADF^Log History by time (LOG, TIME, IEN)^R^^R^IR^I^230.1^^^^^S
"IX",230.1,230.1,"ADF",1)
S ^EDP(230.1,"ADF",X(1),X(2),DA)=""
"IX",230.1,230.1,"ADF",2)
K ^EDP(230.1,"ADF",X(1),X(2),DA)
"IX",230.1,230.1,"ADF",2.5)
K ^EDP(230.1,"ADF")
"IX",230.1,230.1,"ADF",11.1,0)
^.114IA^2^2
"IX",230.1,230.1,"ADF",11.1,1,0)
1^F^230.1^.01^^1^F
"IX",230.1,230.1,"ADF",11.1,1,3)
"IX",230.1,230.1,"ADF",11.1,2,0)
2^F^230.1^.02^^2^F
"IX",230.1,230.1,"ADF",11.1,2,3)
"IX",230.1,230.1,"ADR",0)
230.1^ADR^Log History by inverse time (LOG, INVTIME, IEN)^R^^R^IR^I^230.1^^^^^S
"IX",230.1,230.1,"ADR",1)
S ^EDP(230.1,"ADR",X(1),X(2),DA)=""
"IX",230.1,230.1,"ADR",2)
K ^EDP(230.1,"ADR",X(1),X(2),DA)
"IX",230.1,230.1,"ADR",2.5)
K ^EDP(230.1,"ADR")
"IX",230.1,230.1,"ADR",11.1,0)
^.114IA^2^2
"IX",230.1,230.1,"ADR",11.1,1,0)
1^F^230.1^.01^^1^F
"IX",230.1,230.1,"ADR",11.1,1,3)
"IX",230.1,230.1,"ADR",11.1,2,0)
2^F^230.1^.02^^2^F
"IX",230.1,230.1,"ADR",11.1,2,2)
S X=9999999-X
"IX",230.1,230.1,"ADR",11.1,2,3)
"IX",230.1,230.1,"C",0)
230.1^C^Indexes changes for a log entry by inverse time.^R^^R^IR^I^230.1^^^^^LS
"IX",230.1,230.1,"C",1)
S ^EDP(230.1,"C",X(1),X(2),DA)=""
"IX",230.1,230.1,"C",2)
K ^EDP(230.1,"C",X(1),X(2),DA)
"IX",230.1,230.1,"C",2.5)
K ^EDP(230.1,"C")
"IX",230.1,230.1,"C",11.1,0)
^.114IA^2^2
"IX",230.1,230.1,"C",11.1,1,0)
1^F^230.1^.01^^1^F
"IX",230.1,230.1,"C",11.1,1,3)
"IX",230.1,230.1,"C",11.1,2,0)
2^F^230.1^.02^^2^F
"IX",230.1,230.1,"C",11.1,2,2)
S X=9999999-X
"IX",230.1,230.1,"C",11.1,2,3)
"IX",231.7,231.7,"AC",0)
231.7^AC^SITE,AREA,ROLE,IEN if the entry is active^R^^R^IR^I^231.7^^^^^S
"IX",231.7,231.7,"AC",1)
S ^EDPB(231.7,"AC",X(1),X(2),X(3),DA)=""
"IX",231.7,231.7,"AC",1.4)
S X='X2(4)
"IX",231.7,231.7,"AC",2)
K ^EDPB(231.7,"AC",X(1),X(2),X(3),DA)
"IX",231.7,231.7,"AC",2.5)
K ^EDPB(231.7,"AC")
"IX",231.7,231.7,"AC",11.1,0)
^.114IA^4^4
"IX",231.7,231.7,"AC",11.1,1,0)
1^F^231.7^.02^^1^F
"IX",231.7,231.7,"AC",11.1,1,3)
"IX",231.7,231.7,"AC",11.1,2,0)
2^F^231.7^.03^^2^F
"IX",231.7,231.7,"AC",11.1,2,3)
"IX",231.7,231.7,"AC",11.1,3,0)
3^F^231.7^.06^^3^F
"IX",231.7,231.7,"AC",11.1,3,3)
"IX",231.7,231.7,"AC",11.1,4,0)
4^F^231.7^.04^^^F
"IX",231.7,231.7,"AC",11.1,4,3)
"IX",231.7,231.7,"AD",0)
231.7^AD^SITE,AREA,DUZ,IEN for all entries^R^^R^IR^I^231.7^^^^^S
"IX",231.7,231.7,"AD",1)
S ^EDPB(231.7,"AD",X(1),X(2),X(3),DA)=""
"IX",231.7,231.7,"AD",2)
K ^EDPB(231.7,"AD",X(1),X(2),X(3),DA)
"IX",231.7,231.7,"AD",2.5)
K ^EDPB(231.7,"AD")
"IX",231.7,231.7,"AD",11.1,0)
^.114IA^3^3
"IX",231.7,231.7,"AD",11.1,1,0)
1^F^231.7^.02^^1^F
"IX",231.7,231.7,"AD",11.1,1,3)
"IX",231.7,231.7,"AD",11.1,2,0)
2^F^231.7^.03^^2^F
"IX",231.7,231.7,"AD",11.1,2,3)
"IX",231.7,231.7,"AD",11.1,3,0)
3^F^231.7^.05^^3^F
"IX",231.7,231.7,"AD",11.1,3,3)
"IX",231.8,231.8,"AC",0)
231.8^AC^SITE,AREA,DISPLAYNAME,IEN^R^^R^IR^I^231.8^^^^^S
"IX",231.8,231.8,"AC",1)
S ^EDPB(231.8,"AC",X(1),X(2),X(3),DA)=""
"IX",231.8,231.8,"AC",2)
K ^EDPB(231.8,"AC",X(1),X(2),X(3),DA)
"IX",231.8,231.8,"AC",2.5)
K ^EDPB(231.8,"AC")
"IX",231.8,231.8,"AC",11.1,0)
^.114IA^3^3
"IX",231.8,231.8,"AC",11.1,1,0)
1^F^231.8^.02^^1^F
"IX",231.8,231.8,"AC",11.1,1,3)
"IX",231.8,231.8,"AC",11.1,2,0)
2^F^231.8^.03^^2^F
"IX",231.8,231.8,"AC",11.1,2,3)
"IX",231.8,231.8,"AC",11.1,3,0)
3^F^231.8^.06^^3^F
"IX",231.8,231.8,"AC",11.1,3,3)
"IX",231.8,231.8,"C",0)
231.8^C^Index by site and area.^R^^R^IR^I^231.8^^^^^LS
"IX",231.8,231.8,"C",1)
S ^EDPB(231.8,"C",X(1),X(2),DA)=""
"IX",231.8,231.8,"C",2)
K ^EDPB(231.8,"C",X(1),X(2),DA)
"IX",231.8,231.8,"C",2.5)
K ^EDPB(231.8,"C")
"IX",231.8,231.8,"C",11.1,0)
^.114IA^2^2
"IX",231.8,231.8,"C",11.1,1,0)
1^F^231.8^.02^^1^F
"IX",231.8,231.8,"C",11.1,1,3)
"IX",231.8,231.8,"C",11.1,2,0)
2^F^231.8^.03^^2^F
"IX",231.8,231.8,"C",11.1,2,3)
"IX",233.1,233.1,"AB",0)
233.1^AB^Allows finding items by type and abbreviation^R^^R^IR^I^233.1^^^^^S
"IX",233.1,233.1,"AB",1)
S ^EDPB(233.1,"AB",$E(X(1),1,30),$E(X(2),1,30),DA)=""
"IX",233.1,233.1,"AB",2)
K ^EDPB(233.1,"AB",$E(X(1),1,30),$E(X(2),1,30),DA)
"IX",233.1,233.1,"AB",2.5)
K ^EDPB(233.1,"AB")
"IX",233.1,233.1,"AB",11.1,0)
^.114IA^2^2
"IX",233.1,233.1,"AB",11.1,1,0)
1^F^233.1^.01^30^1^F
"IX",233.1,233.1,"AB",11.1,1,2)
S X=$P(X,".",2)
"IX",233.1,233.1,"AB",11.1,1,3)
"IX",233.1,233.1,"AB",11.1,2,0)
2^F^233.1^.03^30^2^F
"IX",233.1,233.1,"AB",11.1,2,2)
S X=$$UP^XLFSTR(X)
"IX",233.1,233.1,"AB",11.1,2,3)
"IX",233.1,233.1,"AC",0)
233.1^AC^Allows finding items by type and display name^R^^R^IR^I^233.1^^^^^S
"IX",233.1,233.1,"AC",1)
S ^EDPB(233.1,"AC",$E(X(1),1,30),$E(X(2),1,60),DA)=""
"IX",233.1,233.1,"AC",2)
K ^EDPB(233.1,"AC",$E(X(1),1,30),$E(X(2),1,60),DA)
"IX",233.1,233.1,"AC",2.5)
K ^EDPB(233.1,"AC")
"IX",233.1,233.1,"AC",11.1,0)
^.114IA^2^2
"IX",233.1,233.1,"AC",11.1,1,0)
1^F^233.1^.01^30^1^F
"IX",233.1,233.1,"AC",11.1,1,2)
S X=$P(X,".",2)
"IX",233.1,233.1,"AC",11.1,1,3)
"IX",233.1,233.1,"AC",11.1,2,0)
2^F^233.1^.02^60^2^F
"IX",233.1,233.1,"AC",11.1,2,2)
S X=$$UP^XLFSTR(X)
"IX",233.1,233.1,"AC",11.1,2,3)
"KRN",19,13508,-1)
0^1
"KRN",19,13508,0)
EDPS TRACKING CONTEXT^ED Tracking Context -- Server^^B^^^^^^^^
"KRN",19,13508,"RPC",0)
^19.05P^1^1
"KRN",19,13508,"RPC",1,0)
EDPCTRL RPC
"KRN",19,13508,"U")
ED TRACKING CONTEXT -- SERVER
"KRN",19,13509,-1)
0^2
"KRN",19,13509,0)
EDPSERVER^Process incoming scheduling events from MailMan^^S^^^^^^^^EMERGENCY DEPARTMENT
"KRN",19,13509,25)
EDPMAIL
"KRN",19,13509,220)
^R^^N^Y^N
"KRN",19,13509,"U")
PROCESS INCOMING SCHEDULING EV
"KRN",8994,2527,-1)
0^1
"KRN",8994,2527,0)
EDPCTRL RPC^RPC^EDPCTRL^2^R^^^^1^^1
"KRN",8994,2527,2,0)
^8994.02A^1^1
"KRN",8994,2527,2,1,0)
REQ^2^^1^1
"KRN",8994,2527,2,"B","REQ",1)
"KRN",8994,2527,2,"PARAMSEQ",1,1)
"MBREQ")
0
"ORD",16,8994)
8994;16;1;;;;;;;RPCDEL^XPDIA1
"ORD",16,8994,0)
REMOTE PROCEDURE
"ORD",18,19)
19;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA
"ORD",18,19,0)
OPTION
"PGL",233.1,0,4,.04)
NATIONAL CODE^P233.1'^EDPB(233.1,^0;4^Q
"PGL",233.21,0,2,.02)
CODE^P233.1'^EDPB(233.1,^0;2^Q
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
YES
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")
"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
YES
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
YES
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
36
"RTN","EDPBCF")
0^1^B6377962
"RTN","EDPBCF",1,0)
EDPBCF ;SLC/KCM - Display Board Configuration
"RTN","EDPBCF",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPBCF",3,0)
;
"RTN","EDPBCF",4,0)
LOADBRD(AREA) ; Load Board Configuration for an Area
"RTN","EDPBCF",5,0)
N I
"RTN","EDPBCF",6,0)
S I=0 F S I=$O(^EDPB(231.9,AREA,2,I)) Q:'I D
"RTN","EDPBCF",7,0)
. D XML^EDPX(^EDPB(231.9,AREA,2,I,0))
"RTN","EDPBCF",8,0)
;
"RTN","EDPBCF",9,0)
D XML^EDPX("")
"RTN","EDPBCF",10,0)
S I=0 F S I=$O(^EDPB(231.9,AREA,3,I)) Q:'I D
"RTN","EDPBCF",11,0)
. D XML^EDPX(^EDPB(231.9,AREA,3,I,0))
"RTN","EDPBCF",12,0)
D XML^EDPX("")
"RTN","EDPBCF",13,0)
;
"RTN","EDPBCF",14,0)
D XML^EDPX("")
"RTN","EDPBCF",15,0)
F I=1:1 S NODE=$P($T(COLUMNS+I),";",3,99) Q:$E(NODE,1,5)="zzzzz" D
"RTN","EDPBCF",16,0)
. N X
"RTN","EDPBCF",17,0)
. S X("label")=$P(NODE,U)
"RTN","EDPBCF",18,0)
. S X("att")=$P(NODE,U,2)
"RTN","EDPBCF",19,0)
. S X("header")=$P(NODE,U,3)
"RTN","EDPBCF",20,0)
. S X("width")=50
"RTN","EDPBCF",21,0)
. D XML^EDPX($$XMLA^EDPX("col",.X))
"RTN","EDPBCF",22,0)
D XML^EDPX("")
"RTN","EDPBCF",23,0)
;
"RTN","EDPBCF",24,0)
D XML^EDPX("")
"RTN","EDPBCF",25,0)
D COLORS^EDPBCM
"RTN","EDPBCF",26,0)
D XML^EDPX("")
"RTN","EDPBCF",27,0)
;D XML^EDPX("")
"RTN","EDPBCF",28,0)
;D LIST^EDPBCM
"RTN","EDPBCF",29,0)
;D XML^EDPX("")
"RTN","EDPBCF",30,0)
;
"RTN","EDPBCF",31,0)
D LOAD^EDPBRM(AREA) ; also load rooms/beds
"RTN","EDPBCF",32,0)
D LOAD^EDPBPM(AREA) ; also load parameters
"RTN","EDPBCF",33,0)
;
"RTN","EDPBCF",34,0)
Q
"RTN","EDPBCF",35,0)
SAVEBRD(REQ) ; Save Configuration
"RTN","EDPBCF",36,0)
N X,WP,AREA
"RTN","EDPBCF",37,0)
S X="col-",AREA=$G(REQ("area",1))
"RTN","EDPBCF",38,0)
I 'AREA D XML^EDPX("Missing area") Q
"RTN","EDPBCF",39,0)
F S X=$O(REQ(X)) Q:$E(X,1,4)'="col-" S WP(+$P(X,"-",2))=REQ(X,1)
"RTN","EDPBCF",40,0)
S WP(.1)="",WP(9999)=""
"RTN","EDPBCF",41,0)
D WP^DIE(231.9,AREA_",",2,"","WP")
"RTN","EDPBCF",42,0)
I $D(DIERR) D XML^EDPX("save failed") Q
"RTN","EDPBCF",43,0)
D XML^EDPX("")
"RTN","EDPBCF",44,0)
Q
"RTN","EDPBCF",45,0)
COLUMNS ;; Available columns
"RTN","EDPBCF",46,0)
;;Room / Bed^@bedNm^Room
"RTN","EDPBCF",47,0)
;;Patient Name^@ptNm^Patient
"RTN","EDPBCF",48,0)
;;Patient X9999^@last4^Patient
"RTN","EDPBCF",49,0)
;;Complaint^@complaint^Complaint
"RTN","EDPBCF",50,0)
;;Comment^@comment^Comment
"RTN","EDPBCF",51,0)
;;Provider Initials^@mdNm^Prv
"RTN","EDPBCF",52,0)
;;Resident Initials^@resNm^Res
"RTN","EDPBCF",53,0)
;;Nurse Initials^@rnNm^RN
"RTN","EDPBCF",54,0)
;;Acuity^@acuityNm^Acuity
"RTN","EDPBCF",55,0)
;;Status^@statusNm^Status
"RTN","EDPBCF",56,0)
;;Lab Active/Complete^@lab^L
"RTN","EDPBCF",57,0)
;;Imaging Active/Complete^@rad^I
"RTN","EDPBCF",58,0)
;;New (Unverified) Orders^@ordNew^New
"RTN","EDPBCF",59,0)
;;Total Minutes^@emins^E Mins
"RTN","EDPBCF",60,0)
;;Minutes at Location^@lmins^Mins
"RTN","EDPBCF",61,0)
;;zzzzz
"RTN","EDPBCM")
0^2^B11802573
"RTN","EDPBCM",1,0)
EDPBCM ;SLC/KCM - Available color maps
"RTN","EDPBCM",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPBCM",3,0)
;
"RTN","EDPBCM",4,0)
SAVE(REQ) ; Save Configuration
"RTN","EDPBCM",5,0)
N X,WP,AREA
"RTN","EDPBCM",6,0)
S X="xml-",AREA=$G(REQ("area",1))
"RTN","EDPBCM",7,0)
I 'AREA D XML^EDPX("Missing area") Q
"RTN","EDPBCM",8,0)
F S X=$O(REQ(X)) Q:$E(X,1,4)'="xml-" S WP(+$P(X,"-",2))=REQ(X,1)
"RTN","EDPBCM",9,0)
D WP^DIE(231.9,AREA_",",3,"","WP")
"RTN","EDPBCM",10,0)
I $D(DIERR) D XML^EDPX("save failed") Q
"RTN","EDPBCM",11,0)
D XML^EDPX("")
"RTN","EDPBCM",12,0)
Q
"RTN","EDPBCM",13,0)
COLORS ;; Available Color Maps
"RTN","EDPBCM",14,0)
D ENMAP("none"," ","none") ; for no selection
"RTN","EDPBCM",15,0)
;
"RTN","EDPBCM",16,0)
D ENMAP("stsAcuity","Status / Acuity","val")
"RTN","EDPBCM",17,0)
D CODES("status"),CODES("acuity"),EXMAP
"RTN","EDPBCM",18,0)
;
"RTN","EDPBCM",19,0)
D ENMAP("status","Status","val")
"RTN","EDPBCM",20,0)
D CODES("status"),EXMAP
"RTN","EDPBCM",21,0)
;
"RTN","EDPBCM",22,0)
D ENMAP("acuity","Acuity","val")
"RTN","EDPBCM",23,0)
D CODES("acuity"),EXMAP
"RTN","EDPBCM",24,0)
;
"RTN","EDPBCM",25,0)
D ENMAP("bed","Room / Bed","bed")
"RTN","EDPBCM",26,0)
D ENMAP("md","Provider","staff")
"RTN","EDPBCM",27,0)
D ENMAP("res","Resident","staff")
"RTN","EDPBCM",28,0)
D ENMAP("rn","Nurse","staff")
"RTN","EDPBCM",29,0)
;
"RTN","EDPBCM",30,0)
D ENMAP("labUrg","Urgency - Lab","val")
"RTN","EDPBCM",31,0)
D URG("labUrg"),EXMAP
"RTN","EDPBCM",32,0)
;D ENMAP("medUrg","Urgency - Medications","val")
"RTN","EDPBCM",33,0)
;D URG("medUrg"),EXMAP
"RTN","EDPBCM",34,0)
D ENMAP("radUrg","Urgency - Radiology","val")
"RTN","EDPBCM",35,0)
D URG("radUrg"),EXMAP
"RTN","EDPBCM",36,0)
;
"RTN","EDPBCM",37,0)
D ENMAP("emins","Total Elapsed Minutes","rng")
"RTN","EDPBCM",38,0)
D ENMAP("lmins","Minutes at Location","rng")
"RTN","EDPBCM",39,0)
D ENMAP("minLab","Minutes for Lab Order","rng")
"RTN","EDPBCM",40,0)
;D ENMAP("minMed","Minutes for Medication Order","rng")
"RTN","EDPBCM",41,0)
D ENMAP("minRad","Minutes for Imaging Order","rng")
"RTN","EDPBCM",42,0)
D ENMAP("minVer","Minutes for Unverified Order","rng")
"RTN","EDPBCM",43,0)
Q
"RTN","EDPBCM",44,0)
ENMAP(ID,NM,TYP) ; create element for colormap
"RTN","EDPBCM",45,0)
N X,END
"RTN","EDPBCM",46,0)
S END="/" S:TYP="val" END=""
"RTN","EDPBCM",47,0)
S X("id")=ID
"RTN","EDPBCM",48,0)
S X("nm")=NM
"RTN","EDPBCM",49,0)
S X("type")=TYP
"RTN","EDPBCM",50,0)
D XML^EDPX($$XMLA^EDPX("colors",.X,END))
"RTN","EDPBCM",51,0)
Q
"RTN","EDPBCM",52,0)
EXMAP ; create closing tag
"RTN","EDPBCM",53,0)
D XML^EDPX("")
"RTN","EDPBCM",54,0)
Q
"RTN","EDPBCM",55,0)
CODES(NM) ; create map elements for a set of codes
"RTN","EDPBCM",56,0)
N CODESET,IEN
"RTN","EDPBCM",57,0)
S CODESET=EDPSITE_"."_NM
"RTN","EDPBCM",58,0)
I '$D(^EDPB(233.2,"B",CODESET)) S CODESET="edp."_NM
"RTN","EDPBCM",59,0)
S IEN=$O(^EDPB(233.2,"B",CODESET,0))
"RTN","EDPBCM",60,0)
Q:'IEN
"RTN","EDPBCM",61,0)
;
"RTN","EDPBCM",62,0)
N SEQ,CODE,DA
"RTN","EDPBCM",63,0)
S SEQ=0 F S SEQ=$O(^EDPB(233.2,IEN,1,"B",SEQ)) Q:'SEQ D
"RTN","EDPBCM",64,0)
. S DA=0 F S DA=$O(^EDPB(233.2,IEN,1,"B",SEQ,DA)) Q:'DA D
"RTN","EDPBCM",65,0)
. . S CODE=$P(^EDPB(233.2,IEN,1,DA,0),U,2)
"RTN","EDPBCM",66,0)
. . Q:'CODE
"RTN","EDPBCM",67,0)
. . D MAP(NM,CODE,$P(^EDPB(233.1,CODE,0),U,2))
"RTN","EDPBCM",68,0)
Q
"RTN","EDPBCM",69,0)
URG(ATT) ; create map elements for standard urgencies
"RTN","EDPBCM",70,0)
D MAP(ATT,0,"No Orders")
"RTN","EDPBCM",71,0)
D MAP(ATT,1,"Active Orders")
"RTN","EDPBCM",72,0)
D MAP(ATT,2,"STAT Orders")
"RTN","EDPBCM",73,0)
Q
"RTN","EDPBCM",74,0)
MAP(ATT,VAL,NM) ; create a single map element
"RTN","EDPBCM",75,0)
N X
"RTN","EDPBCM",76,0)
S X("att")="@"_ATT
"RTN","EDPBCM",77,0)
S X("val")=VAL
"RTN","EDPBCM",78,0)
S X("nm")=NM
"RTN","EDPBCM",79,0)
S X("clr")=0
"RTN","EDPBCM",80,0)
D XML^EDPX($$XMLA^EDPX("map",.X))
"RTN","EDPBCM",81,0)
Q
"RTN","EDPBCM",82,0)
LIST ; Build selection list for color maps
"RTN","EDPBCM",83,0)
N I,X
"RTN","EDPBCM",84,0)
F I=1:1 S X=$P($T(MAPLST+I),";",3,99) Q:$E(X,1,5)="zzzzz" D
"RTN","EDPBCM",85,0)
. S X("data")=$P(X,U,1),X("label")=$P(X,U,2)
"RTN","EDPBCM",86,0)
. D XML^EDPX($$XMLA^EDPX("colors",.X))
"RTN","EDPBCM",87,0)
Q
"RTN","EDPBCM",88,0)
MAPLST ; list of available color maps
"RTN","EDPBCM",89,0)
;;^ ^
"RTN","EDPBCM",90,0)
;;stsAcuity^Status / Acuity
"RTN","EDPBCM",91,0)
;;status^Status
"RTN","EDPBCM",92,0)
;;acuity^Acuity
"RTN","EDPBCM",93,0)
;;bed^Room / Bed
"RTN","EDPBCM",94,0)
;;staff^Staff
"RTN","EDPBCM",95,0)
;;labUrg^Urgency - Lab
"RTN","EDPBCM",96,0)
;;radUrg^Urgency - Imaging
"RTN","EDPBCM",97,0)
;;emins^Total Minutes
"RTN","EDPBCM",98,0)
;;lmins^Minutes at Location
"RTN","EDPBCM",99,0)
;;labMin^Minutes for Lab Order
"RTN","EDPBCM",100,0)
;;radMin^Minutes for Imaging Order
"RTN","EDPBCM",101,0)
;;ordMin^Minutes for Unverified Order
"RTN","EDPBCM",102,0)
;;zzzzz
"RTN","EDPBPM")
0^3^B2766869
"RTN","EDPBPM",1,0)
EDPBPM ;SLC/KCM - Parameters for Tracking Area
"RTN","EDPBPM",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPBPM",3,0)
;
"RTN","EDPBPM",4,0)
LOAD(AREA) ; load parameters for area
"RTN","EDPBPM",5,0)
N X,X1
"RTN","EDPBPM",6,0)
S X1=$G(^EDPB(231.9,AREA,1))
"RTN","EDPBPM",7,0)
S X("reqDiag")=+$P(X1,U,1)
"RTN","EDPBPM",8,0)
S X("codedDiag")=+$P(X1,U,2)
"RTN","EDPBPM",9,0)
S X("reqDisp")=+$P(X1,U,3)
"RTN","EDPBPM",10,0)
S X("reqDelay")=+$P(X1,U,4)
"RTN","EDPBPM",11,0)
S X("minDelay")=+$P(X1,U,5)
"RTN","EDPBPM",12,0)
S X("shiftOne")=$P(X1,U,6)
"RTN","EDPBPM",13,0)
S X("shiftLen")=$P(X1,U,7)
"RTN","EDPBPM",14,0)
S X("residents")=$P(X1,U,8)
"RTN","EDPBPM",15,0)
D XML^EDPX($$XMLA^EDPX("params",.X))
"RTN","EDPBPM",16,0)
Q
"RTN","EDPBPM",17,0)
SAVE(AREA,PARAM) ; save updated parameters
"RTN","EDPBPM",18,0)
I '$D(^EDPB(231.9,AREA,0)) D XML^EDPX("Area not set up") Q
"RTN","EDPBPM",19,0)
N FLD D NVPARSE^EDPX(.FLD,PARAM)
"RTN","EDPBPM",20,0)
N FDA,FDAIEN,DIERR
"RTN","EDPBPM",21,0)
S AREA=AREA_","
"RTN","EDPBPM",22,0)
S FDA(231.9,AREA,1.1)=FLD("reqDiag")
"RTN","EDPBPM",23,0)
S FDA(231.9,AREA,1.2)=FLD("codedDiag")
"RTN","EDPBPM",24,0)
S FDA(231.9,AREA,1.3)=FLD("reqDisp")
"RTN","EDPBPM",25,0)
S FDA(231.9,AREA,1.4)=FLD("reqDelay")
"RTN","EDPBPM",26,0)
S FDA(231.9,AREA,1.5)=FLD("minDelay")
"RTN","EDPBPM",27,0)
S FDA(231.9,AREA,1.6)=FLD("shiftOne")
"RTN","EDPBPM",28,0)
S FDA(231.9,AREA,1.7)=FLD("shiftLen")
"RTN","EDPBPM",29,0)
S FDA(231.9,AREA,1.8)=FLD("residents")
"RTN","EDPBPM",30,0)
D FILE^DIE("","FDA","ERR")
"RTN","EDPBPM",31,0)
I $D(DIERR) D FAIL($G(ERR("DIERR",1,"TEXT",1))) Q
"RTN","EDPBPM",32,0)
D XML^EDPX("")
"RTN","EDPBPM",33,0)
Q
"RTN","EDPBPM",34,0)
TZSAVE(AREA,TZDIFF) ; save time zone difference in minutes
"RTN","EDPBPM",35,0)
N FDA,FDAIEN,DIERR
"RTN","EDPBPM",36,0)
S AREA=AREA_","
"RTN","EDPBPM",37,0)
S FDA(231.9,AREA,.03)=TZDIFF
"RTN","EDPBPM",38,0)
D FILE^DIE("","FDA","ERR")
"RTN","EDPBPM",39,0)
Q
"RTN","EDPBPM",40,0)
FAIL(ERR) ; set fail node
"RTN","EDPBPM",41,0)
D XML^EDPX(""_ERR_"")
"RTN","EDPBPM",42,0)
Q
"RTN","EDPBRM")
0^4^B8445684
"RTN","EDPBRM",1,0)
EDPBRM ;SLC/KCM - Room/Bed Configuration
"RTN","EDPBRM",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPBRM",3,0)
;
"RTN","EDPBRM",4,0)
LOAD(AREA) ; Load the list of rooms/beds for this area
"RTN","EDPBRM",5,0)
N BED,SEQ,BEDS,X0
"RTN","EDPBRM",6,0)
;
"RTN","EDPBRM",7,0)
; Get a list of all the beds in sequence for this area
"RTN","EDPBRM",8,0)
S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
"RTN","EDPBRM",9,0)
. S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999
"RTN","EDPBRM",10,0)
. S BEDS(SEQ,BED)=""
"RTN","EDPBRM",11,0)
;
"RTN","EDPBRM",12,0)
; Build the XML for each bed in sequence
"RTN","EDPBRM",13,0)
D XML^EDPX("")
"RTN","EDPBRM",14,0)
S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D
"RTN","EDPBRM",15,0)
. S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D
"RTN","EDPBRM",16,0)
. . S X0=^EDPB(231.8,BED,0)
"RTN","EDPBRM",17,0)
. . N X
"RTN","EDPBRM",18,0)
. . S X("id")=BED
"RTN","EDPBRM",19,0)
. . S X("name")=$P(X0,U)
"RTN","EDPBRM",20,0)
. . S X("site")=$P(X0,U,2)
"RTN","EDPBRM",21,0)
. . S X("area")=$P(X0,U,3)
"RTN","EDPBRM",22,0)
. . S X("inactive")=$P(X0,U,4)
"RTN","EDPBRM",23,0)
. . S X("seq")=$P(X0,U,5)
"RTN","EDPBRM",24,0)
. . S X("display")=$P(X0,U,6)
"RTN","EDPBRM",25,0)
. . S X("when")=$P(X0,U,7)
"RTN","EDPBRM",26,0)
. . S X("status")=$P(X0,U,8)
"RTN","EDPBRM",27,0)
. . S X("multi")=$P(X0,U,9)
"RTN","EDPBRM",28,0)
. . S X("shared")=$P(X0,U,10)
"RTN","EDPBRM",29,0)
. . S X("board")=$P(X0,U,11)
"RTN","EDPBRM",30,0)
. . S X("color")=$P(X0,U,12)
"RTN","EDPBRM",31,0)
. . D XML^EDPX($$XMLA^EDPX("bed",.X))
"RTN","EDPBRM",32,0)
D XML^EDPX("")
"RTN","EDPBRM",33,0)
D CHOICES
"RTN","EDPBRM",34,0)
Q
"RTN","EDPBRM",35,0)
SAVE(REQ) ; Save the updated bed list
"RTN","EDPBRM",36,0)
; loop thru the records and update where changed
"RTN","EDPBRM",37,0)
N X,BED,ERR
"RTN","EDPBRM",38,0)
S X="bed-",ERR=""
"RTN","EDPBRM",39,0)
F S X=$O(REQ(X)) Q:$E(X,1,4)'="bed-" D
"RTN","EDPBRM",40,0)
. K BED S BED=""
"RTN","EDPBRM",41,0)
. D NVPARSE^EDPX(.BED,REQ(X,1))
"RTN","EDPBRM",42,0)
. I BED("changed") D UPD(.BED,.ERR)
"RTN","EDPBRM",43,0)
I $L(ERR) D XML^EDPX(""_ERR_"") Q
"RTN","EDPBRM",44,0)
D XML^EDPX("")
"RTN","EDPBRM",45,0)
Q
"RTN","EDPBRM",46,0)
UPD(FLD,ERRMSG) ; Add/Update Record
"RTN","EDPBRM",47,0)
N EDPIEN
"RTN","EDPBRM",48,0)
S EDPIEN=FLD("id")_","
"RTN","EDPBRM",49,0)
I FLD("id")=0 S EDPIEN="+1,"
"RTN","EDPBRM",50,0)
;
"RTN","EDPBRM",51,0)
N FDA,FDAIEN,DIERR,ERR
"RTN","EDPBRM",52,0)
S FDA(231.8,EDPIEN,.01)=FLD("name")
"RTN","EDPBRM",53,0)
S FDA(231.8,EDPIEN,.02)=EDPSITE
"RTN","EDPBRM",54,0)
S FDA(231.8,EDPIEN,.03)=FLD("area")
"RTN","EDPBRM",55,0)
S FDA(231.8,EDPIEN,.04)=FLD("inactive")
"RTN","EDPBRM",56,0)
S FDA(231.8,EDPIEN,.05)=FLD("seq")
"RTN","EDPBRM",57,0)
S FDA(231.8,EDPIEN,.06)=FLD("display")
"RTN","EDPBRM",58,0)
S FDA(231.8,EDPIEN,.07)=FLD("when")
"RTN","EDPBRM",59,0)
S FDA(231.8,EDPIEN,.08)=FLD("status")
"RTN","EDPBRM",60,0)
S FDA(231.8,EDPIEN,.09)=FLD("multi")
"RTN","EDPBRM",61,0)
S FDA(231.8,EDPIEN,.1)=FLD("shared")
"RTN","EDPBRM",62,0)
S FDA(231.8,EDPIEN,.11)=FLD("board")
"RTN","EDPBRM",63,0)
S FDA(231.8,EDPIEN,.12)=FLD("color")
"RTN","EDPBRM",64,0)
I EDPIEN="+1," D
"RTN","EDPBRM",65,0)
. D UPDATE^DIE("","FDA","FDAIEN","ERR")
"RTN","EDPBRM",66,0)
. I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. "
"RTN","EDPBRM",67,0)
E D
"RTN","EDPBRM",68,0)
. D FILE^DIE("","FDA","ERR")
"RTN","EDPBRM",69,0)
. I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. "
"RTN","EDPBRM",70,0)
Q
"RTN","EDPBRM",71,0)
CHOICES ; Load the choice lists
"RTN","EDPBRM",72,0)
N I,X
"RTN","EDPBRM",73,0)
F I=1:1 S X=$P($T(WHEN+I),";",3,99) Q:X="ZZZZZ" D XML^EDPX(X)
"RTN","EDPBRM",74,0)
D CODES^EDPQLE1("status","status")
"RTN","EDPBRM",75,0)
Q
"RTN","EDPBRM",76,0)
WHEN ; Display When Choices
"RTN","EDPBRM",77,0)
;;
"RTN","EDPBRM",78,0)
;;
"RTN","EDPBRM",79,0)
;;
"RTN","EDPBRM",80,0)
;;
"RTN","EDPBRM",81,0)
;;
"RTN","EDPBRM",82,0)
;;ZZZZZ
"RTN","EDPBRS")
0^5^B17301676
"RTN","EDPBRS",1,0)
EDPBRS ;SLC/KCM - Reset Board Configuration
"RTN","EDPBRS",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPBRS",3,0)
;
"RTN","EDPBRS",4,0)
RESET(AREA) ; Set initial configuration for site & area
"RTN","EDPBRS",5,0)
D SPEC(AREA),COLOR(AREA),ROOMS(AREA),PARAMS(AREA)
"RTN","EDPBRS",6,0)
Q
"RTN","EDPBRS",7,0)
SPEC(AREA) ; Set up default board spec
"RTN","EDPBRS",8,0)
; assumes site, area passed in
"RTN","EDPBRS",9,0)
N I,X,WP
"RTN","EDPBRS",10,0)
F I=1:1 S X=$P($T(BRDXML+I),";",3,99) Q:$E(X,1,5)="zzzzz" S WP(I)=X
"RTN","EDPBRS",11,0)
D WP^DIE(231.9,AREA_",",2,"","WP")
"RTN","EDPBRS",12,0)
I $D(DIERR) W !,"spec update failed" Q
"RTN","EDPBRS",13,0)
Q
"RTN","EDPBRS",14,0)
BRDXML ; XML for the board spec
"RTN","EDPBRS",15,0)
;;
"RTN","EDPBRS",16,0)
;;
"RTN","EDPBRS",17,0)
;;
"RTN","EDPBRS",18,0)
;;
"RTN","EDPBRS",19,0)
;;
"RTN","EDPBRS",20,0)
;;
"RTN","EDPBRS",21,0)
;;
"RTN","EDPBRS",22,0)
;;
"RTN","EDPBRS",23,0)
;;
"RTN","EDPBRS",24,0)
;;
"RTN","EDPBRS",25,0)
;;
"RTN","EDPBRS",26,0)
;;
"RTN","EDPBRS",27,0)
;;
"RTN","EDPBRS",28,0)
;;zzzzz
"RTN","EDPBRS",29,0)
;;
"RTN","EDPBRS",30,0)
COLOR(AREA) ; Set up default colors
"RTN","EDPBRS",31,0)
N I,X,WP
"RTN","EDPBRS",32,0)
F I=1:1 S X=$P($T(CLRXML+I),";",3,99) Q:$E(X,1,5)="zzzzz" S WP(I)=X
"RTN","EDPBRS",33,0)
D WP^DIE(231.9,AREA_",",3,"","WP")
"RTN","EDPBRS",34,0)
I $D(DIERR) W !,"spec update failed" Q
"RTN","EDPBRS",35,0)
Q
"RTN","EDPBRS",36,0)
CLRXML ; XML for the color spec
"RTN","EDPBRS",37,0)
;;
"RTN","EDPBRS",38,0)
;;
"RTN","EDPBRS",39,0)
;;
"RTN","EDPBRS",40,0)
;;
"RTN","EDPBRS",41,0)
;;
"RTN","EDPBRS",42,0)
;;
"RTN","EDPBRS",43,0)
;;
"RTN","EDPBRS",44,0)
;;
"RTN","EDPBRS",45,0)
;;
"RTN","EDPBRS",46,0)
;;
"RTN","EDPBRS",47,0)
;;
"RTN","EDPBRS",48,0)
;;
"RTN","EDPBRS",49,0)
;;
"RTN","EDPBRS",50,0)
;;
"RTN","EDPBRS",51,0)
;;
"RTN","EDPBRS",52,0)
;;
"RTN","EDPBRS",53,0)
;;
"RTN","EDPBRS",54,0)
;;
"RTN","EDPBRS",55,0)
;;
"RTN","EDPBRS",56,0)
;;
"RTN","EDPBRS",57,0)
;;
"RTN","EDPBRS",58,0)
;;
"RTN","EDPBRS",59,0)
;;
"RTN","EDPBRS",60,0)
;;
"RTN","EDPBRS",61,0)
;;zzzzz
"RTN","EDPBRS",62,0)
;;
"RTN","EDPBRS",63,0)
ROOMS(AREA) ; baseline rooms
"RTN","EDPBRS",64,0)
N I,X
"RTN","EDPBRS",65,0)
F I=1:1 S X=$P($T(ROOMLST+I),";",3,99) Q:$E(X,1,5)="zzzzz" D
"RTN","EDPBRS",66,0)
. N FDA,FDAIEN,DIERR,ERR
"RTN","EDPBRS",67,0)
. S FDA(231.8,"+1,",.01)=$P(X,U)
"RTN","EDPBRS",68,0)
. S FDA(231.8,"+1,",.02)=EDPSITE
"RTN","EDPBRS",69,0)
. S FDA(231.8,"+1,",.03)=AREA
"RTN","EDPBRS",70,0)
. S FDA(231.8,"+1,",.05)=$P(X,U,3)
"RTN","EDPBRS",71,0)
. S FDA(231.8,"+1,",.06)=$P(X,U,2)
"RTN","EDPBRS",72,0)
. S FDA(231.8,"+1,",.07)=$P(X,U,4)
"RTN","EDPBRS",73,0)
. S FDA(231.8,"+1,",.09)=$P(X,U,5)
"RTN","EDPBRS",74,0)
. D UPDATE^DIE("","FDA","FDAIEN","ERR")
"RTN","EDPBRS",75,0)
Q
"RTN","EDPBRS",76,0)
ROOMLST ; Name^Display Name^Seq^When^Multi
"RTN","EDPBRS",77,0)
;;Waiting^WAIT^1^0^1
"RTN","EDPBRS",78,0)
;;Ambulance^AMBU^5^0^1
"RTN","EDPBRS",79,0)
;;Hallway^HALL^10^0^1
"RTN","EDPBRS",80,0)
;;General Radiology^RAD^110^0^1
"RTN","EDPBRS",81,0)
;;CT^CT^120^0^1
"RTN","EDPBRS",82,0)
;;MRI^MRI^130^0^1
"RTN","EDPBRS",83,0)
;;Cardiac Cath^CATH^140^0^1
"RTN","EDPBRS",84,0)
;;Cardiac Stress Test^STEST^150^0^1
"RTN","EDPBRS",85,0)
;;Dialysis^DIAL^160^0^1
"RTN","EDPBRS",86,0)
;;Subspecialty Clinic^SCLIN^170^0^1
"RTN","EDPBRS",87,0)
;;zzzzz
"RTN","EDPBRS",88,0)
PARAMS(AREA) ; baseline parameters
"RTN","EDPBRS",89,0)
N FDA,DIERR
"RTN","EDPBRS",90,0)
S AREA=AREA_","
"RTN","EDPBRS",91,0)
S FDA(231.9,AREA,1.1)=1
"RTN","EDPBRS",92,0)
S FDA(231.9,AREA,1.2)=1
"RTN","EDPBRS",93,0)
S FDA(231.9,AREA,1.3)=1
"RTN","EDPBRS",94,0)
S FDA(231.9,AREA,1.4)=1
"RTN","EDPBRS",95,0)
S FDA(231.9,AREA,1.5)=300
"RTN","EDPBRS",96,0)
S FDA(231.9,AREA,1.6)=420
"RTN","EDPBRS",97,0)
S FDA(231.9,AREA,1.7)=480
"RTN","EDPBRS",98,0)
S FDA(231.9,AREA,1.8)=1
"RTN","EDPBRS",99,0)
D FILE^DIE("","FDA","ERR")
"RTN","EDPBRS",100,0)
Q
"RTN","EDPBSL")
0^6^B10687935
"RTN","EDPBSL",1,0)
EDPBSL ;SLC/KCM - Selection List Configuration
"RTN","EDPBSL",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPBSL",3,0)
;
"RTN","EDPBSL",4,0)
LOAD(AREA) ; Load selection lists for area
"RTN","EDPBSL",5,0)
;D LIST("acuity","Acuity")
"RTN","EDPBSL",6,0)
D LIST("status","Status")
"RTN","EDPBSL",7,0)
D LIST("arrival","Mode of Arrival")
"RTN","EDPBSL",8,0)
D LIST("disposition","Disposition")
"RTN","EDPBSL",9,0)
D LIST("delay","Delay Reason")
"RTN","EDPBSL",10,0)
Q
"RTN","EDPBSL",11,0)
LIST(NM,TITLE) ; build XML for selection list
"RTN","EDPBSL",12,0)
N SETNM S SETNM=EDPSITE_"."_NM
"RTN","EDPBSL",13,0)
I '$D(^EDPB(233.2,"B",SETNM)) S SETNM="edp."_NM
"RTN","EDPBSL",14,0)
D XML^EDPX("<"_NM_" title='"_TITLE_"'>")
"RTN","EDPBSL",15,0)
N IEN,SEQ,DA,X0
"RTN","EDPBSL",16,0)
S IEN=$O(^EDPB(233.2,"B",SETNM,0))
"RTN","EDPBSL",17,0)
S SEQ=0 F S SEQ=$O(^EDPB(233.2,IEN,1,"B",SEQ)) Q:'SEQ D
"RTN","EDPBSL",18,0)
. S DA=0 F S DA=$O(^EDPB(233.2,IEN,1,"B",SEQ,DA)) Q:'DA D
"RTN","EDPBSL",19,0)
. . S X0=^EDPB(233.2,IEN,1,DA,0)
"RTN","EDPBSL",20,0)
. . N X
"RTN","EDPBSL",21,0)
. . S X("seq")=SEQ
"RTN","EDPBSL",22,0)
. . S X("id")=$P(X0,U,2)
"RTN","EDPBSL",23,0)
. . S X("inact")=$P(X0,U,3)
"RTN","EDPBSL",24,0)
. . S X("show")=$P(X0,U,4)
"RTN","EDPBSL",25,0)
. . S X("abbr")=$P(X0,U,5)
"RTN","EDPBSL",26,0)
. . ; switch to entry in 233.1 now
"RTN","EDPBSL",27,0)
. . S X0=^EDPB(233.1,X("id"),0)
"RTN","EDPBSL",28,0)
. . I X("show")="" S X("show")=$P(X0,U,2)
"RTN","EDPBSL",29,0)
. . I X("abbr")="" S X("abbr")=$P(X0,U,3)
"RTN","EDPBSL",30,0)
. . S X("flag")=$P(X0,U,5)
"RTN","EDPBSL",31,0)
. . D XML^EDPX($$XMLA^EDPX("code",.X))
"RTN","EDPBSL",32,0)
D XML^EDPX(""_NM_">")
"RTN","EDPBSL",33,0)
Q
"RTN","EDPBSL",34,0)
SAVE(REQ) ; save the selection changes
"RTN","EDPBSL",35,0)
N CTYP,SET,SETNM,CODE,X,EDPERR
"RTN","EDPBSL",36,0)
S EDPERR=""
"RTN","EDPBSL",37,0)
F CTYP="status","disposition","delay","arrival" D
"RTN","EDPBSL",38,0)
. I $E($O(REQ(CTYP)),1,$L(CTYP))'=CTYP Q
"RTN","EDPBSL",39,0)
. S SETNM=EDPSITE_"."_CTYP,SET=$O(^EDPB(233.2,"B",SETNM,0))
"RTN","EDPBSL",40,0)
. I 'SET D NEWSET(SETNM) S SET=$O(^EDPB(233.2,"B",SETNM,0))
"RTN","EDPBSL",41,0)
. D CLEARSET(SET)
"RTN","EDPBSL",42,0)
. S X=CTYP F S X=$O(REQ(X)) Q:$E(X,1,$L(CTYP))'=CTYP D
"RTN","EDPBSL",43,0)
. . K CODE S CODE="" D NVPARSE^EDPX(.CODE,REQ(X,1))
"RTN","EDPBSL",44,0)
. . I CODE("id")<1 D ADDCODE(CTYP,.CODE)
"RTN","EDPBSL",45,0)
. . D ADD2SET(SET,.CODE)
"RTN","EDPBSL",46,0)
I $L(EDPERR) D XML^EDPX(""_EDPERR_"") Q
"RTN","EDPBSL",47,0)
D XML^EDPX("")
"RTN","EDPBSL",48,0)
Q
"RTN","EDPBSL",49,0)
NEWSET(SETNM) ; Create a new code set for a site
"RTN","EDPBSL",50,0)
N FDA,FDAIEN,DIERR,ERR
"RTN","EDPBSL",51,0)
S FDA(233.2,"+1,",.01)=SETNM
"RTN","EDPBSL",52,0)
D UPDATE^DIE("","FDA","FDAIEN","ERR")
"RTN","EDPBSL",53,0)
I $D(DIERR) S EDPERR=EDPERR_"new code set failed;"
"RTN","EDPBSL",54,0)
Q
"RTN","EDPBSL",55,0)
CLEARSET(SET) ; Clear the CODES mulitple
"RTN","EDPBSL",56,0)
I '$O(^EDPB(233.2,SET,1,0)) Q ; no child nodes
"RTN","EDPBSL",57,0)
N DA,DIK S DA=0,DA(1)=SET,DIK="^EDPB(233.2,"_DA(1)_",1,"
"RTN","EDPBSL",58,0)
F S DA=$O(^EDPB(233.2,SET,1,DA)) Q:'DA D ^DIK
"RTN","EDPBSL",59,0)
Q
"RTN","EDPBSL",60,0)
ADDCODE(CTYP,X) ; Add a new code to the TRACKING CODE file
"RTN","EDPBSL",61,0)
Q:X("id")'=0
"RTN","EDPBSL",62,0)
N NAME,DNAME,I
"RTN","EDPBSL",63,0)
S NAME=EDPSITE_"."_CTYP_"."_$TR(X("show")," ","")
"RTN","EDPBSL",64,0)
I $O(^EDPB(233.1,"B",NAME,0)) D
"RTN","EDPBSL",65,0)
. F I=1:1:99 Q:'$O(^EDPB(233.1,"B",NAME_I,0))
"RTN","EDPBSL",66,0)
. S NAME=NAME_I
"RTN","EDPBSL",67,0)
N FDA,FDAIEN,DIERR,ERR
"RTN","EDPBSL",68,0)
S FDA(233.1,"+1,",.01)=NAME
"RTN","EDPBSL",69,0)
S FDA(233.1,"+1,",.02)=X("show")
"RTN","EDPBSL",70,0)
S FDA(233.1,"+1,",.03)=X("abbr")
"RTN","EDPBSL",71,0)
S FDA(233.1,"+1,",.05)=X("flag")
"RTN","EDPBSL",72,0)
D UPDATE^DIE("","FDA","FDAIEN","ERR")
"RTN","EDPBSL",73,0)
I $D(DIERR) S EDPERR=EDPERR_"add code "_NAME_"failed;"
"RTN","EDPBSL",74,0)
S X("id")=FDAIEN(1),X("nm")=NAME
"RTN","EDPBSL",75,0)
Q
"RTN","EDPBSL",76,0)
ADD2SET(SET,X) ; Add a new code to the CODES multiple
"RTN","EDPBSL",77,0)
N FDA,FDAIEN,DIERR,ERR
"RTN","EDPBSL",78,0)
S FDA(233.21,"+1,"_SET_",",.01)=X("seq")
"RTN","EDPBSL",79,0)
S FDA(233.21,"+1,"_SET_",",.02)=X("id")
"RTN","EDPBSL",80,0)
S FDA(233.21,"+1,"_SET_",",.03)=X("inact")
"RTN","EDPBSL",81,0)
S FDA(233.21,"+1,"_SET_",",.04)=X("show")
"RTN","EDPBSL",82,0)
S FDA(233.21,"+1,"_SET_",",.05)=X("abbr")
"RTN","EDPBSL",83,0)
D UPDATE^DIE("","FDA","FDAIEN","ERR")
"RTN","EDPBSL",84,0)
I $D(DIERR) S EDPERR=EDPERR_"add to set "_X("show")_" failed;"
"RTN","EDPBSL",85,0)
Q
"RTN","EDPBST")
0^7^B5671603
"RTN","EDPBST",1,0)
EDPBST ;SLC/KCM - Staff Configuration
"RTN","EDPBST",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPBST",3,0)
;
"RTN","EDPBST",4,0)
MATCH(X) ; Return matching providers
"RTN","EDPBST",5,0)
Q
"RTN","EDPBST",6,0)
LOAD(AREA) ; Return nurse and provider sources, staff config
"RTN","EDPBST",7,0)
D XML^EDPX(""),ACTIVE(AREA,"P"),XML^EDPX("")
"RTN","EDPBST",8,0)
D XML^EDPX(""),ACTIVE(AREA,"R"),XML^EDPX("")
"RTN","EDPBST",9,0)
D XML^EDPX(""),ACTIVE(AREA,"N"),XML^EDPX("")
"RTN","EDPBST",10,0)
Q
"RTN","EDPBST",11,0)
ACTIVE(AREA,ROLE) ; build list of active for a role
"RTN","EDPBST",12,0)
N IEN,X0,X
"RTN","EDPBST",13,0)
S IEN=0 F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
"RTN","EDPBST",14,0)
. S X0=^EDPB(231.7,IEN,0)
"RTN","EDPBST",15,0)
. S X("nm")=$P(X0,U)
"RTN","EDPBST",16,0)
. S X("duz")=$P(X0,U,5)
"RTN","EDPBST",17,0)
. S X("role")=$P(X0,U,6)
"RTN","EDPBST",18,0)
. S X("itl")=$P(X0,U,7)
"RTN","EDPBST",19,0)
. S X("clr")=$P(X0,U,8)
"RTN","EDPBST",20,0)
. D XML^EDPX($$XMLA^EDPX("staff",.X))
"RTN","EDPBST",21,0)
Q
"RTN","EDPBST",22,0)
SAVE(REQ) ; save updated staff members
"RTN","EDPBST",23,0)
N X,STAFF,ERR,EDPAREA
"RTN","EDPBST",24,0)
S EDPAREA=$G(REQ("area",1))
"RTN","EDPBST",25,0)
I EDPAREA="" D XML^EDPX("Missing Area") Q
"RTN","EDPBST",26,0)
;
"RTN","EDPBST",27,0)
S X="staff-",ERR=""
"RTN","EDPBST",28,0)
F S X=$O(REQ(X)) Q:$E(X,1,6)'="staff-" D
"RTN","EDPBST",29,0)
. K STAFF S STAFF=""
"RTN","EDPBST",30,0)
. D NVPARSE^EDPX(.STAFF,REQ(X,1))
"RTN","EDPBST",31,0)
. I STAFF("chg") D UPD(.STAFF,.ERR)
"RTN","EDPBST",32,0)
;
"RTN","EDPBST",33,0)
I $L(ERR) D XML^EDPX(""_ERR_"") Q
"RTN","EDPBST",34,0)
D XML^EDPX("")
"RTN","EDPBST",35,0)
Q
"RTN","EDPBST",36,0)
UPD(FLD,ERRMSG) ; Add/Update Record (expects EDPAREA, EDPSITE to be defined)
"RTN","EDPBST",37,0)
N EDPIEN
"RTN","EDPBST",38,0)
S EDPIEN=$O(^EDPB(231.7,"AD",EDPSITE,EDPAREA,+FLD("duz"),0))_","
"RTN","EDPBST",39,0)
I 'EDPIEN,FLD("inact") Q ; don't add inactive selection
"RTN","EDPBST",40,0)
I 'EDPIEN S EDPIEN="+1,"
"RTN","EDPBST",41,0)
;
"RTN","EDPBST",42,0)
N FDA,FDAIEN,DIERR,ERR
"RTN","EDPBST",43,0)
S FDA(231.7,EDPIEN,.01)=FLD("nm")
"RTN","EDPBST",44,0)
S FDA(231.7,EDPIEN,.02)=EDPSITE
"RTN","EDPBST",45,0)
S FDA(231.7,EDPIEN,.03)=EDPAREA
"RTN","EDPBST",46,0)
S FDA(231.7,EDPIEN,.04)=FLD("inact")
"RTN","EDPBST",47,0)
S FDA(231.7,EDPIEN,.05)=FLD("duz")
"RTN","EDPBST",48,0)
S FDA(231.7,EDPIEN,.06)=FLD("role")
"RTN","EDPBST",49,0)
S FDA(231.7,EDPIEN,.07)=FLD("itl")
"RTN","EDPBST",50,0)
S FDA(231.7,EDPIEN,.08)=FLD("clr")
"RTN","EDPBST",51,0)
I EDPIEN="+1," D
"RTN","EDPBST",52,0)
. D UPDATE^DIE("","FDA","FDAIEN","ERR")
"RTN","EDPBST",53,0)
. I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. "
"RTN","EDPBST",54,0)
E D
"RTN","EDPBST",55,0)
. D FILE^DIE("","FDA","ERR")
"RTN","EDPBST",56,0)
. I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. "
"RTN","EDPBST",57,0)
Q
"RTN","EDPCSV")
0^8^B1174381
"RTN","EDPCSV",1,0)
EDPCSV ;SLC/MKB - CSV format utilities
"RTN","EDPCSV",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPCSV",3,0)
;
"RTN","EDPCSV",4,0)
EN(REQ) ; Controller for HTTP request
"RTN","EDPCSV",5,0)
;
"RTN","EDPCSV",6,0)
S:'$G(EDPTEST) $ETRAP="D ^%ZTER H"
"RTN","EDPCSV",7,0)
;
"RTN","EDPCSV",8,0)
N EDPSITE,EDPHTTP,EDPNULL,EDPFAIL,EDPCSV,I
"RTN","EDPCSV",9,0)
D UESREQ^EDPX(.REQ) ; unescape the posted data
"RTN","EDPCSV",10,0)
D SET^EDPZCTRL ; set up the environment, use null device
"RTN","EDPCSV",11,0)
;
"RTN","EDPCSV",12,0)
D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"),1)
"RTN","EDPCSV",13,0)
;
"RTN","EDPCSV",14,0)
U EDPHTTP
"RTN","EDPCSV",15,0)
;W "",!
"RTN","EDPCSV",16,0)
S I=0 F S I=$O(EDPCSV(I)) Q:'I W EDPCSV(I),!
"RTN","EDPCSV",17,0)
;W "",!
"RTN","EDPCSV",18,0)
Q
"RTN","EDPCSV",19,0)
;
"RTN","EDPCSV",20,0)
VAL(X) ; return value from request
"RTN","EDPCSV",21,0)
Q $G(REQ(X,1))
"RTN","EDPCSV",22,0)
;
"RTN","EDPCSV",23,0)
ADD(X) ; -- add line X
"RTN","EDPCSV",24,0)
S EDPCSV=+$G(EDPCSV)+1,EDPCSV(EDPCSV)=X
"RTN","EDPCSV",25,0)
Q
"RTN","EDPCSV",26,0)
;
"RTN","EDPCSV",27,0)
BLANK ; -- add blank line
"RTN","EDPCSV",28,0)
S EDPCSV=+$G(EDPCSV)+1,EDPCSV(EDPCSV)=""
"RTN","EDPCSV",29,0)
Q
"RTN","EDPCTRL")
0^9^B34504423
"RTN","EDPCTRL",1,0)
EDPCTRL ;SLC/KCM - Controller for ED Tracking
"RTN","EDPCTRL",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPCTRL",3,0)
;
"RTN","EDPCTRL",4,0)
RPC(EDPXML,SESS,PARAMS) ; Process request via RPC instead of CSP
"RTN","EDPCTRL",5,0)
N X,REQ,EDPSITE,EDPUSER
"RTN","EDPCTRL",6,0)
K EDPXML
"RTN","EDPCTRL",7,0)
S EDPUSER=$P($G(SESS),U),EDPSITE=$P($G(SESS),U,2)
"RTN","EDPCTRL",8,0)
S X="" F S X=$O(PARAMS(X)) Q:X="" S REQ(X,1)=PARAMS(X)
"RTN","EDPCTRL",9,0)
;
"RTN","EDPCTRL",10,0)
COMMON ; Come here for both CSP and RPC Mode
"RTN","EDPCTRL",11,0)
;
"RTN","EDPCTRL",12,0)
N EDPFAIL,CMD
"RTN","EDPCTRL",13,0)
S CMD=$G(REQ("command",1))
"RTN","EDPCTRL",14,0)
;
"RTN","EDPCTRL",15,0)
; switch on command
"RTN","EDPCTRL",16,0)
;
"RTN","EDPCTRL",17,0)
; ---------------------------------
"RTN","EDPCTRL",18,0)
;
"RTN","EDPCTRL",19,0)
; initUser -- MOVED TO FACILITY
"RTN","EDPCTRL",20,0)
; return
"RTN","EDPCTRL",21,0)
; ...
"RTN","EDPCTRL",22,0)
I CMD="initUser" D G OUT
"RTN","EDPCTRL",23,0)
. D SESS^EDPFAA,VIEWS^EDPFAA
"RTN","EDPCTRL",24,0)
;
"RTN","EDPCTRL",25,0)
; ---------------------------------
"RTN","EDPCTRL",26,0)
;
"RTN","EDPCTRL",27,0)
; matchPatients -- MOVED TO FACILITY
"RTN","EDPCTRL",28,0)
; return ...
"RTN","EDPCTRL",29,0)
I CMD="matchPatients" D G OUT
"RTN","EDPCTRL",30,0)
. D MATCH^EDPFPTL($$VAL("partial"))
"RTN","EDPCTRL",31,0)
;
"RTN","EDPCTRL",32,0)
; ---------------------------------
"RTN","EDPCTRL",33,0)
;
"RTN","EDPCTRL",34,0)
; getPatientRecordFlags -- MOVED TO FACILITY
"RTN","EDPCTRL",35,0)
; return
"RTN","EDPCTRL",36,0)
;
"RTN","EDPCTRL",37,0)
I CMD="getPatientRecordFlags" D G OUT
"RTN","EDPCTRL",38,0)
. D SEC^EDPFPTS($$VAL("patient"))
"RTN","EDPCTRL",39,0)
;
"RTN","EDPCTRL",40,0)
; ---------------------------------
"RTN","EDPCTRL",41,0)
;
"RTN","EDPCTRL",42,0)
; saveSecurityLog -- MOVED TO FACILITY
"RTN","EDPCTRL",43,0)
; return
"RTN","EDPCTRL",44,0)
I CMD="saveSecurityLog" D G OUT
"RTN","EDPCTRL",45,0)
. D LOG^EDPFPTS($$VAL("patient"))
"RTN","EDPCTRL",46,0)
;
"RTN","EDPCTRL",47,0)
; ---------------------------------
"RTN","EDPCTRL",48,0)
;
"RTN","EDPCTRL",49,0)
; getLexiconMatches -- MOVED TO FACILITY
"RTN","EDPCTRL",50,0)
; return ...
"RTN","EDPCTRL",51,0)
I CMD="getLexiconMatches" D G OUT
"RTN","EDPCTRL",52,0)
. D ICD^EDPFLEX($$VAL("text"))
"RTN","EDPCTRL",53,0)
;
"RTN","EDPCTRL",54,0)
; ---------------------------------
"RTN","EDPCTRL",55,0)
;
"RTN","EDPCTRL",56,0)
; initLogArea
"RTN","EDPCTRL",57,0)
; return
"RTN","EDPCTRL",58,0)
;
"RTN","EDPCTRL",59,0)
; ...
"RTN","EDPCTRL",60,0)
I CMD="initLogArea" D G OUT
"RTN","EDPCTRL",61,0)
. I $L($G(REQ("logEntry",1))) D UPD^EDPLOG(REQ("logEntry",1)) Q:$G(EDPFAIL)
"RTN","EDPCTRL",62,0)
. D PARAM^EDPQAR($$VAL("area"))
"RTN","EDPCTRL",63,0)
. D GET^EDPQLP($$VAL("area"),-1) ;-1 = force refresh
"RTN","EDPCTRL",64,0)
;
"RTN","EDPCTRL",65,0)
; ---------------------------------
"RTN","EDPCTRL",66,0)
;
"RTN","EDPCTRL",67,0)
; checkLogin -- OBSOLETE
"RTN","EDPCTRL",68,0)
; return
"RTN","EDPCTRL",69,0)
I CMD="checkLogin" D SESS^EDPFAA G OUT
"RTN","EDPCTRL",70,0)
;
"RTN","EDPCTRL",71,0)
; ---------------------------------
"RTN","EDPCTRL",72,0)
;
"RTN","EDPCTRL",73,0)
; initTracking
"RTN","EDPCTRL",74,0)
; return ...
"RTN","EDPCTRL",75,0)
I CMD="initTracking" D DFLTAREA^EDPQAR G OUT
"RTN","EDPCTRL",76,0)
;
"RTN","EDPCTRL",77,0)
; ---------------------------------
"RTN","EDPCTRL",78,0)
;
"RTN","EDPCTRL",79,0)
; refreshLogSelector
"RTN","EDPCTRL",80,0)
; return ...
"RTN","EDPCTRL",81,0)
I CMD="refreshLogSelector" D G OUT
"RTN","EDPCTRL",82,0)
. D GET^EDPQLP($$VAL("area"),$$VAL("token"))
"RTN","EDPCTRL",83,0)
;
"RTN","EDPCTRL",84,0)
; ---------------------------------
"RTN","EDPCTRL",85,0)
;
"RTN","EDPCTRL",86,0)
; switchLogEntry
"RTN","EDPCTRL",87,0)
; return
"RTN","EDPCTRL",88,0)
; log fields...
"RTN","EDPCTRL",89,0)
; choice lists...
"RTN","EDPCTRL",90,0)
I CMD="switchLogEntry" D G OUT
"RTN","EDPCTRL",91,0)
. I $L($G(REQ("logEntry",1))) D UPD^EDPLOG(REQ("logEntry",1)) Q:$G(EDPFAIL)
"RTN","EDPCTRL",92,0)
. D GET^EDPQLE($$VAL("logID"),$$VAL("getChoices"))
"RTN","EDPCTRL",93,0)
;
"RTN","EDPCTRL",94,0)
; ---------------------------------
"RTN","EDPCTRL",95,0)
;
"RTN","EDPCTRL",96,0)
; saveLogEntry
"RTN","EDPCTRL",97,0)
; return
"RTN","EDPCTRL",98,0)
I CMD="saveLogEntry" D G OUT
"RTN","EDPCTRL",99,0)
. D UPD^EDPLOG(REQ("logEntry",1)) Q:$G(EDPFAIL)
"RTN","EDPCTRL",100,0)
;
"RTN","EDPCTRL",101,0)
; ---------------------------------
"RTN","EDPCTRL",102,0)
;
"RTN","EDPCTRL",103,0)
; addPatientToLog
"RTN","EDPCTRL",104,0)
; return
"RTN","EDPCTRL",105,0)
;
"RTN","EDPCTRL",106,0)
; log fields...
"RTN","EDPCTRL",107,0)
; choice lists...
"RTN","EDPCTRL",108,0)
; ...
"RTN","EDPCTRL",109,0)
I CMD="addPatientToLog" D G OUT
"RTN","EDPCTRL",110,0)
. D ADD^EDPLOGA($$VAL("addPatient"),$$VAL("area"),$$VAL("localTime"),$$VAL("getChoices"))
"RTN","EDPCTRL",111,0)
. Q:$G(EDPFAIL)
"RTN","EDPCTRL",112,0)
. D GET^EDPQLP($$VAL("area"),-1)
"RTN","EDPCTRL",113,0)
;
"RTN","EDPCTRL",114,0)
; ---------------------------------
"RTN","EDPCTRL",115,0)
;
"RTN","EDPCTRL",116,0)
; deleteStubEntry
"RTN","EDPCTRL",117,0)
; return
"RTN","EDPCTRL",118,0)
I CMD="deleteStubEntry" D G OUT
"RTN","EDPCTRL",119,0)
. D DEL^EDPLOGA($$VAL("area"),$$VAL("logID"))
"RTN","EDPCTRL",120,0)
;
"RTN","EDPCTRL",121,0)
; ---------------------------------
"RTN","EDPCTRL",122,0)
;
"RTN","EDPCTRL",123,0)
; removeLogEntry
"RTN","EDPCTRL",124,0)
; return
"RTN","EDPCTRL",125,0)
; ...
"RTN","EDPCTRL",126,0)
I CMD="removeLogEntry" D G OUT
"RTN","EDPCTRL",127,0)
. D UPD^EDPLOG(REQ("logEntry",1),1) Q:$G(EDPFAIL)
"RTN","EDPCTRL",128,0)
. D GET^EDPQLP($$VAL("area"),-1)
"RTN","EDPCTRL",129,0)
;
"RTN","EDPCTRL",130,0)
; ---------------------------------
"RTN","EDPCTRL",131,0)
;
"RTN","EDPCTRL",132,0)
; initDisplayBoard
"RTN","EDPCTRL",133,0)
; return
"RTN","EDPCTRL",134,0)
; ......
"RTN","EDPCTRL",135,0)
;
...
"RTN","EDPCTRL",136,0)
I CMD="initDisplayBoard" D G OUT
"RTN","EDPCTRL",137,0)
. D GET^EDPQDBS($$VAL("area"))
"RTN","EDPCTRL",138,0)
. D GET^EDPQDB($$VAL("area"),$$VAL("board"),-1)
"RTN","EDPCTRL",139,0)
;
"RTN","EDPCTRL",140,0)
; ---------------------------------
"RTN","EDPCTRL",141,0)
;
"RTN","EDPCTRL",142,0)
; refreshDisplayBoard
"RTN","EDPCTRL",143,0)
; return
...
"RTN","EDPCTRL",144,0)
I CMD="refreshDisplayBoard" D G OUT
"RTN","EDPCTRL",145,0)
. D GET^EDPQDB($$VAL("area"),$$VAL("board"),-1)
"RTN","EDPCTRL",146,0)
;
"RTN","EDPCTRL",147,0)
; ---------------------------------
"RTN","EDPCTRL",148,0)
;
"RTN","EDPCTRL",149,0)
; matchClosed
"RTN","EDPCTRL",150,0)
; return ...
"RTN","EDPCTRL",151,0)
I CMD="matchClosed" D G OUT
"RTN","EDPCTRL",152,0)
. D CLOSED^EDPQLP($$VAL("area"),$$VAL("partial"))
"RTN","EDPCTRL",153,0)
;
"RTN","EDPCTRL",154,0)
; ---------------------------------
"RTN","EDPCTRL",155,0)
;
"RTN","EDPCTRL",156,0)
; loadConfiguration
"RTN","EDPCTRL",157,0)
; return
...
"RTN","EDPCTRL",158,0)
; ......
"RTN","EDPCTRL",159,0)
; ...
"RTN","EDPCTRL",160,0)
; ...
"RTN","EDPCTRL",161,0)
; ...
"RTN","EDPCTRL",162,0)
; ...
"RTN","EDPCTRL",163,0)
; ...
"RTN","EDPCTRL",164,0)
I CMD="loadConfiguration" D G OUT
"RTN","EDPCTRL",165,0)
. D LOADBRD^EDPBCF($$VAL("area"))
"RTN","EDPCTRL",166,0)
;
"RTN","EDPCTRL",167,0)
; ---------------------------------
"RTN","EDPCTRL",168,0)
;
"RTN","EDPCTRL",169,0)
; saveConfigBoard
"RTN","EDPCTRL",170,0)
; return
"RTN","EDPCTRL",171,0)
I CMD="saveConfigBoard" D G OUT
"RTN","EDPCTRL",172,0)
. D SAVEBRD^EDPBCF(.REQ) ; pass whole request for parsing
"RTN","EDPCTRL",173,0)
;
"RTN","EDPCTRL",174,0)
; ---------------------------------
"RTN","EDPCTRL",175,0)
;
"RTN","EDPCTRL",176,0)
; saveBedConfig
"RTN","EDPCTRL",177,0)
; return
"RTN","EDPCTRL",178,0)
I CMD="saveBedConfig" D G OUT
"RTN","EDPCTRL",179,0)
. D SAVE^EDPBRM(.REQ) ; pass whole request for parsing
"RTN","EDPCTRL",180,0)
;
"RTN","EDPCTRL",181,0)
; ---------------------------------
"RTN","EDPCTRL",182,0)
;
"RTN","EDPCTRL",183,0)
; saveColorConfig
"RTN","EDPCTRL",184,0)
; return
"RTN","EDPCTRL",185,0)
I CMD="saveColorConfig" D G OUT
"RTN","EDPCTRL",186,0)
. D SAVE^EDPBCM(.REQ) ; pass whole request for parsing
"RTN","EDPCTRL",187,0)
;
"RTN","EDPCTRL",188,0)
; ---------------------------------
"RTN","EDPCTRL",189,0)
;
"RTN","EDPCTRL",190,0)
; loadSelectionConfig
"RTN","EDPCTRL",191,0)
; return
.......
"RTN","EDPCTRL",192,0)
I CMD="loadSelectionConfig" D G OUT
"RTN","EDPCTRL",193,0)
. D LOAD^EDPBSL($$VAL("area"))
"RTN","EDPCTRL",194,0)
;
"RTN","EDPCTRL",195,0)
; ---------------------------------
"RTN","EDPCTRL",196,0)
;
"RTN","EDPCTRL",197,0)
; loadStaffConfig
"RTN","EDPCTRL",198,0)
; return providers, nurses, staff for area
"RTN","EDPCTRL",199,0)
I CMD="loadStaffConfig" D G OUT
"RTN","EDPCTRL",200,0)
. D LOAD^EDPBST($$VAL("area"))
"RTN","EDPCTRL",201,0)
;
"RTN","EDPCTRL",202,0)
; ---------------------------------
"RTN","EDPCTRL",203,0)
;
"RTN","EDPCTRL",204,0)
; saveStaffConfig
"RTN","EDPCTRL",205,0)
; return
"RTN","EDPCTRL",206,0)
I CMD="saveStaffConfig" D G OUT
"RTN","EDPCTRL",207,0)
. D SAVE^EDPBST(.REQ) ; pass whole request for parsing
"RTN","EDPCTRL",208,0)
;
"RTN","EDPCTRL",209,0)
; ---------------------------------
"RTN","EDPCTRL",210,0)
;
"RTN","EDPCTRL",211,0)
; matchPersons
"RTN","EDPCTRL",212,0)
; return ...
"RTN","EDPCTRL",213,0)
I CMD="matchPersons" D G OUT
"RTN","EDPCTRL",214,0)
. D MATCH^EDPFPER($$VAL("partial"),$$VAL("personType"))
"RTN","EDPCTRL",215,0)
;
"RTN","EDPCTRL",216,0)
; ---------------------------------
"RTN","EDPCTRL",217,0)
;
"RTN","EDPCTRL",218,0)
; saveParamConfig
"RTN","EDPCTRL",219,0)
; return
"RTN","EDPCTRL",220,0)
I CMD="saveParamConfig" D G OUT
"RTN","EDPCTRL",221,0)
. D SAVE^EDPBPM($$VAL("area"),$$VAL("param"))
"RTN","EDPCTRL",222,0)
;
"RTN","EDPCTRL",223,0)
; ---------------------------------
"RTN","EDPCTRL",224,0)
;
"RTN","EDPCTRL",225,0)
; saveSelectionConfig
"RTN","EDPCTRL",226,0)
; return
"RTN","EDPCTRL",227,0)
I CMD="saveSelectionConfig" D G OUT
"RTN","EDPCTRL",228,0)
. D SAVE^EDPBSL(.REQ)
"RTN","EDPCTRL",229,0)
;
"RTN","EDPCTRL",230,0)
; ---------------------------------
"RTN","EDPCTRL",231,0)
;
"RTN","EDPCTRL",232,0)
; getReport
"RTN","EDPCTRL",233,0)
; return ...
"RTN","EDPCTRL",234,0)
;
"RTN","EDPCTRL",235,0)
; ...
"RTN","EDPCTRL",236,0)
I CMD="getReport" D G OUT
"RTN","EDPCTRL",237,0)
. D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"))
"RTN","EDPCTRL",238,0)
;
"RTN","EDPCTRL",239,0)
; ---------------------------------
"RTN","EDPCTRL",240,0)
;
"RTN","EDPCTRL",241,0)
; getCSV
"RTN","EDPCTRL",242,0)
; return TAB separated values for report
"RTN","EDPCTRL",243,0)
I CMD="getCSV" D G OUT
"RTN","EDPCTRL",244,0)
. N EDPCSV ; CSV mode uses EDPCSV instead of EDPXML
"RTN","EDPCTRL",245,0)
. D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"),1)
"RTN","EDPCTRL",246,0)
. M EDPXML=EDPCSV
"RTN","EDPCTRL",247,0)
;
"RTN","EDPCTRL",248,0)
; ---------------------------------
"RTN","EDPCTRL",249,0)
; else
"RTN","EDPCTRL",250,0)
D XML^EDPX("")
"RTN","EDPCTRL",251,0)
; end switch
"RTN","EDPCTRL",252,0)
;
"RTN","EDPCTRL",253,0)
OUT ; output the XML
"RTN","EDPCTRL",254,0)
I $L($G(EDPHTTP)) D ; if in CSP mode
"RTN","EDPCTRL",255,0)
. U EDPHTTP
"RTN","EDPCTRL",256,0)
. W "",!
"RTN","EDPCTRL",257,0)
. N I S I=0 F S I=$O(EDPXML(I)) Q:'I W EDPXML(I),!
"RTN","EDPCTRL",258,0)
. W "",!
"RTN","EDPCTRL",259,0)
END Q
"RTN","EDPCTRL",260,0)
;
"RTN","EDPCTRL",261,0)
VAL(X) ; return value from request
"RTN","EDPCTRL",262,0)
Q $G(REQ(X,1))
"RTN","EDPDD")
0^10^B107293
"RTN","EDPDD",1,0)
EDPDD ;SLC/KCM - Test Update ED Log - Update
"RTN","EDPDD",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPDD",3,0)
;
"RTN","EDPDD",4,0)
ISGONE(STS) ;
"RTN","EDPDD",5,0)
Q STS=$O(^EDPB(233.1,"B","edp.status.gone",0))
"RTN","EDPLOG")
0^19^B16849923
"RTN","EDPLOG",1,0)
EDPLOG ;SLC/KCM - Update ED Log - Update
"RTN","EDPLOG",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPLOG",3,0)
;
"RTN","EDPLOG",4,0)
;TODO: add transaction processing
"RTN","EDPLOG",5,0)
;
"RTN","EDPLOG",6,0)
UPD(REQ,REMOVE) ; Update a record
"RTN","EDPLOG",7,0)
N REC D NVPARSE^EDPX(.REC,REQ)
"RTN","EDPLOG",8,0)
N IEN S IEN=$$VAL("id")
"RTN","EDPLOG",9,0)
I '$G(IEN) D FAIL("upd",2300007) Q
"RTN","EDPLOG",10,0)
I '$D(^EDP(230,IEN,0)) D FAIL("upd",2300006) Q
"RTN","EDPLOG",11,0)
N ERR S ERR=$$VALID^EDPLOG1(.REC) I $L(ERR) D FAIL("upd",ERR) Q
"RTN","EDPLOG",12,0)
;
"RTN","EDPLOG",13,0)
; compute the local time
"RTN","EDPLOG",14,0)
N TIME S TIME=$$FMADD^XLFDT($$NOW^XLFDT,0,0,+$P(^EDP(230,IEN,0),U,12),0)
"RTN","EDPLOG",15,0)
; before allowing remove, check the required fields
"RTN","EDPLOG",16,0)
S REMOVE=$G(REMOVE,0)
"RTN","EDPLOG",17,0)
I REMOVE D RDY2RMV Q:REC("status")'=$$CODE^EDPX("edp.status.gone")
"RTN","EDPLOG",18,0)
;
"RTN","EDPLOG",19,0)
; get the existing log entry
"RTN","EDPLOG",20,0)
N X0,X1,X2,X3,AREA,I
"RTN","EDPLOG",21,0)
S X0=^EDP(230,IEN,0),X1=$G(^(1)),X2=$G(^(2)),X3=$G(^(3))
"RTN","EDPLOG",22,0)
S AREA=$P(X0,U,3),^EDPB(231.9,AREA,230)=$H ; last update timestamp
"RTN","EDPLOG",23,0)
;
"RTN","EDPLOG",24,0)
; if new DFN, register at site
"RTN","EDPLOG",25,0)
I '$P(X0,U,6),+$$VAL("dfn") D NEWLOG^EDPMAIL(AREA,IEN,$$VAL("dfn"))
"RTN","EDPLOG",26,0)
;
"RTN","EDPLOG",27,0)
N NAME,SSN S NAME=$$VAL("name"),SSN=$$VAL("ssn")
"RTN","EDPLOG",28,0)
; Update any fields that have values passed in
"RTN","EDPLOG",29,0)
N FDA,FDAIEN,DIERR,HIST
"RTN","EDPLOG",30,0)
D SETFDA(X0,4,"name",.04)
"RTN","EDPLOG",31,0)
D SETFDA(X0,5,"ssn",.05)
"RTN","EDPLOG",32,0)
D SETFDA(X0,6,"dfn",.06)
"RTN","EDPLOG",33,0)
D SETFDA(X0,8,"inTS",.08)
"RTN","EDPLOG",34,0)
D SETFDA(X0,9,"outTS",.09)
"RTN","EDPLOG",35,0)
D SETFDA(X0,10,"arrival",.1)
"RTN","EDPLOG",36,0)
D SETFDA(X1,1,"complaint",1.1)
"RTN","EDPLOG",37,0)
D SETFDA(X2,1,"compLong",2)
"RTN","EDPLOG",38,0)
D SETFDA(X3,2,"status",3.2)
"RTN","EDPLOG",39,0)
D SETFDA(X3,3,"acuity",3.3)
"RTN","EDPLOG",40,0)
D SETFDA(X3,4,"bed",3.4)
"RTN","EDPLOG",41,0)
D SETFDA(X3,5,"provider",3.5)
"RTN","EDPLOG",42,0)
D SETFDA(X3,6,"nurse",3.6)
"RTN","EDPLOG",43,0)
D SETFDA(X3,7,"resident",3.7)
"RTN","EDPLOG",44,0)
D SETFDA(X3,8,"comment",3.8)
"RTN","EDPLOG",45,0)
D SETFDA(X1,5,"delay",1.5)
"RTN","EDPLOG",46,0)
D SETFDA(X1,2,"disposition",1.2)
"RTN","EDPLOG",47,0)
I $G(FDA(230,IEN_",",1.2)) S FDA(230,IEN_",",1.3)=TIME
"RTN","EDPLOG",48,0)
I $L(NAME)&$L(SSN) S FDA(230,IEN_",",.11)=$E(NAME)_$E(SSN,6,9)
"RTN","EDPLOG",49,0)
I $D(HIST)>9 D SAVE^EDPLOGH(IEN,TIME,.HIST)
"RTN","EDPLOG",50,0)
I $D(FDA)>9 D FILE^DIE("","FDA","ERR")
"RTN","EDPLOG",51,0)
I $D(DIERR) D FAIL("upd",2300008) Q
"RTN","EDPLOG",52,0)
K FDA,ERR
"RTN","EDPLOG",53,0)
;
"RTN","EDPLOG",54,0)
D1 N DIAG S DIAG="diagnosis-0",I=0
"RTN","EDPLOG",55,0)
F S DIAG=$O(REC(DIAG)) Q:$E(DIAG,1,10)'="diagnosis-" D
"RTN","EDPLOG",56,0)
. S I=I+1,REC("diagnosis",I)=REC(DIAG)
"RTN","EDPLOG",57,0)
I $D(REC("diagnosis"))>9 D Q:$D(DIERR) ; replace the diagnosis multiple
"RTN","EDPLOG",58,0)
. D DELDIAG(IEN)
"RTN","EDPLOG",59,0)
. S FDA(230,IEN_",",1.4)=TIME
"RTN","EDPLOG",60,0)
. S I=0 F S I=$O(REC("diagnosis",I)) Q:'I D
"RTN","EDPLOG",61,0)
. . S FDA(230.04,"+"_I_","_IEN_",",.01)=$P(REC("diagnosis",I),U,3)
"RTN","EDPLOG",62,0)
. . S FDA(230.04,"+"_I_","_IEN_",",.02)=$P(REC("diagnosis",I),U,2)
"RTN","EDPLOG",63,0)
. D UPDATE^DIE("","FDA","FDAIEN","ERR")
"RTN","EDPLOG",64,0)
. I $D(DIERR) D FAIL("upd",2300008) Q
"RTN","EDPLOG",65,0)
. K FDA,FDAIEN,ERR
"RTN","EDPLOG",66,0)
;
"RTN","EDPLOG",67,0)
D XML^EDPX("")
"RTN","EDPLOG",68,0)
Q
"RTN","EDPLOG",69,0)
DELDIAG(IEN) ; delete the diagnosis multiple
"RTN","EDPLOG",70,0)
I '$O(^EDP(230,IEN,4,0)) Q ; no child nodes
"RTN","EDPLOG",71,0)
N DA,DIK S DA=0,DA(1)=IEN,DIK="^EDP(230,"_DA(1)_",4,"
"RTN","EDPLOG",72,0)
F S DA=$O(^EDP(230,IEN,4,DA)) Q:'DA D ^DIK
"RTN","EDPLOG",73,0)
Q
"RTN","EDPLOG",74,0)
RDY2RMV ; check required fields & set up so ready to remove
"RTN","EDPLOG",75,0)
; called from UPD, expects REC and IEN and TIME
"RTN","EDPLOG",76,0)
N X,X1,AREA,MIN
"RTN","EDPLOG",77,0)
S X="",AREA=$P(^EDP(230,IEN,0),U,3),X1=$G(^EDPB(231.9,AREA,1))
"RTN","EDPLOG",78,0)
S MIN=$$VAL("inTS") S:'MIN MIN=$P(^EDP(230,IEN,0),U,8)
"RTN","EDPLOG",79,0)
S MIN=$$FMDIFF^XLFDT(TIME,MIN,2)\60
"RTN","EDPLOG",80,0)
I $P(X1,U,1),'$L($$VAL("diagnosis-1")) S X="diagnosis "
"RTN","EDPLOG",81,0)
I $P(X1,U,3),'$$VAL("disposition") S X=X_"disposition "
"RTN","EDPLOG",82,0)
I $P(X1,U,4),(MIN>$P(X1,U,5)),'$$VAL("delay") S X=X_" delay reason"
"RTN","EDPLOG",83,0)
I $L(X) D FAIL("upd","Fields required for remove are missing: "_X) Q
"RTN","EDPLOG",84,0)
I '$$VAL("outTS") S REC("outTS")=TIME
"RTN","EDPLOG",85,0)
S REC("status")=$$CODE^EDPX("edp.status.gone")
"RTN","EDPLOG",86,0)
; unregister DFN at site
"RTN","EDPLOG",87,0)
D DELLOG^EDPMAIL(AREA,IEN)
"RTN","EDPLOG",88,0)
Q
"RTN","EDPLOG",89,0)
VAL(X) ; Returns parameter value or null
"RTN","EDPLOG",90,0)
; HTTP passes HTML-escaped values in an array as REC(param,1)
"RTN","EDPLOG",91,0)
Q $G(REC(X))
"RTN","EDPLOG",92,0)
;
"RTN","EDPLOG",93,0)
SETFDA(NODE,P,SUB,FLD) ; Creates value in FDA & HIST arrays as appropriate
"RTN","EDPLOG",94,0)
; from UPD, expects REC, FDA, HIST to be defined
"RTN","EDPLOG",95,0)
Q:'$D(REC(SUB)) ; value not sent in message
"RTN","EDPLOG",96,0)
Q:$P(NODE,U,P)=REC(SUB) ; value is the same
"RTN","EDPLOG",97,0)
S FDA(230,IEN_",",FLD)=REC(SUB)
"RTN","EDPLOG",98,0)
; save the changed fields in the history
"RTN","EDPLOG",99,0)
I $L(REC(SUB)) D
"RTN","EDPLOG",100,0)
. S:FLD=1.1 FLD=.07 ; complaint
"RTN","EDPLOG",101,0)
. S:FLD=1.2 FLD=.11 ; disposition
"RTN","EDPLOG",102,0)
. S:FLD=1.5 FLD=.12 ; delay
"RTN","EDPLOG",103,0)
. S HIST(230.1,"+1,",FLD)=REC(SUB)
"RTN","EDPLOG",104,0)
Q
"RTN","EDPLOG",105,0)
FAIL(ELEM,MSG) ; creates failure node for returned XML
"RTN","EDPLOG",106,0)
N X
"RTN","EDPLOG",107,0)
I +MSG S MSG=$$MSG^EDPX(MSG)
"RTN","EDPLOG",108,0)
S X="<"_ELEM_" id='"_$$VAL("id")_"' status='fail' msg='"_MSG_"' />"
"RTN","EDPLOG",109,0)
D XML^EDPX(X)
"RTN","EDPLOG",110,0)
S EDPFAIL=1
"RTN","EDPLOG",111,0)
Q
"RTN","EDPLOG1")
0^20^B2757150
"RTN","EDPLOG1",1,0)
EDPLOG1 ;SLC/KCM - Update ED Log - Validate
"RTN","EDPLOG1",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPLOG1",3,0)
;
"RTN","EDPLOG1",4,0)
VALID(REC) ; validate the entries passed in REC
"RTN","EDPLOG1",5,0)
D XLATE("arrival")
"RTN","EDPLOG1",6,0)
D XLATE("bed")
"RTN","EDPLOG1",7,0)
D XLATE("acuity")
"RTN","EDPLOG1",8,0)
D XLATE("status")
"RTN","EDPLOG1",9,0)
D XLATE("provider")
"RTN","EDPLOG1",10,0)
D XLATE("nurse")
"RTN","EDPLOG1",11,0)
D XLATE("resident")
"RTN","EDPLOG1",12,0)
D XLATE("disposition")
"RTN","EDPLOG1",13,0)
D XLATE("delay")
"RTN","EDPLOG1",14,0)
;
"RTN","EDPLOG1",15,0)
N ERR S ERR=""
"RTN","EDPLOG1",16,0)
D ADDTXT(.ERR,$$CHECK("name",230,.04,"Patient Name"))
"RTN","EDPLOG1",17,0)
D ADDTXT(.ERR,$$CHECK("ssn",230,.05,"Social Security Number"))
"RTN","EDPLOG1",18,0)
D ADDTXT(.ERR,$$CHECK("complaint",230,1.1,"Complaint"))
"RTN","EDPLOG1",19,0)
D ADDTXT(.ERR,$$CHECK("compLong",230,2,"Long Complaint"))
"RTN","EDPLOG1",20,0)
D ADDTXT(.ERR,$$CHECK("comment",230,3.8,"Comment"))
"RTN","EDPLOG1",21,0)
;
"RTN","EDPLOG1",22,0)
N DIAG S DIAG="diagnosis-0"
"RTN","EDPLOG1",23,0)
F S DIAG=$O(REC(DIAG)) Q:$E(DIAG,1,10)'="diagnosis-" D
"RTN","EDPLOG1",24,0)
. S REC("edpDiagnosis")=$P(REC(DIAG),U,2)
"RTN","EDPLOG1",25,0)
. D ADDTXT(ERR,$$CHECK("edpDiagnosis",230.04,.01,"Diagnosis"))
"RTN","EDPLOG1",26,0)
Q ERR
"RTN","EDPLOG1",27,0)
;
"RTN","EDPLOG1",28,0)
CHECK(NAME,FILE,FIELD,MSG) ; return error msg if field is not valid
"RTN","EDPLOG1",29,0)
; called from VALID, assumes REC is defined
"RTN","EDPLOG1",30,0)
N VAL,RESULT
"RTN","EDPLOG1",31,0)
S VAL=$G(REC(NAME))
"RTN","EDPLOG1",32,0)
Q:VAL="" ""
"RTN","EDPLOG1",33,0)
D CHK^DIE(FILE,FIELD,"",VAL,.RESULT)
"RTN","EDPLOG1",34,0)
Q:RESULT="^" MSG_" is not valid."
"RTN","EDPLOG1",35,0)
Q ""
"RTN","EDPLOG1",36,0)
ADDTXT(X,NEW) ; add new text comma delimited
"RTN","EDPLOG1",37,0)
I $L(NEW),$L(X) S X=X_", "_NEW
"RTN","EDPLOG1",38,0)
I $L(NEW),'$L(X) S X=NEW
"RTN","EDPLOG1",39,0)
Q
"RTN","EDPLOG1",40,0)
XLATE(NAME) ;
"RTN","EDPLOG1",41,0)
Q:'$D(REC(NAME))
"RTN","EDPLOG1",42,0)
;I REC(NAME)=0 S REC(NAME)="" ; store 0 when removing staff
"RTN","EDPLOG1",43,0)
I REC(NAME)=-1 S REC(NAME)="@"
"RTN","EDPLOG1",44,0)
Q
"RTN","EDPLOGA")
0^21^B7949056
"RTN","EDPLOGA",1,0)
EDPLOGA ;SLC/KCM - Add Entry to ED Log
"RTN","EDPLOGA",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPLOGA",3,0)
;
"RTN","EDPLOGA",4,0)
;TODO: add transaction processing
"RTN","EDPLOGA",5,0)
;
"RTN","EDPLOGA",6,0)
ADD(NEWPT,AREA,TIME,CHOICES) ; Create a new ED Log record for a patient
"RTN","EDPLOGA",7,0)
; add the new record to the returned XML
"RTN","EDPLOGA",8,0)
; NEWPT = dfn \T name \T dob \T ssn
"RTN","EDPLOGA",9,0)
N DFN,NAME,SSN,TZMIN,STATUS,BED,ARR,REC,AMB
"RTN","EDPLOGA",10,0)
S AMB="(ambulance en route)"
"RTN","EDPLOGA",11,0)
;
"RTN","EDPLOGA",12,0)
; Set up the patient fields that were passed in
"RTN","EDPLOGA",13,0)
D NVPARSE^EDPX(.REC,NEWPT)
"RTN","EDPLOGA",14,0)
S DFN=REC("dfn")
"RTN","EDPLOGA",15,0)
;I DFN S REC("name")=$P(^DPT(DFN,0),U,1),REC("ssn")=$P(^DPT(DFN,0),U,9)
"RTN","EDPLOGA",16,0)
S NAME=REC("name")
"RTN","EDPLOGA",17,0)
S SSN=REC("ssn") S:SSN="*SENSITIVE*" SSN=""
"RTN","EDPLOGA",18,0)
; calculate time zone minutes -- add these to server time to get local time
"RTN","EDPLOGA",19,0)
S TZMIN=$$FMDIFF^XLFDT($$NOW^XLFDT,TIME,2)\60
"RTN","EDPLOGA",20,0)
I $P($G(^EDPB(231.9,AREA,0)),U,3)-TZMIN>10 D TZSAVE^EDPBPM(AREA,TZMIN)
"RTN","EDPLOGA",21,0)
;
"RTN","EDPLOGA",22,0)
; Add default values to stub entry (should be based on config for area)
"RTN","EDPLOGA",23,0)
S BED=$O(^EDPB(231.8,"AC",EDPSITE,AREA,"WAIT",0))
"RTN","EDPLOGA",24,0)
I $G(REC("name"))=AMB D
"RTN","EDPLOGA",25,0)
. S ARR=$O(^EDPB(233.1,"B","edp.arrival.ambulance",0))
"RTN","EDPLOGA",26,0)
. S BED=$O(^EDPB(231.8,"AC",EDPSITE,AREA,"AMBU",0))
"RTN","EDPLOGA",27,0)
;
"RTN","EDPLOGA",28,0)
I +DFN,$D(^EDP(230,"AP",EDPSITE,AREA,DFN)) D FAIL^EDPLOG("add",2300002) Q
"RTN","EDPLOGA",29,0)
I +SSN,$D(^EDP(230,"AS",EDPSITE,AREA,SSN)) D FAIL^EDPLOG("add",2300002) Q
"RTN","EDPLOGA",30,0)
N ERR S ERR=$$VALID^EDPLOG1(.REC) I $L(ERR) D FAIL^EDPLOG("add",ERR) Q
"RTN","EDPLOGA",31,0)
S ^EDPB(231.9,AREA,230)=$H ; last update timestamp
"RTN","EDPLOGA",32,0)
;
"RTN","EDPLOGA",33,0)
; Create a current log record
"RTN","EDPLOGA",34,0)
N FDA,FDAIEN,DIERR,HIST,HISTIEN,LOGIEN
"RTN","EDPLOGA",35,0)
S FDA(230,"+1,",.01)=TIME
"RTN","EDPLOGA",36,0)
S FDA(230,"+1,",.02)=EDPSITE
"RTN","EDPLOGA",37,0)
S FDA(230,"+1,",.03)=AREA
"RTN","EDPLOGA",38,0)
S FDA(230,"+1,",.04)=NAME
"RTN","EDPLOGA",39,0)
S FDA(230,"+1,",.05)=SSN
"RTN","EDPLOGA",40,0)
S FDA(230,"+1,",.06)=DFN
"RTN","EDPLOGA",41,0)
S FDA(230,"+1,",.12)=TZMIN
"RTN","EDPLOGA",42,0)
S FDA(230,"+1,",3.4)=BED
"RTN","EDPLOGA",43,0)
I $L(SSN) S FDA(230,"+1,",.11)=$E(NAME)_$E(SSN,6,9)
"RTN","EDPLOGA",44,0)
I NAME=AMB S FDA(230,"+1,",.11)="(amb)"
"RTN","EDPLOGA",45,0)
I NAME'=AMB S FDA(230,"+1,",.08)=TIME
"RTN","EDPLOGA",46,0)
I $G(ARR) S FDA(230,"+1,",.1)=ARR
"RTN","EDPLOGA",47,0)
M HIST(230.1)=FDA(230)
"RTN","EDPLOGA",48,0)
D UPDATE^DIE("","FDA","FDAIEN","ERR")
"RTN","EDPLOGA",49,0)
I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q
"RTN","EDPLOGA",50,0)
S LOGIEN=FDAIEN(1)
"RTN","EDPLOGA",51,0)
;
"RTN","EDPLOGA",52,0)
; Create the first history entry
"RTN","EDPLOGA",53,0)
S HIST(230.1,"+1,",.01)=LOGIEN
"RTN","EDPLOGA",54,0)
S HIST(230.1,"+1,",.02)=TIME
"RTN","EDPLOGA",55,0)
S HIST(230.1,"+1,",.03)=EDPUSER
"RTN","EDPLOGA",56,0)
K HIST(230.1,"+1,",.11)
"RTN","EDPLOGA",57,0)
D UPDATE^DIE("","HIST","HISTIEN","ERR")
"RTN","EDPLOGA",58,0)
I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q
"RTN","EDPLOGA",59,0)
;
"RTN","EDPLOGA",60,0)
; register DFN at site
"RTN","EDPLOGA",61,0)
I +DFN D NEWLOG^EDPMAIL(AREA,LOGIEN,DFN)
"RTN","EDPLOGA",62,0)
;
"RTN","EDPLOGA",63,0)
D XML^EDPX("")
"RTN","EDPLOGA",64,0)
;
"RTN","EDPLOGA",65,0)
D GET^EDPQLE(FDAIEN(1),CHOICES)
"RTN","EDPLOGA",66,0)
Q
"RTN","EDPLOGA",67,0)
;
"RTN","EDPLOGA",68,0)
DEL(AREA,LOGID) ; Delete Stub Log Entry
"RTN","EDPLOGA",69,0)
N I,CNT,DIK,DA
"RTN","EDPLOGA",70,0)
S I=0,CNT=0 F S I=$O(^EDP(230.1,"B",LOGID,I)) Q:'I S CNT=CNT+1
"RTN","EDPLOGA",71,0)
I $L($P($G(^EDP(230,LOGID,1)),U))!(CNT>1) D Q
"RTN","EDPLOGA",72,0)
. D FAIL^EDPLOG("upd","Does not appear to be a stub entry")
"RTN","EDPLOGA",73,0)
;
"RTN","EDPLOGA",74,0)
; Delete initial history entry
"RTN","EDPLOGA",75,0)
S DIK="^EDP(230.1,",DA=$O(^EDP(230.1,"B",LOGID,0))
"RTN","EDPLOGA",76,0)
I DA D ^DIK
"RTN","EDPLOGA",77,0)
; Delete stub log entry
"RTN","EDPLOGA",78,0)
S DIK="^EDP(230,",DA=LOGID
"RTN","EDPLOGA",79,0)
D ^DIK
"RTN","EDPLOGA",80,0)
;
"RTN","EDPLOGA",81,0)
D XML^EDPX("")
"RTN","EDPLOGA",82,0)
Q
"RTN","EDPLOGH")
0^22^B269228
"RTN","EDPLOGH",1,0)
EDPLOGH ;SLC/KCM - Add History Entry for ED Log
"RTN","EDPLOGH",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPLOGH",3,0)
;
"RTN","EDPLOGH",4,0)
;TODO: add transaction processing
"RTN","EDPLOGH",5,0)
;
"RTN","EDPLOGH",6,0)
SAVE(IEN,TIME,HIST) ; save a new history entry for changed fields
"RTN","EDPLOGH",7,0)
Q:$D(HIST)<10
"RTN","EDPLOGH",8,0)
;
"RTN","EDPLOGH",9,0)
N HISTIEN,DIERR
"RTN","EDPLOGH",10,0)
S HIST(230.1,"+1,",.01)=IEN
"RTN","EDPLOGH",11,0)
S HIST(230.1,"+1,",.02)=TIME
"RTN","EDPLOGH",12,0)
S HIST(230.1,"+1,",.03)=EDPUSER
"RTN","EDPLOGH",13,0)
D UPDATE^DIE("","HIST","HISTIEN","ERR")
"RTN","EDPLOGH",14,0)
Q
"RTN","EDPMAIL")
0^23^B8916423
"RTN","EDPMAIL",1,0)
EDPMAIL ;SLC/KCM - Process incoming mail for posted events
"RTN","EDPMAIL",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPMAIL",3,0)
;
"RTN","EDPMAIL",4,0)
; INCOMING
"RTN","EDPMAIL",5,0)
;
"RTN","EDPMAIL",6,0)
IN ; parse incoming message from facility
"RTN","EDPMAIL",7,0)
N I,PARAM,LOG,ORIFN
"RTN","EDPMAIL",8,0)
F I=1:1 X XMREC Q:XMER<0 I XMRG?1.E1"="1.E D
"RTN","EDPMAIL",9,0)
. S PARAM($P(XMRG,"="))=$P(XMRG,"=",2,99)
"RTN","EDPMAIL",10,0)
S LOG=$$VAL("id"),ORIFN=$$VAL("orifn")
"RTN","EDPMAIL",11,0)
I $$VAL("command")="newOrder" D NEW
"RTN","EDPMAIL",12,0)
I $$VAL("command")="updateOrder" D UPD
"RTN","EDPMAIL",13,0)
I $$VAL("command")="deleteOrder" D DEL
"RTN","EDPMAIL",14,0)
I $$VAL("command")="verifyOrder" D VER
"RTN","EDPMAIL",15,0)
I $$VAL("command")="completeOrder" D COMP
"RTN","EDPMAIL",16,0)
I $$VAL("command")="patientCheckIn" D CHKIN
"RTN","EDPMAIL",17,0)
I $$VAL("command")="sendDomain" D SETDOM
"RTN","EDPMAIL",18,0)
I $$VAL("command")="convertVisit" D EN1^EDPCONV(.PARAM)
"RTN","EDPMAIL",19,0)
Q
"RTN","EDPMAIL",20,0)
;
"RTN","EDPMAIL",21,0)
NEW ; add new order
"RTN","EDPMAIL",22,0)
Q:'LOG Q:'ORIFN
"RTN","EDPMAIL",23,0)
N X,Y,DIC,DA
"RTN","EDPMAIL",24,0)
S DIC="^EDP(230,"_LOG_",8,",DIC(0)="LZ",DA(1)=LOG,X=+ORIFN
"RTN","EDPMAIL",25,0)
S DIC("DR")=".02///"_$$VAL("pkg")_";.03///N;.05///"_$$VAL("release")
"RTN","EDPMAIL",26,0)
S:$$VAL("stat") DIC("DR")=DIC("DR")_";.04///1"
"RTN","EDPMAIL",27,0)
D FILE^DICN
"RTN","EDPMAIL",28,0)
Q
"RTN","EDPMAIL",29,0)
UPD ; update order
"RTN","EDPMAIL",30,0)
Q:'LOG Q:'ORIFN Q:'$L($$VAL("sts"))
"RTN","EDPMAIL",31,0)
N IEN S IEN=$$FIND Q:IEN<1
"RTN","EDPMAIL",32,0)
I $D(^EDP(230,LOG,8,+DA,0)) S $P(^(0),U,3)=$$VAL("sts")
"RTN","EDPMAIL",33,0)
Q
"RTN","EDPMAIL",34,0)
DEL ; delete order
"RTN","EDPMAIL",35,0)
Q:'LOG Q:'ORIFN
"RTN","EDPMAIL",36,0)
N DIK,DA
"RTN","EDPMAIL",37,0)
S DA=$$FIND Q:DA<1
"RTN","EDPMAIL",38,0)
S DIK="^EDP(230,"_LOG_",8,",DA(1)=LOG
"RTN","EDPMAIL",39,0)
D ^DIK
"RTN","EDPMAIL",40,0)
Q
"RTN","EDPMAIL",41,0)
VER ; verify order
"RTN","EDPMAIL",42,0)
Q:'LOG Q:'ORIFN
"RTN","EDPMAIL",43,0)
N IEN S IEN=$$FIND Q:IEN<1
"RTN","EDPMAIL",44,0)
I $P($G(^EDP(230,LOG,8,IEN,0)),U,3)'="C" S $P(^(0),U,3)="A"
"RTN","EDPMAIL",45,0)
Q
"RTN","EDPMAIL",46,0)
COMP ; complete order
"RTN","EDPMAIL",47,0)
Q:'LOG Q:'ORIFN
"RTN","EDPMAIL",48,0)
N IEN S IEN=$$FIND Q:IEN<1
"RTN","EDPMAIL",49,0)
S $P(^(0),U,3)="C"
"RTN","EDPMAIL",50,0)
Q
"RTN","EDPMAIL",51,0)
;
"RTN","EDPMAIL",52,0)
FIND() ; -- return ien of ORIFN in multiple
"RTN","EDPMAIL",53,0)
N Y S Y=+$O(^EDP(230,LOG,8,"B",+ORIFN,0))
"RTN","EDPMAIL",54,0)
Q Y
"RTN","EDPMAIL",55,0)
;
"RTN","EDPMAIL",56,0)
VAL(X) ; -- return parameter value or null if undefined
"RTN","EDPMAIL",57,0)
Q $G(PARAM(X))
"RTN","EDPMAIL",58,0)
;
"RTN","EDPMAIL",59,0)
CHKIN ; check in a patient
"RTN","EDPMAIL",60,0)
Q:'$$VAL("dfn") Q:'$$VAL("ssn") Q:'$L($$VAL("ptNm")) Q:'$L($$VAL("site"))
"RTN","EDPMAIL",61,0)
N NEWPT
"RTN","EDPMAIL",62,0)
S NEWPT=$$VAL("dfn")_$C(9)_$$VAL("ptNm")_$C(9)_$$VAL("dob")_$C(9)_$$VAL("ssn")
"RTN","EDPMAIL",63,0)
N AREA
"RTN","EDPMAIL",64,0)
S AREA=$O(^EDPB(231.9,"C",$$VAL("site"),0)) Q:'AREA
"RTN","EDPMAIL",65,0)
N EDPXML,EDPSITE
"RTN","EDPMAIL",66,0)
S EDPSITE=$$VAL("site")
"RTN","EDPMAIL",67,0)
D ADD^EDPLOGA(NEWPT,AREA,$$VAL("time"),0)
"RTN","EDPMAIL",68,0)
Q
"RTN","EDPMAIL",69,0)
SETDOM ; set the mail domain for a site
"RTN","EDPMAIL",70,0)
N EDPSITE,EDPXML,AREA
"RTN","EDPMAIL",71,0)
S EDPSITE=$$VAL("station")
"RTN","EDPMAIL",72,0)
D DFLTAREA^EDPQAR
"RTN","EDPMAIL",73,0)
S AREA=$O(^EDPB(231.9,"C",EDPSITE,0))
"RTN","EDPMAIL",74,0)
I AREA D
"RTN","EDPMAIL",75,0)
. N FDA,FDAIEN,DIERR,ERR
"RTN","EDPMAIL",76,0)
. S FDA(231.9,AREA_",",.04)=$$VAL("domain")
"RTN","EDPMAIL",77,0)
. D FILE^DIE("","FDA","ERR")
"RTN","EDPMAIL",78,0)
Q
"RTN","EDPMAIL",79,0)
;
"RTN","EDPMAIL",80,0)
; OUTGOING
"RTN","EDPMAIL",81,0)
;
"RTN","EDPMAIL",82,0)
NEWLOG(AREA,LOG,DFN) ; send registration message for new log entry
"RTN","EDPMAIL",83,0)
D SEND(AREA,"registerLog:"_LOG_":"_DFN)
"RTN","EDPMAIL",84,0)
Q
"RTN","EDPMAIL",85,0)
DELLOG(AREA,LOG) ; send delete message for removed log entry
"RTN","EDPMAIL",86,0)
D SEND(AREA,"removeLog:"_LOG)
"RTN","EDPMAIL",87,0)
Q
"RTN","EDPMAIL",88,0)
SEND(AREA,MSG) ; Send message to local facility
"RTN","EDPMAIL",89,0)
N DOMAIN S DOMAIN=$P(^EDPB(231.9,AREA,0),U,4)
"RTN","EDPMAIL",90,0)
Q:'$L(DOMAIN)
"RTN","EDPMAIL",91,0)
;
"RTN","EDPMAIL",92,0)
N XMSUB,XMY,XMTEXT,EDPMSG
"RTN","EDPMAIL",93,0)
S XMSUB="EDIS Registration Event"
"RTN","EDPMAIL",94,0)
S EDPMSG(1)=MSG
"RTN","EDPMAIL",95,0)
S XMTEXT="EDPMSG("
"RTN","EDPMAIL",96,0)
S XMY("S.EDPFLOGLISTENER@"_DOMAIN)=""
"RTN","EDPMAIL",97,0)
D ^XMD
"RTN","EDPMAIL",98,0)
Q
"RTN","EDPQAR")
0^24^B1525958
"RTN","EDPQAR",1,0)
EDPQAR ;SLC/KCM - Log Area Information
"RTN","EDPQAR",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPQAR",3,0)
;
"RTN","EDPQAR",4,0)
PARAM(AREA) ; return parameters for area
"RTN","EDPQAR",5,0)
N X,X1
"RTN","EDPQAR",6,0)
S X1=$G(^EDPB(231.9,AREA,1))
"RTN","EDPQAR",7,0)
S X("reqDiag")=+$P(X1,U,1)
"RTN","EDPQAR",8,0)
S X("codedDiag")=+$P(X1,U,2)
"RTN","EDPQAR",9,0)
S X("reqDisp")=+$P(X1,U,3)
"RTN","EDPQAR",10,0)
S X("reqDelay")=+$P(X1,U,4)
"RTN","EDPQAR",11,0)
S X("minDelay")=+$P(X1,U,5)
"RTN","EDPQAR",12,0)
S X("residents")=+$P(X1,U,8)
"RTN","EDPQAR",13,0)
D XML^EDPX($$XMLA^EDPX("params",.X))
"RTN","EDPQAR",14,0)
Q
"RTN","EDPQAR",15,0)
DFLTAREA ; return the default area for a site
"RTN","EDPQAR",16,0)
N X,DFLT
"RTN","EDPQAR",17,0)
S DFLT=$O(^EDPB(231.9,"C",EDPSITE,0))
"RTN","EDPQAR",18,0)
I 'DFLT D ADDAREA S DFLT=$O(^EDPB(231.9,"C",EDPSITE,0))
"RTN","EDPQAR",19,0)
S X("area")=DFLT
"RTN","EDPQAR",20,0)
I X("area") S X("areaNm")=$P(^EDPB(231.9,X("area"),0),U)
"RTN","EDPQAR",21,0)
D XML^EDPX($$XMLA^EDPX("user",.X))
"RTN","EDPQAR",22,0)
Q
"RTN","EDPQAR",23,0)
ADDAREA ; add area if none is defined for this site
"RTN","EDPQAR",24,0)
N FDA,FDAIEN,DIERR,ERR
"RTN","EDPQAR",25,0)
S FDA(231.9,"+1,",.01)="Emergency Department"
"RTN","EDPQAR",26,0)
S FDA(231.9,"+1,",.02)=EDPSITE
"RTN","EDPQAR",27,0)
D UPDATE^DIE("","FDA","FDAIEN","ERR")
"RTN","EDPQAR",28,0)
Q:$D(DIERR)
"RTN","EDPQAR",29,0)
;
"RTN","EDPQAR",30,0)
N AREA S AREA=FDAIEN(1)
"RTN","EDPQAR",31,0)
D RESET^EDPBRS(AREA)
"RTN","EDPQAR",32,0)
Q
"RTN","EDPQDB")
0^25^B23470314
"RTN","EDPQDB",1,0)
EDPQDB ;SLC/KCM - Display Active Log Entries
"RTN","EDPQDB",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPQDB",3,0)
;
"RTN","EDPQDB",4,0)
NXT() ; Increment to the next line
"RTN","EDPQDB",5,0)
S XML=XML+1
"RTN","EDPQDB",6,0)
Q XML
"RTN","EDPQDB",7,0)
;
"RTN","EDPQDB",8,0)
GET(AREA,BOARD,TOKEN) ; Get display board contents
"RTN","EDPQDB",9,0)
I $G(^EDPB(231.9,AREA,230))=TOKEN D XML^EDPX("") Q
"RTN","EDPQDB",10,0)
;
"RTN","EDPQDB",11,0)
N EDPTIME S EDPTIME=$$FMADD^XLFDT($$NOW^XLFDT,0,0,+$P(^EDPB(231.9,AREA,0),U,3),0)
"RTN","EDPQDB",12,0)
N SEQ,BED,LOG,BEDS,DWHEN,DUP,ACU
"RTN","EDPQDB",13,0)
D XML^EDPX("")
"RTN","EDPQDB",14,0)
;
"RTN","EDPQDB",15,0)
; Get a list of all the beds in sequence for this area
"RTN","EDPQDB",16,0)
S BOARD=$G(BOARD)
"RTN","EDPQDB",17,0)
S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
"RTN","EDPQDB",18,0)
. S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999
"RTN","EDPQDB",19,0)
. S BEDS(SEQ,BED)="",BEDS("B",BED,SEQ)=""
"RTN","EDPQDB",20,0)
;
"RTN","EDPQDB",21,0)
; Insert the active log entries into the correct sequence for the beds
"RTN","EDPQDB",22,0)
S BED=0 F S BED=$O(^EDP(230,"AL",EDPSITE,AREA,BED)) Q:'BED D
"RTN","EDPQDB",23,0)
. S LOG=0 F S LOG=$O(^EDP(230,"AL",EDPSITE,AREA,BED,LOG)) Q:'LOG D
"RTN","EDPQDB",24,0)
. . I '$D(BEDS("B",BED)) S BEDS(99999,BED)="",BEDS("B",BED,99999)=""
"RTN","EDPQDB",25,0)
. . S SEQ=$O(BEDS("B",BED,0))
"RTN","EDPQDB",26,0)
. . S ACU=$P($G(^EDP(230,LOG,3)),U,3) S:'ACU ACU=99
"RTN","EDPQDB",27,0)
. . S BEDS(SEQ,BED,ACU,LOG)=""
"RTN","EDPQDB",28,0)
;
"RTN","EDPQDB",29,0)
; Loop thru the sequence of beds to create display board rows
"RTN","EDPQDB",30,0)
D BLDDUP^EDPQLP(.DUP,AREA)
"RTN","EDPQDB",31,0)
S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D
"RTN","EDPQDB",32,0)
. S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D
"RTN","EDPQDB",33,0)
. . I $L(BOARD),($P(^EDPB(231.8,BED,0),U,11)'=BOARD) Q
"RTN","EDPQDB",34,0)
. . S DWHEN=$P(^EDPB(231.8,BED,0),U,7)
"RTN","EDPQDB",35,0)
. . ; never display DWHEN=2
"RTN","EDPQDB",36,0)
. . Q:DWHEN=2
"RTN","EDPQDB",37,0)
. . ; always display DWHEN=1
"RTN","EDPQDB",38,0)
. . I ($D(BEDS(SEQ,BED))<10)&(DWHEN=1) D EMPTY(BED) Q
"RTN","EDPQDB",39,0)
. . ; display if occupied DWHEN=0
"RTN","EDPQDB",40,0)
. . S ACU=0 F S ACU=$O(BEDS(SEQ,BED,ACU)) Q:'ACU D
"RTN","EDPQDB",41,0)
. . . S LOG=0 F S LOG=$O(BEDS(SEQ,BED,ACU,LOG)) Q:'LOG D OCCUPIED(LOG,.DUP)
"RTN","EDPQDB",42,0)
;
"RTN","EDPQDB",43,0)
D XML^EDPX("")
"RTN","EDPQDB",44,0)
Q
"RTN","EDPQDB",45,0)
EMPTY(BED) ; add row if unoccupied be should show
"RTN","EDPQDB",46,0)
N ROW
"RTN","EDPQDB",47,0)
S ROW("bed")=BED
"RTN","EDPQDB",48,0)
S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6)
"RTN","EDPQDB",49,0)
D XML^EDPX($$XMLA^EDPX("row",.ROW))
"RTN","EDPQDB",50,0)
Q
"RTN","EDPQDB",51,0)
OCCUPIED(LOG,DUP) ; add log entry row
"RTN","EDPQDB",52,0)
N X0,X1,X3,ROW
"RTN","EDPQDB",53,0)
S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3))
"RTN","EDPQDB",54,0)
S ROW("id")=LOG
"RTN","EDPQDB",55,0)
S ROW("bed")=BED
"RTN","EDPQDB",56,0)
S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6)
"RTN","EDPQDB",57,0)
S ROW("ptNm")=$P($P(X0,U,4),",")
"RTN","EDPQDB",58,0)
S ROW("last4")=$P(X0,U,11)
"RTN","EDPQDB",59,0)
S ROW("complaint")=$P(X1,U,1)
"RTN","EDPQDB",60,0)
S ROW("md")=$P(X3,U,5)
"RTN","EDPQDB",61,0)
S ROW("mdNm")=$$INITIAL($P(X3,U,5))
"RTN","EDPQDB",62,0)
S ROW("rn")=$P(X3,U,6)
"RTN","EDPQDB",63,0)
S ROW("rnNm")=$$INITIAL($P(X3,U,6))
"RTN","EDPQDB",64,0)
S ROW("res")=$P(X3,U,7)
"RTN","EDPQDB",65,0)
S ROW("resNm")=$$INITIAL($P(X3,U,7))
"RTN","EDPQDB",66,0)
S ROW("status")=$P(X3,U,2)
"RTN","EDPQDB",67,0)
S ROW("statusNm")=$$CAB($P(X3,U,2))
"RTN","EDPQDB",68,0)
S ROW("acuity")=$P(X3,U,3)
"RTN","EDPQDB",69,0)
S ROW("acuityNm")=$$CAB($P(X3,U,3))
"RTN","EDPQDB",70,0)
S ROW("emins")=$$MIN($P(X0,U,8))
"RTN","EDPQDB",71,0)
S ROW("lmins")=$$LMIN(LOG)
"RTN","EDPQDB",72,0)
S ROW("similar")=$$SIM^EDPQLP(ROW("ptNm"),ROW("last4"),.DUP)
"RTN","EDPQDB",73,0)
;
"RTN","EDPQDB",74,0)
N STS D ORDSTS(LOG,.STS)
"RTN","EDPQDB",75,0)
S ROW("lab")=STS("LP")_"/"_STS("LC")
"RTN","EDPQDB",76,0)
S ROW("labUrg")=STS("LS")
"RTN","EDPQDB",77,0)
S ROW("labMin")=STS("LO")
"RTN","EDPQDB",78,0)
S ROW("rad")=STS("RP")_"/"_STS("RC")
"RTN","EDPQDB",79,0)
S ROW("radUrg")=STS("RS")
"RTN","EDPQDB",80,0)
S ROW("radMin")=STS("RO")
"RTN","EDPQDB",81,0)
S ROW("ordNew")=STS("ON")
"RTN","EDPQDB",82,0)
S ROW("ordMin")=STS("OO")
"RTN","EDPQDB",83,0)
D XML^EDPX($$XMLA^EDPX("row",.ROW))
"RTN","EDPQDB",84,0)
Q
"RTN","EDPQDB",85,0)
INITIAL(LOCID) ; Return initials
"RTN","EDPQDB",86,0)
Q:'LOCID ""
"RTN","EDPQDB",87,0)
N IEN S IEN=$O(^EDPB(231.7,"AD",EDPSITE,AREA,LOCID,0))
"RTN","EDPQDB",88,0)
Q:IEN $P(^EDPB(231.7,IEN,0),U,7)
"RTN","EDPQDB",89,0)
Q ""
"RTN","EDPQDB",90,0)
CAB(IEN) ; Return code abbreviation
"RTN","EDPQDB",91,0)
Q:IEN $P(^EDPB(233.1,IEN,0),U,3)
"RTN","EDPQDB",92,0)
Q ""
"RTN","EDPQDB",93,0)
MIN(START) ; Return elapse time
"RTN","EDPQDB",94,0)
I 'START Q ""
"RTN","EDPQDB",95,0)
Q $$FMDIFF^XLFDT(EDPTIME,START,2)\60
"RTN","EDPQDB",96,0)
;
"RTN","EDPQDB",97,0)
LMIN(LOG) ; Return time at location
"RTN","EDPQDB",98,0)
N IEN,TS,TM S TM=0
"RTN","EDPQDB",99,0)
S TS=0 F S TS=$O(^EDP(230.1,"ADR",LOG,TS)) Q:'TS D Q:TM
"RTN","EDPQDB",100,0)
. S IEN=0 F S IEN=$O(^EDP(230.1,"ADR",LOG,TS,IEN)) Q:'IEN D Q:TM
"RTN","EDPQDB",101,0)
. . I +$P($G(^EDP(230.1,IEN,3)),U,4) S TM=$P($G(^EDP(230.1,IEN,0)),U,2)
"RTN","EDPQDB",102,0)
I TM Q $$FMDIFF^XLFDT(EDPTIME,TM,2)\60
"RTN","EDPQDB",103,0)
Q 0
"RTN","EDPQDB",104,0)
;
"RTN","EDPQDB",105,0)
ORDSTS(LOG,STS) ; compute statuses of orders
"RTN","EDPQDB",106,0)
N IEN,X0
"RTN","EDPQDB",107,0)
S STS("OO")=9999999,STS("ON")=0 ; oldest order, new orders
"RTN","EDPQDB",108,0)
S STS("LP")=0,STS("LO")=9999999,STS("LS")=0,STS("LC")=0
"RTN","EDPQDB",109,0)
S STS("RP")=0,STS("RO")=9999999,STS("RS")=0,STS("RC")=0
"RTN","EDPQDB",110,0)
S IEN=0 F S IEN=$O(^EDP(230,LOG,8,IEN)) Q:'IEN D
"RTN","EDPQDB",111,0)
. S X0=^EDP(230,LOG,8,IEN,0)
"RTN","EDPQDB",112,0)
. I ($P(X0,U,3)="N")!($P(X0,U,3)="A") D
"RTN","EDPQDB",113,0)
. . I $P(X0,U,5)")
"RTN","EDPQDBS",9,0)
D CLRBED(AREA)
"RTN","EDPQDBS",10,0)
D CLRSTAFF(AREA,"md","P")
"RTN","EDPQDBS",11,0)
D CLRSTAFF(AREA,"res","R")
"RTN","EDPQDBS",12,0)
D CLRSTAFF(AREA,"rn","N")
"RTN","EDPQDBS",13,0)
N I S I=0
"RTN","EDPQDBS",14,0)
F S I=$O(^EDPB(231.9,AREA,3,I)) Q:'I D XML^EDPX(^EDPB(231.9,AREA,3,I,0))
"RTN","EDPQDBS",15,0)
D XML^EDPX("")
"RTN","EDPQDBS",16,0)
Q
"RTN","EDPQDBS",17,0)
CLRBED(AREA) ; add bed colors
"RTN","EDPQDBS",18,0)
D XML^EDPX("")
"RTN","EDPQDBS",19,0)
N BED
"RTN","EDPQDBS",20,0)
S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
"RTN","EDPQDBS",21,0)
. S X0=^EDPB(231.8,BED,0)
"RTN","EDPQDBS",22,0)
. I $P(X0,U,12)="" Q
"RTN","EDPQDBS",23,0)
. N X
"RTN","EDPQDBS",24,0)
. S X("att")="@bed"
"RTN","EDPQDBS",25,0)
. S X("clr")=$P(X0,U,12)
"RTN","EDPQDBS",26,0)
. S X("val")=BED
"RTN","EDPQDBS",27,0)
. D XML^EDPX($$XMLA^EDPX("map",.X))
"RTN","EDPQDBS",28,0)
D XML^EDPX("")
"RTN","EDPQDBS",29,0)
Q
"RTN","EDPQDBS",30,0)
CLRSTAFF(AREA,ROLEID,ROLE) ; add staff colors
"RTN","EDPQDBS",31,0)
D XML^EDPX("")
"RTN","EDPQDBS",32,0)
N IEN
"RTN","EDPQDBS",33,0)
S IEN="" F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
"RTN","EDPQDBS",34,0)
. S X0=^EDPB(231.7,IEN,0) Q:'$P(X0,U,8)
"RTN","EDPQDBS",35,0)
. N X
"RTN","EDPQDBS",36,0)
. S X("att")=$S(ROLE="P":"@md",ROLE="N":"@rn",ROLE="R":"@res",1:"nop")
"RTN","EDPQDBS",37,0)
. S X("clr")=$P(X0,U,8)
"RTN","EDPQDBS",38,0)
. S X("val")=$P(X0,U,5)
"RTN","EDPQDBS",39,0)
. D XML^EDPX($$XMLA^EDPX("map",.X))
"RTN","EDPQDBS",40,0)
D XML^EDPX("")
"RTN","EDPQDBS",41,0)
Q
"RTN","EDPQLE")
0^27^B11635607
"RTN","EDPQLE",1,0)
EDPQLE ;SLC/KCM - Retrieve Log Entry
"RTN","EDPQLE",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPQLE",3,0)
;
"RTN","EDPQLE",4,0)
GET(LOG,CHOICES) ; Get a log entry by request
"RTN","EDPQLE",5,0)
N CURBED,CURVAL,PERSON
"RTN","EDPQLE",6,0)
S AREA=$P(^EDP(230,LOG,0),U,3)
"RTN","EDPQLE",7,0)
N EDPTIME S EDPTIME=$$FMADD^XLFDT($$NOW^XLFDT,0,0,+$P(^EDPB(231.9,AREA,0),U,3),0)
"RTN","EDPQLE",8,0)
D LOG(LOG)
"RTN","EDPQLE",9,0)
D XML^EDPX("")
"RTN","EDPQLE",10,0)
D BEDS,PERSONS
"RTN","EDPQLE",11,0)
I $G(CHOICES) D CHOICES^EDPQLE1(AREA)
"RTN","EDPQLE",12,0)
D XML^EDPX("")
"RTN","EDPQLE",13,0)
Q
"RTN","EDPQLE",14,0)
LOG(LOG) ; return the log entry as XML
"RTN","EDPQLE",15,0)
N X,X0,X1,X3
"RTN","EDPQLE",16,0)
S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3))
"RTN","EDPQLE",17,0)
S X("id")=LOG
"RTN","EDPQLE",18,0)
S X("site")=$P(X0,U,2)
"RTN","EDPQLE",19,0)
S X("area")=$P(X0,U,3)
"RTN","EDPQLE",20,0)
S X("name")=$P(X0,U,4)
"RTN","EDPQLE",21,0)
S X("ssn")=$P(X0,U,5)
"RTN","EDPQLE",22,0)
S X("dfn")=$P(X0,U,6)
"RTN","EDPQLE",23,0)
S X("dob")=$$DOB($P(X0,U,6))
"RTN","EDPQLE",24,0)
S X("inTS")=$P(X0,U,8)
"RTN","EDPQLE",25,0)
S X("outTS")=$P(X0,U,9)
"RTN","EDPQLE",26,0)
S X("arrival")=$P(X0,U,10)
"RTN","EDPQLE",27,0)
S X("complaint")=$P(X1,U,1)
"RTN","EDPQLE",28,0)
S X("compLong")=$G(^EDP(230,LOG,2))
"RTN","EDPQLE",29,0)
S X("status")=$P(X3,U,2)
"RTN","EDPQLE",30,0)
S X("acuity")=$P(X3,U,3)
"RTN","EDPQLE",31,0)
S X("bed")=$P(X3,U,4)
"RTN","EDPQLE",32,0)
S X("md")=$P(X3,U,5),PERSON("provider")=X("md")
"RTN","EDPQLE",33,0)
S X("nurse")=$P(X3,U,6),PERSON("nurse")=X("nurse")
"RTN","EDPQLE",34,0)
S X("res")=$P(X3,U,7),PERSON("resident")=X("res")
"RTN","EDPQLE",35,0)
S X("comment")=$P(X3,U,8)
"RTN","EDPQLE",36,0)
S X("delay")=$P(X1,U,5)
"RTN","EDPQLE",37,0)
S X("disposition")=$P(X1,U,2)
"RTN","EDPQLE",38,0)
S X("required")=$$REQ(.X)
"RTN","EDPQLE",39,0)
S CURBED=X("bed") ; for later use by BEDS
"RTN","EDPQLE",40,0)
;
"RTN","EDPQLE",41,0)
D XML^EDPX("")
"RTN","EDPQLE",42,0)
D XMLE^EDPX(.X)
"RTN","EDPQLE",43,0)
;
"RTN","EDPQLE",44,0)
N DIAG,CODE,LABEL,X4
"RTN","EDPQLE",45,0)
S DIAG=0 F S DIAG=$O(^EDP(230,LOG,4,DIAG)) Q:'DIAG D
"RTN","EDPQLE",46,0)
. S X4=^EDP(230,LOG,4,DIAG,0),X4("code")=$P(X4,U,2),X4("label")=$P(X4,U,1)
"RTN","EDPQLE",47,0)
. D XML^EDPX($$XMLA^EDPX("diagnosis",.X4))
"RTN","EDPQLE",48,0)
;
"RTN","EDPQLE",49,0)
D XML^EDPX("")
"RTN","EDPQLE",50,0)
Q
"RTN","EDPQLE",51,0)
DOB(DFN) ; Return date of birth (external)
"RTN","EDPQLE",52,0)
I 'DFN Q ""
"RTN","EDPQLE",53,0)
N VA,VADM,X,Y
"RTN","EDPQLE",54,0)
D DEM^VADPT
"RTN","EDPQLE",55,0)
Q $P(VADM(3),U,2)
"RTN","EDPQLE",56,0)
;
"RTN","EDPQLE",57,0)
BEDS ; add a list of available room/beds for this area
"RTN","EDPQLE",58,0)
D XML^EDPX("")
"RTN","EDPQLE",59,0)
;D XML^EDPX($$XMLS^EDPX("bed",0," ")) ; non-selected value
"RTN","EDPQLE",60,0)
N BED,X0
"RTN","EDPQLE",61,0)
S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
"RTN","EDPQLE",62,0)
. S X0=^EDPB(231.8,BED,0)
"RTN","EDPQLE",63,0)
. ; QUIT if inactive bed
"RTN","EDPQLE",64,0)
. I $P(X0,U,4) Q
"RTN","EDPQLE",65,0)
. ; QUIT if occupied, unless own bed or multi-assign
"RTN","EDPQLE",66,0)
. I $D(^EDP(230,"AL",EDPSITE,AREA,BED)),((BED'=CURBED)&'$P(X0,U,9)) Q
"RTN","EDPQLE",67,0)
. ;
"RTN","EDPQLE",68,0)
. S X("data")=BED
"RTN","EDPQLE",69,0)
. S X("label")=$P(X0,U,6)_" ("_$P(X0,U)_")"
"RTN","EDPQLE",70,0)
. D XML^EDPX($$XMLA^EDPX("bed",.X))
"RTN","EDPQLE",71,0)
D XML^EDPX("")
"RTN","EDPQLE",72,0)
Q
"RTN","EDPQLE",73,0)
PERSONS ; add the internal/external values for persons
"RTN","EDPQLE",74,0)
N ROLE,NAME,LOCID,IEN,X
"RTN","EDPQLE",75,0)
D XML^EDPX("")
"RTN","EDPQLE",76,0)
F ROLE="provider","nurse","resident" S LOCID=$G(PERSON(ROLE)) D
"RTN","EDPQLE",77,0)
. Q:'LOCID
"RTN","EDPQLE",78,0)
. S IEN=$O(^EDPB(231.7,"AD",EDPSITE,AREA,LOCID,0))
"RTN","EDPQLE",79,0)
. Q:'IEN
"RTN","EDPQLE",80,0)
. S NAME=$P(^EDPB(231.7,IEN,0),U)
"RTN","EDPQLE",81,0)
. S X("data")=LOCID,X("label")=NAME
"RTN","EDPQLE",82,0)
. D XML^EDPX($$XMLA^EDPX(ROLE,.X))
"RTN","EDPQLE",83,0)
D XML^EDPX("")
"RTN","EDPQLE",84,0)
Q
"RTN","EDPQLE",85,0)
REQ(VAL) ; return the fields required to close this entry
"RTN","EDPQLE",86,0)
; called from LOG, AREA is assumed to be defined
"RTN","EDPQLE",87,0)
N NEED,PARAM
"RTN","EDPQLE",88,0)
S PARAM=$G(^EDPB(231.9,AREA,1)),NEED=""
"RTN","EDPQLE",89,0)
I $P(PARAM,U,1) S $P(NEED,",",1)="diag"
"RTN","EDPQLE",90,0)
I $P(PARAM,U,3) S $P(NEED,",",2)="disp"
"RTN","EDPQLE",91,0)
I $$DLYREQ,$$NOTOBS,$$EXCEED S $P(NEED,",",3)="delay"
"RTN","EDPQLE",92,0)
Q NEED
"RTN","EDPQLE",93,0)
;
"RTN","EDPQLE",94,0)
DLYREQ() ; return true if delay params set to required
"RTN","EDPQLE",95,0)
; called from REQ, PARAM is assumed to be defined
"RTN","EDPQLE",96,0)
Q $P(PARAM,U,4)&$P(PARAM,U,5)
"RTN","EDPQLE",97,0)
;
"RTN","EDPQLE",98,0)
NOTOBS() ; return true if not in observation status
"RTN","EDPQLE",99,0)
; called from REQ, VAL is assumed to be defined
"RTN","EDPQLE",100,0)
N STS S STS=+$G(VAL("status"))
"RTN","EDPQLE",101,0)
Q:'STS 1
"RTN","EDPQLE",102,0)
Q:$P(^EDPB(233.1,STS,0),U,5)["O" 0
"RTN","EDPQLE",103,0)
Q 1
"RTN","EDPQLE",104,0)
;
"RTN","EDPQLE",105,0)
EXCEED() ; return true if delay time exceeded
"RTN","EDPQLE",106,0)
; called from REQ, VAL and PARAM are assumed to be defined
"RTN","EDPQLE",107,0)
N IN S IN=$G(VAL("inTS"))
"RTN","EDPQLE",108,0)
N MAX S MAX=$P(PARAM,U,5)
"RTN","EDPQLE",109,0)
Q ($$FMDIFF^XLFDT(EDPTIME,IN,2)\60)>MAX
"RTN","EDPQLE1")
0^28^B4294300
"RTN","EDPQLE1",1,0)
EDPQLE1 ;SLC/KCM - Retrive Log Entry - Supporting Info
"RTN","EDPQLE1",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPQLE1",3,0)
;
"RTN","EDPQLE1",4,0)
CHOICES(AREA) ; Add choice lists for editing log entry to XML
"RTN","EDPQLE1",5,0)
; called from EDPQLE
"RTN","EDPQLE1",6,0)
;
"RTN","EDPQLE1",7,0)
D STAFF("md","P")
"RTN","EDPQLE1",8,0)
D STAFF("res","R")
"RTN","EDPQLE1",9,0)
D STAFF("nurse","N")
"RTN","EDPQLE1",10,0)
;
"RTN","EDPQLE1",11,0)
D CODES("arrival","arrival")
"RTN","EDPQLE1",12,0)
D CODES("acuity","acuity")
"RTN","EDPQLE1",13,0)
D CODES("status","status")
"RTN","EDPQLE1",14,0)
D CODES("disposition","disposition")
"RTN","EDPQLE1",15,0)
D CODES("delay","delay")
"RTN","EDPQLE1",16,0)
Q
"RTN","EDPQLE1",17,0)
STAFF(LABEL,ROLE) ; add staff for this area to XML
"RTN","EDPQLE1",18,0)
N IEN,X0
"RTN","EDPQLE1",19,0)
D XML^EDPX("<"_LABEL_"List>")
"RTN","EDPQLE1",20,0)
D XML^EDPX($$XMLS^EDPX(LABEL,0," ")) ;non-selected (-1 will delete)
"RTN","EDPQLE1",21,0)
S IEN=0 F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
"RTN","EDPQLE1",22,0)
. S X0=^EDPB(231.7,IEN,0)
"RTN","EDPQLE1",23,0)
. D XML^EDPX($$XMLS^EDPX(LABEL,$P(X0,U,5),$P(X0,U)))
"RTN","EDPQLE1",24,0)
D XML^EDPX(""_LABEL_"List>")
"RTN","EDPQLE1",25,0)
Q
"RTN","EDPQLE1",26,0)
CODES(LABEL,SETNM) ; build nodes for set of codes
"RTN","EDPQLE1",27,0)
D XML^EDPX("<"_LABEL_"List>")
"RTN","EDPQLE1",28,0)
I "^arrival^acuity^status^disposition^delay^"[(U_LABEL_U) D
"RTN","EDPQLE1",29,0)
. N NOVAL S NOVAL=+$O(^EDPB(233.1,"B","edp.reserved.novalue",0))
"RTN","EDPQLE1",30,0)
. D XML^EDPX($$XMLS^EDPX(LABEL,NOVAL," ")) ; non-selected value
"RTN","EDPQLE1",31,0)
;
"RTN","EDPQLE1",32,0)
I $D(^EDPB(233.2,"B",EDPSITE_"."_SETNM)) S SETNM=EDPSITE_"."_SETNM I 1
"RTN","EDPQLE1",33,0)
E S SETNM="edp."_SETNM
"RTN","EDPQLE1",34,0)
;
"RTN","EDPQLE1",35,0)
N SET,SEQ,I,X0,IEN,SHOW
"RTN","EDPQLE1",36,0)
S SET=$O(^EDPB(233.2,"B",SETNM,0))
"RTN","EDPQLE1",37,0)
S SEQ=0 F S SEQ=$O(^EDPB(233.2,SET,1,"B",SEQ)) Q:'SEQ D
"RTN","EDPQLE1",38,0)
. S I=0 F S I=$O(^EDPB(233.2,SET,1,"B",SEQ,I)) Q:'I D
"RTN","EDPQLE1",39,0)
. . S X0=^EDPB(233.2,SET,1,I,0)
"RTN","EDPQLE1",40,0)
. . Q:$P(X0,U,3) ; inactive
"RTN","EDPQLE1",41,0)
. . S IEN=$P(X0,U,2)
"RTN","EDPQLE1",42,0)
. . S SHOW=$P(X0,U,4)
"RTN","EDPQLE1",43,0)
. . I SHOW="" S SHOW=$P(^EDPB(233.1,IEN,0),U,2)
"RTN","EDPQLE1",44,0)
. . D XML^EDPX($$XMLS^EDPX(LABEL,IEN,SHOW))
"RTN","EDPQLE1",45,0)
;
"RTN","EDPQLE1",46,0)
D XML^EDPX(""_LABEL_"List>")
"RTN","EDPQLE1",47,0)
Q
"RTN","EDPQLP")
0^29^B5675430
"RTN","EDPQLP",1,0)
EDPQLP ;SLC/KCM - Log Entry Patients
"RTN","EDPQLP",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPQLP",3,0)
;
"RTN","EDPQLP",4,0)
GET(AREA,TOKEN) ; Return lists for edit context
"RTN","EDPQLP",5,0)
;
"RTN","EDPQLP",6,0)
; don't rebuild the list if it is unchanged
"RTN","EDPQLP",7,0)
;I $G(^EDPB(231.9,AREA,230))=TOKEN D Q
"RTN","EDPQLP",8,0)
;. D XML^EDPX("")
"RTN","EDPQLP",9,0)
;
"RTN","EDPQLP",10,0)
; build sequence based on bed sequence
"RTN","EDPQLP",11,0)
N IEN,X0,NAME,SSN,LAST4,BED,SEQ,DUP,LST
"RTN","EDPQLP",12,0)
D BLDDUP(.DUP,AREA)
"RTN","EDPQLP",13,0)
S IEN=0 F S IEN=$O(^EDP(230,"AC",EDPSITE,AREA,IEN)) Q:'IEN D
"RTN","EDPQLP",14,0)
. S X0=^EDP(230,IEN,0)
"RTN","EDPQLP",15,0)
. S NAME=$P(X0,U,4),SSN=$P(X0,U,5),LAST4=$P(X0,U,11)
"RTN","EDPQLP",16,0)
. S BED=$P($G(^EDP(230,IEN,3)),U,4)
"RTN","EDPQLP",17,0)
. S SEQ=0
"RTN","EDPQLP",18,0)
. I BED S SEQ=$P($G(^EDPB(231.8,BED,0)),U,5)
"RTN","EDPQLP",19,0)
. I 'SEQ S SEQ=999999
"RTN","EDPQLP",20,0)
. I BED S BED=$P(^EDPB(231.8,BED,0),U,6)
"RTN","EDPQLP",21,0)
. S LST(SEQ,IEN)=NAME_U_SSN_U_LAST4_U_BED_U_$$SIM(NAME,LAST4,.DUP)
"RTN","EDPQLP",22,0)
;
"RTN","EDPQLP",23,0)
D XML^EDPX("")
"RTN","EDPQLP",24,0)
S SEQ=0 F S SEQ=$O(LST(SEQ)) Q:'SEQ D
"RTN","EDPQLP",25,0)
. S IEN=0 F S IEN=$O(LST(SEQ,IEN)) Q:'IEN D
"RTN","EDPQLP",26,0)
. . S X("id")=IEN
"RTN","EDPQLP",27,0)
. . S X("seq")=SEQ
"RTN","EDPQLP",28,0)
. . S X("name")=$P(LST(SEQ,IEN),U)
"RTN","EDPQLP",29,0)
. . S X("ssn")=$P(LST(SEQ,IEN),U,2)
"RTN","EDPQLP",30,0)
. . S X("last4")=$P(LST(SEQ,IEN),U,3)
"RTN","EDPQLP",31,0)
. . S X("bed")=$P(LST(SEQ,IEN),U,4)
"RTN","EDPQLP",32,0)
. . S X("same")=$P(LST(SEQ,IEN),U,5)
"RTN","EDPQLP",33,0)
. . D XML^EDPX($$XMLA^EDPX("log",.X))
"RTN","EDPQLP",34,0)
D XML^EDPX("")
"RTN","EDPQLP",35,0)
Q
"RTN","EDPQLP",36,0)
BLDDUP(DUP,AREA) ; Build duplicate name/last4 counters
"RTN","EDPQLP",37,0)
; called from GET^EDPQLP, GET^EDPQDB -- expect EDPSITE
"RTN","EDPQLP",38,0)
N X,IEN,CNT
"RTN","EDPQLP",39,0)
S X="" F S X=$O(^EDP(230,"ADUP",EDPSITE,AREA,X)) Q:X="" D
"RTN","EDPQLP",40,0)
. S IEN=0,CNT=0
"RTN","EDPQLP",41,0)
. F S IEN=$O(^EDP(230,"ADUP",EDPSITE,AREA,X,IEN)) Q:'IEN S CNT=CNT+1
"RTN","EDPQLP",42,0)
. S DUP(X)=CNT
"RTN","EDPQLP",43,0)
Q
"RTN","EDPQLP",44,0)
SIM(NAME,LAST4,DUP) ; Return true if similar patient name/last4
"RTN","EDPQLP",45,0)
I $L(LAST4),$G(DUP(LAST4))>1 Q 1
"RTN","EDPQLP",46,0)
I $G(DUP($P(NAME,",")))>1 Q 1
"RTN","EDPQLP",47,0)
Q 0
"RTN","EDPQLP",48,0)
;
"RTN","EDPQLP",49,0)
CLOSED(AREA,PARTIAL) ; find matches on name
"RTN","EDPQLP",50,0)
S PARTIAL=$$UP^XLFSTR(PARTIAL)
"RTN","EDPQLP",51,0)
Q:PARTIAL=""
"RTN","EDPQLP",52,0)
;
"RTN","EDPQLP",53,0)
N IEN,NAME,X
"RTN","EDPQLP",54,0)
S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,PARTIAL),-1)
"RTN","EDPQLP",55,0)
F S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,NAME)) Q:$E(NAME,1,$L(PARTIAL))'=PARTIAL Q:NAME="" D
"RTN","EDPQLP",56,0)
. S IEN=0 F S IEN=$O(^EDP(230,"PN",EDPSITE,AREA,NAME,IEN)) Q:'IEN D
"RTN","EDPQLP",57,0)
. . S X("id")=IEN,X("name")=NAME,X("inTS")=$P(^EDP(230,IEN,0),U,8)
"RTN","EDPQLP",58,0)
. . D XML^EDPX($$XMLA^EDPX("visit",.X))
"RTN","EDPQLP",59,0)
Q
"RTN","EDPRPT")
0^30^B8892171
"RTN","EDPRPT",1,0)
EDPRPT ;SLC/MKB - Reports
"RTN","EDPRPT",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT",3,0)
;
"RTN","EDPRPT",4,0)
EN(BEG,END,RPT,ID,CSV) ; Get RPT data for EDPSITE by date range
"RTN","EDPRPT",5,0)
I BEG,END D ;check
"RTN","EDPRPT",6,0)
. N X I END")
"RTN","EDPRPT",32,0)
Q
"RTN","EDPRPT",33,0)
;
"RTN","EDPRPT",34,0)
NOW() ; -- Return local value of NOW, based on EDPSITE
"RTN","EDPRPT",35,0)
N TA,OFF,NOW
"RTN","EDPRPT",36,0)
S TA=+$O(^EDPB(231.9,"C",+$G(EDPSITE),0)),OFF=$P($G(^EDPB(231.9,TA,0)),U,3)
"RTN","EDPRPT",37,0)
S NOW=$$NOW^XLFDT S:OFF NOW=$$FMADD^XLFDT(NOW,,,OFF) ;time zone
"RTN","EDPRPT",38,0)
Q NOW
"RTN","EDPRPT",39,0)
;
"RTN","EDPRPT",40,0)
PROV(MD) ; add list of assigned providers to XML
"RTN","EDPRPT",41,0)
N I,X0,X
"RTN","EDPRPT",42,0)
D XML^EDPX("")
"RTN","EDPRPT",43,0)
S I=0 F S I=$O(MD(I)) Q:I<1 D
"RTN","EDPRPT",44,0)
. S X0=$G(^EDPB(231.7,I,0)),X=""
"RTN","EDPRPT",45,0)
. D XML^EDPX(X)
"RTN","EDPRPT",46,0)
D XML^EDPX("")
"RTN","EDPRPT",47,0)
Q
"RTN","EDPRPT",48,0)
;
"RTN","EDPRPT",49,0)
ECODE(IEN) ; Return external value for a Code
"RTN","EDPRPT",50,0)
Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,3) ;code
"RTN","EDPRPT",51,0)
Q ""
"RTN","EDPRPT",52,0)
;
"RTN","EDPRPT",53,0)
EPERS(IEN) ; Return external value for a Person (file 200)
"RTN","EDPRPT",54,0)
Q:IEN $P($G(^EDPB(231.7,IEN,0)),U)
"RTN","EDPRPT",55,0)
Q ""
"RTN","EDPRPT",56,0)
;
"RTN","EDPRPT",57,0)
EDATE(FMDT) ; Return external value for a Date/Time
"RTN","EDPRPT",58,0)
Q:FMDT $TR($$FMTE^XLFDT(FMDT,"2M"),"@"," ") ;MM/DD/YY HH:MM
"RTN","EDPRPT",59,0)
Q ""
"RTN","EDPRPT",60,0)
;
"RTN","EDPRPT",61,0)
ETIME(MINS) ; Return #minutes as HH:MM
"RTN","EDPRPT",62,0)
N H,M,Y
"RTN","EDPRPT",63,0)
S H=MINS\60,M=MINS#60
"RTN","EDPRPT",64,0)
S Y=H_":"_$S($L(M)=1:"0"_M,1:M)
"RTN","EDPRPT",65,0)
Q Y
"RTN","EDPRPT",66,0)
;
"RTN","EDPRPT",67,0)
ASSIGNED(LOG,PCE) ; Return time PCE was first assigned
"RTN","EDPRPT",68,0)
N D,I,Y S Y=""
"RTN","EDPRPT",69,0)
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
"RTN","EDPRPT",70,0)
Q Y
"RTN","EDPRPT",71,0)
;
"RTN","EDPRPT",72,0)
NWBED(LOG) ; Return 1st time non-wait bed was assigned
"RTN","EDPRPT",73,0)
N D,I,X,Y,BED S Y=""
"RTN","EDPRPT",74,0)
S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D Q:Y
"RTN","EDPRPT",75,0)
. S BED=+$P($G(^EDP(230.1,I,3)),U,4)
"RTN","EDPRPT",76,0)
. S X=$P($G(^EDPB(231.8,BED,0)),U,9) ;allow multiple assignments?
"RTN","EDPRPT",77,0)
. I X=0!(X="false") S Y=D Q
"RTN","EDPRPT",78,0)
Q Y
"RTN","EDPRPT",79,0)
;
"RTN","EDPRPT",80,0)
ADMSTS(LOG) ; Return 1st time admit status was assigned
"RTN","EDPRPT",81,0)
N D,I,X3,X,Y S Y=""
"RTN","EDPRPT",82,0)
S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D Q:Y
"RTN","EDPRPT",83,0)
. S X3=$G(^EDP(230.1,I,3))
"RTN","EDPRPT",84,0)
. I $P(X3,U,2),$P($G(^EDPB(233.1,+$P(X3,U,2),0)),U,5)["A" S Y=D
"RTN","EDPRPT",85,0)
Q Y
"RTN","EDPRPT1")
0^31^B33830475
"RTN","EDPRPT1",1,0)
EDPRPT1 ;SLC/MKB - Activity Report
"RTN","EDPRPT1",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT1",3,0)
;
"RTN","EDPRPT1",4,0)
ACT(BEG,END) ; Get Activity Report for EDPSITE by date range
"RTN","EDPRPT1",5,0)
N LOG,X,X0,X1,X3,X4,IN,OUT,ROW,PROV,I,NOW
"RTN","EDPRPT1",6,0)
N ELAPSE,TRIAGE,WAIT,ADMDEC,ADMDEL,ALL,ADM,NOT,DISP
"RTN","EDPRPT1",7,0)
D INIT ;set counters, sums to 0
"RTN","EDPRPT1",8,0)
D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers
"RTN","EDPRPT1",9,0)
. N TAB S TAB=$C(9)
"RTN","EDPRPT1",10,0)
. 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"
"RTN","EDPRPT1",11,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT1",12,0)
S IN=BEG-.000001
"RTN","EDPRPT1",13,0)
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
"RTN","EDPRPT1",14,0)
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
"RTN","EDPRPT1",15,0)
. S OUT=$P(X0,U,9)
"RTN","EDPRPT1",16,0)
. K ROW S ROW("id")=LOG,ALL=ALL+1
"RTN","EDPRPT1",17,0)
. S ROW("inTS")=$$EDATE^EDPRPT(IN)
"RTN","EDPRPT1",18,0)
. S ROW("outTS")=$$EDATE^EDPRPT(OUT)
"RTN","EDPRPT1",19,0)
. S ROW("complaint")=$P(X1,U)
"RTN","EDPRPT1",20,0)
. S DISP=$$ECODE^EDPRPT($P(X1,U,2)),ROW("disposition")=DISP
"RTN","EDPRPT1",21,0)
. S ROW("arrival")=$$ECODE($P(X1,U,10))
"RTN","EDPRPT1",22,0)
. S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3))
"RTN","EDPRPT1",23,0)
. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
"RTN","EDPRPT1",24,0)
. S:$P(X3,U,5) PROV(+$P(X3,U,5))=""
"RTN","EDPRPT1",25,0)
. S ROW("dx")=$P(X4,U),ROW("icd")=$P(X4,U,2)
"RTN","EDPRPT1",26,0)
. S:'$L(DISP) DISP="none" ;need as subscript
"RTN","EDPRPT1",27,0)
. S DISP(DISP)=DISP(DISP)+1
"RTN","EDPRPT1",28,0)
. ;
"RTN","EDPRPT1",29,0)
A1 . ; calculate times
"RTN","EDPRPT1",30,0)
. S:OUT="" OUT=NOW ;for calculations
"RTN","EDPRPT1",31,0)
. S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60)
"RTN","EDPRPT1",32,0)
. S ROW("elapsed")=ELAPSE_$S(ELAPSE>359:" *",1:"")
"RTN","EDPRPT1",33,0)
. S ALL("elapsed")=ALL("elapsed")+ELAPSE
"RTN","EDPRPT1",34,0)
. S DISP(DISP,"elapsed")=DISP(DISP,"elapsed")+ELAPSE
"RTN","EDPRPT1",35,0)
. ;
"RTN","EDPRPT1",36,0)
. S X=$$ASSIGNED^EDPRPT(LOG,3),TRIAGE=0 ;acuity
"RTN","EDPRPT1",37,0)
. S TRIAGE=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0),ROW("triage")=TRIAGE
"RTN","EDPRPT1",38,0)
. S ALL("triage")=ALL("triage")+TRIAGE
"RTN","EDPRPT1",39,0)
. S DISP(DISP,"triage")=DISP(DISP,"triage")+TRIAGE
"RTN","EDPRPT1",40,0)
. ;
"RTN","EDPRPT1",41,0)
. S X=$$NWBED^EDPRPT(LOG),WAIT=0
"RTN","EDPRPT1",42,0)
. S WAIT=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0),ROW("wait")=WAIT
"RTN","EDPRPT1",43,0)
. S ALL("wait")=ALL("wait")+WAIT
"RTN","EDPRPT1",44,0)
. S DISP(DISP,"wait")=DISP(DISP,"wait")+WAIT
"RTN","EDPRPT1",45,0)
. ;
"RTN","EDPRPT1",46,0)
. S X=$$ADMSTS^EDPRPT(LOG) I X<1 D
"RTN","EDPRPT1",47,0)
.. S NOT=NOT+1,NOT("elapsed")=NOT("elapsed")+ELAPSE
"RTN","EDPRPT1",48,0)
.. S NOT("triage")=NOT("triage")+TRIAGE
"RTN","EDPRPT1",49,0)
.. S NOT("wait")=NOT("wait")+WAIT
"RTN","EDPRPT1",50,0)
. E D ;decision to admit
"RTN","EDPRPT1",51,0)
.. S ADMDEC=($$FMDIFF^XLFDT(X,IN,2)\60),ROW("admDec")=ADMDEC
"RTN","EDPRPT1",52,0)
.. S ADMDEL=($$FMDIFF^XLFDT(OUT,X,2)\60),ROW("admDel")=ADMDEL
"RTN","EDPRPT1",53,0)
.. S ADM=ADM+1,ADM("elapsed")=ADM("elapsed")+ELAPSE
"RTN","EDPRPT1",54,0)
.. S ADM("triage")=ADM("triage")+TRIAGE
"RTN","EDPRPT1",55,0)
.. S ADM("wait")=ADM("wait")+WAIT
"RTN","EDPRPT1",56,0)
.. S ADM("admDec")=ADM("admDec")+ADMDEC
"RTN","EDPRPT1",57,0)
.. S ADM("admDel")=ADM("admDel")+ADMDEL
"RTN","EDPRPT1",58,0)
.. S DISP(DISP,"admDec")=DISP(DISP,"admDec")+ADMDEC
"RTN","EDPRPT1",59,0)
.. S DISP(DISP,"admDel")=DISP(DISP,"admDel")+ADMDEL
"RTN","EDPRPT1",60,0)
. ;
"RTN","EDPRPT1",61,0)
. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
"RTN","EDPRPT1",62,0)
. S X=ROW("id")
"RTN","EDPRPT1",63,0)
. F I="inTS","outTS","complaint","md","acuity","elapsed","triage","wait","disposition","admDec","admDel","arrival","dx","icd" S X=X_$C(9)_$G(ROW(I))
"RTN","EDPRPT1",64,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT1",65,0)
D:'$G(CSV) XML^EDPX("")
"RTN","EDPRPT1",66,0)
;
"RTN","EDPRPT1",67,0)
A2 ; calculate & include averages
"RTN","EDPRPT1",68,0)
Q:ALL<1 ;no visits found
"RTN","EDPRPT1",69,0)
S ALL("type")="All Patients",NOT("type")="Not Admitted",ADM("type")="Admitted"
"RTN","EDPRPT1",70,0)
F I="elapsed","triage","wait" S ALL(I)=$$ETIME^EDPRPT(ALL(I)\ALL)
"RTN","EDPRPT1",71,0)
F I="elapsed","triage","wait" S NOT(I)=$S(NOT:$$ETIME^EDPRPT(NOT(I)\NOT),1:"00:00")
"RTN","EDPRPT1",72,0)
F I="elapsed","triage","wait","admDec","admDel" S ADM(I)=$S(ADM:$$ETIME^EDPRPT(ADM(I)\ADM),1:"00:00")
"RTN","EDPRPT1",73,0)
F I="admDec","admDel" S ALL(I)=ADM(I)
"RTN","EDPRPT1",74,0)
S ALL("total")=ALL,NOT("total")=NOT,ADM("total")=ADM
"RTN","EDPRPT1",75,0)
S X="" F S X=$O(DISP(X)) Q:X="" I DISP(X) D
"RTN","EDPRPT1",76,0)
. S DISP(X,"total")=DISP(X),DISP(X,"type")=X
"RTN","EDPRPT1",77,0)
. F I="elapsed","triage","wait","admDec","admDel" S DISP(X,I)=$$ETIME^EDPRPT(DISP(X,I)\DISP(X))
"RTN","EDPRPT1",78,0)
;
"RTN","EDPRPT1",79,0)
A3 I $G(CSV) D Q ;CSV format
"RTN","EDPRPT1",80,0)
. N TAB,D S TAB=$C(9)
"RTN","EDPRPT1",81,0)
. D BLANK^EDPCSV
"RTN","EDPRPT1",82,0)
. 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")
"RTN","EDPRPT1",83,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT1",84,0)
. S X=TAB_TAB_TAB_TAB_"Total"_TAB_"Visit"_TAB_"Triage"_TAB_"Wait"_TAB_"Adm Dec"_TAB_"Adm Del"
"RTN","EDPRPT1",85,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT1",86,0)
. S X=TAB_TAB_TAB_"Patients Not Admitted"_TAB_NOT_TAB_NOT("elapsed")_TAB_NOT("triage")_TAB_NOT("wait")
"RTN","EDPRPT1",87,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT1",88,0)
. S X=TAB_TAB_TAB_"Patients Admitted"_TAB_ADM_TAB_ADM("elapsed")_TAB_ADM("triage")_TAB_ADM("wait")_TAB_ADM("admDec")_TAB_ADM("admDel")
"RTN","EDPRPT1",89,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT1",90,0)
. S X=TAB_TAB_TAB_"Disposition" D ADD^EDPCSV(X)
"RTN","EDPRPT1",91,0)
. S D="" F S D=$O(DISP(D)) Q:D="" I DISP(D) D
"RTN","EDPRPT1",92,0)
.. 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")
"RTN","EDPRPT1",93,0)
.. D ADD^EDPCSV(X)
"RTN","EDPRPT1",94,0)
D XML^EDPX("")
"RTN","EDPRPT1",95,0)
S X=$$XMLA^EDPX("average",.ALL) D XML^EDPX(X)
"RTN","EDPRPT1",96,0)
S X=$$XMLA^EDPX("average",.NOT) D XML^EDPX(X)
"RTN","EDPRPT1",97,0)
S X=$$XMLA^EDPX("average",.ADM) D XML^EDPX(X)
"RTN","EDPRPT1",98,0)
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)
"RTN","EDPRPT1",99,0)
D XML^EDPX("")
"RTN","EDPRPT1",100,0)
; include list of providers assigned
"RTN","EDPRPT1",101,0)
I $O(PROV(0)) D PROV^EDPRPT(.PROV)
"RTN","EDPRPT1",102,0)
Q
"RTN","EDPRPT1",103,0)
;
"RTN","EDPRPT1",104,0)
INIT ; Initialize counters and sums
"RTN","EDPRPT1",105,0)
N I,NM S (ALL,ADM,NOT)=0
"RTN","EDPRPT1",106,0)
F I="elapsed","triage","wait" S (ALL(I),NOT(I),ADM(I))=0
"RTN","EDPRPT1",107,0)
F I="admDec","admDel" S ADM(I)=0
"RTN","EDPRPT1",108,0)
S NM="" F S NM=$O(^EDPB(233.1,"B",NM)) Q:NM="" I $P(NM,".",2)="disposition" S I=+$O(^(NM,0)) D
"RTN","EDPRPT1",109,0)
. S X=$P($G(^EDPB(233.1,I,0)),U,3),DISP(X)=0
"RTN","EDPRPT1",110,0)
. F I="elapsed","triage","wait","admDec","admDel" S DISP(X,I)=0
"RTN","EDPRPT1",111,0)
S DISP("none")=0 F I="elapsed","triage","wait","admDec","admDel" S DISP("none",I)=0
"RTN","EDPRPT1",112,0)
S NOW=$$NOW^EDPRPT
"RTN","EDPRPT1",113,0)
Q
"RTN","EDPRPT1",114,0)
;
"RTN","EDPRPT1",115,0)
ECODE(IEN) ; Return external value for a Code
"RTN","EDPRPT1",116,0)
Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
"RTN","EDPRPT1",117,0)
Q ""
"RTN","EDPRPT10")
0^32^B19054284
"RTN","EDPRPT10",1,0)
EDPRPT10 ;SLC/MKB - Admissions Report
"RTN","EDPRPT10",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT10",3,0)
;
"RTN","EDPRPT10",4,0)
ADM(BEG,END) ; Get Admissions Report for EDPSITE by date range
"RTN","EDPRPT10",5,0)
N IN,OUT,LOG,X,X0,X1,X3,X4,DISP,ROW,NOW,TAB
"RTN","EDPRPT10",6,0)
N ELAPSE,TRIAGE,WAIT,ADMDEC,ADMDEL
"RTN","EDPRPT10",7,0)
D INIT ;set counters, sums to 0
"RTN","EDPRPT10",8,0)
D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers
"RTN","EDPRPT10",9,0)
. S TAB=$C(9)
"RTN","EDPRPT10",10,0)
. 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"
"RTN","EDPRPT10",11,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT10",12,0)
S IN=BEG-.000001
"RTN","EDPRPT10",13,0)
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
"RTN","EDPRPT10",14,0)
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
"RTN","EDPRPT10",15,0)
. S DISP=$$ECODE^EDPRPT($P(X1,U,2)) Q:'$D(CNT(DISP))
"RTN","EDPRPT10",16,0)
. S OUT=$P(X0,U,9)
"RTN","EDPRPT10",17,0)
. K ROW S ROW("id")=LOG
"RTN","EDPRPT10",18,0)
. S ROW("outTS")=$$EDATE^EDPRPT(OUT)
"RTN","EDPRPT10",19,0)
. S ROW("complaint")=$P(X1,U)
"RTN","EDPRPT10",20,0)
. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
"RTN","EDPRPT10",21,0)
. S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3))
"RTN","EDPRPT10",22,0)
. S ROW("disposition")=DISP
"RTN","EDPRPT10",23,0)
. S ROW("dx")=$P(X4,U),ROW("icd")=$P(X4,U,2)
"RTN","EDPRPT10",24,0)
. ; ER Special Visit ?? -- ck ^DPT dispositions
"RTN","EDPRPT10",25,0)
. S CNT("ALL")=CNT("ALL")+1,CNT(DISP)=CNT(DISP)+1
"RTN","EDPRPT10",26,0)
. ;
"RTN","EDPRPT10",27,0)
A1 . ; calculate times
"RTN","EDPRPT10",28,0)
. S:OUT="" OUT=NOW
"RTN","EDPRPT10",29,0)
. S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60)
"RTN","EDPRPT10",30,0)
. F I="ALL",DISP S MIN(I,"elapsed")=MIN(I,"elapsed")+ELAPSE
"RTN","EDPRPT10",31,0)
. ;
"RTN","EDPRPT10",32,0)
. S X=$$ASSIGNED^EDPRPT(LOG,3) ;acuity assigned
"RTN","EDPRPT10",33,0)
. S TRIAGE=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
"RTN","EDPRPT10",34,0)
. F I="ALL",DISP S MIN(I,"triage")=MIN(I,"triage")+TRIAGE
"RTN","EDPRPT10",35,0)
. ;
"RTN","EDPRPT10",36,0)
. S X=$$NWBED^EDPRPT(LOG) ;non-wait bed assigned
"RTN","EDPRPT10",37,0)
. S WAIT=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
"RTN","EDPRPT10",38,0)
. F I="ALL",DISP S MIN(I,"wait")=MIN(I,"wait")+WAIT
"RTN","EDPRPT10",39,0)
. ;
"RTN","EDPRPT10",40,0)
. S X=$$ADMSTS^EDPRPT(LOG) ;decision to admit
"RTN","EDPRPT10",41,0)
. S ADMDEC=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
"RTN","EDPRPT10",42,0)
. F I="ALL",DISP S MIN(I,"admDec")=MIN(I,"admDec")+ADMDEC
"RTN","EDPRPT10",43,0)
. S ROW("admDec")=ADMDEC
"RTN","EDPRPT10",44,0)
. ;
"RTN","EDPRPT10",45,0)
. S ADMDEL=$S(X:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0)
"RTN","EDPRPT10",46,0)
. F I="ALL",DISP S MIN(I,"admDel")=MIN(I,"admDel")+ADMDEL
"RTN","EDPRPT10",47,0)
. S ROW("admDel")=ADMDEL
"RTN","EDPRPT10",48,0)
. ;
"RTN","EDPRPT10",49,0)
. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
"RTN","EDPRPT10",50,0)
. S X=ROW("id")
"RTN","EDPRPT10",51,0)
. F I="outTS","complaint","md","acuity","disposition","admDec","admDel","dx","icd" S X=X_$C(9)_$G(ROW(I))
"RTN","EDPRPT10",52,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT10",53,0)
D:'$G(CSV) XML^EDPX("")
"RTN","EDPRPT10",54,0)
;
"RTN","EDPRPT10",55,0)
A2 ; calculate & include averages
"RTN","EDPRPT10",56,0)
Q:CNT("ALL")<1 ;no visits found
"RTN","EDPRPT10",57,0)
I $G(CSV) D Q ;return as CSV
"RTN","EDPRPT10",58,0)
. S X=TAB_TAB_TAB_" Activity Summary"_TAB_"Total"_TAB_"Visit"_TAB_"Triage"_TAB_"Wait"_TAB_"Adm Dec"_TAB_"Adm Delay"
"RTN","EDPRPT10",59,0)
. D BLANK^EDPCSV,ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT10",60,0)
. S X=TAB_TAB_TAB_"Total Patients VA Admitted"_TAB_CNT("ALL")
"RTN","EDPRPT10",61,0)
. F I="elapsed","triage","wait","admDec","admDel" D
"RTN","EDPRPT10",62,0)
.. S Y=MIN("ALL",I)\CNT("ALL"),X=X_TAB_$S(Y:$$ETIME^EDPRPT(Y),1:"0:00")
"RTN","EDPRPT10",63,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT10",64,0)
. S X=TAB_TAB_TAB_" Disposition" D ADD^EDPCSV(X)
"RTN","EDPRPT10",65,0)
. S DISP="" F S DISP=$O(CNT(DISP)) Q:DISP="" I DISP'="ALL",CNT(DISP) D
"RTN","EDPRPT10",66,0)
.. S X=TAB_TAB_TAB_DISP_TAB_CNT(DISP)
"RTN","EDPRPT10",67,0)
.. F I="elapsed","triage","wait","admDec","admDel" D
"RTN","EDPRPT10",68,0)
... S Y=MIN(DISP,I)\CNT(DISP),X=X_TAB_$S(Y:$$ETIME^EDPRPT(Y),1:"0:00")
"RTN","EDPRPT10",69,0)
.. D ADD^EDPCSV(X)
"RTN","EDPRPT10",70,0)
; or as XML
"RTN","EDPRPT10",71,0)
D XML^EDPX("")
"RTN","EDPRPT10",72,0)
S DISP="" F S DISP=$O(CNT(DISP)) Q:DISP="" I CNT(DISP) D
"RTN","EDPRPT10",73,0)
. S MIN(DISP,"type")=$S(DISP="ALL":"Total Patients VA Admitted",1:DISP)
"RTN","EDPRPT10",74,0)
. S MIN(DISP,"total")=CNT(DISP)
"RTN","EDPRPT10",75,0)
. F I="elapsed","triage","wait","admDec","admDel" D
"RTN","EDPRPT10",76,0)
.. S X=MIN(DISP,I)\CNT(DISP)
"RTN","EDPRPT10",77,0)
.. S MIN(DISP,I)=$S(X:$$ETIME^EDPRPT(X),1:"0:00")
"RTN","EDPRPT10",78,0)
. K ROW M ROW=MIN(DISP)
"RTN","EDPRPT10",79,0)
. S X=$$XMLA^EDPX("average",.ROW) D XML^EDPX(X)
"RTN","EDPRPT10",80,0)
D XML^EDPX("")
"RTN","EDPRPT10",81,0)
Q
"RTN","EDPRPT10",82,0)
;
"RTN","EDPRPT10",83,0)
INIT ; Initialize counters and sums
"RTN","EDPRPT10",84,0)
N D,N,I
"RTN","EDPRPT10",85,0)
;F D="VA","T","ICU","OBS","ALL" D
"RTN","EDPRPT10",86,0)
S D="" F S D=$O(^EDPB(233.1,"AB","disposition",D)) Q:D="" D
"RTN","EDPRPT10",87,0)
. S N=0 F S N=$O(^EDPB(233.1,"AB","disposition",D,N)) Q:N<1 D
"RTN","EDPRPT10",88,0)
.. Q:$P($G(^EDPB(233.1,N,0)),U,5)'["A"
"RTN","EDPRPT10",89,0)
.. S CNT(D)=0
"RTN","EDPRPT10",90,0)
.. F I="elapsed","triage","wait","admDec","admDel" S MIN(D,I)=0
"RTN","EDPRPT10",91,0)
S CNT("ALL")=0
"RTN","EDPRPT10",92,0)
F I="elapsed","triage","wait","admDec","admDel" S MIN("ALL",I)=0
"RTN","EDPRPT10",93,0)
S NOW=$$NOW^EDPRPT
"RTN","EDPRPT10",94,0)
Q
"RTN","EDPRPT10",95,0)
;
"RTN","EDPRPT10",96,0)
ECODE(IEN) ; Return external value for a Code
"RTN","EDPRPT10",97,0)
Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
"RTN","EDPRPT10",98,0)
Q ""
"RTN","EDPRPT11")
0^33^B8284389
"RTN","EDPRPT11",1,0)
EDPRPT11 ;SLC/MKB - Patient Intake Report
"RTN","EDPRPT11",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT11",3,0)
;
"RTN","EDPRPT11",4,0)
CNT(BEG,END) ; Get Patient Intake Report for EDPSITE by date range
"RTN","EDPRPT11",5,0)
; CNT = counters
"RTN","EDPRPT11",6,0)
N IN,LOG,LAST,X,CNT,DAY,%H,%T,%Y,T,D,ROW,NM,NMA,TAB
"RTN","EDPRPT11",7,0)
D INIT S LAST="" ;set counters to 0
"RTN","EDPRPT11",8,0)
S IN=BEG-.000001,TAB=$C(9)
"RTN","EDPRPT11",9,0)
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
"RTN","EDPRPT11",10,0)
. S X=$P($G(^EDP(230,LOG,0)),U,8) Q:X<1
"RTN","EDPRPT11",11,0)
. D H^%DTC S T=%T\3600,D=%Y
"RTN","EDPRPT11",12,0)
. S CNT=CNT+1,CNT(T)=CNT(T)+1,CNT(T,D)=CNT(T,D)+1
"RTN","EDPRPT11",13,0)
. S CNT("D",D)=CNT("D",D)+1
"RTN","EDPRPT11",14,0)
. I LAST=""!(LAST'=D) S DAY(D)=DAY(D)+1
"RTN","EDPRPT11",15,0)
C1 ; return counts and averages
"RTN","EDPRPT11",16,0)
D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers
"RTN","EDPRPT11",17,0)
. 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"
"RTN","EDPRPT11",18,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT11",19,0)
F T=0:1:23 D
"RTN","EDPRPT11",20,0)
. K ROW S ROW("time")=$$TIME(T)_"-"_$$TIME(T+1)
"RTN","EDPRPT11",21,0)
. S ROW=ROW("time") ;CSV
"RTN","EDPRPT11",22,0)
. F D=0:1:6 S NM=$$DAY(D) D
"RTN","EDPRPT11",23,0)
.. S ROW(NM)=CNT(T,D),NMA="avg"_$E(NM,1,3)
"RTN","EDPRPT11",24,0)
.. S X=$S(DAY(D):CNT(T,D)/DAY(D),1:0)
"RTN","EDPRPT11",25,0)
.. S ROW(NMA)=$$ROUND(X)
"RTN","EDPRPT11",26,0)
.. S ROW=ROW_TAB_ROW(NM)_TAB_ROW(NMA) ;CSV
"RTN","EDPRPT11",27,0)
. S ROW("total")=CNT(T),ROW("average")=$$ROUND(CNT(T)/24)
"RTN","EDPRPT11",28,0)
. I '$G(CSV) S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) Q
"RTN","EDPRPT11",29,0)
. S ROW=ROW_TAB_ROW("total")_TAB_ROW("average") D ADD^EDPCSV(ROW)
"RTN","EDPRPT11",30,0)
; totals row
"RTN","EDPRPT11",31,0)
K ROW S ROW("time")="Totals",ROW=ROW("time")
"RTN","EDPRPT11",32,0)
F D=0:1:6 S NM=$$DAY(D) D
"RTN","EDPRPT11",33,0)
. S ROW(NM)=CNT("D",D),NMA="avg"_$E(NM,1,3)
"RTN","EDPRPT11",34,0)
. S X=$S(DAY(D):CNT("D",D)/DAY(D),1:0)
"RTN","EDPRPT11",35,0)
. S ROW(NMA)=$$ROUND(X)
"RTN","EDPRPT11",36,0)
. S ROW=ROW_TAB_ROW(NM)_TAB_ROW(NMA) ;CSV
"RTN","EDPRPT11",37,0)
S ROW("total")=CNT,ROW=ROW_TAB_ROW("total")
"RTN","EDPRPT11",38,0)
I $G(CSV) D BLANK^EDPCSV,ADD^EDPCSV(ROW) Q
"RTN","EDPRPT11",39,0)
S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X)
"RTN","EDPRPT11",40,0)
D XML^EDPX("")
"RTN","EDPRPT11",41,0)
Q
"RTN","EDPRPT11",42,0)
;
"RTN","EDPRPT11",43,0)
INIT ; Initialize counters and sums
"RTN","EDPRPT11",44,0)
N T,D S CNT=0
"RTN","EDPRPT11",45,0)
F T=0:1:23 S CNT(T)=0 F D=0:1:6 S CNT(T,D)=0
"RTN","EDPRPT11",46,0)
F D=0:1:6 S CNT("D",D)=0,DAY(D)=0
"RTN","EDPRPT11",47,0)
Q
"RTN","EDPRPT11",48,0)
;
"RTN","EDPRPT11",49,0)
ROUND(X) ; Round X to nearest integer
"RTN","EDPRPT11",50,0)
N Y S Y=+$E($P(X,".",2)),X=X\1
"RTN","EDPRPT11",51,0)
S:Y>4 X=X+1
"RTN","EDPRPT11",52,0)
Q X
"RTN","EDPRPT11",53,0)
;
"RTN","EDPRPT11",54,0)
TIME(X) ; Return 0000 form of hour# X
"RTN","EDPRPT11",55,0)
N Y S Y=$S($L(X)=1:"0"_X,1:X)_"00"
"RTN","EDPRPT11",56,0)
Q Y
"RTN","EDPRPT11",57,0)
;
"RTN","EDPRPT11",58,0)
DAY(X) ; Return name of day# X
"RTN","EDPRPT11",59,0)
I X=1 Q "Monday"
"RTN","EDPRPT11",60,0)
I X=2 Q "Tuesday"
"RTN","EDPRPT11",61,0)
I X=3 Q "Wednesday"
"RTN","EDPRPT11",62,0)
I X=4 Q "Thursday"
"RTN","EDPRPT11",63,0)
I X=5 Q "Friday"
"RTN","EDPRPT11",64,0)
I X=6 Q "Saturday"
"RTN","EDPRPT11",65,0)
Q "Sunday"
"RTN","EDPRPT2")
0^34^B16939211
"RTN","EDPRPT2",1,0)
EDPRPT2 ;SLC/MKB - Delay Report
"RTN","EDPRPT2",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT2",3,0)
;
"RTN","EDPRPT2",4,0)
DEL(BEG,END) ; Get Delay Report for EDPSITE by date range
"RTN","EDPRPT2",5,0)
; CNT = counters
"RTN","EDPRPT2",6,0)
; MIN = accumulate #minutes
"RTN","EDPRPT2",7,0)
N IN,OUT,LOG,X,X0,X1,X3,X4,ELAPSE,ADMDEC,ADMDEL,DISP,VADISP,CNT,MIN,DEL,ACU,NOW
"RTN","EDPRPT2",8,0)
D INIT ;set counters, sums to 0
"RTN","EDPRPT2",9,0)
D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers
"RTN","EDPRPT2",10,0)
. N TAB S TAB=$C(9)
"RTN","EDPRPT2",11,0)
. 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"
"RTN","EDPRPT2",12,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT2",13,0)
S IN=BEG-.000001
"RTN","EDPRPT2",14,0)
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
"RTN","EDPRPT2",15,0)
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
"RTN","EDPRPT2",16,0)
. S ACU=$$ECODE^EDPRPT($P(X3,U,3)),DEL=+$P(X1,U,5),CNT=CNT+1
"RTN","EDPRPT2",17,0)
. S DISP=$$ECODE^EDPRPT($P(X1,U,2)),VADISP=$$ADMIT(DISP)
"RTN","EDPRPT2",18,0)
. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
"RTN","EDPRPT2",19,0)
. S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60),MIN=MIN+ELAPSE
"RTN","EDPRPT2",20,0)
D1 . ; all admissions
"RTN","EDPRPT2",21,0)
. S (ADMDEC,ADMDEL)=0
"RTN","EDPRPT2",22,0)
. S X=$$ADMSTS^EDPRPT(LOG) I X D
"RTN","EDPRPT2",23,0)
.. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60
"RTN","EDPRPT2",24,0)
.. S:ADMDEC CNT("DEC")=CNT("DEC")+1,MIN("DEC")=MIN("DEC")+ADMDEC
"RTN","EDPRPT2",25,0)
.. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60
"RTN","EDPRPT2",26,0)
D2 . ; VA admissions only
"RTN","EDPRPT2",27,0)
. I VADISP D
"RTN","EDPRPT2",28,0)
.. S CNT("VA")=CNT("VA")+1
"RTN","EDPRPT2",29,0)
.. S MIN("VA")=MIN("VA")+ELAPSE
"RTN","EDPRPT2",30,0)
.. S MIN("VADEC")=MIN("VADEC")+ADMDEC
"RTN","EDPRPT2",31,0)
.. S MIN("VADEL")=MIN("VADEL")+ADMDEL
"RTN","EDPRPT2",32,0)
.. S:ADMDEL>359 CNT("VADEL6")=CNT("VADEL6")+1
"RTN","EDPRPT2",33,0)
D3 . ; elapsed visit time >=6 hrs
"RTN","EDPRPT2",34,0)
. S:ELAPSE>1380 CNT("23+")=CNT("23+")+1
"RTN","EDPRPT2",35,0)
. I ELAPSE>359 D
"RTN","EDPRPT2",36,0)
.. S CNT("6+")=CNT("6+")+1
"RTN","EDPRPT2",37,0)
.. S:VADISP CNT("VA6")=CNT("VA6")+1
"RTN","EDPRPT2",38,0)
.. N ROW S ROW("id")=LOG,ROW("inTS")=$$EDATE^EDPRPT(IN)
"RTN","EDPRPT2",39,0)
.. S ROW("elapsed")=$$ETIME^EDPRPT(ELAPSE)_" *"
"RTN","EDPRPT2",40,0)
.. S ROW("disposition")=DISP
"RTN","EDPRPT2",41,0)
.. S ROW("acuity")=ACU
"RTN","EDPRPT2",42,0)
.. S ROW("delayReason")=$$ECODE(DEL)
"RTN","EDPRPT2",43,0)
.. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
"RTN","EDPRPT2",44,0)
.. S ROW("dx")=$P(X4,U)
"RTN","EDPRPT2",45,0)
.. S ROW("admDec")=ADMDEC
"RTN","EDPRPT2",46,0)
.. S ROW("admDel")=ADMDEL
"RTN","EDPRPT2",47,0)
.. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
"RTN","EDPRPT2",48,0)
.. S X=ROW("id")
"RTN","EDPRPT2",49,0)
.. F I="inTS","elapsed","disposition","delayReason","md","admDec","admDel","acuity","dx" S X=X_$C(9)_$G(ROW(I))
"RTN","EDPRPT2",50,0)
.. D ADD^EDPCSV(X)
"RTN","EDPRPT2",51,0)
. S:ACU="" ACU="none"
"RTN","EDPRPT2",52,0)
. S:DEL CNT(DEL,ACU)=+$G(CNT(DEL,ACU))+1,CNT(DEL)=+$G(CNT(DEL))+1
"RTN","EDPRPT2",53,0)
D:'$G(CSV) XML^EDPX("")
"RTN","EDPRPT2",54,0)
Q
"RTN","EDPRPT2",55,0)
;
"RTN","EDPRPT2",56,0)
D4 ; return counts and averages
"RTN","EDPRPT2",57,0)
D XML^EDPX("")
"RTN","EDPRPT2",58,0)
S X=""
"RTN","EDPRPT2",59,0)
D XML^EDPX(X)
"RTN","EDPRPT2",60,0)
S X=""
"RTN","EDPRPT2",61,0)
D XML^EDPX(X)
"RTN","EDPRPT2",62,0)
S X=""
"RTN","EDPRPT2",63,0)
D XML^EDPX(X)
"RTN","EDPRPT2",64,0)
I $G(SUMONLY) S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D
"RTN","EDPRPT2",65,0)
. S CNT(DEL,"reason")=$$ECODE(DEL)
"RTN","EDPRPT2",66,0)
. S CNT(DEL,"total")=CNT(DEL)
"RTN","EDPRPT2",67,0)
. K ROW M ROW=CNT(DEL)
"RTN","EDPRPT2",68,0)
. S X=$$XMLA^EDPX("delay",.ROW) D XML^EDPX(X)
"RTN","EDPRPT2",69,0)
D XML^EDPX("")
"RTN","EDPRPT2",70,0)
Q
"RTN","EDPRPT2",71,0)
;
"RTN","EDPRPT2",72,0)
INIT ; Initialize counters and sums
"RTN","EDPRPT2",73,0)
N I S (CNT,MIN)=0
"RTN","EDPRPT2",74,0)
F I="DEC","VA","VA6","VADEL6","6+","23+" S CNT(I)=0
"RTN","EDPRPT2",75,0)
F I="DEC","VA","VADEC","VADEL" S MIN(I)=0
"RTN","EDPRPT2",76,0)
S NOW=$$NOW^EDPRPT
"RTN","EDPRPT2",77,0)
Q
"RTN","EDPRPT2",78,0)
;
"RTN","EDPRPT2",79,0)
ECODE(IEN) ; Return external value for a Code
"RTN","EDPRPT2",80,0)
Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
"RTN","EDPRPT2",81,0)
Q ""
"RTN","EDPRPT2",82,0)
;
"RTN","EDPRPT2",83,0)
ADMIT(X) ; -- Return 1 or 0, if disposition indicates a VA admission
"RTN","EDPRPT2",84,0)
N I,Y S Y=0
"RTN","EDPRPT2",85,0)
S I=+$O(^EDPB(233.1,"AB","disposition",X,0))
"RTN","EDPRPT2",86,0)
S:$P($G(^EDPB(233.1,I,0)),U,5)["A" Y=1
"RTN","EDPRPT2",87,0)
Q Y
"RTN","EDPRPT3")
0^35^B6932750
"RTN","EDPRPT3",1,0)
EDPRPT3 ;SLC/MKB - Missed Opportunity Report
"RTN","EDPRPT3",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT3",3,0)
;
"RTN","EDPRPT3",4,0)
MO(BEG,END) ; Get Missed Opp Report for EDPSITE by date range
"RTN","EDPRPT3",5,0)
; CNT = counters
"RTN","EDPRPT3",6,0)
N IN,OUT,LOG,DISP,X,X0,X1,X3,X4,ADMDEC,ADMDEL,CNT,ROW,NOW
"RTN","EDPRPT3",7,0)
S CNT=0 F X="L","AMA","E" S CNT(X)=0
"RTN","EDPRPT3",8,0)
S NOW=$$NOW^EDPRPT
"RTN","EDPRPT3",9,0)
D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers
"RTN","EDPRPT3",10,0)
. N TAB S TAB=$C(9)
"RTN","EDPRPT3",11,0)
. S X="ED"_TAB_"Time In"_TAB_"Complaint"_TAB_"MD"_TAB_"Acuity"_TAB_"Elapsed"_TAB_"Triage"_TAB_"Wait"_TAB_"Dispo"_TAB_"Adm Dec"
"RTN","EDPRPT3",12,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT3",13,0)
S IN=BEG-.000001
"RTN","EDPRPT3",14,0)
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
"RTN","EDPRPT3",15,0)
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
"RTN","EDPRPT3",16,0)
. S DISP=$$ECODE^EDPRPT($P(X1,U,2)) Q:"^L^AMA^E^"'[(U_DISP_U)
"RTN","EDPRPT3",17,0)
. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
"RTN","EDPRPT3",18,0)
. K ROW S ROW("id")=LOG
"RTN","EDPRPT3",19,0)
. S ROW("inTS")=$$EDATE^EDPRPT(IN)
"RTN","EDPRPT3",20,0)
. S ROW("complaint")=$P(X1,U)
"RTN","EDPRPT3",21,0)
. S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3))
"RTN","EDPRPT3",22,0)
. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
"RTN","EDPRPT3",23,0)
. S ROW("disposition")=DISP,CNT(DISP)=CNT(DISP)+1
"RTN","EDPRPT3",24,0)
. ;calculate times
"RTN","EDPRPT3",25,0)
. S ROW("elapsed")=($$FMDIFF^XLFDT(OUT,IN,2)\60)
"RTN","EDPRPT3",26,0)
. S X=$$ASSIGNED^EDPRPT(LOG,3),ROW("triage")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) ;acuity
"RTN","EDPRPT3",27,0)
. S X=$$NWBED^EDPRPT(LOG),ROW("wait")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) ;non-wait bed
"RTN","EDPRPT3",28,0)
. S X=$$ADMSTS^EDPRPT(LOG)
"RTN","EDPRPT3",29,0)
. S ROW("admDec")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
"RTN","EDPRPT3",30,0)
. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
"RTN","EDPRPT3",31,0)
. S X=ROW("id")
"RTN","EDPRPT3",32,0)
. F I="inTS","complaint","md","acuity","elapsed","triage","wait","disposition","admDec" S X=X_$C(9)_$G(ROW(I))
"RTN","EDPRPT3",33,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT3",34,0)
D:'$G(CSV) XML^EDPX("")
"RTN","EDPRPT3",35,0)
;
"RTN","EDPRPT3",36,0)
; return totals, as XML or CSV
"RTN","EDPRPT3",37,0)
I '$G(CSV) S X=$$XMLA^EDPX("totals",.CNT) D XML^EDPX(X) Q
"RTN","EDPRPT3",38,0)
N TAB S TAB=$C(9)
"RTN","EDPRPT3",39,0)
D BLANK^EDPCSV
"RTN","EDPRPT3",40,0)
S X=TAB_TAB_TAB_TAB_"Total Left without being Seen: "_CNT("L")
"RTN","EDPRPT3",41,0)
D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT3",42,0)
S X=TAB_TAB_TAB_TAB_"Total Left AMA: "_CNT("AMA")
"RTN","EDPRPT3",43,0)
D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT3",44,0)
S X=TAB_TAB_TAB_TAB_"Total Eloped: "_CNT("E") D ADD^EDPCSV(X)
"RTN","EDPRPT3",45,0)
Q
"RTN","EDPRPT4")
0^36^B21986629
"RTN","EDPRPT4",1,0)
EDPRPT4 ;SLC/MKB - Delay Summary Report
"RTN","EDPRPT4",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT4",3,0)
;
"RTN","EDPRPT4",4,0)
SUM(BEG,END) ; Get Delay Report for EDPSITE by date range
"RTN","EDPRPT4",5,0)
; CNT = counters
"RTN","EDPRPT4",6,0)
; MIN = accumulate #minutes
"RTN","EDPRPT4",7,0)
N IN,OUT,LOG,X,X0,X1,X3,X4,ELAPSE,ADMDEC,ADMDEL,DISP,VADISP,CNT,MIN,PROV,DEL,ACU,Y,NOW
"RTN","EDPRPT4",8,0)
D INIT ;set counters, sums to 0
"RTN","EDPRPT4",9,0)
S IN=BEG-.000001
"RTN","EDPRPT4",10,0)
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
"RTN","EDPRPT4",11,0)
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
"RTN","EDPRPT4",12,0)
. S DISP=$$ECODE^EDPRPT($P(X1,U,2)),VADISP=$$ADMIT^EDPRPT2(DISP)
"RTN","EDPRPT4",13,0)
. S ACU=$$ECODE($P(X3,U,3))
"RTN","EDPRPT4",14,0)
. S DEL=+$P(X1,U,5),CNT=CNT+1
"RTN","EDPRPT4",15,0)
. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
"RTN","EDPRPT4",16,0)
. S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60),MIN=MIN+ELAPSE
"RTN","EDPRPT4",17,0)
D1 . ; all admissions
"RTN","EDPRPT4",18,0)
. S (ADMDEC,ADMDEL)=0
"RTN","EDPRPT4",19,0)
. S X=$$ADMSTS^EDPRPT(LOG) I X D
"RTN","EDPRPT4",20,0)
.. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60
"RTN","EDPRPT4",21,0)
.. S:ADMDEC CNT("DEC")=CNT("DEC")+1,MIN("DEC")=MIN("DEC")+ADMDEC
"RTN","EDPRPT4",22,0)
.. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60
"RTN","EDPRPT4",23,0)
D2 . ; VA admissions only
"RTN","EDPRPT4",24,0)
. I VADISP D
"RTN","EDPRPT4",25,0)
.. S CNT("VA")=CNT("VA")+1
"RTN","EDPRPT4",26,0)
.. S MIN("VA")=MIN("VA")+ELAPSE
"RTN","EDPRPT4",27,0)
.. S MIN("VADEC")=MIN("VADEC")+ADMDEC
"RTN","EDPRPT4",28,0)
.. S MIN("VADEL")=MIN("VADEL")+ADMDEL
"RTN","EDPRPT4",29,0)
.. S:ADMDEL>359 CNT("VADEL6")=CNT("VADEL6")+1
"RTN","EDPRPT4",30,0)
D3 . ; elapsed visit time >=6 hrs
"RTN","EDPRPT4",31,0)
. S:ELAPSE>1380 CNT("23+")=CNT("23+")+1
"RTN","EDPRPT4",32,0)
. I ELAPSE>359 D
"RTN","EDPRPT4",33,0)
.. S CNT("6+")=CNT("6+")+1
"RTN","EDPRPT4",34,0)
.. S:VADISP CNT("VA6")=CNT("VA6")+1
"RTN","EDPRPT4",35,0)
. S:DEL CNT(DEL,ACU)=+$G(CNT(DEL,ACU))+1,CNT(DEL)=+$G(CNT(DEL))+1
"RTN","EDPRPT4",36,0)
;
"RTN","EDPRPT4",37,0)
D4 ; return counts and averages as CSV
"RTN","EDPRPT4",38,0)
I $G(CSV) D Q
"RTN","EDPRPT4",39,0)
. N TAB S TAB=$C(9)
"RTN","EDPRPT4",40,0)
. S X=TAB_TAB_"Delay Reason"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total"
"RTN","EDPRPT4",41,0)
. D ADD^EDPCSV(X) ;headers
"RTN","EDPRPT4",42,0)
. S X="Total ED Visits: "_CNT_TAB
"RTN","EDPRPT4",43,0)
. S X=X_"Average ED Visit Time: "_$S(CNT:$$ETIME^EDPRPT(MIN\CNT),1:0)
"RTN","EDPRPT4",44,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT4",45,0)
. S X="Total Visits Over 6 Hours: "_CNT("6+")_TAB
"RTN","EDPRPT4",46,0)
. S X=X_"Total Visits Over 23 Hours: "_CNT("23+")
"RTN","EDPRPT4",47,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT4",48,0)
. S Y=CNT-CNT("VA"),X="Total Visits Not VA Admitted: "_Y_TAB
"RTN","EDPRPT4",49,0)
. S X=X_"Average Visit Time for Not VA Admitted: "_$S(Y:$$ETIME^EDPRPT((MIN-MIN("VA")\Y)),1:0)
"RTN","EDPRPT4",50,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT4",51,0)
. S Y=CNT("VA"),X="Total VA Admits: "_Y_TAB
"RTN","EDPRPT4",52,0)
. S X=X_"Total VA Admit Delay Over 6 Hours: "_CNT("VADEL6")
"RTN","EDPRPT4",53,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT4",54,0)
. S X="Average VA Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEC")\Y),1:0)_TAB
"RTN","EDPRPT4",55,0)
. S X=X_"Average VA Admit Delay Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEL")\Y),1:0)
"RTN","EDPRPT4",56,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT4",57,0)
. S Y=CNT("DEC"),X="Average All Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("DEC")\Y),1:0)
"RTN","EDPRPT4",58,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT4",59,0)
. S X=TAB_TAB_"Delay Chart" D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT4",60,0)
. S X=TAB_TAB_"Acuity"_TAB_"None"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total"
"RTN","EDPRPT4",61,0)
. D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT4",62,0)
. S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D
"RTN","EDPRPT4",63,0)
.. S X=TAB_TAB_$$ENAME(DEL)
"RTN","EDPRPT4",64,0)
.. F I="none","one","two","three","four","five" S X=X_TAB_+$G(CNT(DEL,I))
"RTN","EDPRPT4",65,0)
.. S X=X_TAB_CNT(DEL) D ADD^EDPCSV(X)
"RTN","EDPRPT4",66,0)
D5 ; or return counts and averages as XML
"RTN","EDPRPT4",67,0)
D XML^EDPX("")
"RTN","EDPRPT4",68,0)
S X=""
"RTN","EDPRPT4",72,0)
D XML^EDPX(X)
"RTN","EDPRPT4",73,0)
S Y=CNT-CNT("VA")
"RTN","EDPRPT4",74,0)
S X=""
"RTN","EDPRPT4",75,0)
D XML^EDPX(X)
"RTN","EDPRPT4",76,0)
S Y=CNT("VA"),X=""
"RTN","EDPRPT4",80,0)
D XML^EDPX(X)
"RTN","EDPRPT4",81,0)
D XML^EDPX("")
"RTN","EDPRPT4",82,0)
D XML^EDPX("")
"RTN","EDPRPT4",83,0)
S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D
"RTN","EDPRPT4",84,0)
. S CNT(DEL,"reason")=$$ENAME(DEL)
"RTN","EDPRPT4",85,0)
. S CNT(DEL,"total")=CNT(DEL)
"RTN","EDPRPT4",86,0)
. F I="none","one","two","three","four","five" S CNT(DEL,I)=+$G(CNT(DEL,I))
"RTN","EDPRPT4",87,0)
. K ROW M ROW=CNT(DEL)
"RTN","EDPRPT4",88,0)
. S X=$$XMLA^EDPX("delay",.ROW) D XML^EDPX(X)
"RTN","EDPRPT4",89,0)
D XML^EDPX("")
"RTN","EDPRPT4",90,0)
Q
"RTN","EDPRPT4",91,0)
;
"RTN","EDPRPT4",92,0)
INIT ; Initialize counters and sums
"RTN","EDPRPT4",93,0)
N I S (CNT,MIN)=0
"RTN","EDPRPT4",94,0)
F I="DEC","VA","VA6","VADEL6","6+","23+" S CNT(I)=0
"RTN","EDPRPT4",95,0)
F I="DEC","VA","VADEC","VADEL" S MIN(I)=0
"RTN","EDPRPT4",96,0)
S NOW=$$NOW^EDPRPT
"RTN","EDPRPT4",97,0)
Q
"RTN","EDPRPT4",98,0)
;
"RTN","EDPRPT4",99,0)
ECODE(IEN) ; Return external value for an Acuity code
"RTN","EDPRPT4",100,0)
N X,Y S X=$P($G(^EDPB(233.1,+IEN,0)),U,3) ;code
"RTN","EDPRPT4",101,0)
S Y=$S(X="":"none",'X:X,X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"X")
"RTN","EDPRPT4",102,0)
Q Y
"RTN","EDPRPT4",103,0)
;
"RTN","EDPRPT4",104,0)
ENAME(IEN) ; Return external value for a Code
"RTN","EDPRPT4",105,0)
Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
"RTN","EDPRPT4",106,0)
Q ""
"RTN","EDPRPT5")
0^37^B33876185
"RTN","EDPRPT5",1,0)
EDPRPT5 ;SLC/MKB - Shift Report
"RTN","EDPRPT5",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT5",3,0)
;
"RTN","EDPRPT5",4,0)
SFT(DAY) ; Get Shift Report for EDPSITE on DAY
"RTN","EDPRPT5",5,0)
N BEG,END,IN,OUT,LOG,X,X0,X1,X3,X4,S,SOUT,SHIFT,NOW
"RTN","EDPRPT5",6,0)
N CNT,VA,DX,OTH,HR6,TRG,OCB,MO,DIE,UNK,PREV,NEXT,SUB
"RTN","EDPRPT5",7,0)
N ELAPSE,ADMDEC,STS,DISP,COL
"RTN","EDPRPT5",8,0)
D INIT ;set counters to 0, SHIFT(#) = start time in seconds
"RTN","EDPRPT5",9,0)
I 'SHIFT D ERR^EDPRPT(2300013) Q
"RTN","EDPRPT5",10,0)
S BEG=$S(SHIFT(1)>0:$$FMADD^XLFDT(DAY,-1,,,SHIFT(SHIFT)),1:DAY)
"RTN","EDPRPT5",11,0)
S END=$S(SHIFT(1)>0:$$FMADD^XLFDT(DAY,,,,SHIFT(SHIFT)),1:DAY_".2359")
"RTN","EDPRPT5",12,0)
S IN=BEG-.000001 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END D
"RTN","EDPRPT5",13,0)
. S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
"RTN","EDPRPT5",14,0)
.. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
"RTN","EDPRPT5",15,0)
.. S STS=$$ECODE^EDPRPT($P(X3,U,2))
"RTN","EDPRPT5",16,0)
.. S DISP=$$ECODE^EDPRPT($P(X1,U,2))
"RTN","EDPRPT5",17,0)
.. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
"RTN","EDPRPT5",18,0)
.. S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60) ;#min
"RTN","EDPRPT5",19,0)
.. S ADMDEC=$$ADMSTS^EDPRPT(LOG)
"RTN","EDPRPT5",20,0)
D1 .. ; all visits
"RTN","EDPRPT5",21,0)
.. S S=$$SHIFT(IN,1),SOUT=$$SHIFT(OUT,1)
"RTN","EDPRPT5",22,0)
.. S CNT(S)=CNT(S)+1
"RTN","EDPRPT5",23,0)
.. S:'$P(X3,U,3) TRG(S)=TRG(S)+1
"RTN","EDPRPT5",24,0)
.. S:ELAPSE>359 HR6(S)=HR6(S)+1
"RTN","EDPRPT5",25,0)
.. S:DISP="O" OTH(S)=OTH(S)+1
"RTN","EDPRPT5",26,0)
.. S:DISP="D" DIE(S)=DIE(S)+1
"RTN","EDPRPT5",27,0)
.. S:(DISP="AMA")!(DISP="L")!(DISP="E") MO(S)=MO(S)+1
"RTN","EDPRPT5",28,0)
.. S:DISP="" UNK(S)=UNK(S)+1
"RTN","EDPRPT5",29,0)
.. I $L(STS),$$UP^XLFSTR(STS)'="GONE",S'=SOUT S OCB(S)=OCB(S)+1
"RTN","EDPRPT5",30,0)
D2 S OUT=BEG-.000001 F S OUT=$O(^EDP(230,"ATO",EDPSITE,OUT)) Q:'OUT Q:OUT>END D
"RTN","EDPRPT5",31,0)
. S LOG=0 F S LOG=+$O(^EDP(230,"ATO",EDPSITE,OUT,LOG)) Q:LOG<1 D
"RTN","EDPRPT5",32,0)
.. S DX(SOUT)=DX(SOUT)+1,IN=$P(X0,U,8)
"RTN","EDPRPT5",33,0)
.. S:INBEG,"^VA^ICU^T^"[(U_DISP_U) S S=$$SHIFT(ADMDEC,1),VA(S)=VA(S)+1
"RTN","EDPRPT5",35,0)
D3 ; calculate #carried over
"RTN","EDPRPT5",36,0)
S S=SUB(SHIFT),NEXT(S)=PREV+CNT(S)-DX(S)
"RTN","EDPRPT5",37,0)
S PREV("one")=NEXT(S),PREV(S)=PREV
"RTN","EDPRPT5",38,0)
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)
"RTN","EDPRPT5",39,0)
F I=2:1:(SHIFT-1) S PREV(SUB(I))=NEXT(SUB(I-1))
"RTN","EDPRPT5",40,0)
;S NEXT("three")=PREV+CNT("three")-DX("three")
"RTN","EDPRPT5",41,0)
;S NEXT("one")=NEXT("three")+CNT("one")-DX("one")
"RTN","EDPRPT5",42,0)
;S NEXT("two")=NEXT("one")+CNT("two")-DX("two")
"RTN","EDPRPT5",43,0)
;S PREV("one")=NEXT("three"),PREV("two")=NEXT("one"),PREV("three")=PREV
"RTN","EDPRPT5",44,0)
D4 ; return column info
"RTN","EDPRPT5",45,0)
F I=1:1:SHIFT D ;convert #seconds to HH[:MM]
"RTN","EDPRPT5",46,0)
. N X,Y S X=SHIFT(I)
"RTN","EDPRPT5",47,0)
. S Y=X\3600 S:Y=0 Y=12 S:Y>12 Y=Y-12
"RTN","EDPRPT5",48,0)
. S SHIFT(I)=Y_$S(X#3600:":"_(X#3600)\60,1:"")
"RTN","EDPRPT5",49,0)
F I=1:1:SHIFT D ;build column captions
"RTN","EDPRPT5",50,0)
. S COL(I,"name")=SHIFT(I)_" to "_SHIFT($S(I+1>SHIFT:1,1:I+1))
"RTN","EDPRPT5",51,0)
. S COL(I,"shiftId")=SUB(I)
"RTN","EDPRPT5",52,0)
;S COL(1,"name")="7 to 3",COL(1,"shiftId")="one"
"RTN","EDPRPT5",53,0)
;S COL(2,"name")="3 to 11",COL(2,"shiftId")="two"
"RTN","EDPRPT5",54,0)
;S COL(3,"name")="11 to 7",COL(3,"shiftId")="three"
"RTN","EDPRPT5",55,0)
I $G(CSV) D CSV Q
"RTN","EDPRPT5",56,0)
D XML^EDPX("")
"RTN","EDPRPT5",57,0)
F S=1:1:SHIFT K X M X=COL(S) S X=$$XMLA^EDPX("column",.X) D XML^EDPX(X)
"RTN","EDPRPT5",58,0)
D XML^EDPX("")
"RTN","EDPRPT5",59,0)
D5 ; return counts and averages as XML
"RTN","EDPRPT5",60,0)
D XML^EDPX("")
"RTN","EDPRPT5",61,0)
S X=$$XMLA^EDPX("category",.PREV) D XML^EDPX(X)
"RTN","EDPRPT5",62,0)
S X=$$XMLA^EDPX("category",.CNT) D XML^EDPX(X)
"RTN","EDPRPT5",63,0)
S X=$$XMLA^EDPX("category",.DX) D XML^EDPX(X)
"RTN","EDPRPT5",64,0)
S X=$$XMLA^EDPX("category",.VA) D XML^EDPX(X)
"RTN","EDPRPT5",65,0)
S X=$$XMLA^EDPX("category",.OTH) D XML^EDPX(X)
"RTN","EDPRPT5",66,0)
S X=$$XMLA^EDPX("category",.HR6) D XML^EDPX(X)
"RTN","EDPRPT5",67,0)
S X=$$XMLA^EDPX("category",.TRG) D XML^EDPX(X)
"RTN","EDPRPT5",68,0)
S X=$$XMLA^EDPX("category",.OCB) D XML^EDPX(X)
"RTN","EDPRPT5",69,0)
S X=$$XMLA^EDPX("category",.MO) D XML^EDPX(X)
"RTN","EDPRPT5",70,0)
S X=$$XMLA^EDPX("category",.DIE) D XML^EDPX(X)
"RTN","EDPRPT5",71,0)
S X=$$XMLA^EDPX("category",.UNK) D XML^EDPX(X)
"RTN","EDPRPT5",72,0)
S X=$$XMLA^EDPX("category",.NEXT) D XML^EDPX(X)
"RTN","EDPRPT5",73,0)
D XML^EDPX("")
"RTN","EDPRPT5",74,0)
Q
"RTN","EDPRPT5",75,0)
;
"RTN","EDPRPT5",76,0)
CSV ; Return headers, counts and averages as CSV
"RTN","EDPRPT5",77,0)
N X,TAB S TAB=$C(9)
"RTN","EDPRPT5",78,0)
S X="Category"_TAB_COL(SHIFT,"name")
"RTN","EDPRPT5",79,0)
F I=1:1:(SHIFT-1) S X=X_TAB_COL(I,"name")
"RTN","EDPRPT5",80,0)
D ADD^EDPCSV(X) ;headers
"RTN","EDPRPT5",81,0)
D ROW("Carried Over at Report Start",.PREV)
"RTN","EDPRPT5",82,0)
D ROW("Number of New Patients",.CNT)
"RTN","EDPRPT5",83,0)
D ROW("Number of Patients Discharged",.DX)
"RTN","EDPRPT5",84,0)
D ROW("Number Dec to Admit to Va",.VA)
"RTN","EDPRPT5",85,0)
D ROW("Number Dec to Admit to Other",.OTH)
"RTN","EDPRPT5",86,0)
D ROW("Number Over 6 Hours",.HR6)
"RTN","EDPRPT5",87,0)
D ROW("Number Waiting for Triage",.TRG)
"RTN","EDPRPT5",88,0)
D ROW("Number of Occupied Beds",.OCB)
"RTN","EDPRPT5",89,0)
D ROW("Number of Missed Opportunities",.MO)
"RTN","EDPRPT5",90,0)
D ROW("Number Deceased",.DIE)
"RTN","EDPRPT5",91,0)
D ROW("Number With No Disposition",.UNK)
"RTN","EDPRPT5",92,0)
D ROW("Carry Over to Next Shift",.NEXT)
"RTN","EDPRPT5",93,0)
Q
"RTN","EDPRPT5",94,0)
;
"RTN","EDPRPT5",95,0)
ROW(NAME,LIST) ; add row
"RTN","EDPRPT5",96,0)
N S,I
"RTN","EDPRPT5",97,0)
S S=SUB(SHIFT),X=NAME_TAB_LIST(S)
"RTN","EDPRPT5",98,0)
F I=1:1:(SHIFT-1) S S=SUB(I),X=X_TAB_LIST(S)
"RTN","EDPRPT5",99,0)
D ADD^EDPCSV(X)
"RTN","EDPRPT5",100,0)
Q
"RTN","EDPRPT5",101,0)
;
"RTN","EDPRPT5",102,0)
INIT ; Initialize counters and sums
"RTN","EDPRPT5",103,0)
N I,S
"RTN","EDPRPT5",104,0)
S PREV=0,DAY=$P(DAY,".")
"RTN","EDPRPT5",105,0)
D SETUP F I=1:1:SHIFT D
"RTN","EDPRPT5",106,0)
. S S=$$WORD(I),SUB(I)=S
"RTN","EDPRPT5",107,0)
. S CNT(S)=0,CNT("category")="Number of New Patients"
"RTN","EDPRPT5",108,0)
. S DX(S)=0,DX("category")="Number of Patients Discharged"
"RTN","EDPRPT5",109,0)
. S VA(S)=0,VA("category")="Number Dec to Admit to VA"
"RTN","EDPRPT5",110,0)
. S OTH(S)=0,OTH("category")="Number Dec to Admit to Other"
"RTN","EDPRPT5",111,0)
. S HR6(S)=0,HR6("category")="Number Over 6 Hours"
"RTN","EDPRPT5",112,0)
. S TRG(S)=0,TRG("category")="Number Waiting for Triage" ;no acuity
"RTN","EDPRPT5",113,0)
. S OCB(S)=0,OCB("category")="Number of Occupied Beds"
"RTN","EDPRPT5",114,0)
. S MO(S)=0,MO("category")="Number of Missed Opportunities"
"RTN","EDPRPT5",115,0)
. S DIE(S)=0,DIE("category")="Number Deceased"
"RTN","EDPRPT5",116,0)
. S UNK(S)=0,UNK("category")="Number With No Disposition"
"RTN","EDPRPT5",117,0)
. S PREV(S)=0,PREV("category")="Carried Over at Report Start"
"RTN","EDPRPT5",118,0)
. S NEXT(S)=0,NEXT("category")="Carry Over to Next Shift"
"RTN","EDPRPT5",119,0)
S NOW=$$NOW^EDPRPT
"RTN","EDPRPT5",120,0)
Q
"RTN","EDPRPT5",121,0)
;
"RTN","EDPRPT5",122,0)
WORD(X) ; Return name of number X
"RTN","EDPRPT5",123,0)
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")
"RTN","EDPRPT5",124,0)
Q Y
"RTN","EDPRPT5",125,0)
;
"RTN","EDPRPT5",126,0)
SETUP ; Create SHIFT(#) list of shift times
"RTN","EDPRPT5",127,0)
N TA,X1,X,DUR
"RTN","EDPRPT5",128,0)
S TA=+$O(^EDPB(231.9,"C",EDPSITE,0)),X1=$G(^EDPB(231.9,TA,1))
"RTN","EDPRPT5",129,0)
S X=$P(X1,U,6),DUR=$P(X1,U,7)*60 I DUR'>0 S SHIFT=0 Q
"RTN","EDPRPT5",130,0)
S SHIFT=1,SHIFT(1)=X*60 ;seconds
"RTN","EDPRPT5",131,0)
F S X=SHIFT(SHIFT)+DUR Q:X>86340 S SHIFT=SHIFT+1,SHIFT(SHIFT)=X
"RTN","EDPRPT5",132,0)
Q
"RTN","EDPRPT5",133,0)
;
"RTN","EDPRPT5",134,0)
SHIFT(X,TXT) ; Return shift # for time X using SHIFT(#)
"RTN","EDPRPT5",135,0)
N TM,Y
"RTN","EDPRPT5",136,0)
S TM=$P($$FMTH^XLFDT(X),",",2) ;#seconds since midnight
"RTN","EDPRPT5",137,0)
I TM=SHIFT(SHIFT)) S Y=SHIFT
"RTN","EDPRPT5",138,0)
E F I=2:1:SHIFT I TMEND S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
"RTN","EDPRPT6",10,0)
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
"RTN","EDPRPT6",11,0)
. S MD=$P(X3,U,5) Q:MD<1 ;no provider
"RTN","EDPRPT6",12,0)
. S DISP=$P(X1,U,3),ACU=$$ACUITY($P(X3,U,3))
"RTN","EDPRPT6",13,0)
. S MDTIME=$$ASSIGNED^EDPRPT(LOG,5)
"RTN","EDPRPT6",14,0)
. D INIT(MD) ;set counters,sums to 0 per provider
"RTN","EDPRPT6",15,0)
D1 . ; all visits
"RTN","EDPRPT6",16,0)
. S S=$$SHIFT^EDPRPT5(MDTIME)
"RTN","EDPRPT6",17,0)
. S CNT(MD)=CNT(MD)+1,CNT(MD,S,ACU)=CNT(MD,S,ACU)+1
"RTN","EDPRPT6",18,0)
. S IN2MD=$$FMDIFF^XLFDT(MDTIME,IN,2)\60
"RTN","EDPRPT6",19,0)
. S IN2MD(MD)=IN2MD(MD)+IN2MD,IN2MD(MD,S,ACU)=IN2MD(MD,S,ACU)+IN2MD
"RTN","EDPRPT6",20,0)
. S MD2DS=$S(DISP:$$FMDIFF^XLFDT(DISP,MDTIME,2)\60,1:0)
"RTN","EDPRPT6",21,0)
. S MD2DS(MD)=MD2DS(MD)+MD2DS,MD2DS(MD,S,ACU)=MD2DS(MD,S,ACU)+MD2DS
"RTN","EDPRPT6",22,0)
D2 ; calculate & return averages as CSV
"RTN","EDPRPT6",23,0)
I $G(CSV) D Q
"RTN","EDPRPT6",24,0)
. N TAB,NM,SFT S TAB=$C(9)
"RTN","EDPRPT6",25,0)
. S X="MD Name"_TAB_"Shift"_TAB_"Acuity"_TAB_"# Patients"_TAB_"Time In to MD Assigned"_TAB_"MD Assign to Dispo"
"RTN","EDPRPT6",26,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT6",27,0)
. S MD=0 F S MD=$O(CNT(MD)) Q:MD<1 I CNT(MD) D
"RTN","EDPRPT6",28,0)
.. S NM=$$EPERS^EDPRPT(MD) F S=1:1:SHIFT D
"RTN","EDPRPT6",29,0)
... S SFT=S F ACU=0:1:5 I CNT(MD,S,ACU) D
"RTN","EDPRPT6",30,0)
.... S X=NM_TAB_SFT_TAB_ACU_TAB_CNT(MD,S,ACU)
"RTN","EDPRPT6",31,0)
.... S X=X_TAB_$$ETIME^EDPRPT(IN2MD(MD,S,ACU)/CNT(MD,S,ACU))
"RTN","EDPRPT6",32,0)
.... S X=X_TAB_$$ETIME^EDPRPT(MD2DS(MD,S,ACU)/CNT(MD,S,ACU))
"RTN","EDPRPT6",33,0)
.... D ADD^EDPCSV(X) S (NM,SFT)=""
"RTN","EDPRPT6",34,0)
.. S X=" MD TOTALS"_TAB_TAB_TAB_CNT(MD)
"RTN","EDPRPT6",35,0)
.. S X=X_TAB_$$ETIME^EDPRPT(IN2MD(MD)/CNT(MD))
"RTN","EDPRPT6",36,0)
.. S X=X_TAB_$$ETIME^EDPRPT(MD2DS(MD)/CNT(MD))
"RTN","EDPRPT6",37,0)
.. D ADD^EDPCSV(X)
"RTN","EDPRPT6",38,0)
D3 ; or as XML
"RTN","EDPRPT6",39,0)
D XML^EDPX("")
"RTN","EDPRPT6",40,0)
S MD=0 F S MD=$O(CNT(MD)) Q:MD<1 I CNT(MD) D
"RTN","EDPRPT6",41,0)
. K ROW S ROW("name")=$$EPERS^EDPRPT(MD),ROW("total")=CNT(MD)
"RTN","EDPRPT6",42,0)
. S ROW("timeMD")=$$ETIME^EDPRPT(IN2MD(MD)/CNT(MD))
"RTN","EDPRPT6",43,0)
. S ROW("timeDisp")=$$ETIME^EDPRPT(MD2DS(MD)/CNT(MD))
"RTN","EDPRPT6",44,0)
. S X=$$XMLA^EDPX("md",.ROW),X=$TR(X,"/") D XML^EDPX(X)
"RTN","EDPRPT6",45,0)
. D XML^EDPX("")
"RTN","EDPRPT6",46,0)
. F S=1:1:SHIFT D
"RTN","EDPRPT6",47,0)
.. F ACU=0:1:5 I CNT(MD,S,ACU) D
"RTN","EDPRPT6",48,0)
... K ROW S ROW("total")=CNT(MD,S,ACU)
"RTN","EDPRPT6",49,0)
... S ROW("number")=S,ROW("acuity")=ACU
"RTN","EDPRPT6",50,0)
... S ROW("timeMD")=$$ETIME^EDPRPT(IN2MD(MD,S,ACU)/CNT(MD,S,ACU))
"RTN","EDPRPT6",51,0)
... S ROW("timeDisp")=$$ETIME^EDPRPT(MD2DS(MD,S,ACU)/CNT(MD,S,ACU))
"RTN","EDPRPT6",52,0)
... S X=$$XMLA^EDPX("shift",.ROW) D XML^EDPX(X)
"RTN","EDPRPT6",53,0)
. D XML^EDPX(""),XML^EDPX("")
"RTN","EDPRPT6",54,0)
D XML^EDPX("")
"RTN","EDPRPT6",55,0)
Q
"RTN","EDPRPT6",56,0)
;
"RTN","EDPRPT6",57,0)
INIT(DR) ; Initialize counters and sums
"RTN","EDPRPT6",58,0)
N S,A
"RTN","EDPRPT6",59,0)
S (CNT(DR),IN2MD(DR),MD2DS(DR))=0
"RTN","EDPRPT6",60,0)
F S=1:1:SHIFT D
"RTN","EDPRPT6",61,0)
. F A=0:1:5 S (CNT(DR,S,A),IN2MD(DR,S,A),MD2DS(DR,S,A))=0
"RTN","EDPRPT6",62,0)
Q
"RTN","EDPRPT6",63,0)
;
"RTN","EDPRPT6",64,0)
ACUITY(IEN) ; Return external value [0-5] for an Acuity code
"RTN","EDPRPT6",65,0)
N X0,Y S X0=$G(^EDPB(233.1,+IEN,0))
"RTN","EDPRPT6",66,0)
S Y=$P(X0,U,3) S:Y<1 Y=+$P(X0,U,4) ;code or nat'l code
"RTN","EDPRPT6",67,0)
Q Y
"RTN","EDPRPT7")
0^39^B21032834
"RTN","EDPRPT7",1,0)
EDPRPT7 ;SLC/MKB - Exposure Report
"RTN","EDPRPT7",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT7",3,0)
;
"RTN","EDPRPT7",4,0)
EXP(IEN) ; Get Exposure Report for IEN at EDPSITE
"RTN","EDPRPT7",5,0)
S IEN=+$G(IEN) Q:IEN<1 Q:'$D(^EDP(230,IEN,0))
"RTN","EDPRPT7",6,0)
I $G(CSV) D EXP^EDPRPT7C(IEN) Q ;CSV format instead
"RTN","EDPRPT7",7,0)
N BEG,END,LIST,LOG,IN,OUT,X,X0,Y,WAIT,RLIST,TREAT,OTHER,MD,RN,RES,I,J
"RTN","EDPRPT7",8,0)
N SHIFT D SETUP^EDPRPT5 ;build SHIFT(#)
"RTN","EDPRPT7",9,0)
I 'SHIFT D ERR^EDPRPT(2300013) Q
"RTN","EDPRPT7",10,0)
S X0=^EDP(230,IEN,0),BEG=$P(X0,U,8),END=$P(X0,U,9)
"RTN","EDPRPT7",11,0)
S:'BEG BEG=$P(X0,U) S:'END END=$$NOW^EDPRPT
"RTN","EDPRPT7",12,0)
S WAIT=$$NWBED^EDPRPT(IEN) D ROOMS(IEN,END)
"RTN","EDPRPT7",13,0)
; put IEN info into XML
"RTN","EDPRPT7",14,0)
D XML^EDPX("")
"RTN","EDPRPT7",15,0)
D ADD(IEN),STAFF(IEN)
"RTN","EDPRPT7",16,0)
D XML^EDPX("")
"RTN","EDPRPT7",17,0)
; look for patients also in ED between BEG and END
"RTN","EDPRPT7",18,0)
D FIND(BEG,END) ;create LIST(#) list of ien's to check
"RTN","EDPRPT7",19,0)
S LOG=0 F S LOG=+$O(LIST(LOG)) Q:'LOG I LOG'=IEN D
"RTN","EDPRPT7",20,0)
. S X0=$G(^EDP(230,LOG,0)),IN=$P(X0,U,8),OUT=$P(X0,U,9)
"RTN","EDPRPT7",21,0)
. D ROOMS(LOG,OUT)
"RTN","EDPRPT7",22,0)
. ; in waiting room at same time?
"RTN","EDPRPT7",23,0)
. I WAIT,(BEG<=IN)&(IN<=WAIT) S WAIT(LOG)="" Q ;in
"RTN","EDPRPT7",24,0)
. S X=$$NWBED^EDPRPT(LOG)
"RTN","EDPRPT7",25,0)
. I X,(BEG<=X)&(X<=WAIT) S WAIT(LOG)="" Q ;out
"RTN","EDPRPT7",26,0)
. ; compare treatment rooms
"RTN","EDPRPT7",27,0)
. S I=1 F S I=$O(RLIST(IEN,I)) Q:I<1 D
"RTN","EDPRPT7",28,0)
.. N RIN,ROUT S RIN=$P(RLIST(IEN,I),U,2),ROUT=$P(RLIST(IEN,I),U,3)
"RTN","EDPRPT7",29,0)
.. 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
"RTN","EDPRPT7",30,0)
... S X=$P(RLIST(LOG,J),U,2) ;in to treatment room
"RTN","EDPRPT7",31,0)
... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
"RTN","EDPRPT7",32,0)
... S X=$P(RLIST(LOG,J),U,3) ;out of treatment room
"RTN","EDPRPT7",33,0)
... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
"RTN","EDPRPT7",34,0)
. I '$D(TREAT(LOG)) S OTHER(LOG)=""
"RTN","EDPRPT7",35,0)
E1 ; return waiting room patients
"RTN","EDPRPT7",36,0)
I $O(WAIT(0)) D
"RTN","EDPRPT7",37,0)
. D XML^EDPX("")
"RTN","EDPRPT7",38,0)
. S LOG=0 F S LOG=$O(WAIT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
"RTN","EDPRPT7",39,0)
. D XML^EDPX("")
"RTN","EDPRPT7",40,0)
; return treatment room patients
"RTN","EDPRPT7",41,0)
I $O(TREAT(0)) D
"RTN","EDPRPT7",42,0)
. D XML^EDPX("")
"RTN","EDPRPT7",43,0)
. S LOG=0 F S LOG=$O(TREAT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
"RTN","EDPRPT7",44,0)
. D XML^EDPX("")
"RTN","EDPRPT7",45,0)
; return other ED patients
"RTN","EDPRPT7",46,0)
I $O(OTHER(0)) D
"RTN","EDPRPT7",47,0)
. D XML^EDPX("")
"RTN","EDPRPT7",48,0)
. S LOG=0 F S LOG=$O(OTHER(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
"RTN","EDPRPT7",49,0)
. D XML^EDPX("")
"RTN","EDPRPT7",50,0)
E2 ; return staff on duty
"RTN","EDPRPT7",51,0)
D XML^EDPX("")
"RTN","EDPRPT7",52,0)
I $O(MD(0)) D
"RTN","EDPRPT7",53,0)
. D XML^EDPX("")
"RTN","EDPRPT7",54,0)
. S I=0 F S I=$O(MD(I)) Q:I<1 D
"RTN","EDPRPT7",55,0)
.. S X=""
"RTN","EDPRPT7",56,0)
.. D XML^EDPX(X)
"RTN","EDPRPT7",57,0)
. D XML^EDPX("")
"RTN","EDPRPT7",58,0)
I $O(RN(0)) D
"RTN","EDPRPT7",59,0)
. D XML^EDPX("")
"RTN","EDPRPT7",60,0)
. S I=0 F S I=$O(RN(I)) Q:I<1 D
"RTN","EDPRPT7",61,0)
.. S X=""
"RTN","EDPRPT7",62,0)
.. D XML^EDPX(X)
"RTN","EDPRPT7",63,0)
. D XML^EDPX("")
"RTN","EDPRPT7",64,0)
I $O(RES(0)) D
"RTN","EDPRPT7",65,0)
. D XML^EDPX("")
"RTN","EDPRPT7",66,0)
. S I=0 F S I=$O(RES(I)) Q:I<1 D
"RTN","EDPRPT7",67,0)
.. S X=""
"RTN","EDPRPT7",68,0)
.. D XML^EDPX(X)
"RTN","EDPRPT7",69,0)
. D XML^EDPX("")
"RTN","EDPRPT7",70,0)
D XML^EDPX("")
"RTN","EDPRPT7",71,0)
Q
"RTN","EDPRPT7",72,0)
;
"RTN","EDPRPT7",73,0)
FIND(IN,OUT) ; create LIST(#) of visits at same time
"RTN","EDPRPT7",74,0)
N IDX,TIME,I K LIST
"RTN","EDPRPT7",75,0)
F IDX="ATI","ATO" D
"RTN","EDPRPT7",76,0)
. S TIME=IN
"RTN","EDPRPT7",77,0)
. F S TIME=$O(^EDP(230,IDX,EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D
"RTN","EDPRPT7",78,0)
.. S I=0 F S I=$O(^EDP(230,IDX,EDPSITE,TIME,I)) Q:I<1 S LIST(I)=""
"RTN","EDPRPT7",79,0)
Q
"RTN","EDPRPT7",80,0)
;
"RTN","EDPRPT7",81,0)
ROOMS(LOG,OUT) ; Return RLIST(LOG,n)= room ^ time in ^ time out
"RTN","EDPRPT7",82,0)
N D,I,N,X S N=0
"RTN","EDPRPT7",83,0)
S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
"RTN","EDPRPT7",84,0)
. S X=+$P($G(^EDP(230.1,I,3)),U,4) Q:'X ;no location change
"RTN","EDPRPT7",85,0)
. S:N $P(RLIST(LOG,N),U,3)=D ;time out = time in of next room
"RTN","EDPRPT7",86,0)
. S N=N+1,RLIST(LOG,N)=X_U_D
"RTN","EDPRPT7",87,0)
I N,'$P(RLIST(LOG,N),U,3) S $P(RLIST(LOG,N),U,3)=OUT
"RTN","EDPRPT7",88,0)
Q
"RTN","EDPRPT7",89,0)
;
"RTN","EDPRPT7",90,0)
ADD(LOG) ; Add row to XML for each room used during visit
"RTN","EDPRPT7",91,0)
N EDPI,EDPX,ROW,LABS,XRAY
"RTN","EDPRPT7",92,0)
S EDPI=0 F S EDPI=$O(RLIST(LOG,EDPI)) Q:EDPI<1 S EDPX=RLIST(LOG,EDPI) D
"RTN","EDPRPT7",93,0)
. K ROW S ROW("id")=LOG ;only return for EDPI=1 ??
"RTN","EDPRPT7",94,0)
. S ROW("bed")=$P($G(^EDPB(231.8,+EDPX,0)),U)
"RTN","EDPRPT7",95,0)
. S X=$P(EDPX,U,2)
"RTN","EDPRPT7",96,0)
. S ROW("shiftTimeIn")=$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
"RTN","EDPRPT7",97,0)
. S X=$P(EDPX,U,3)
"RTN","EDPRPT7",98,0)
. S ROW("shiftTimeOut")=$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
"RTN","EDPRPT7",99,0)
. S ROW("dx")=$P($G(^EDP(230,LOG,4,1,0)),U)
"RTN","EDPRPT7",100,0)
. S X=$P($G(^EDP(230,LOG,1)),U,2),ROW("disposition")=$$ECODE^EDPRPT(X)
"RTN","EDPRPT7",101,0)
. S X=$P($G(^EDP(230,LOG,0)),U,10),ROW("arrival")=$$ECODE(X)
"RTN","EDPRPT7",102,0)
. S LABS=$D(^EDP(230,LOG,8,"AC","L")),XRAY=$D(^("R")),X=""
"RTN","EDPRPT7",103,0)
. I LABS!XRAY D S X=X_" ordered"
"RTN","EDPRPT7",104,0)
.. I LABS&XRAY S X="Labs and Imaging" Q
"RTN","EDPRPT7",105,0)
.. S:LABS X="Labs" S:XRAY X="Imaging"
"RTN","EDPRPT7",106,0)
. S ROW("notes")=X
"RTN","EDPRPT7",107,0)
. S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X)
"RTN","EDPRPT7",108,0)
Q
"RTN","EDPRPT7",109,0)
;
"RTN","EDPRPT7",110,0)
STAFF(LOG) ; save staff involved in patient care
"RTN","EDPRPT7",111,0)
N D,I,X,ACT S LOG=+$G(LOG)
"RTN","EDPRPT7",112,0)
S D=0 F S D=$O(^EDP(230.1,LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
"RTN","EDPRPT7",113,0)
. S ACT=$G(^EDP(230.1,I,3))
"RTN","EDPRPT7",114,0)
. S X=+$P(ACT,U,5) S:X MD(X)=$$EPERS^EDPRPT(X)
"RTN","EDPRPT7",115,0)
. S X=+$P(ACT,U,6) S:X RN(X)=$$EPERS^EDPRPT(X)
"RTN","EDPRPT7",116,0)
. S X=+$P(ACT,U,7) S:X RES(X)=$$EPERS^EDPRPT(X)
"RTN","EDPRPT7",117,0)
Q
"RTN","EDPRPT7",118,0)
;
"RTN","EDPRPT7",119,0)
ECODE(IEN) ; Return external value for a Code
"RTN","EDPRPT7",120,0)
Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
"RTN","EDPRPT7",121,0)
Q ""
"RTN","EDPRPT7C")
0^40^B21231553
"RTN","EDPRPT7C",1,0)
EDPRPT7C ;SLC/MKB - Exposure Report (CSV format)
"RTN","EDPRPT7C",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT7C",3,0)
;
"RTN","EDPRPT7C",4,0)
EXP(IEN) ; Get Exposure Report for IEN at EDPSITE
"RTN","EDPRPT7C",5,0)
S IEN=+$G(IEN) Q:IEN<1 Q:'$D(^EDP(230,IEN,0))
"RTN","EDPRPT7C",6,0)
N BEG,END,LIST,LOG,IN,OUT,X,X0,Y,WAIT,RLIST,TREAT,OTHER,MD,RN,RES,I,J,TAB
"RTN","EDPRPT7C",7,0)
N SHIFT D SETUP^EDPRPT5 ;build SHIFT(#)
"RTN","EDPRPT7C",8,0)
I 'SHIFT D ERR^EDPRPT(2300013) Q
"RTN","EDPRPT7C",9,0)
S X0=^EDP(230,IEN,0),BEG=$P(X0,U,8),END=$P(X0,U,9),TAB=$C(9)
"RTN","EDPRPT7C",10,0)
S:'BEG BEG=$P(X0,U) S:'END END=$$NOW^EDPRPT
"RTN","EDPRPT7C",11,0)
S WAIT=$$NWBED^EDPRPT(IEN) D ROOMS(IEN,END)
"RTN","EDPRPT7C",12,0)
; put IEN info into CSV
"RTN","EDPRPT7C",13,0)
S X="ED"_TAB_"Bed"_TAB_"Shift - Time In"_TAB_"Shift - Time Out"_TAB_"Diagnosis"_TAB_"Dispo"_TAB_"Arr Mode"_TAB_"Notes"
"RTN","EDPRPT7C",14,0)
D ADD^EDPCSV(X) ;headers
"RTN","EDPRPT7C",15,0)
S X=TAB_TAB_"Contagious Patient Information"
"RTN","EDPRPT7C",16,0)
D ADD^EDPCSV(X),BLANK^EDPCSV
"RTN","EDPRPT7C",17,0)
D ADD(IEN),STAFF(IEN)
"RTN","EDPRPT7C",18,0)
D BLANK^EDPCSV
"RTN","EDPRPT7C",19,0)
; look for patients also in ED between BEG and END
"RTN","EDPRPT7C",20,0)
D FIND(BEG,END) ;create LIST(#) list of ien's to check
"RTN","EDPRPT7C",21,0)
S LOG=0 F S LOG=+$O(LIST(LOG)) Q:'LOG I LOG'=IEN D
"RTN","EDPRPT7C",22,0)
. S X0=$G(^EDP(230,LOG,0)),IN=$P(X0,U,8),OUT=$P(X0,U,9)
"RTN","EDPRPT7C",23,0)
. D ROOMS(LOG,OUT)
"RTN","EDPRPT7C",24,0)
. ; in waiting room at same time?
"RTN","EDPRPT7C",25,0)
. I WAIT,(BEG<=IN)&(IN<=WAIT) S WAIT(LOG)="" Q ;in
"RTN","EDPRPT7C",26,0)
. S X=$$NWBED^EDPRPT(LOG)
"RTN","EDPRPT7C",27,0)
. I X,(BEG<=X)&(X<=WAIT) S WAIT(LOG)="" Q ;out
"RTN","EDPRPT7C",28,0)
. ; compare treatment rooms
"RTN","EDPRPT7C",29,0)
. S I=1 F S I=$O(RLIST(IEN,I)) Q:I<1 D
"RTN","EDPRPT7C",30,0)
.. N RIN,ROUT S RIN=$P(RLIST(IEN,I),U,2),ROUT=$P(RLIST(IEN,I),U,3)
"RTN","EDPRPT7C",31,0)
.. 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
"RTN","EDPRPT7C",32,0)
... S X=$P(RLIST(LOG,J),U,2) ;in to treatment room
"RTN","EDPRPT7C",33,0)
... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
"RTN","EDPRPT7C",34,0)
... S X=$P(RLIST(LOG,J),U,3) ;out of treatment room
"RTN","EDPRPT7C",35,0)
... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
"RTN","EDPRPT7C",36,0)
. I '$D(TREAT(LOG)) S OTHER(LOG)=""
"RTN","EDPRPT7C",37,0)
E1 ; return waiting room patients
"RTN","EDPRPT7C",38,0)
D ADD^EDPCSV(TAB_TAB_"Exposed in the Waiting Room"),BLANK^EDPCSV
"RTN","EDPRPT7C",39,0)
I '$O(WAIT(0)) D ADD^EDPCSV(TAB_TAB_" None")
"RTN","EDPRPT7C",40,0)
E S LOG=0 F S LOG=$O(WAIT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
"RTN","EDPRPT7C",41,0)
D BLANK^EDPCSV
"RTN","EDPRPT7C",42,0)
; return treatment room patients
"RTN","EDPRPT7C",43,0)
D ADD^EDPCSV(TAB_TAB_"Exposed in Treatment Room"),BLANK^EDPCSV
"RTN","EDPRPT7C",44,0)
I '$O(TREAT(0)) D ADD^EDPCSV(TAB_TAB_" None")
"RTN","EDPRPT7C",45,0)
E S LOG=0 F S LOG=$O(TREAT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
"RTN","EDPRPT7C",46,0)
D BLANK^EDPCSV
"RTN","EDPRPT7C",47,0)
; return other ED patients
"RTN","EDPRPT7C",48,0)
D ADD^EDPCSV(TAB_TAB_"Other ED Patients"),BLANK^EDPCSV
"RTN","EDPRPT7C",49,0)
I '$O(OTHER(0)) D ADD^EDPCSV(TAB_TAB_" None")
"RTN","EDPRPT7C",50,0)
E S LOG=0 F S LOG=$O(OTHER(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
"RTN","EDPRPT7C",51,0)
D BLANK^EDPCSV
"RTN","EDPRPT7C",52,0)
E2 ; return staff on duty
"RTN","EDPRPT7C",53,0)
N MAX,MORE D ADD^EDPCSV(TAB_TAB_"On Duty Staff")
"RTN","EDPRPT7C",54,0)
D ADD^EDPCSV(TAB_"Doctors"_TAB_"Nurses"_TAB_"Residents")
"RTN","EDPRPT7C",55,0)
S MAX=+$G(RN) S:$G(MD)>MAX MAX=+MD S:$G(RES)>MAX MAX=+RES
"RTN","EDPRPT7C",56,0)
S MORE=1,(MD,RN,RES)=0 F D Q:'MORE
"RTN","EDPRPT7C",57,0)
. S:MD'="" MD=$O(MD(MD)) S:RN'="" RN=$O(RN(RN))
"RTN","EDPRPT7C",58,0)
. S:RES'="" RES=$O(RES(RES)) ;get next
"RTN","EDPRPT7C",59,0)
. I MD="",RN="",RES="" S MORE=0 Q ;done
"RTN","EDPRPT7C",60,0)
. S X=TAB_$S(MD:MD(MD),1:"")_TAB_$S(RN:RN(RN),1:"")_TAB_$S(RES:RES(RES),1:"")
"RTN","EDPRPT7C",61,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT7C",62,0)
Q
"RTN","EDPRPT7C",63,0)
;
"RTN","EDPRPT7C",64,0)
FIND(IN,OUT) ; create LIST(#) of visits at same time
"RTN","EDPRPT7C",65,0)
N IDX,TIME,I K LIST
"RTN","EDPRPT7C",66,0)
F IDX="ATI","ATO" D
"RTN","EDPRPT7C",67,0)
. S TIME=IN
"RTN","EDPRPT7C",68,0)
. F S TIME=$O(^EDP(230,IDX,EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D
"RTN","EDPRPT7C",69,0)
.. S I=0 F S I=$O(^EDP(230,IDX,EDPSITE,TIME,I)) Q:I<1 S LIST(I)=""
"RTN","EDPRPT7C",70,0)
Q
"RTN","EDPRPT7C",71,0)
;
"RTN","EDPRPT7C",72,0)
ROOMS(LOG,OUT) ; Return RLIST(LOG,n)= room ^ time in ^ time out
"RTN","EDPRPT7C",73,0)
N D,I,N,X S N=0
"RTN","EDPRPT7C",74,0)
S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
"RTN","EDPRPT7C",75,0)
. S X=+$P($G(^EDP(230.1,I,3)),U,4) Q:'X ;no location change
"RTN","EDPRPT7C",76,0)
. S:N $P(RLIST(LOG,N),U,3)=D ;time out = time in of next room
"RTN","EDPRPT7C",77,0)
. S N=N+1,RLIST(LOG,N)=X_U_D
"RTN","EDPRPT7C",78,0)
I N,'$P(RLIST(LOG,N),U,3) S $P(RLIST(LOG,N),U,3)=OUT
"RTN","EDPRPT7C",79,0)
Q
"RTN","EDPRPT7C",80,0)
;
"RTN","EDPRPT7C",81,0)
ADD(LOG) ; Add row to CSV for each room used during visit
"RTN","EDPRPT7C",82,0)
N EDPI,EDPX,ROW,LABS,XRAY,X
"RTN","EDPRPT7C",83,0)
S EDPI=0 F S EDPI=$O(RLIST(LOG,EDPI)) Q:EDPI<1 S EDPX=RLIST(LOG,EDPI) D
"RTN","EDPRPT7C",84,0)
. S ROW=$S(EDPI=1:LOG,1:"")_TAB_$P($G(^EDPB(231.8,+EDPX,0)),U)
"RTN","EDPRPT7C",85,0)
. S X=$P(EDPX,U,2) ;shiftTimeIn
"RTN","EDPRPT7C",86,0)
. S ROW=ROW_TAB_$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
"RTN","EDPRPT7C",87,0)
. S X=$P(EDPX,U,3) ;shiftTimeOut
"RTN","EDPRPT7C",88,0)
. S ROW=ROW_TAB_$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
"RTN","EDPRPT7C",89,0)
. S ROW=ROW_TAB_$P($G(^EDP(230,LOG,4,1,0)),U) ;Dx
"RTN","EDPRPT7C",90,0)
. S X=$P($G(^EDP(230,LOG,1)),U,2),ROW=ROW_TAB_$$ECODE^EDPRPT(X) ;dis
"RTN","EDPRPT7C",91,0)
. S X=$P($G(^EDP(230,LOG,0)),U,10),ROW=ROW_TAB_$$ECODE(X) ;arrival
"RTN","EDPRPT7C",92,0)
. S LABS=$D(^EDP(230,LOG,8,"AC","L")),XRAY=$D(^("R")),X=""
"RTN","EDPRPT7C",93,0)
. I LABS!XRAY D S X=X_" ordered"
"RTN","EDPRPT7C",94,0)
.. I LABS&XRAY S X="Labs and Imaging" Q
"RTN","EDPRPT7C",95,0)
.. S:LABS X="Labs" S:XRAY X="Imaging"
"RTN","EDPRPT7C",96,0)
. S ROW=ROW_TAB_X ;notes
"RTN","EDPRPT7C",97,0)
. D ADD^EDPCSV(ROW)
"RTN","EDPRPT7C",98,0)
Q
"RTN","EDPRPT7C",99,0)
;
"RTN","EDPRPT7C",100,0)
STAFF(LOG) ; save staff involved in patient care
"RTN","EDPRPT7C",101,0)
N D,I,X,ACT S LOG=+$G(LOG)
"RTN","EDPRPT7C",102,0)
S D=0 F S D=$O(^EDP(230.1,LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
"RTN","EDPRPT7C",103,0)
. S ACT=$G(^EDP(230.1,I,3))
"RTN","EDPRPT7C",104,0)
. S X=+$P(ACT,U,5) S:X MD(X)=$$EPERS^EDPRPT(X)
"RTN","EDPRPT7C",105,0)
. S X=+$P(ACT,U,6) S:X RN(X)=$$EPERS^EDPRPT(X)
"RTN","EDPRPT7C",106,0)
. S X=+$P(ACT,U,7) S:X RES(X)=$$EPERS^EDPRPT(X)
"RTN","EDPRPT7C",107,0)
Q
"RTN","EDPRPT7C",108,0)
;
"RTN","EDPRPT7C",109,0)
ECODE(IEN) ; Return external value for a Code
"RTN","EDPRPT7C",110,0)
Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
"RTN","EDPRPT7C",111,0)
Q ""
"RTN","EDPRPT8")
0^41^B15368168
"RTN","EDPRPT8",1,0)
EDPRPT8 ;SLC/MKB - Acuity Report
"RTN","EDPRPT8",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT8",3,0)
;
"RTN","EDPRPT8",4,0)
ACU(BEG,END) ; Get Acuity Report for EDPSITE by date range
"RTN","EDPRPT8",5,0)
; CNT = counters for admissions
"RTN","EDPRPT8",6,0)
; MIN = accumulate #minutes
"RTN","EDPRPT8",7,0)
; ACU = counters by acuity
"RTN","EDPRPT8",8,0)
; VA = counters for disposition=VA only
"RTN","EDPRPT8",9,0)
N IN,OUT,X,X0,X1,X3,X4,DISP,CNT,MIN,ACU,VA,TOT,ROW,NOW
"RTN","EDPRPT8",10,0)
D INIT ;set counters, sums to 0
"RTN","EDPRPT8",11,0)
S IN=BEG-.000001
"RTN","EDPRPT8",12,0)
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
"RTN","EDPRPT8",13,0)
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
"RTN","EDPRPT8",14,0)
. S DISP=$$ECODE^EDPRPT($P(X1,U,2)),ACU=$$ECODE($P(X3,U,3)),TOT=TOT+1
"RTN","EDPRPT8",15,0)
. ; all admissions
"RTN","EDPRPT8",16,0)
. S (ADMDEC,ADMDEL)=0
"RTN","EDPRPT8",17,0)
. S X=$$ADMSTS^EDPRPT(LOG) I X S CNT=CNT+1 D:$L(ACU) ;decision to admit
"RTN","EDPRPT8",18,0)
.. S CNT(ACU)=CNT(ACU)+1
"RTN","EDPRPT8",19,0)
.. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60
"RTN","EDPRPT8",20,0)
.. S:ADMDEC MIN("DEC")=MIN("DEC")+ADMDEC,MIN("DEC",ACU)=MIN("DEC",ACU)+ADMDEC
"RTN","EDPRPT8",21,0)
.. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW
"RTN","EDPRPT8",22,0)
.. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60
"RTN","EDPRPT8",23,0)
.. ;S:ADMDEL MIN("DEL",ACU)=MIN("DEL",ACU)+ADMDEL
"RTN","EDPRPT8",24,0)
. I $L(ACU) S ACU(ACU)=ACU(ACU)+1 D:$$ADMIT^EDPRPT2(DISP) ;VA adm
"RTN","EDPRPT8",25,0)
.. S VA=VA+1,VA(ACU)=VA(ACU)+1
"RTN","EDPRPT8",26,0)
.. S MIN(ACU)=MIN(ACU)+ADMDEC
"RTN","EDPRPT8",27,0)
.. S MIN("VADEC")=MIN("VADEC")+ADMDEC
"RTN","EDPRPT8",28,0)
.. S MIN("VADEC",ACU)=MIN("VADEC",ACU)+ADMDEC
"RTN","EDPRPT8",29,0)
.. S MIN("VADEL")=MIN("VADEL")+ADMDEL
"RTN","EDPRPT8",30,0)
.. S MIN("VADEL",ACU)=MIN("VADEL",ACU)+ADMDEL
"RTN","EDPRPT8",31,0)
A1 ; return counts and averages
"RTN","EDPRPT8",32,0)
S I="" F S I=$O(ACU(I)) Q:I="" D ;avg #min admit dec by acuity
"RTN","EDPRPT8",33,0)
. S MIN("DEC",I)=$S(CNT(I):$$ETIME(MIN("DEC",I)\CNT(I)),1:0)
"RTN","EDPRPT8",34,0)
. S MIN("VADEC",I)=$S(VA(I):$$ETIME(MIN("VADEC",I)\VA(I)),1:0)
"RTN","EDPRPT8",35,0)
. S MIN("VADEL",I)=$S(VA(I):$$ETIME(MIN("VADEL",I)\VA(I)),1:0)
"RTN","EDPRPT8",36,0)
S ACU("total")=TOT,CNT("total")=CNT,VA("total")=VA
"RTN","EDPRPT8",37,0)
S ACU("type")="Number of Patients",CNT("type")="Number Admitted",VA("type")="Number VA Admitted"
"RTN","EDPRPT8",38,0)
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"
"RTN","EDPRPT8",39,0)
S MIN("DEC","total")=$S(CNT:$$ETIME(MIN("DEC")\CNT),1:0)
"RTN","EDPRPT8",40,0)
S MIN("VADEC","total")=$S(VA:$$ETIME(MIN("VADEC")\VA),1:0)
"RTN","EDPRPT8",41,0)
S MIN("VADEL","total")=$S(VA:$$ETIME(MIN("VADEL")\VA),1:0)
"RTN","EDPRPT8",42,0)
; as CSV
"RTN","EDPRPT8",43,0)
I $G(CSV) D Q
"RTN","EDPRPT8",44,0)
. N TAB S TAB=$C(9)
"RTN","EDPRPT8",45,0)
. S X="Acuity->"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total/Average"
"RTN","EDPRPT8",46,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT8",47,0)
. D ROW("Number of Patients",.ACU)
"RTN","EDPRPT8",48,0)
. D ROW("Number Admitted",.CNT)
"RTN","EDPRPT8",49,0)
. D ROW("Number VA Admitted",.VA)
"RTN","EDPRPT8",50,0)
. M ROW=MIN("DEC") D ROW("Avg All Admit Dec Time",.ROW) K ROW
"RTN","EDPRPT8",51,0)
. M ROW=MIN("VADEC") D ROW("Avg VA Admit Dec Time",.ROW) K ROW
"RTN","EDPRPT8",52,0)
. M ROW=MIN("VADEL") D ROW("Avg VA Admit Delay Time",.ROW) K ROW
"RTN","EDPRPT8",53,0)
; or as XML
"RTN","EDPRPT8",54,0)
D XML^EDPX("")
"RTN","EDPRPT8",55,0)
S X=$$XMLA^EDPX("row",.ACU) D XML^EDPX(X)
"RTN","EDPRPT8",56,0)
S X=$$XMLA^EDPX("row",.CNT) D XML^EDPX(X)
"RTN","EDPRPT8",57,0)
S X=$$XMLA^EDPX("row",.VA) D XML^EDPX(X)
"RTN","EDPRPT8",58,0)
M ROW=MIN("DEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW
"RTN","EDPRPT8",59,0)
M ROW=MIN("VADEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW
"RTN","EDPRPT8",60,0)
M ROW=MIN("VADEL") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW
"RTN","EDPRPT8",61,0)
D XML^EDPX("")
"RTN","EDPRPT8",62,0)
Q
"RTN","EDPRPT8",63,0)
;
"RTN","EDPRPT8",64,0)
ROW(NAME,LIST) ; add line
"RTN","EDPRPT8",65,0)
N I S X=NAME
"RTN","EDPRPT8",66,0)
F I="none","one","two","three","four","five","total" S X=X_TAB_LIST(I)
"RTN","EDPRPT8",67,0)
D ADD^EDPCSV(X)
"RTN","EDPRPT8",68,0)
Q
"RTN","EDPRPT8",69,0)
;
"RTN","EDPRPT8",70,0)
INIT ; Initialize acuity counters
"RTN","EDPRPT8",71,0)
N X S (TOT,CNT,VA)=0
"RTN","EDPRPT8",72,0)
F X="none","one","two","three","four","five" D
"RTN","EDPRPT8",73,0)
. S (CNT(X),VA(X),ACU(X),MIN(X),MIN("DEC",X),MIN("VADEC",X),MIN("VADEL",X))=0
"RTN","EDPRPT8",74,0)
F X="DEC","DEL","VADEC","VADEL" S MIN(X)=0
"RTN","EDPRPT8",75,0)
S NOW=$$NOW^EDPRPT
"RTN","EDPRPT8",76,0)
Q
"RTN","EDPRPT8",77,0)
;
"RTN","EDPRPT8",78,0)
ECODE(IEN) ; Return external value for an Acuity code
"RTN","EDPRPT8",79,0)
N X0,X,Y S X0=$G(^EDPB(233.1,+IEN,0))
"RTN","EDPRPT8",80,0)
S X=$P(X0,U,3) S:X<1 X=$P(X0,U,4) ;code or nat'l code
"RTN","EDPRPT8",81,0)
S Y=$S(X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"none")
"RTN","EDPRPT8",82,0)
Q Y
"RTN","EDPRPT8",83,0)
;
"RTN","EDPRPT8",84,0)
ETIME(MINS) ; Return #minutes as HH:MM
"RTN","EDPRPT8",85,0)
N H,M,Y
"RTN","EDPRPT8",86,0)
S H=MINS\60,M=MINS#60
"RTN","EDPRPT8",87,0)
S Y=$E("0"_H,1,2)_":"_$E("0"_M,1,2)
"RTN","EDPRPT8",88,0)
Q Y
"RTN","EDPRPT9")
0^42^B1592058
"RTN","EDPRPT9",1,0)
EDPRPT9 ;SLC/MKB - Patient Xref Report
"RTN","EDPRPT9",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPRPT9",3,0)
;
"RTN","EDPRPT9",4,0)
XRF(BEG,END) ; Get Patient Xref Report for EDPSITE by date range
"RTN","EDPRPT9",5,0)
; CNT = counters
"RTN","EDPRPT9",6,0)
N IN,LOG,DFN,ID,X,ROW,TAB
"RTN","EDPRPT9",7,0)
D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers
"RTN","EDPRPT9",8,0)
. S TAB=$C(9),X="ED"_TAB_"Patient ID"_TAB_"Patient DFN"
"RTN","EDPRPT9",9,0)
. D ADD^EDPCSV(X)
"RTN","EDPRPT9",10,0)
S IN=BEG-.000001
"RTN","EDPRPT9",11,0)
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
"RTN","EDPRPT9",12,0)
. S DFN=$P($G(^EDP(230,LOG,0)),U,6),ID=$P($G(^(0)),U,11) Q:DFN<1
"RTN","EDPRPT9",13,0)
. I $G(CSV) S X=LOG_TAB_ID_TAB_DFN D ADD^EDPCSV(X) Q
"RTN","EDPRPT9",14,0)
. K ROW S ROW("id")=LOG
"RTN","EDPRPT9",15,0)
. S ROW("patientDfn")=DFN
"RTN","EDPRPT9",16,0)
. S ROW("patientId")=ID
"RTN","EDPRPT9",17,0)
. S X=$$XMLA^EDPX("patient",.ROW) D XML^EDPX(X)
"RTN","EDPRPT9",18,0)
D:'$G(CSV) XML^EDPX("")
"RTN","EDPRPT9",19,0)
Q
"RTN","EDPX")
0^46^B6480298
"RTN","EDPX",1,0)
EDPX ;SLC/KCM - Common Utilities
"RTN","EDPX",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPX",3,0)
;
"RTN","EDPX",4,0)
ESC(X) ; Escape for XML transmission
"RTN","EDPX",5,0)
Q $ZCONVERT(X,"O","HTML")
"RTN","EDPX",6,0)
;
"RTN","EDPX",7,0)
UES(X) ; Unescape XML
"RTN","EDPX",8,0)
Q $ZCONVERT(X,"I","HTML")
"RTN","EDPX",9,0)
;
"RTN","EDPX",10,0)
UESREQ(REQ) ; Unescape HTTP post
"RTN","EDPX",11,0)
N I,X
"RTN","EDPX",12,0)
S X="" F S X=$O(REQ(X)) Q:X="" D
"RTN","EDPX",13,0)
. S I=0 F S I=$O(REQ(X,I)) Q:'I D
"RTN","EDPX",14,0)
. . S REQ(X,I)=$ZCONVERT(REQ(X,I),"I","HTML")
"RTN","EDPX",15,0)
Q
"RTN","EDPX",16,0)
VAL(X,R) ; Returns parameter value or null
"RTN","EDPX",17,0)
; HTTP passes HTML-escaped values in an array as REC(param,1)
"RTN","EDPX",18,0)
Q $G(R(X,1))
"RTN","EDPX",19,0)
;
"RTN","EDPX",20,0)
NVPARSE(LST,IN) ; Parses tab delimited name-value pairs into array
"RTN","EDPX",21,0)
N I,X,TAB,NM,VAL
"RTN","EDPX",22,0)
S TAB=$C(9)
"RTN","EDPX",23,0)
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
"RTN","EDPX",24,0)
Q
"RTN","EDPX",25,0)
XMLS(TAG,DATA,LBL) ; Return XML node as
"RTN","EDPX",26,0)
Q "<"_TAG_" data="""_$$ESC(DATA)_""" label="""_$$ESC(LBL)_""" />"
"RTN","EDPX",27,0)
;
"RTN","EDPX",28,0)
XMLA(TAG,ATT,END) ; Return XML node as
"RTN","EDPX",29,0)
N NODE S NODE="<"_TAG_" "
"RTN","EDPX",30,0)
N X
"RTN","EDPX",31,0)
S X="" F S X=$O(ATT(X)) Q:X="" I $L(ATT(X)) S NODE=NODE_X_"="""_$$ESC(ATT(X))_""" "
"RTN","EDPX",32,0)
S NODE=NODE_$G(END,"/")_">"
"RTN","EDPX",33,0)
Q NODE
"RTN","EDPX",34,0)
;
"RTN","EDPX",35,0)
XMLE(SRC) ; Append list to XML array as elements
"RTN","EDPX",36,0)
N X,NODE
"RTN","EDPX",37,0)
S X="" F S X=$O(SRC(X)) Q:X="" D
"RTN","EDPX",38,0)
. S NODE="<"_X_">"_$$ESC(SRC(X))_""_X_">"
"RTN","EDPX",39,0)
. D XML(NODE)
"RTN","EDPX",40,0)
Q
"RTN","EDPX",41,0)
XML(X) ; Add a line of XML to be returned
"RTN","EDPX",42,0)
S EDPXML=$G(EDPXML)+1
"RTN","EDPX",43,0)
S EDPXML(EDPXML)=X
"RTN","EDPX",44,0)
Q
"RTN","EDPX",45,0)
CODE(X) ; Return internal value for a code
"RTN","EDPX",46,0)
Q $O(^EDPB(233.1,"B",X,0))
"RTN","EDPX",47,0)
;
"RTN","EDPX",48,0)
MSG(MSG) ; Write out error message
"RTN","EDPX",49,0)
I MSG=1 S X="some error"
"RTN","EDPX",50,0)
I MSG=2300001 S X="Station Number is missing"
"RTN","EDPX",51,0)
I MSG=2300002 S X="Patient is already active in log"
"RTN","EDPX",52,0)
I MSG=2300003 S X="Unable to create lock for new record"
"RTN","EDPX",53,0)
I MSG=2300004 S X="Error creating new record"
"RTN","EDPX",54,0)
I MSG=2300005 S X="Error creating sub-record"
"RTN","EDPX",55,0)
I MSG=2300006 S X="Missing log record"
"RTN","EDPX",56,0)
I MSG=2300007 S X="Missing log IEN"
"RTN","EDPX",57,0)
I MSG=2300008 S X="Error updating record"
"RTN","EDPX",58,0)
I MSG=2300009 S X="Error updating sub-record"
"RTN","EDPX",59,0)
I MSG=2300010 S X="Command missing or not recognized"
"RTN","EDPX",60,0)
I MSG=2300011 S X="Unknown report type"
"RTN","EDPX",61,0)
I MSG=2300012 S X="Missing or invalid date range"
"RTN","EDPX",62,0)
I MSG=2300013 S X="Shift times not defined for this site"
"RTN","EDPX",63,0)
Q $$ESC^EDPX(X)
"RTN","EDPYSRV")
0^^B257666
"RTN","EDPYSRV",1,0)
EDPYSRV ;SLC/KCM - Post-init for server install
"RTN","EDPYSRV",2,0)
;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7
"RTN","EDPYSRV",3,0)
;
"RTN","EDPYSRV",4,0)
PROXY ; Create proxy user
"RTN","EDPYSRV",5,0)
Q:$O(^VA(200,"B","EDPTRACKING,PROXY",0))
"RTN","EDPYSRV",6,0)
N X
"RTN","EDPYSRV",7,0)
S X=$$CREATE^XUSAP("EDPTRACKING,PROXY","","EDPS TRACKING CONTEXT")
"RTN","EDPYSRV",8,0)
Q
"SEC","^DIC",230,230,0,"AUDIT")
@
"SEC","^DIC",230,230,0,"DD")
@
"SEC","^DIC",230,230,0,"DEL")
@
"SEC","^DIC",230,230,0,"LAYGO")
@
"SEC","^DIC",230,230,0,"RD")
@
"SEC","^DIC",230,230,0,"WR")
@
"SEC","^DIC",230.1,230.1,0,"AUDIT")
@
"SEC","^DIC",230.1,230.1,0,"DD")
@
"SEC","^DIC",230.1,230.1,0,"DEL")
@
"SEC","^DIC",230.1,230.1,0,"LAYGO")
@
"SEC","^DIC",230.1,230.1,0,"RD")
@
"SEC","^DIC",230.1,230.1,0,"WR")
@
"SEC","^DIC",231.7,231.7,0,"AUDIT")
@
"SEC","^DIC",231.7,231.7,0,"DD")
@
"SEC","^DIC",231.7,231.7,0,"DEL")
@
"SEC","^DIC",231.7,231.7,0,"LAYGO")
@
"SEC","^DIC",231.7,231.7,0,"RD")
@
"SEC","^DIC",231.7,231.7,0,"WR")
@
"SEC","^DIC",231.8,231.8,0,"AUDIT")
@
"SEC","^DIC",231.8,231.8,0,"DD")
@
"SEC","^DIC",231.8,231.8,0,"DEL")
@
"SEC","^DIC",231.8,231.8,0,"LAYGO")
@
"SEC","^DIC",231.8,231.8,0,"RD")
@
"SEC","^DIC",231.8,231.8,0,"WR")
@
"SEC","^DIC",231.9,231.9,0,"AUDIT")
@
"SEC","^DIC",231.9,231.9,0,"DD")
@
"SEC","^DIC",231.9,231.9,0,"DEL")
@
"SEC","^DIC",231.9,231.9,0,"LAYGO")
@
"SEC","^DIC",231.9,231.9,0,"RD")
@
"SEC","^DIC",231.9,231.9,0,"WR")
@
"SEC","^DIC",233.1,233.1,0,"AUDIT")
@
"SEC","^DIC",233.1,233.1,0,"DD")
@
"SEC","^DIC",233.1,233.1,0,"DEL")
@
"SEC","^DIC",233.1,233.1,0,"LAYGO")
@
"SEC","^DIC",233.1,233.1,0,"RD")
@
"SEC","^DIC",233.1,233.1,0,"WR")
@
"SEC","^DIC",233.2,233.2,0,"AUDIT")
@
"SEC","^DIC",233.2,233.2,0,"DD")
@
"SEC","^DIC",233.2,233.2,0,"DEL")
@
"SEC","^DIC",233.2,233.2,0,"LAYGO")
@
"SEC","^DIC",233.2,233.2,0,"RD")
@
"SEC","^DIC",233.2,233.2,0,"WR")
@
"VER")
8.0^22.0
"^DD",230,230,0)
FIELD^^.12^27
"^DD",230,230,0,"DT")
3071227
"^DD",230,230,0,"IX","B",230,.01)
"^DD",230,230,0,"NM","ED LOG")
"^DD",230,230,0,"PT",230.1,.01)
"^DD",230,230,.01,0)
LOG ENTRY TIME^RD^^0;1^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
"^DD",230,230,.01,1,0)
^.1
"^DD",230,230,.01,1,1,0)
230^B
"^DD",230,230,.01,1,1,1)
S ^EDP(230,"B",$E(X,1,30),DA)=""
"^DD",230,230,.01,1,1,2)
K ^EDP(230,"B",$E(X,1,30),DA)
"^DD",230,230,.01,3)
"^DD",230,230,.01,"DT")
3070721
"^DD",230,230,.02,0)
STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X
"^DD",230,230,.02,1,0)
^.1^^0
"^DD",230,230,.02,3)
Answer must be 1-15 characters in length.
"^DD",230,230,.02,"DT")
3071221
"^DD",230,230,.03,0)
AREA^P231.9'^EDPB(231.9,^0;3^Q
"^DD",230,230,.03,1,0)
^.1^^0
"^DD",230,230,.03,"DT")
3071216
"^DD",230,230,.04,0)
PATIENT NAME^F^^0;4^K:$L(X)>40!($L(X)<3) X
"^DD",230,230,.04,3)
Answer must be 3-40 characters in length.
"^DD",230,230,.04,"DT")
3071216
"^DD",230,230,.05,0)
PATIENT SSN^F^^0;5^K:$L(X)>10!($L(X)<1) X
"^DD",230,230,.05,1,0)
^.1^^0
"^DD",230,230,.05,3)
Answer must be 1-10 characters in length.
"^DD",230,230,.05,"DT")
3070920
"^DD",230,230,.06,0)
PATIENT ID^F^^0;6^K:$L(X)>20!($L(X)<1) X
"^DD",230,230,.06,3)
Answer must be 1-20 characters in length.
"^DD",230,230,.06,"DT")
3071115
"^DD",230,230,.07,0)
CLOSED^S^1:YES;0:NO;^0;7^Q
"^DD",230,230,.07,1,0)
^.1^^0
"^DD",230,230,.07,5,1,0)
230^3.2^1
"^DD",230,230,.07,9)
^
"^DD",230,230,.07,"DT")
3071129
"^DD",230,230,.08,0)
TIME IN^D^^0;8^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
"^DD",230,230,.08,"DT")
3071120
"^DD",230,230,.09,0)
TIME OUT^D^^0;9^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
"^DD",230,230,.09,"DT")
3071018
"^DD",230,230,.1,0)
ARRIVAL MODE^P233.1'^EDPB(233.1,^0;10^Q
"^DD",230,230,.1,"DT")
3070913
"^DD",230,230,.11,0)
PATIENT BRIEF ID^F^^0;11^K:$L(X)>10!($L(X)<4) X
"^DD",230,230,.11,3)
Answer must be 4-10 characters in length.
"^DD",230,230,.11,"DT")
3071129
"^DD",230,230,.12,0)
TIME ZONE DIFFERENCE^NJ3,0^^0;12^K:+X'=X!(X>720)!(X<-720)!(X?.E1"."1N.N) X
"^DD",230,230,.12,3)
Type a Number between -720 and 720, 0 Decimal Digits
"^DD",230,230,.12,21,0)
^^1^1^3071227^
"^DD",230,230,.12,21,1,0)
Minutes difference between the server time zone and the local time zone.
"^DD",230,230,.12,"DT")
3071227
"^DD",230,230,1.1,0)
COMPLAINT^F^^1;1^K:$L(X)>50!($L(X)<1) X
"^DD",230,230,1.1,3)
Answer must be 1-50 characters in length.
"^DD",230,230,1.1,"DT")
3070720
"^DD",230,230,1.2,0)
DISPOSITION^P233.1'^EDPB(233.1,^1;2^Q
"^DD",230,230,1.2,"DT")
3070720
"^DD",230,230,1.3,0)
DISPOSITION TIME^D^^1;3^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
"^DD",230,230,1.3,"DT")
3070720
"^DD",230,230,1.4,0)
DIAGNOSIS TIME^D^^1;4^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
"^DD",230,230,1.4,3)
"^DD",230,230,1.4,"DT")
3070720
"^DD",230,230,1.5,0)
DELAY^P233.1'^EDPB(233.1,^1;5^Q
"^DD",230,230,1.5,"DT")
3070720
"^DD",230,230,2,0)
COMPLAINT (LONG)^F^^2;1^K:$L(X)>220!($L(X)<1) X
"^DD",230,230,2,3)
Answer must be 1-220 characters in length.
"^DD",230,230,2,"DT")
3070720
"^DD",230,230,3.2,0)
STATUS^P233.1'^EDPB(233.1,^3;2^Q
"^DD",230,230,3.2,1,0)
^.1
"^DD",230,230,3.2,1,1,0)
^^TRIGGER^230^.07
"^DD",230,230,3.2,1,1,1)
K 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
"^DD",230,230,3.2,1,1,2)
Q
"^DD",230,230,3.2,1,1,"CREATE VALUE")
S X=$$ISGONE^EDPDD(X)
"^DD",230,230,3.2,1,1,"DELETE VALUE")
NO EFFECT
"^DD",230,230,3.2,1,1,"FIELD")
CLOSED
"^DD",230,230,3.2,"DT")
3071129
"^DD",230,230,3.3,0)
ACUITY^P233.1'^EDPB(233.1,^3;3^Q
"^DD",230,230,3.3,"DT")
3071129
"^DD",230,230,3.4,0)
LOC^P231.8'^EDPB(231.8,^3;4^Q
"^DD",230,230,3.4,"DT")
3071129
"^DD",230,230,3.5,0)
MD ASSIGNED^F^^3;5^K:$L(X)>20!($L(X)<1) X
"^DD",230,230,3.5,3)
Answer must be 1-20 characters in length.
"^DD",230,230,3.5,"DT")
3071129
"^DD",230,230,3.6,0)
NURSE ASSIGNED^F^^3;6^K:$L(X)>20!($L(X)<1) X
"^DD",230,230,3.6,3)
Answer must be 1-20 characters in length.
"^DD",230,230,3.6,"DT")
3071129
"^DD",230,230,3.7,0)
RESIDENT ASSIGNED^F^^3;7^K:$L(X)>20!($L(X)<1) X
"^DD",230,230,3.7,3)
Answer must be 1-20 characters in length.
"^DD",230,230,3.7,"DT")
3071129
"^DD",230,230,3.8,0)
COMMENT^F^^3;8^K:$L(X)>80!($L(X)<1) X
"^DD",230,230,3.8,3)
Answer must be 1-80 characters in length.
"^DD",230,230,3.8,"DT")
3071129
"^DD",230,230,4,0)
DISCHARGE DIAGNOSIS^230.04A^^4;0
"^DD",230,230,8,0)
ORDERS^230.08A^^8;0
"^DD",230,230.04,0)
DISCHARGE DIAGNOSIS SUB-FIELD^^.02^2
"^DD",230,230.04,0,"DT")
3070720
"^DD",230,230.04,0,"IX","B",230.04,.01)
"^DD",230,230.04,0,"NM","DISCHARGE DIAGNOSIS")
"^DD",230,230.04,0,"UP")
230
"^DD",230,230.04,.01,0)
DISCHARGE DIAGNOSIS^MF^^0;1^K:$L(X)>50!($L(X)<1) X
"^DD",230,230.04,.01,1,0)
^.1
"^DD",230,230.04,.01,1,1,0)
230.04^B
"^DD",230,230.04,.01,1,1,1)
S ^EDP(230,DA(1),4,"B",$E(X,1,30),DA)=""
"^DD",230,230.04,.01,1,1,2)
K ^EDP(230,DA(1),4,"B",$E(X,1,30),DA)
"^DD",230,230.04,.01,3)
Answer must be 1-50 characters in length.
"^DD",230,230.04,.01,"DT")
3070720
"^DD",230,230.04,.02,0)
ICD9 CODE^F^^0;2^K:$L(X)>20!($L(X)<1) X
"^DD",230,230.04,.02,3)
Answer must be 1-20 characters in length.
"^DD",230,230.04,.02,"DT")
3070720
"^DD",230,230.08,0)
ORDERS SUB-FIELD^^.05^5
"^DD",230,230.08,0,"DT")
3071115
"^DD",230,230.08,0,"IX","AC",230.08,.02)
"^DD",230,230.08,0,"IX","B",230.08,.01)
"^DD",230,230.08,0,"NM","ORDERS")
"^DD",230,230.08,0,"UP")
230
"^DD",230,230.08,.01,0)
ORDER^MF^^0;1^K:$L(X)>30!($L(X)<1) X
"^DD",230,230.08,.01,1,0)
^.1
"^DD",230,230.08,.01,1,1,0)
230.08^B
"^DD",230,230.08,.01,1,1,1)
S ^EDP(230,DA(1),8,"B",$E(X,1,30),DA)=""
"^DD",230,230.08,.01,1,1,2)
K ^EDP(230,DA(1),8,"B",$E(X,1,30),DA)
"^DD",230,230.08,.01,3)
Answer must be 1-30 characters in length.
"^DD",230,230.08,.01,"DT")
3070918
"^DD",230,230.08,.02,0)
SERVICE^S^M:medication;L:lab;R:radiology;C:consult;A:all other;^0;2^Q
"^DD",230,230.08,.02,1,0)
^.1
"^DD",230,230.08,.02,1,1,0)
230.08^AC
"^DD",230,230.08,.02,1,1,1)
S ^EDP(230,DA(1),8,"AC",$E(X,1,30),DA)=""
"^DD",230,230.08,.02,1,1,2)
K ^EDP(230,DA(1),8,"AC",$E(X,1,30),DA)
"^DD",230,230.08,.02,1,1,"%D",0)
^^2^2^3071115^
"^DD",230,230.08,.02,1,1,"%D",1,0)
Allows quick check for the existence of various types of orders for this
"^DD",230,230.08,.02,1,1,"%D",2,0)
ED visit.
"^DD",230,230.08,.02,1,1,"DT")
3071115
"^DD",230,230.08,.02,"DT")
3071115
"^DD",230,230.08,.03,0)
STATUS^S^N:new;A:active;C:complete;^0;3^Q
"^DD",230,230.08,.03,"DT")
3070911
"^DD",230,230.08,.04,0)
STAT^S^1:stat;^0;4^Q
"^DD",230,230.08,.04,"DT")
3070911
"^DD",230,230.08,.05,0)
RELEASE TIME^D^^0;5^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
"^DD",230,230.08,.05,"DT")
3071115
"^DD",230.1,230.1,0)
FIELD^^3.8^21
"^DD",230.1,230.1,0,"DT")
3071129
"^DD",230.1,230.1,0,"IX","B",230.1,.01)
"^DD",230.1,230.1,0,"NM","ED LOG HISTORY")
"^DD",230.1,230.1,.01,0)
LOG ENTRY^RP230'^EDP(230,^0;1^Q
"^DD",230.1,230.1,.01,1,0)
^.1
"^DD",230.1,230.1,.01,1,1,0)
230.1^B
"^DD",230.1,230.1,.01,1,1,1)
S ^EDP(230.1,"B",$E(X,1,30),DA)=""
"^DD",230.1,230.1,.01,1,1,2)
K ^EDP(230.1,"B",$E(X,1,30),DA)
"^DD",230.1,230.1,.01,3)
"^DD",230.1,230.1,.01,"DT")
3071129
"^DD",230.1,230.1,.02,0)
TIME^D^^0;2^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
"^DD",230.1,230.1,.02,"DT")
3071129
"^DD",230.1,230.1,.03,0)
ENTERED BY^F^^0;3^K:$L(X)>12!($L(X)<1) X
"^DD",230.1,230.1,.03,3)
Answer must be 1-12 characters in length.
"^DD",230.1,230.1,.03,"DT")
3071123
"^DD",230.1,230.1,.04,0)
PATIENT NAME^F^^0;4^K:$L(X)>40!($L(X)<3) X
"^DD",230.1,230.1,.04,3)
Answer must be 3-40 characters in length.
"^DD",230.1,230.1,.04,"DT")
3071123
"^DD",230.1,230.1,.05,0)
PATIENT SSN^F^^0;5^K:$L(X)>10!($L(X)<1) X
"^DD",230.1,230.1,.05,3)
Answer must be 1-10 characters in length.
"^DD",230.1,230.1,.05,"DT")
3071123
"^DD",230.1,230.1,.06,0)
PATIENT ID^F^^0;6^K:$L(X)>20!($L(X)<1) X
"^DD",230.1,230.1,.06,3)
Answer must be 1-20 characters in length.
"^DD",230.1,230.1,.06,"DT")
3071123
"^DD",230.1,230.1,.07,0)
COMPLAINT^F^^0;7^K:$L(X)>50!($L(X)<1) X
"^DD",230.1,230.1,.07,3)
Answer must be 1-50 characters in length.
"^DD",230.1,230.1,.07,"DT")
3071123
"^DD",230.1,230.1,.08,0)
TIME IN^D^^0;8^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
"^DD",230.1,230.1,.08,"DT")
3071123
"^DD",230.1,230.1,.09,0)
TIME OUT^D^^0;9^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X
"^DD",230.1,230.1,.09,"DT")
3071123
"^DD",230.1,230.1,.1,0)
ARRIVAL MODE^P233.1'^EDPB(233.1,^0;10^Q
"^DD",230.1,230.1,.1,"DT")
3071123
"^DD",230.1,230.1,.11,0)
DISPOSITION^P233.1'^EDPB(233.1,^0;11^Q
"^DD",230.1,230.1,.11,"DT")
3071123
"^DD",230.1,230.1,.12,0)
DELAY^P233.1'^EDPB(233.1,^0;12^Q
"^DD",230.1,230.1,.12,"DT")
3071123
"^DD",230.1,230.1,1,0)
COMPLAINT (LONG)^F^^1;1^K:$L(X)>220!($L(X)<1) X
"^DD",230.1,230.1,1,3)
Answer must be 1-220 characters in length.
"^DD",230.1,230.1,1,"DT")
3071123
"^DD",230.1,230.1,2,0)
COMPLAINT (LONG)^F^^2;1^K:$L(X)>220!($L(X)<1) X
"^DD",230.1,230.1,2,3)
Answer must be 1-220 characters in length.
"^DD",230.1,230.1,2,"DT")
3071129
"^DD",230.1,230.1,3.2,0)
STATUS^P233.1'^EDPB(233.1,^3;2^Q
"^DD",230.1,230.1,3.2,"DT")
3071129
"^DD",230.1,230.1,3.3,0)
ACUITY^P233.1'^EDPB(233.1,^3;3^Q
"^DD",230.1,230.1,3.3,"DT")
3071129
"^DD",230.1,230.1,3.4,0)
LOC^P231.8'^EDPB(231.8,^3;4^Q
"^DD",230.1,230.1,3.4,"DT")
3071129
"^DD",230.1,230.1,3.5,0)
MD ASSIGNED^F^^3;5^K:$L(X)>20!($L(X)<1) X
"^DD",230.1,230.1,3.5,3)
Answer must be 1-20 characters in length.
"^DD",230.1,230.1,3.5,"DT")
3071129
"^DD",230.1,230.1,3.6,0)
NURSE ASSIGNED^F^^3;6^K:$L(X)>20!($L(X)<1) X
"^DD",230.1,230.1,3.6,3)
Answer must be 1-20 characters in length.
"^DD",230.1,230.1,3.6,"DT")
3071129
"^DD",230.1,230.1,3.7,0)
RESIDENT ASSIGNED^F^^3;7^K:$L(X)>20!($L(X)<1) X
"^DD",230.1,230.1,3.7,3)
Answer must be 1-20 characters in length.
"^DD",230.1,230.1,3.7,"DT")
3071129
"^DD",230.1,230.1,3.8,0)
COMMENT^F^^3;8^K:$L(X)>80!($L(X)<1) X
"^DD",230.1,230.1,3.8,3)
Answer must be 1-80 characters in length.
"^DD",230.1,230.1,3.8,"DT")
3071129
"^DD",231.7,231.7,0)
FIELD^^.08^8
"^DD",231.7,231.7,0,"DT")
3071221
"^DD",231.7,231.7,0,"IX","B",231.7,.01)
"^DD",231.7,231.7,0,"NM","TRACKING STAFF")
"^DD",231.7,231.7,.01,0)
NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
"^DD",231.7,231.7,.01,1,0)
^.1
"^DD",231.7,231.7,.01,1,1,0)
231.7^B
"^DD",231.7,231.7,.01,1,1,1)
S ^EDPB(231.7,"B",$E(X,1,30),DA)=""
"^DD",231.7,231.7,.01,1,1,2)
K ^EDPB(231.7,"B",$E(X,1,30),DA)
"^DD",231.7,231.7,.01,3)
NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
"^DD",231.7,231.7,.01,"DT")
3071124
"^DD",231.7,231.7,.02,0)
STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X
"^DD",231.7,231.7,.02,3)
Answer must be 1-15 characters in length.
"^DD",231.7,231.7,.02,"DT")
3071221
"^DD",231.7,231.7,.03,0)
AREA^P231.9'^EDPB(231.9,^0;3^Q
"^DD",231.7,231.7,.03,"DT")
3071127
"^DD",231.7,231.7,.04,0)
INACTIVE^S^0:ACTIVE;1:INACTIVE;^0;4^Q
"^DD",231.7,231.7,.04,"DT")
3071124
"^DD",231.7,231.7,.05,0)
LOCAL ID^F^^0;5^K:$L(X)>12!($L(X)<1) X
"^DD",231.7,231.7,.05,3)
Answer must be 1-12 characters in length.
"^DD",231.7,231.7,.05,"DT")
3071127
"^DD",231.7,231.7,.06,0)
ROLE^S^P:provider;R:resident;N:nurse;^0;6^Q
"^DD",231.7,231.7,.06,"DT")
3071124
"^DD",231.7,231.7,.07,0)
INITIALS^F^^0;7^K:$L(X)>7!($L(X)<1) X
"^DD",231.7,231.7,.07,3)
Answer must be 1-7 characters in length.
"^DD",231.7,231.7,.07,"DT")
3071124
"^DD",231.7,231.7,.08,0)
COLOR^F^^0;8^K:$L(X)>20!($L(X)<1) X
"^DD",231.7,231.7,.08,3)
Answer must be 1-20 characters in length.
"^DD",231.7,231.7,.08,"DT")
3071124
"^DD",231.8,231.8,0)
FIELD^^.12^12
"^DD",231.8,231.8,0,"DT")
3071221
"^DD",231.8,231.8,0,"IX","B",231.8,.01)
"^DD",231.8,231.8,0,"NM","TRACKING ROOM-BED")
"^DD",231.8,231.8,0,"PT",230,3.4)
"^DD",231.8,231.8,0,"PT",230.1,3.4)
"^DD",231.8,231.8,.01,0)
NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
"^DD",231.8,231.8,.01,1,0)
^.1
"^DD",231.8,231.8,.01,1,1,0)
231.8^B
"^DD",231.8,231.8,.01,1,1,1)
S ^EDPB(231.8,"B",$E(X,1,30),DA)=""
"^DD",231.8,231.8,.01,1,1,2)
K ^EDPB(231.8,"B",$E(X,1,30),DA)
"^DD",231.8,231.8,.01,3)
NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
"^DD",231.8,231.8,.02,0)
STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X
"^DD",231.8,231.8,.02,3)
Answer must be 1-15 characters in length.
"^DD",231.8,231.8,.02,"DT")
3080111
"^DD",231.8,231.8,.03,0)
AREA^P231.9'^EDPB(231.9,^0;3^Q
"^DD",231.8,231.8,.03,"DT")
3080111
"^DD",231.8,231.8,.04,0)
INACTIVE^S^0:ACTIVE;1:INACTIVE;^0;4^Q
"^DD",231.8,231.8,.04,"DT")
3070911
"^DD",231.8,231.8,.05,0)
SEQUENCE^NJ7,2^^0;5^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."3N.N) X
"^DD",231.8,231.8,.05,3)
Type a Number between 1 and 9999, 2 Decimal Digits
"^DD",231.8,231.8,.05,"DT")
3070911
"^DD",231.8,231.8,.06,0)
DISPLAY NAME^F^^0;6^K:$L(X)>30!($L(X)<1) X
"^DD",231.8,231.8,.06,3)
Answer must be 1-30 characters in length.
"^DD",231.8,231.8,.06,"DT")
3080111
"^DD",231.8,231.8,.07,0)
DISPLAY WHEN^S^0:OCCUPIED;1:ALWAYS;2:NEVER;^0;7^Q
"^DD",231.8,231.8,.07,"DT")
3070912
"^DD",231.8,231.8,.08,0)
DEFAULT STATUS^P233.1'^EDPB(233.1,^0;8^Q
"^DD",231.8,231.8,.08,"DT")
3070911
"^DD",231.8,231.8,.09,0)
MULTIPLE ASSIGN^S^0:NO;1:YES;^0;9^Q
"^DD",231.8,231.8,.09,"DT")
3070911
"^DD",231.8,231.8,.1,0)
SHARED NAME^F^^0;10^K:$L(X)>30!($L(X)<1) X
"^DD",231.8,231.8,.1,3)
Answer must be 1-30 characters in length.
"^DD",231.8,231.8,.1,"DT")
3070911
"^DD",231.8,231.8,.11,0)
BOARD^F^^0;11^K:$L(X)>30!($L(X)<1) X
"^DD",231.8,231.8,.11,3)
Answer must be 1-30 characters in length.
"^DD",231.8,231.8,.11,"DT")
3071030
"^DD",231.8,231.8,.12,0)
COLOR^F^^0;12^K:$L(X)>20!($L(X)<1) X
"^DD",231.8,231.8,.12,3)
Answer must be 1-20 characters in length.
"^DD",231.8,231.8,.12,"DT")
3071123
"^DD",231.9,231.9,0)
FIELD^^.04^15
"^DD",231.9,231.9,0,"DT")
3071228
"^DD",231.9,231.9,0,"IX","B",231.9,.01)
"^DD",231.9,231.9,0,"IX","C",231.9,.02)
"^DD",231.9,231.9,0,"NM","TRACKING AREA")
"^DD",231.9,231.9,0,"PT",230,.03)
"^DD",231.9,231.9,0,"PT",231.7,.03)
"^DD",231.9,231.9,0,"PT",231.8,.03)
"^DD",231.9,231.9,.01,0)
NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
"^DD",231.9,231.9,.01,1,0)
^.1
"^DD",231.9,231.9,.01,1,1,0)
231.9^B
"^DD",231.9,231.9,.01,1,1,1)
S ^EDPB(231.9,"B",$E(X,1,30),DA)=""
"^DD",231.9,231.9,.01,1,1,2)
K ^EDPB(231.9,"B",$E(X,1,30),DA)
"^DD",231.9,231.9,.01,3)
NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
"^DD",231.9,231.9,.02,0)
STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X
"^DD",231.9,231.9,.02,1,0)
^.1
"^DD",231.9,231.9,.02,1,1,0)
231.9^C
"^DD",231.9,231.9,.02,1,1,1)
S ^EDPB(231.9,"C",$E(X,1,30),DA)=""
"^DD",231.9,231.9,.02,1,1,2)
K ^EDPB(231.9,"C",$E(X,1,30),DA)
"^DD",231.9,231.9,.02,1,1,"DT")
3070913
"^DD",231.9,231.9,.02,3)
Answer must be 1-15 characters in length.
"^DD",231.9,231.9,.02,"DT")
3071221
"^DD",231.9,231.9,.03,0)
TIME ZONE DIFFERENCE^NJ3,0^^0;3^K:+X'=X!(X>720)!(X<-720)!(X?.E1"."1N.N) X
"^DD",231.9,231.9,.03,3)
Type a Number between -720 and 720, 0 Decimal Digits
"^DD",231.9,231.9,.03,"DT")
3071227
"^DD",231.9,231.9,.04,0)
MAIL DOMAIN^F^^0;4^K:$L(X)>45!($L(X)<3) X
"^DD",231.9,231.9,.04,3)
Answer must be 3-45 characters in length.
"^DD",231.9,231.9,.04,"DT")
3071228
"^DD",231.9,231.9,1.1,0)
DIAGNOSIS REQUIRED^S^0:NO;1:YES;^1;1^Q
"^DD",231.9,231.9,1.1,"DT")
3071015
"^DD",231.9,231.9,1.2,0)
CODED DIAGNOSIS^S^0:NO;1:YES;^1;2^Q
"^DD",231.9,231.9,1.2,"DT")
3071015
"^DD",231.9,231.9,1.3,0)
DISPOSITION REQUIRED^S^0:NO;1:YES;^1;3^Q
"^DD",231.9,231.9,1.3,"DT")
3071015
"^DD",231.9,231.9,1.4,0)
DELAY REQUIRED^S^0:NO;1:YES;^1;4^Q
"^DD",231.9,231.9,1.4,"DT")
3071015
"^DD",231.9,231.9,1.5,0)
DELAY MINUTES^NJ4,0^^1;5^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X
"^DD",231.9,231.9,1.5,3)
Type a Number between 1 and 9999, 0 Decimal Digits
"^DD",231.9,231.9,1.5,"DT")
3071015
"^DD",231.9,231.9,1.6,0)
FIRST SHIFT START^NJ5,0^^1;6^K:+X'=X!(X>86400)!(X<0)!(X?.E1"."1N.N) X
"^DD",231.9,231.9,1.6,3)
Type a Number between 0 and 86400, 0 Decimal Digits
"^DD",231.9,231.9,1.6,"DT")
3071130
"^DD",231.9,231.9,1.7,0)
SHIFT DURATION^NJ5,0^^1;7^K:+X'=X!(X>86400)!(X<0)!(X?.E1"."1N.N) X
"^DD",231.9,231.9,1.7,3)
Type a Number between 0 and 86400, 0 Decimal Digits
"^DD",231.9,231.9,1.7,"DT")
3071130
"^DD",231.9,231.9,1.8,0)
PROMPT RESIDENTS^S^0:NO;1:YES;^1;8^Q
"^DD",231.9,231.9,1.8,"DT")
3071130
"^DD",231.9,231.9,2,0)
DISPLAY BOARD SPEC^231.92^^2;0
"^DD",231.9,231.9,3,0)
COLOR SPEC^231.93^^3;0
"^DD",231.9,231.9,230.1,0)
TRACKING UPDATED^F^^230;1^K:$L(X)>30!($L(X)<1) X
"^DD",231.9,231.9,230.1,3)
Answer must be 1-30 characters in length.
"^DD",231.9,231.9,230.1,"DT")
3071006
"^DD",231.9,231.92,0)
DISPLAY BOARD SPEC SUB-FIELD^^.01^1
"^DD",231.9,231.92,0,"DT")
3071022
"^DD",231.9,231.92,0,"NM","DISPLAY BOARD SPEC")
"^DD",231.9,231.92,0,"UP")
231.9
"^DD",231.9,231.92,.01,0)
DISPLAY BOARD SPEC^WL^^0;1^Q
"^DD",231.9,231.92,.01,"DT")
3071022
"^DD",231.9,231.93,0)
COLOR SPEC SUB-FIELD^^.01^1
"^DD",231.9,231.93,0,"DT")
3071027
"^DD",231.9,231.93,0,"NM","COLOR SPEC")
"^DD",231.9,231.93,0,"UP")
231.9
"^DD",231.9,231.93,.01,0)
COLOR SPEC^WL^^0;1^Q
"^DD",231.9,231.93,.01,"DT")
3071027
"^DD",233.1,233.1,0)
FIELD^^2^6
"^DD",233.1,233.1,0,"DT")
3080102
"^DD",233.1,233.1,0,"IX","B",233.1,.01)
"^DD",233.1,233.1,0,"NM","TRACKING CODE")
"^DD",233.1,233.1,0,"PT",230,.06)
"^DD",233.1,233.1,0,"PT",230,.1)
"^DD",233.1,233.1,0,"PT",230,1.2)
"^DD",233.1,233.1,0,"PT",230,1.5)
"^DD",233.1,233.1,0,"PT",230,3.2)
"^DD",233.1,233.1,0,"PT",230,3.3)
"^DD",233.1,233.1,0,"PT",230.1,.1)
"^DD",233.1,233.1,0,"PT",230.1,.11)
"^DD",233.1,233.1,0,"PT",230.1,.12)
"^DD",233.1,233.1,0,"PT",230.1,3.2)
"^DD",233.1,233.1,0,"PT",230.1,3.3)
"^DD",233.1,233.1,0,"PT",231.41,.03)
"^DD",233.1,233.1,0,"PT",231.8,.05)
"^DD",233.1,233.1,0,"PT",231.8,.08)
"^DD",233.1,233.1,0,"PT",233.1,.04)
"^DD",233.1,233.1,0,"PT",233.21,.02)
"^DD",233.1,233.1,.01,0)
NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
"^DD",233.1,233.1,.01,1,0)
^.1
"^DD",233.1,233.1,.01,1,1,0)
233.1^B
"^DD",233.1,233.1,.01,1,1,1)
S ^EDPB(233.1,"B",$E(X,1,30),DA)=""
"^DD",233.1,233.1,.01,1,1,2)
K ^EDPB(233.1,"B",$E(X,1,30),DA)
"^DD",233.1,233.1,.01,3)
NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
"^DD",233.1,233.1,.01,"DT")
3080122
"^DD",233.1,233.1,.02,0)
DISPLAY NAME^F^^0;2^K:$L(X)>60!($L(X)<1) X
"^DD",233.1,233.1,.02,3)
Answer must be 1-60 characters in length.
"^DD",233.1,233.1,.02,"DT")
3080122
"^DD",233.1,233.1,.03,0)
ABBREVIATION^F^^0;3^K:$L(X)>30!($L(X)<1) X
"^DD",233.1,233.1,.03,3)
Answer must be 1-30 characters in length.
"^DD",233.1,233.1,.03,"DT")
3080122
"^DD",233.1,233.1,.04,0)
NATIONAL CODE^P233.1'^EDPB(233.1,^0;4^Q
"^DD",233.1,233.1,.04,"DT")
3070719
"^DD",233.1,233.1,.05,0)
FLAGS^F^^0;5^K:$L(X)>5!($L(X)<1) X
"^DD",233.1,233.1,.05,3)
Answer must be 1-5 characters in length.
"^DD",233.1,233.1,.05,"DT")
3080102
"^DD",233.1,233.1,2,0)
DESCRIPTION^233.12^^2;0
"^DD",233.1,233.12,0)
DESCRIPTION SUB-FIELD^^.01^1
"^DD",233.1,233.12,0,"DT")
3070720
"^DD",233.1,233.12,0,"NM","DESCRIPTION")
"^DD",233.1,233.12,0,"UP")
233.1
"^DD",233.1,233.12,.01,0)
DESCRIPTION^W^^0;1^Q
"^DD",233.1,233.12,.01,"DT")
3070720
"^DD",233.2,233.2,0)
FIELD^^1^2
"^DD",233.2,233.2,0,"DT")
3071229
"^DD",233.2,233.2,0,"IX","B",233.2,.01)
"^DD",233.2,233.2,0,"NM","TRACKING CODE SET")
"^DD",233.2,233.2,.01,0)
NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
"^DD",233.2,233.2,.01,1,0)
^.1
"^DD",233.2,233.2,.01,1,1,0)
233.2^B
"^DD",233.2,233.2,.01,1,1,1)
S ^EDPB(233.2,"B",$E(X,1,30),DA)=""
"^DD",233.2,233.2,.01,1,1,2)
K ^EDPB(233.2,"B",$E(X,1,30),DA)
"^DD",233.2,233.2,.01,3)
NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
"^DD",233.2,233.2,1,0)
CODES^233.21A^^1;0
"^DD",233.2,233.21,0)
CODES SUB-FIELD^^.05^5
"^DD",233.2,233.21,0,"DT")
3071229
"^DD",233.2,233.21,0,"IX","B",233.21,.01)
"^DD",233.2,233.21,0,"NM","CODES")
"^DD",233.2,233.21,0,"UP")
233.2
"^DD",233.2,233.21,.01,0)
SEQUENCE^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X
"^DD",233.2,233.21,.01,1,0)
^.1
"^DD",233.2,233.21,.01,1,1,0)
233.21^B
"^DD",233.2,233.21,.01,1,1,1)
S ^EDPB(233.2,DA(1),1,"B",$E(X,1,30),DA)=""
"^DD",233.2,233.21,.01,1,1,2)
K ^EDPB(233.2,DA(1),1,"B",$E(X,1,30),DA)
"^DD",233.2,233.21,.01,3)
Type a Number between 1 and 9999, 0 Decimal Digits
"^DD",233.2,233.21,.01,"DT")
3070719
"^DD",233.2,233.21,.02,0)
CODE^P233.1'^EDPB(233.1,^0;2^Q
"^DD",233.2,233.21,.02,"DT")
3070719
"^DD",233.2,233.21,.03,0)
INACTIVE^S^1:INACTIVE;0:ACTIVE;^0;3^Q
"^DD",233.2,233.21,.03,"DT")
3071228
"^DD",233.2,233.21,.04,0)
NAME AT SITE^F^^0;4^K:$L(X)>60!($L(X)<1) X
"^DD",233.2,233.21,.04,3)
Answer must be 1-60 characters in length.
"^DD",233.2,233.21,.04,"DT")
3080102
"^DD",233.2,233.21,.05,0)
ABBREVIATION AT SITE^F^^0;5^K:$L(X)>30!($L(X)<1) X
"^DD",233.2,233.21,.05,3)
Answer must be 1-30 characters in length.
"^DD",233.2,233.21,.05,"DT")
3080102
"^DIC",230,230,0)
ED LOG^230
"^DIC",230,230,0,"GL")
^EDP(230,
"^DIC",230,"B","ED LOG",230)
"^DIC",230.1,230.1,0)
ED LOG HISTORY^230.1
"^DIC",230.1,230.1,0,"GL")
^EDP(230.1,
"^DIC",230.1,"B","ED LOG HISTORY",230.1)
"^DIC",231.7,231.7,0)
TRACKING STAFF^231.7
"^DIC",231.7,231.7,0,"GL")
^EDPB(231.7,
"^DIC",231.7,"B","TRACKING STAFF",231.7)
"^DIC",231.8,231.8,0)
TRACKING ROOM-BED^231.8
"^DIC",231.8,231.8,0,"GL")
^EDPB(231.8,
"^DIC",231.8,"B","TRACKING ROOM-BED",231.8)
"^DIC",231.9,231.9,0)
TRACKING AREA^231.9
"^DIC",231.9,231.9,0,"GL")
^EDPB(231.9,
"^DIC",231.9,"B","TRACKING AREA",231.9)
"^DIC",233.1,233.1,0)
TRACKING CODE^233.1
"^DIC",233.1,233.1,0,"GL")
^EDPB(233.1,
"^DIC",233.1,"B","TRACKING CODE",233.1)
"^DIC",233.2,233.2,0)
TRACKING CODE SET^233.2
"^DIC",233.2,233.2,0,"GL")
^EDPB(233.2,
"^DIC",233.2,"B","TRACKING CODE SET",233.2)
**END**
**END**