KIDS Distribution saved on Jan 11, 2008@18:28:15 EDIS Tracking Server 1.0T1 **KIDS**:EDP SERVER 1.0^ **INSTALL NAME** EDP SERVER 1.0 "BLD",6766,0) EDP SERVER 1.0^^0^3080111^n "BLD",6766,1,0) ^^4^4^3080103^ "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) 6 "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^B8624060 "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^B8926561 "BLD",6766,"KRN",9.8,"NM",31,0) EDPRPT1^^0^B33830475 "BLD",6766,"KRN",9.8,"NM",32,0) EDPRPT10^^0^B17116118 "BLD",6766,"KRN",9.8,"NM",33,0) EDPRPT11^^0^B8284389 "BLD",6766,"KRN",9.8,"NM",34,0) EDPRPT2^^0^B16129042 "BLD",6766,"KRN",9.8,"NM",35,0) EDPRPT3^^0^B6932750 "BLD",6766,"KRN",9.8,"NM",36,0) EDPRPT4^^0^B21631654 "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^B15360284 "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",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 "DATA",233.1,43,0) edp.disposition.icu^Admitted to ICU^ICU "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) "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 6 "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 6 "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 6 "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 6 "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 6 "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 6 "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("") "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 6 "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 6 "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 6 "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 6 "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 6 "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 6 "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 6 "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 6 "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^B8624060 "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 6 "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) Q "RTN","EDPMAIL",19,0) ; "RTN","EDPMAIL",20,0) NEW ; add new order "RTN","EDPMAIL",21,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",22,0) N X,Y,DIC,DA "RTN","EDPMAIL",23,0) S DIC="^EDP(230,"_LOG_",8,",DIC(0)="LZ",DA(1)=LOG,X=+ORIFN "RTN","EDPMAIL",24,0) S DIC("DR")=".02///"_$$VAL("pkg")_";.03///N;.05///"_$$VAL("release") "RTN","EDPMAIL",25,0) S:$$VAL("stat") DIC("DR")=DIC("DR")_";.04///1" "RTN","EDPMAIL",26,0) D FILE^DICN "RTN","EDPMAIL",27,0) Q "RTN","EDPMAIL",28,0) UPD ; update order "RTN","EDPMAIL",29,0) Q:'LOG Q:'ORIFN Q:'$L($$VAL("sts")) "RTN","EDPMAIL",30,0) N IEN S IEN=$$FIND Q:IEN<1 "RTN","EDPMAIL",31,0) I $D(^EDP(230,LOG,8,+DA,0)) S $P(^(0),U,3)=$$VAL("sts") "RTN","EDPMAIL",32,0) Q "RTN","EDPMAIL",33,0) DEL ; delete order "RTN","EDPMAIL",34,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",35,0) N DIK,DA "RTN","EDPMAIL",36,0) S DA=$$FIND Q:DA<1 "RTN","EDPMAIL",37,0) S DIK="^EDP(230,"_LOG_",8,",DA(1)=LOG "RTN","EDPMAIL",38,0) D ^DIK "RTN","EDPMAIL",39,0) Q "RTN","EDPMAIL",40,0) VER ; verify order "RTN","EDPMAIL",41,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",42,0) N IEN S IEN=$$FIND Q:IEN<1 "RTN","EDPMAIL",43,0) I $P($G(^EDP(230,LOG,8,IEN,0)),U,3)'="C" S $P(^(0),U,3)="A" "RTN","EDPMAIL",44,0) Q "RTN","EDPMAIL",45,0) COMP ; complete order "RTN","EDPMAIL",46,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",47,0) N IEN S IEN=$$FIND Q:IEN<1 "RTN","EDPMAIL",48,0) S $P(^(0),U,3)="C" "RTN","EDPMAIL",49,0) Q "RTN","EDPMAIL",50,0) ; "RTN","EDPMAIL",51,0) FIND() ; -- return ien of ORIFN in multiple "RTN","EDPMAIL",52,0) N Y S Y=+$O(^EDP(230,LOG,8,"B",+ORIFN,0)) "RTN","EDPMAIL",53,0) Q Y "RTN","EDPMAIL",54,0) ; "RTN","EDPMAIL",55,0) VAL(X) ; -- return parameter value or null if undefined "RTN","EDPMAIL",56,0) Q $G(PARAM(X)) "RTN","EDPMAIL",57,0) ; "RTN","EDPMAIL",58,0) CHKIN ; check in a patient "RTN","EDPMAIL",59,0) Q:'$$VAL("dfn") Q:'$$VAL("ssn") Q:'$L($$VAL("ptNm")) Q:'$L($$VAL("site")) "RTN","EDPMAIL",60,0) N NEWPT "RTN","EDPMAIL",61,0) S NEWPT=$$VAL("dfn")_$C(9)_$$VAL("ptNm")_$C(9)_$$VAL("dob")_$C(9)_$$VAL("ssn") "RTN","EDPMAIL",62,0) N AREA "RTN","EDPMAIL",63,0) S AREA=$O(^EDPB(231.9,"C",$$VAL("site"),0)) Q:'AREA "RTN","EDPMAIL",64,0) N EDPXML,EDPSITE "RTN","EDPMAIL",65,0) S EDPSITE=$$VAL("site") "RTN","EDPMAIL",66,0) D ADD^EDPLOGA(NEWPT,AREA,$$VAL("time"),0) "RTN","EDPMAIL",67,0) Q "RTN","EDPMAIL",68,0) SETDOM ; set the mail domain for a site "RTN","EDPMAIL",69,0) N EDPSITE,EDPXML,AREA "RTN","EDPMAIL",70,0) S EDPSITE=$$VAL("station") "RTN","EDPMAIL",71,0) D DFLTAREA^EDPQAR "RTN","EDPMAIL",72,0) S AREA=$O(^EDPB(231.9,"C",EDPSITE,0)) "RTN","EDPMAIL",73,0) I AREA D "RTN","EDPMAIL",74,0) . N FDA,FDAIEN,DIERR,ERR "RTN","EDPMAIL",75,0) . S FDA(231.9,AREA_",",.04)=$$VAL("domain") "RTN","EDPMAIL",76,0) . D FILE^DIE("","FDA","ERR") "RTN","EDPMAIL",77,0) Q "RTN","EDPMAIL",78,0) ; "RTN","EDPMAIL",79,0) ; OUTGOING "RTN","EDPMAIL",80,0) ; "RTN","EDPMAIL",81,0) NEWLOG(AREA,LOG,DFN) ; send registration message for new log entry "RTN","EDPMAIL",82,0) D SEND(AREA,"registerLog:"_LOG_":"_DFN) "RTN","EDPMAIL",83,0) Q "RTN","EDPMAIL",84,0) DELLOG(AREA,LOG) ; send delete message for removed log entry "RTN","EDPMAIL",85,0) D SEND(AREA,"removeLog:"_LOG) "RTN","EDPMAIL",86,0) Q "RTN","EDPMAIL",87,0) SEND(AREA,MSG) ; Send message to local facility "RTN","EDPMAIL",88,0) N DOMAIN S DOMAIN=$P(^EDPB(231.9,AREA,0),U,4) "RTN","EDPMAIL",89,0) Q:'$L(DOMAIN) "RTN","EDPMAIL",90,0) ; "RTN","EDPMAIL",91,0) N XMSUB,XMY,XMTEXT,EDPMSG "RTN","EDPMAIL",92,0) S XMSUB="EDIS Registration Event" "RTN","EDPMAIL",93,0) S EDPMSG(1)=MSG "RTN","EDPMAIL",94,0) S XMTEXT="EDPMSG(" "RTN","EDPMAIL",95,0) S XMY("S.EDPFLOGLISTENER@"_DOMAIN)="" "RTN","EDPMAIL",96,0) D ^XMD "RTN","EDPMAIL",97,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 6 "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 6 "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 6 "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 6 "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("") "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("") "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 6 "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^B8926561 "RTN","EDPRPT",1,0) EDPRPT ;SLC/MKB - Reports "RTN","EDPRPT",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6 "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) S X=$$ECODE($P(X3,U,2)) S:X["Adm"!(X["Obs") 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 6 "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^B17116118 "RTN","EDPRPT10",1,0) EDPRPT10 ;SLC/MKB - Admissions Report "RTN","EDPRPT10",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6 "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:"^VA^ICU^T^OBS^"'[(U_DISP_U) "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) . F DISP="VA","ICU","T","OBS" I 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) F DISP="ALL","VA","ICU","T","OBS" 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,I "RTN","EDPRPT10",85,0) F D="VA","T","ICU","OBS","ALL" D "RTN","EDPRPT10",86,0) . S CNT(D)=0 "RTN","EDPRPT10",87,0) . F I="elapsed","triage","wait","admDec","admDel" S MIN(D,I)=0 "RTN","EDPRPT10",88,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT10",89,0) Q "RTN","EDPRPT10",90,0) ; "RTN","EDPRPT10",91,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT10",92,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT10",93,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 6 "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^B16129042 "RTN","EDPRPT2",1,0) EDPRPT2 ;SLC/MKB - Delay Report "RTN","EDPRPT2",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6 "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,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)),CNT=CNT+1 "RTN","EDPRPT2",17,0) . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),DEL=+$P(X1,U,5) "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 DISP="VA" 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:DISP="VA" 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","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 6 "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^B21631654 "RTN","EDPRPT4",1,0) EDPRPT4 ;SLC/MKB - Delay Summary Report "RTN","EDPRPT4",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6 "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,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)),ACU=$$ECODE($P(X3,U,3)) "RTN","EDPRPT4",13,0) . S DEL=+$P(X1,U,5),CNT=CNT+1 "RTN","EDPRPT4",14,0) . S OUT=$P(X0,U,9) S:OUT="" OUT=NOW "RTN","EDPRPT4",15,0) . S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60),MIN=MIN+ELAPSE "RTN","EDPRPT4",16,0) D1 . ; all admissions "RTN","EDPRPT4",17,0) . S (ADMDEC,ADMDEL)=0 "RTN","EDPRPT4",18,0) . S X=$$ADMSTS^EDPRPT(LOG) I X D "RTN","EDPRPT4",19,0) .. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60 "RTN","EDPRPT4",20,0) .. S:ADMDEC CNT("DEC")=CNT("DEC")+1,MIN("DEC")=MIN("DEC")+ADMDEC "RTN","EDPRPT4",21,0) .. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60 "RTN","EDPRPT4",22,0) D2 . ; VA admissions only "RTN","EDPRPT4",23,0) . I DISP="VA" D "RTN","EDPRPT4",24,0) .. S CNT("VA")=CNT("VA")+1 "RTN","EDPRPT4",25,0) .. S MIN("VA")=MIN("VA")+ELAPSE "RTN","EDPRPT4",26,0) .. S MIN("VADEC")=MIN("VADEC")+ADMDEC "RTN","EDPRPT4",27,0) .. S MIN("VADEL")=MIN("VADEL")+ADMDEL "RTN","EDPRPT4",28,0) .. S:ADMDEL>359 CNT("VADEL6")=CNT("VADEL6")+1 "RTN","EDPRPT4",29,0) D3 . ; elapsed visit time >=6 hrs "RTN","EDPRPT4",30,0) . S:ELAPSE>1380 CNT("23+")=CNT("23+")+1 "RTN","EDPRPT4",31,0) . I ELAPSE>359 D "RTN","EDPRPT4",32,0) .. S CNT("6+")=CNT("6+")+1 "RTN","EDPRPT4",33,0) .. S:DISP="VA" CNT("VA6")=CNT("VA6")+1 "RTN","EDPRPT4",34,0) . S:DEL CNT(DEL,ACU)=+$G(CNT(DEL,ACU))+1,CNT(DEL)=+$G(CNT(DEL))+1 "RTN","EDPRPT4",35,0) ; "RTN","EDPRPT4",36,0) D4 ; return counts and averages as CSV "RTN","EDPRPT4",37,0) I $G(CSV) D Q "RTN","EDPRPT4",38,0) . N TAB S TAB=$C(9) "RTN","EDPRPT4",39,0) . S X=TAB_TAB_"Delay Reason"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total" "RTN","EDPRPT4",40,0) . D ADD^EDPCSV(X) ;headers "RTN","EDPRPT4",41,0) . S X="Total ED Visits: "_CNT_TAB "RTN","EDPRPT4",42,0) . S X=X_"Average ED Visit Time: "_$S(CNT:$$ETIME^EDPRPT(MIN\CNT),1:0) "RTN","EDPRPT4",43,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",44,0) . S X="Total Visits Over 6 Hours: "_CNT("6+")_TAB "RTN","EDPRPT4",45,0) . S X=X_"Total Visits Over 23 Hours: "_CNT("23+") "RTN","EDPRPT4",46,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",47,0) . S Y=CNT-CNT("VA"),X="Total Visits Not VA Admitted: "_Y_TAB "RTN","EDPRPT4",48,0) . S X=X_"Average Visit Time for Not VA Admitted: "_$S(Y:$$ETIME^EDPRPT((MIN-MIN("VA")\Y)),1:0) "RTN","EDPRPT4",49,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",50,0) . S Y=CNT("VA"),X="Total VA Admits: "_Y_TAB "RTN","EDPRPT4",51,0) . S X=X_"Total VA Admit Delay Over 6 Hours: "_CNT("VADEL6") "RTN","EDPRPT4",52,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",53,0) . S X="Average VA Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEC")\Y),1:0)_TAB "RTN","EDPRPT4",54,0) . S X=X_"Average VA Admit Delay Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEL")\Y),1:0) "RTN","EDPRPT4",55,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",56,0) . S Y=CNT("DEC"),X="Average All Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("DEC")\Y),1:0) "RTN","EDPRPT4",57,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",58,0) . S X=TAB_TAB_"Delay Chart" D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",59,0) . S X=TAB_TAB_"Acuity"_TAB_"None"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total" "RTN","EDPRPT4",60,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",61,0) . S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D "RTN","EDPRPT4",62,0) .. S X=TAB_TAB_$$ENAME(DEL) "RTN","EDPRPT4",63,0) .. F I="none","one","two","three","four","five" S X=X_TAB_+$G(CNT(DEL,I)) "RTN","EDPRPT4",64,0) .. S X=X_TAB_CNT(DEL) D ADD^EDPCSV(X) "RTN","EDPRPT4",65,0) D5 ; or return counts and averages as XML "RTN","EDPRPT4",66,0) D XML^EDPX("") "RTN","EDPRPT4",67,0) S X="" "RTN","EDPRPT4",71,0) D XML^EDPX(X) "RTN","EDPRPT4",72,0) S Y=CNT-CNT("VA") "RTN","EDPRPT4",73,0) S X="" "RTN","EDPRPT4",74,0) D XML^EDPX(X) "RTN","EDPRPT4",75,0) S Y=CNT("VA"),X="" "RTN","EDPRPT4",79,0) D XML^EDPX(X) "RTN","EDPRPT4",80,0) D XML^EDPX("") "RTN","EDPRPT4",81,0) D XML^EDPX("") "RTN","EDPRPT4",82,0) S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D "RTN","EDPRPT4",83,0) . S CNT(DEL,"reason")=$$ENAME(DEL) "RTN","EDPRPT4",84,0) . S CNT(DEL,"total")=CNT(DEL) "RTN","EDPRPT4",85,0) . F I="none","one","two","three","four","five" S CNT(DEL,I)=+$G(CNT(DEL,I)) "RTN","EDPRPT4",86,0) . K ROW M ROW=CNT(DEL) "RTN","EDPRPT4",87,0) . S X=$$XMLA^EDPX("delay",.ROW) D XML^EDPX(X) "RTN","EDPRPT4",88,0) D XML^EDPX("") "RTN","EDPRPT4",89,0) Q "RTN","EDPRPT4",90,0) ; "RTN","EDPRPT4",91,0) INIT ; Initialize counters and sums "RTN","EDPRPT4",92,0) N I S (CNT,MIN)=0 "RTN","EDPRPT4",93,0) F I="DEC","VA","VA6","VADEL6","6+","23+" S CNT(I)=0 "RTN","EDPRPT4",94,0) F I="DEC","VA","VADEC","VADEL" S MIN(I)=0 "RTN","EDPRPT4",95,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT4",96,0) Q "RTN","EDPRPT4",97,0) ; "RTN","EDPRPT4",98,0) ECODE(IEN) ; Return external value for an Acuity code "RTN","EDPRPT4",99,0) N X,Y S X=$P($G(^EDPB(233.1,+IEN,0)),U,3) ;code "RTN","EDPRPT4",100,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",101,0) Q Y "RTN","EDPRPT4",102,0) ; "RTN","EDPRPT4",103,0) ENAME(IEN) ; Return external value for a Code "RTN","EDPRPT4",104,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT4",105,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 6 "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 6 "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 6 "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^B15360284 "RTN","EDPRPT8",1,0) EDPRPT8 ;SLC/MKB - Acuity Report "RTN","EDPRPT8",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 6 "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:DISP="VA" ;VA admissions "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 6 "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 6 "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))_"" "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 6 "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,.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") 3070720 "^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") 3070719 "^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**