KIDS Distribution saved on Jan 30, 2008@13:25:26 EDP Server Build 1.0 T2 **KIDS**:EDP SERVER 1.0^ **INSTALL NAME** EDP SERVER 1.0 "BLD",6766,0) EDP SERVER 1.0^^0^3080130^n "BLD",6766,1,0) ^^4^4^3080130^ "BLD",6766,1,1,0) This installs the EDIS (Emergency Department Information System) "BLD",6766,1,2,0) Tracking application on a server. The application is designed so that "BLD",6766,1,3,0) one server can service any number of sites. There is a corresponding "BLD",6766,1,4,0) KIDS build that is installed at the facility. "BLD",6766,4,0) ^9.64PA^233.2^7 "BLD",6766,4,230,0) 230 "BLD",6766,4,230,222) y^y^f^^^^n "BLD",6766,4,230.1,0) 230.1 "BLD",6766,4,230.1,222) y^y^f^^^^n "BLD",6766,4,231.7,0) 231.7 "BLD",6766,4,231.7,222) y^y^f^^^^n "BLD",6766,4,231.8,0) 231.8 "BLD",6766,4,231.8,222) y^y^f^^^^n "BLD",6766,4,231.9,0) 231.9 "BLD",6766,4,231.9,222) y^y^f^^^^n "BLD",6766,4,233.1,0) 233.1 "BLD",6766,4,233.1,222) y^y^f^^y^^y^o^n "BLD",6766,4,233.1,224) I $E(^(0),1,4)="edp." "BLD",6766,4,233.2,0) 233.2 "BLD",6766,4,233.2,222) y^y^f^^y^^y^o^n "BLD",6766,4,233.2,224) I $E(^(0),1,4)="edp." "BLD",6766,4,"B",230,230) "BLD",6766,4,"B",230.1,230.1) "BLD",6766,4,"B",231.7,231.7) "BLD",6766,4,"B",231.8,231.8) "BLD",6766,4,"B",231.9,231.9) "BLD",6766,4,"B",233.1,233.1) "BLD",6766,4,"B",233.2,233.2) "BLD",6766,6.3) 7 "BLD",6766,"INIT") EDPYSRV "BLD",6766,"KRN",0) ^9.67PA^8989.52^19 "BLD",6766,"KRN",.4,0) .4 "BLD",6766,"KRN",.401,0) .401 "BLD",6766,"KRN",.402,0) .402 "BLD",6766,"KRN",.403,0) .403 "BLD",6766,"KRN",.5,0) .5 "BLD",6766,"KRN",.84,0) .84 "BLD",6766,"KRN",3.6,0) 3.6 "BLD",6766,"KRN",3.8,0) 3.8 "BLD",6766,"KRN",9.2,0) 9.2 "BLD",6766,"KRN",9.8,0) 9.8 "BLD",6766,"KRN",9.8,"NM",0) ^9.68A^46^35 "BLD",6766,"KRN",9.8,"NM",1,0) EDPBCF^^0^B6377962 "BLD",6766,"KRN",9.8,"NM",2,0) EDPBCM^^0^B11802573 "BLD",6766,"KRN",9.8,"NM",3,0) EDPBPM^^0^B2766869 "BLD",6766,"KRN",9.8,"NM",4,0) EDPBRM^^0^B8445684 "BLD",6766,"KRN",9.8,"NM",5,0) EDPBRS^^0^B17301676 "BLD",6766,"KRN",9.8,"NM",6,0) EDPBSL^^0^B10687935 "BLD",6766,"KRN",9.8,"NM",7,0) EDPBST^^0^B5671603 "BLD",6766,"KRN",9.8,"NM",8,0) EDPCSV^^0^B1174381 "BLD",6766,"KRN",9.8,"NM",9,0) EDPCTRL^^0^B34504423 "BLD",6766,"KRN",9.8,"NM",10,0) EDPDD^^0^B107293 "BLD",6766,"KRN",9.8,"NM",19,0) EDPLOG^^0^B16849923 "BLD",6766,"KRN",9.8,"NM",20,0) EDPLOG1^^0^B2757150 "BLD",6766,"KRN",9.8,"NM",21,0) EDPLOGA^^0^B7949056 "BLD",6766,"KRN",9.8,"NM",22,0) EDPLOGH^^0^B269228 "BLD",6766,"KRN",9.8,"NM",23,0) EDPMAIL^^0^B8916423 "BLD",6766,"KRN",9.8,"NM",24,0) EDPQAR^^0^B1525958 "BLD",6766,"KRN",9.8,"NM",25,0) EDPQDB^^0^B23470314 "BLD",6766,"KRN",9.8,"NM",26,0) EDPQDBS^^0^B2926745 "BLD",6766,"KRN",9.8,"NM",27,0) EDPQLE^^0^B11635607 "BLD",6766,"KRN",9.8,"NM",28,0) EDPQLE1^^0^B4294300 "BLD",6766,"KRN",9.8,"NM",29,0) EDPQLP^^0^B5675430 "BLD",6766,"KRN",9.8,"NM",30,0) EDPRPT^^0^B8892171 "BLD",6766,"KRN",9.8,"NM",31,0) EDPRPT1^^0^B33830475 "BLD",6766,"KRN",9.8,"NM",32,0) EDPRPT10^^0^B19054284 "BLD",6766,"KRN",9.8,"NM",33,0) EDPRPT11^^0^B8284389 "BLD",6766,"KRN",9.8,"NM",34,0) EDPRPT2^^0^B16939211 "BLD",6766,"KRN",9.8,"NM",35,0) EDPRPT3^^0^B6932750 "BLD",6766,"KRN",9.8,"NM",36,0) EDPRPT4^^0^B21986629 "BLD",6766,"KRN",9.8,"NM",37,0) EDPRPT5^^0^B33876185 "BLD",6766,"KRN",9.8,"NM",38,0) EDPRPT6^^0^B9535777 "BLD",6766,"KRN",9.8,"NM",39,0) EDPRPT7^^0^B21032834 "BLD",6766,"KRN",9.8,"NM",40,0) EDPRPT7C^^0^B21231553 "BLD",6766,"KRN",9.8,"NM",41,0) EDPRPT8^^0^B15368168 "BLD",6766,"KRN",9.8,"NM",42,0) EDPRPT9^^0^B1592058 "BLD",6766,"KRN",9.8,"NM",46,0) EDPX^^0^B6480298 "BLD",6766,"KRN",9.8,"NM","B","EDPBCF",1) "BLD",6766,"KRN",9.8,"NM","B","EDPBCM",2) "BLD",6766,"KRN",9.8,"NM","B","EDPBPM",3) "BLD",6766,"KRN",9.8,"NM","B","EDPBRM",4) "BLD",6766,"KRN",9.8,"NM","B","EDPBRS",5) "BLD",6766,"KRN",9.8,"NM","B","EDPBSL",6) "BLD",6766,"KRN",9.8,"NM","B","EDPBST",7) "BLD",6766,"KRN",9.8,"NM","B","EDPCSV",8) "BLD",6766,"KRN",9.8,"NM","B","EDPCTRL",9) "BLD",6766,"KRN",9.8,"NM","B","EDPDD",10) "BLD",6766,"KRN",9.8,"NM","B","EDPLOG",19) "BLD",6766,"KRN",9.8,"NM","B","EDPLOG1",20) "BLD",6766,"KRN",9.8,"NM","B","EDPLOGA",21) "BLD",6766,"KRN",9.8,"NM","B","EDPLOGH",22) "BLD",6766,"KRN",9.8,"NM","B","EDPMAIL",23) "BLD",6766,"KRN",9.8,"NM","B","EDPQAR",24) "BLD",6766,"KRN",9.8,"NM","B","EDPQDB",25) "BLD",6766,"KRN",9.8,"NM","B","EDPQDBS",26) "BLD",6766,"KRN",9.8,"NM","B","EDPQLE",27) "BLD",6766,"KRN",9.8,"NM","B","EDPQLE1",28) "BLD",6766,"KRN",9.8,"NM","B","EDPQLP",29) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT",30) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT1",31) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT10",32) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT11",33) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT2",34) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT3",35) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT4",36) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT5",37) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT6",38) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT7",39) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT7C",40) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT8",41) "BLD",6766,"KRN",9.8,"NM","B","EDPRPT9",42) "BLD",6766,"KRN",9.8,"NM","B","EDPX",46) "BLD",6766,"KRN",19,0) 19 "BLD",6766,"KRN",19,"NM",0) ^9.68A^2^2 "BLD",6766,"KRN",19,"NM",1,0) EDPS TRACKING CONTEXT^^0 "BLD",6766,"KRN",19,"NM",2,0) EDPSERVER^^0 "BLD",6766,"KRN",19,"NM","B","EDPS TRACKING CONTEXT",1) "BLD",6766,"KRN",19,"NM","B","EDPSERVER",2) "BLD",6766,"KRN",19.1,0) 19.1 "BLD",6766,"KRN",101,0) 101 "BLD",6766,"KRN",101,"NM",0) ^9.68A^^ "BLD",6766,"KRN",409.61,0) 409.61 "BLD",6766,"KRN",771,0) 771 "BLD",6766,"KRN",870,0) 870 "BLD",6766,"KRN",8989.51,0) 8989.51 "BLD",6766,"KRN",8989.52,0) 8989.52 "BLD",6766,"KRN",8994,0) 8994 "BLD",6766,"KRN",8994,"NM",0) ^9.68A^1^1 "BLD",6766,"KRN",8994,"NM",1,0) EDPCTRL RPC^^0 "BLD",6766,"KRN",8994,"NM","B","EDPCTRL RPC",1) "BLD",6766,"KRN","B",.4,.4) "BLD",6766,"KRN","B",.401,.401) "BLD",6766,"KRN","B",.402,.402) "BLD",6766,"KRN","B",.403,.403) "BLD",6766,"KRN","B",.5,.5) "BLD",6766,"KRN","B",.84,.84) "BLD",6766,"KRN","B",3.6,3.6) "BLD",6766,"KRN","B",3.8,3.8) "BLD",6766,"KRN","B",9.2,9.2) "BLD",6766,"KRN","B",9.8,9.8) "BLD",6766,"KRN","B",19,19) "BLD",6766,"KRN","B",19.1,19.1) "BLD",6766,"KRN","B",101,101) "BLD",6766,"KRN","B",409.61,409.61) "BLD",6766,"KRN","B",771,771) "BLD",6766,"KRN","B",870,870) "BLD",6766,"KRN","B",8989.51,8989.51) "BLD",6766,"KRN","B",8989.52,8989.52) "BLD",6766,"KRN","B",8994,8994) "BLD",6766,"QUES",0) ^9.62^^ "BLD",6766,"REQB",0) ^9.611^^ "DATA",233.1,1,0) edp.acuity.esi1^1^1 "DATA",233.1,1,2,0) ^^1^1^3070720^ "DATA",233.1,1,2,1,0) Most critical "DATA",233.1,2,0) edp.acuity.esi2^2^2 "DATA",233.1,3,0) edp.acuity.esi3^3^3 "DATA",233.1,4,0) edp.acuity.esi4^4^4 "DATA",233.1,5,0) edp.acuity.esi5^5^5 "DATA",233.1,8,0) edp.status.admitted^Admitted - Still in ED^Admit^^A "DATA",233.1,9,0) edp.status.edobs^ED Observation^EDObs^^AO "DATA",233.1,11,0) edp.status.gone^No Longer in ED^Gone "DATA",233.1,12,0) edp.status.observation^Observation^Obs^^AO "DATA",233.1,13,0) edp.status.overflow^Overflow^Ovf "DATA",233.1,15,0) edp.delay.inptbed^Obtain Inpatient Bed^13k "DATA",233.1,16,0) edp.delay.overcrowd^Overcrowding of ED^13a "DATA",233.1,17,0) edp.delay.admiteval^Admitting Physician Evaluation^13c "DATA",233.1,18,0) edp.delay.admitorders^Admit MD Writing Admit Orders^13h "DATA",233.1,19,0) edp.delay.admitobs^Patient Admitted to Observation^OBS "DATA",233.1,20,0) edp.delay.stafflimit^ED Staff Limits^13b "DATA",233.1,21,0) edp.delay.interfacility^Interfacility Transfer^13m "DATA",233.1,22,0) edp.delay.ambulance^Obtain Ambulance Services^13n "DATA",233.1,23,0) edp.delay.imageresult^Obtain Imaging Results^13g "DATA",233.1,24,0) edp.delay.imagestudy^Obtain Imaging Studies^13f "DATA",233.1,25,0) edp.delay.pharm^Obtain Drugs/Pharmacology^13j "DATA",233.1,26,0) edp.delay.labresult^Obtain Lab Results^13e "DATA",233.1,27,0) edp.delay.labstudy^Obtain Lab Studies^13d "DATA",233.1,28,0) edp.delay.supplies^Obtain Medical Supplies^13i "DATA",233.1,29,0) edp.delay.surgery^Arrange Emergency Surgery^13l "DATA",233.1,30,0) edp.delay.home^Patient Transport Home^13p "DATA",233.1,31,0) edp.delay.transport^Patient Transport Other^13o "DATA",233.1,32,0) edp.source.ambulance^Ambulance "DATA",233.1,33,0) edp.source.walk-in^Walk-in "DATA",233.1,35,0) edp.disposition.home^Home^H "DATA",233.1,36,0) edp.disposition.admitva^Admitted to VA Ward^VA^^A "DATA",233.1,37,0) edp.disposition.left^Left Without Being Treated/Seen^L "DATA",233.1,38,0) edp.disposition.xferva^Transferred to VA Facility^O "DATA",233.1,39,0) edp.disposition.ama^AMA^AMA "DATA",233.1,40,0) edp.disposition.clinic^Sent to Urgent Care Clinic^CL "DATA",233.1,41,0) edp.disposition.deceased^Deceased^D "DATA",233.1,42,0) edp.disposition.telemetry^Admitted to Telemetry^T^^A "DATA",233.1,43,0) edp.disposition.icu^Admitted to ICU^ICU^^A "DATA",233.1,44,0) edp.disposition.nec^Sent to Nurse Eval / Drop In Clinic^NEC "DATA",233.1,45,0) edp.disposition.eloped^Eloped^E "DATA",233.1,46,0) edp.reserved.novalue^ "DATA",233.1,53,0) edp.source.clinic^Clinic "DATA",233.1,54,0) edp.source.cboc^CBOC "DATA",233.1,55,0) edp.source.nhci^NHCI "DATA",233.1,56,0) edp.source.code^Emergency Code "DATA",233.1,57,0) edp.disposition.xfernon^Transfer to non-VA Facility^NVA "DATA",233.1,58,0) edp.disposition.psych^Admitted to Psychiatry^PSY^^A "DATA",233.1,59,0) edp.delay.consult^Obtain Consultation^CSLT "DATA",233.2,1,0) edp.acuity "DATA",233.2,1,1,0) ^233.21A^5^5 "DATA",233.2,1,1,1,0) 1^1 "DATA",233.2,1,1,2,0) 2^2 "DATA",233.2,1,1,3,0) 3^3 "DATA",233.2,1,1,4,0) 4^4 "DATA",233.2,1,1,5,0) 5^5 "DATA",233.2,3,0) edp.status "DATA",233.2,3,1,0) ^233.21A^8^4 "DATA",233.2,3,1,1,0) 10^8 "DATA",233.2,3,1,2,0) 20^9 "DATA",233.2,3,1,7,0) 30^12 "DATA",233.2,3,1,8,0) 40^13 "DATA",233.2,4,0) edp.delay "DATA",233.2,4,1,0) ^233.21A^18^18 "DATA",233.2,4,1,1,0) 3^15 "DATA",233.2,4,1,2,0) 5^16 "DATA",233.2,4,1,3,0) 10^17 "DATA",233.2,4,1,4,0) 15^18 "DATA",233.2,4,1,5,0) 20^19 "DATA",233.2,4,1,6,0) 25^20 "DATA",233.2,4,1,7,0) 30^21 "DATA",233.2,4,1,8,0) 35^22 "DATA",233.2,4,1,9,0) 40^23 "DATA",233.2,4,1,10,0) 45^24 "DATA",233.2,4,1,11,0) 50^25 "DATA",233.2,4,1,12,0) 55^26 "DATA",233.2,4,1,13,0) 60^27 "DATA",233.2,4,1,14,0) 65^28 "DATA",233.2,4,1,15,0) 70^29 "DATA",233.2,4,1,16,0) 75^30 "DATA",233.2,4,1,17,0) 80^31 "DATA",233.2,4,1,18,0) 85^59 "DATA",233.2,5,0) edp.arrival "DATA",233.2,5,1,0) ^233.21A^6^6 "DATA",233.2,5,1,1,0) 10^53 "DATA",233.2,5,1,2,0) 20^54 "DATA",233.2,5,1,3,0) 30^32 "DATA",233.2,5,1,4,0) 40^33 "DATA",233.2,5,1,5,0) 50^55 "DATA",233.2,5,1,6,0) 60^56 "DATA",233.2,6,0) edp.disposition "DATA",233.2,6,1,0) ^233.21A^13^13 "DATA",233.2,6,1,1,0) 10^36 "DATA",233.2,6,1,2,0) 60^39 "DATA",233.2,6,1,3,0) 130^40 "DATA",233.2,6,1,4,0) 110^41 "DATA",233.2,6,1,5,0) 80^45 "DATA",233.2,6,1,6,0) 50^35 "DATA",233.2,6,1,7,0) 30^43 "DATA",233.2,6,1,8,0) 70^37 "DATA",233.2,6,1,9,0) 120^44 "DATA",233.2,6,1,10,0) 20^42 "DATA",233.2,6,1,11,0) 90^38 "DATA",233.2,6,1,12,0) 100^57 "DATA",233.2,6,1,13,0) 40^58 "FIA",230) ED LOG "FIA",230,0) ^EDP(230, "FIA",230,0,0) 230D "FIA",230,0,1) y^y^f^^^^n "FIA",230,0,10) "FIA",230,0,11) "FIA",230,0,"RLRO") "FIA",230,230) 0 "FIA",230,230.04) 0 "FIA",230,230.08) 0 "FIA",230.1) ED LOG HISTORY "FIA",230.1,0) ^EDP(230.1, "FIA",230.1,0,0) 230.1P "FIA",230.1,0,1) y^y^f^^^^n "FIA",230.1,0,10) "FIA",230.1,0,11) "FIA",230.1,0,"RLRO") "FIA",230.1,230.1) 0 "FIA",231.7) TRACKING STAFF "FIA",231.7,0) ^EDPB(231.7, "FIA",231.7,0,0) 231.7 "FIA",231.7,0,1) y^y^f^^^^n "FIA",231.7,0,10) "FIA",231.7,0,11) "FIA",231.7,0,"RLRO") "FIA",231.7,231.7) 0 "FIA",231.8) TRACKING ROOM-BED "FIA",231.8,0) ^EDPB(231.8, "FIA",231.8,0,0) 231.8 "FIA",231.8,0,1) y^y^f^^^^n "FIA",231.8,0,10) "FIA",231.8,0,11) "FIA",231.8,0,"RLRO") "FIA",231.8,231.8) 0 "FIA",231.9) TRACKING AREA "FIA",231.9,0) ^EDPB(231.9, "FIA",231.9,0,0) 231.9 "FIA",231.9,0,1) y^y^f^^^^n "FIA",231.9,0,10) "FIA",231.9,0,11) "FIA",231.9,0,"RLRO") "FIA",231.9,231.9) 0 "FIA",231.9,231.92) 0 "FIA",231.9,231.93) 0 "FIA",233.1) TRACKING CODE "FIA",233.1,0) ^EDPB(233.1, "FIA",233.1,0,0) 233.1 "FIA",233.1,0,1) y^y^f^^y^^y^o^n "FIA",233.1,0,10) "FIA",233.1,0,11) I $E(^(0),1,4)="edp." "FIA",233.1,0,"RLRO") "FIA",233.1,233.1) 0 "FIA",233.1,233.12) 0 "FIA",233.2) TRACKING CODE SET "FIA",233.2,0) ^EDPB(233.2, "FIA",233.2,0,0) 233.2 "FIA",233.2,0,1) y^y^f^^y^^y^o^n "FIA",233.2,0,10) "FIA",233.2,0,11) I $E(^(0),1,4)="edp." "FIA",233.2,0,"RLRO") "FIA",233.2,233.2) 0 "FIA",233.2,233.21) 0 "FRV1",233.2,"1,1,1,0",2) edp.acuity.esi1 "FRV1",233.2,"1,1,1,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"1,1,2,0",2) edp.acuity.esi2 "FRV1",233.2,"1,1,2,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"1,1,3,0",2) edp.acuity.esi3 "FRV1",233.2,"1,1,3,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"1,1,4,0",2) edp.acuity.esi4 "FRV1",233.2,"1,1,4,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"1,1,5,0",2) edp.acuity.esi5 "FRV1",233.2,"1,1,5,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"3,1,1,0",2) edp.status.admitted "FRV1",233.2,"3,1,1,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"3,1,2,0",2) edp.status.edobs "FRV1",233.2,"3,1,2,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"3,1,7,0",2) edp.status.observation "FRV1",233.2,"3,1,7,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"3,1,8,0",2) edp.status.overflow "FRV1",233.2,"3,1,8,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,1,0",2) edp.delay.inptbed "FRV1",233.2,"4,1,1,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,10,0",2) edp.delay.imagestudy "FRV1",233.2,"4,1,10,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,11,0",2) edp.delay.pharm "FRV1",233.2,"4,1,11,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,12,0",2) edp.delay.labresult "FRV1",233.2,"4,1,12,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,13,0",2) edp.delay.labstudy "FRV1",233.2,"4,1,13,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,14,0",2) edp.delay.supplies "FRV1",233.2,"4,1,14,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,15,0",2) edp.delay.surgery "FRV1",233.2,"4,1,15,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,16,0",2) edp.delay.home "FRV1",233.2,"4,1,16,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,17,0",2) edp.delay.transport "FRV1",233.2,"4,1,17,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,18,0",2) edp.delay.consult "FRV1",233.2,"4,1,18,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,2,0",2) edp.delay.overcrowd "FRV1",233.2,"4,1,2,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,3,0",2) edp.delay.admiteval "FRV1",233.2,"4,1,3,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,4,0",2) edp.delay.admitorders "FRV1",233.2,"4,1,4,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,5,0",2) edp.delay.admitobs "FRV1",233.2,"4,1,5,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,6,0",2) edp.delay.stafflimit "FRV1",233.2,"4,1,6,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,7,0",2) edp.delay.interfacility "FRV1",233.2,"4,1,7,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,8,0",2) edp.delay.ambulance "FRV1",233.2,"4,1,8,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"4,1,9,0",2) edp.delay.imageresult "FRV1",233.2,"4,1,9,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"5,1,1,0",2) edp.source.clinic "FRV1",233.2,"5,1,1,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"5,1,2,0",2) edp.source.cboc "FRV1",233.2,"5,1,2,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"5,1,3,0",2) edp.source.ambulance "FRV1",233.2,"5,1,3,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"5,1,4,0",2) edp.source.walk-in "FRV1",233.2,"5,1,4,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"5,1,5,0",2) edp.source.nhci "FRV1",233.2,"5,1,5,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"5,1,6,0",2) edp.source.code "FRV1",233.2,"5,1,6,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,1,0",2) edp.disposition.admitva "FRV1",233.2,"6,1,1,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,10,0",2) edp.disposition.telemetry "FRV1",233.2,"6,1,10,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,11,0",2) edp.disposition.xferva "FRV1",233.2,"6,1,11,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,12,0",2) edp.disposition.xfernon "FRV1",233.2,"6,1,12,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,13,0",2) edp.disposition.psych "FRV1",233.2,"6,1,13,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,2,0",2) edp.disposition.ama "FRV1",233.2,"6,1,2,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,3,0",2) edp.disposition.clinic "FRV1",233.2,"6,1,3,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,4,0",2) edp.disposition.deceased "FRV1",233.2,"6,1,4,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,5,0",2) edp.disposition.eloped "FRV1",233.2,"6,1,5,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,6,0",2) edp.disposition.home "FRV1",233.2,"6,1,6,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,7,0",2) edp.disposition.icu "FRV1",233.2,"6,1,7,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,8,0",2) edp.disposition.left "FRV1",233.2,"6,1,8,0",2,"F") ;EDPB(233.1, "FRV1",233.2,"6,1,9,0",2) edp.disposition.nec "FRV1",233.2,"6,1,9,0",2,"F") ;EDPB(233.1, "INIT") EDPYSRV "IX",230,230,"AC",0) 230^AC^SITE,AREA,IEN when entry is active (not closed)^R^^R^IR^I^230^^^^^S "IX",230,230,"AC",1) S ^EDP(230,"AC",$E(X(1),1,30),$E(X(2),1,30),DA)="" "IX",230,230,"AC",1.4) S X='X2(3) "IX",230,230,"AC",2) K ^EDP(230,"AC",$E(X(1),1,30),$E(X(2),1,30),DA) "IX",230,230,"AC",2.5) K ^EDP(230,"AC") "IX",230,230,"AC",11.1,0) ^.114IA^3^3 "IX",230,230,"AC",11.1,1,0) 1^F^230^.02^30^1^F "IX",230,230,"AC",11.1,1,3) "IX",230,230,"AC",11.1,2,0) 2^F^230^.03^30^2^F "IX",230,230,"AC",11.1,2,3) "IX",230,230,"AC",11.1,3,0) 3^F^230^.07^2^^F "IX",230,230,"AC",11.1,3,3) "IX",230,230,"ADUP1",0) 230^ADUP1^SITE,AREA,LASTNAME,IEN^MU^^R^IR^I^230^^^^^S "IX",230,230,"ADUP1",1) S ^EDP(230,"ADUP",X(1),X(2),X(3),DA)="" "IX",230,230,"ADUP1",1.4) S X='X2(4) "IX",230,230,"ADUP1",2) K ^EDP(230,"ADUP",X(1),X(2),X(3),DA) "IX",230,230,"ADUP1",2.5) "IX",230,230,"ADUP1",11.1,0) ^.114IA^4^4 "IX",230,230,"ADUP1",11.1,1,0) 1^F^230^.02^^1^F "IX",230,230,"ADUP1",11.1,2,0) 2^F^230^.03^^2^F "IX",230,230,"ADUP1",11.1,3,0) 3^F^230^.04^^3^F "IX",230,230,"ADUP1",11.1,3,2) S X=$P(X,",") "IX",230,230,"ADUP1",11.1,4,0) 4^F^230^.07^^^F "IX",230,230,"ADUP2",0) 230^ADUP2^SITE,AREA,LAST4,IEN for active patients^MU^^R^IR^I^230^^^^^S "IX",230,230,"ADUP2",1) S ^EDP(230,"ADUP",X(1),X(2),X(3),DA)="" "IX",230,230,"ADUP2",1.4) S X='X2(4) "IX",230,230,"ADUP2",2) K ^EDP(230,"ADUP",X(1),X(2),X(3),DA) "IX",230,230,"ADUP2",2.5) "IX",230,230,"ADUP2",11.1,0) ^.114IA^4^4 "IX",230,230,"ADUP2",11.1,1,0) 1^F^230^.02^^1^F "IX",230,230,"ADUP2",11.1,1,3) "IX",230,230,"ADUP2",11.1,2,0) 2^F^230^.03^^2^F "IX",230,230,"ADUP2",11.1,2,3) "IX",230,230,"ADUP2",11.1,3,0) 3^F^230^.11^^3^F "IX",230,230,"ADUP2",11.1,3,3) "IX",230,230,"ADUP2",11.1,4,0) 4^F^230^.07^^^F "IX",230,230,"ADUP2",11.1,4,3) "IX",230,230,"AL",0) 230^AL^SITE, AREA, LOC, IEN when entry is active^R^^R^IR^I^230^^^^^S "IX",230,230,"AL",1) S ^EDP(230,"AL",X(1),X(2),X(3),DA)="" "IX",230,230,"AL",1.4) S X='X2(4) "IX",230,230,"AL",2) K ^EDP(230,"AL",X(1),X(2),X(3),DA) "IX",230,230,"AL",2.5) K ^EDP(230,"AL") "IX",230,230,"AL",11.1,0) ^.114IA^4^4 "IX",230,230,"AL",11.1,1,0) 1^F^230^.02^^1^F "IX",230,230,"AL",11.1,1,3) "IX",230,230,"AL",11.1,2,0) 2^F^230^.03^^2^F "IX",230,230,"AL",11.1,2,3) "IX",230,230,"AL",11.1,3,0) 3^F^230^3.4^^3^F "IX",230,230,"AL",11.1,3,3) "IX",230,230,"AL",11.1,4,0) 4^F^230^.07^^^F "IX",230,230,"AL",11.1,4,3) "IX",230,230,"AN",0) 230^AN^SITE,AREA,PTNAME,IEN for active patients^R^^R^IR^I^230^^^^^S "IX",230,230,"AN",1) S ^EDP(230,"AN",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,50),DA)="" "IX",230,230,"AN",1.4) S X='X2(4) "IX",230,230,"AN",2) K ^EDP(230,"AN",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,50),DA) "IX",230,230,"AN",2.5) K ^EDP(230,"AN") "IX",230,230,"AN",11.1,0) ^.114IA^4^4 "IX",230,230,"AN",11.1,1,0) 1^F^230^.02^30^1^F "IX",230,230,"AN",11.1,1,3) "IX",230,230,"AN",11.1,2,0) 2^F^230^.03^30^2^F "IX",230,230,"AN",11.1,2,3) "IX",230,230,"AN",11.1,3,0) 3^F^230^.04^50^3^F "IX",230,230,"AN",11.1,3,3) "IX",230,230,"AN",11.1,4,0) 4^F^230^.07^2^^F "IX",230,230,"AN",11.1,4,3) "IX",230,230,"AP",0) 230^AP^SITE,DFN,IEN for active patients at site (not closed)^R^^R^IR^I^230^^^^^S "IX",230,230,"AP",1) S ^EDP(230,"AP",X(1),X(2),DA)="" "IX",230,230,"AP",1.4) S X='X2(4) "IX",230,230,"AP",2) K ^EDP(230,"AP",X(1),X(2),DA) "IX",230,230,"AP",2.5) K ^EDP(230,"AP") "IX",230,230,"AP",11.1,0) ^.114IA^4^3 "IX",230,230,"AP",11.1,1,0) 1^F^230^.02^^1^F "IX",230,230,"AP",11.1,1,3) "IX",230,230,"AP",11.1,3,0) 2^F^230^.06^^2^F "IX",230,230,"AP",11.1,3,3) "IX",230,230,"AP",11.1,4,0) 4^F^230^.07^^^F "IX",230,230,"AP",11.1,4,3) "IX",230,230,"AS",0) 230^AS^SITE,AREA,SSN,IEN for active patients^R^^R^IR^I^230^^^^^S "IX",230,230,"AS",1) S ^EDP(230,"AS",X(1),X(2),X(3),DA)="" "IX",230,230,"AS",1.4) S X='X2(4) "IX",230,230,"AS",2) K ^EDP(230,"AS",X(1),X(2),X(3),DA) "IX",230,230,"AS",2.5) K ^EDP(230,"AS") "IX",230,230,"AS",11.1,0) ^.114IA^4^4 "IX",230,230,"AS",11.1,1,0) 1^F^230^.02^^1^F "IX",230,230,"AS",11.1,1,3) "IX",230,230,"AS",11.1,2,0) 2^F^230^.03^^2^F "IX",230,230,"AS",11.1,2,3) "IX",230,230,"AS",11.1,3,0) 3^F^230^.05^^3^F "IX",230,230,"AS",11.1,3,3) "IX",230,230,"AS",11.1,4,0) 4^F^230^.07^^^F "IX",230,230,"AS",11.1,4,3) "IX",230,230,"ATI",0) 230^ATI^SITE,TIME IN for reports^MU^^R^IR^I^230^^^^^S "IX",230,230,"ATI",1) S ^EDP(230,"ATI",X(1),+X(2),DA)="" "IX",230,230,"ATI",2) K ^EDP(230,"ATI",X(1),+X(2),DA) "IX",230,230,"ATI",2.5) K ^EDP(230,"ATI") "IX",230,230,"ATI",11.1,0) ^.114IA^2^2 "IX",230,230,"ATI",11.1,1,0) 1^F^230^.02^^1^F "IX",230,230,"ATI",11.1,2,0) 2^F^230^.08^^2^F "IX",230,230,"ATO",0) 230^ATO^SITE,TIME OUT for reports^R^^R^IR^I^230^^^^^S "IX",230,230,"ATO",1) S ^EDP(230,"ATO",X(1),X(2),DA)="" "IX",230,230,"ATO",2) K ^EDP(230,"ATO",X(1),X(2),DA) "IX",230,230,"ATO",2.5) K ^EDP(230,"ATO") "IX",230,230,"ATO",11.1,0) ^.114IA^2^2 "IX",230,230,"ATO",11.1,1,0) 1^F^230^.02^^1^F "IX",230,230,"ATO",11.1,1,3) "IX",230,230,"ATO",11.1,2,0) 2^F^230^.09^^2^F "IX",230,230,"ATO",11.1,2,3) "IX",230,230,"PN",0) 230^PN^SITE,AREA,PTNAME,IEN for all patients^R^^R^IR^I^230^^^^^LS "IX",230,230,"PN",1) S ^EDP(230,"PN",X(1),X(2),$E(X(3),1,40),DA)="" "IX",230,230,"PN",2) K ^EDP(230,"PN",X(1),X(2),$E(X(3),1,40),DA) "IX",230,230,"PN",2.5) K ^EDP(230,"PN") "IX",230,230,"PN",11.1,0) ^.114IA^3^3 "IX",230,230,"PN",11.1,1,0) 1^F^230^.02^^1^F "IX",230,230,"PN",11.1,1,3) "IX",230,230,"PN",11.1,2,0) 2^F^230^.03^^2^F "IX",230,230,"PN",11.1,2,3) "IX",230,230,"PN",11.1,3,0) 3^F^230^.04^40^3^F "IX",230,230,"PN",11.1,3,3) "IX",230.1,230.1,"ADF",0) 230.1^ADF^Log History by time (LOG, TIME, IEN)^R^^R^IR^I^230.1^^^^^S "IX",230.1,230.1,"ADF",1) S ^EDP(230.1,"ADF",X(1),X(2),DA)="" "IX",230.1,230.1,"ADF",2) K ^EDP(230.1,"ADF",X(1),X(2),DA) "IX",230.1,230.1,"ADF",2.5) K ^EDP(230.1,"ADF") "IX",230.1,230.1,"ADF",11.1,0) ^.114IA^2^2 "IX",230.1,230.1,"ADF",11.1,1,0) 1^F^230.1^.01^^1^F "IX",230.1,230.1,"ADF",11.1,1,3) "IX",230.1,230.1,"ADF",11.1,2,0) 2^F^230.1^.02^^2^F "IX",230.1,230.1,"ADF",11.1,2,3) "IX",230.1,230.1,"ADR",0) 230.1^ADR^Log History by inverse time (LOG, INVTIME, IEN)^R^^R^IR^I^230.1^^^^^S "IX",230.1,230.1,"ADR",1) S ^EDP(230.1,"ADR",X(1),X(2),DA)="" "IX",230.1,230.1,"ADR",2) K ^EDP(230.1,"ADR",X(1),X(2),DA) "IX",230.1,230.1,"ADR",2.5) K ^EDP(230.1,"ADR") "IX",230.1,230.1,"ADR",11.1,0) ^.114IA^2^2 "IX",230.1,230.1,"ADR",11.1,1,0) 1^F^230.1^.01^^1^F "IX",230.1,230.1,"ADR",11.1,1,3) "IX",230.1,230.1,"ADR",11.1,2,0) 2^F^230.1^.02^^2^F "IX",230.1,230.1,"ADR",11.1,2,2) S X=9999999-X "IX",230.1,230.1,"ADR",11.1,2,3) "IX",230.1,230.1,"C",0) 230.1^C^Indexes changes for a log entry by inverse time.^R^^R^IR^I^230.1^^^^^LS "IX",230.1,230.1,"C",1) S ^EDP(230.1,"C",X(1),X(2),DA)="" "IX",230.1,230.1,"C",2) K ^EDP(230.1,"C",X(1),X(2),DA) "IX",230.1,230.1,"C",2.5) K ^EDP(230.1,"C") "IX",230.1,230.1,"C",11.1,0) ^.114IA^2^2 "IX",230.1,230.1,"C",11.1,1,0) 1^F^230.1^.01^^1^F "IX",230.1,230.1,"C",11.1,1,3) "IX",230.1,230.1,"C",11.1,2,0) 2^F^230.1^.02^^2^F "IX",230.1,230.1,"C",11.1,2,2) S X=9999999-X "IX",230.1,230.1,"C",11.1,2,3) "IX",231.7,231.7,"AC",0) 231.7^AC^SITE,AREA,ROLE,IEN if the entry is active^R^^R^IR^I^231.7^^^^^S "IX",231.7,231.7,"AC",1) S ^EDPB(231.7,"AC",X(1),X(2),X(3),DA)="" "IX",231.7,231.7,"AC",1.4) S X='X2(4) "IX",231.7,231.7,"AC",2) K ^EDPB(231.7,"AC",X(1),X(2),X(3),DA) "IX",231.7,231.7,"AC",2.5) K ^EDPB(231.7,"AC") "IX",231.7,231.7,"AC",11.1,0) ^.114IA^4^4 "IX",231.7,231.7,"AC",11.1,1,0) 1^F^231.7^.02^^1^F "IX",231.7,231.7,"AC",11.1,1,3) "IX",231.7,231.7,"AC",11.1,2,0) 2^F^231.7^.03^^2^F "IX",231.7,231.7,"AC",11.1,2,3) "IX",231.7,231.7,"AC",11.1,3,0) 3^F^231.7^.06^^3^F "IX",231.7,231.7,"AC",11.1,3,3) "IX",231.7,231.7,"AC",11.1,4,0) 4^F^231.7^.04^^^F "IX",231.7,231.7,"AC",11.1,4,3) "IX",231.7,231.7,"AD",0) 231.7^AD^SITE,AREA,DUZ,IEN for all entries^R^^R^IR^I^231.7^^^^^S "IX",231.7,231.7,"AD",1) S ^EDPB(231.7,"AD",X(1),X(2),X(3),DA)="" "IX",231.7,231.7,"AD",2) K ^EDPB(231.7,"AD",X(1),X(2),X(3),DA) "IX",231.7,231.7,"AD",2.5) K ^EDPB(231.7,"AD") "IX",231.7,231.7,"AD",11.1,0) ^.114IA^3^3 "IX",231.7,231.7,"AD",11.1,1,0) 1^F^231.7^.02^^1^F "IX",231.7,231.7,"AD",11.1,1,3) "IX",231.7,231.7,"AD",11.1,2,0) 2^F^231.7^.03^^2^F "IX",231.7,231.7,"AD",11.1,2,3) "IX",231.7,231.7,"AD",11.1,3,0) 3^F^231.7^.05^^3^F "IX",231.7,231.7,"AD",11.1,3,3) "IX",231.8,231.8,"AC",0) 231.8^AC^SITE,AREA,DISPLAYNAME,IEN^R^^R^IR^I^231.8^^^^^S "IX",231.8,231.8,"AC",1) S ^EDPB(231.8,"AC",X(1),X(2),X(3),DA)="" "IX",231.8,231.8,"AC",2) K ^EDPB(231.8,"AC",X(1),X(2),X(3),DA) "IX",231.8,231.8,"AC",2.5) K ^EDPB(231.8,"AC") "IX",231.8,231.8,"AC",11.1,0) ^.114IA^3^3 "IX",231.8,231.8,"AC",11.1,1,0) 1^F^231.8^.02^^1^F "IX",231.8,231.8,"AC",11.1,1,3) "IX",231.8,231.8,"AC",11.1,2,0) 2^F^231.8^.03^^2^F "IX",231.8,231.8,"AC",11.1,2,3) "IX",231.8,231.8,"AC",11.1,3,0) 3^F^231.8^.06^^3^F "IX",231.8,231.8,"AC",11.1,3,3) "IX",231.8,231.8,"C",0) 231.8^C^Index by site and area.^R^^R^IR^I^231.8^^^^^LS "IX",231.8,231.8,"C",1) S ^EDPB(231.8,"C",X(1),X(2),DA)="" "IX",231.8,231.8,"C",2) K ^EDPB(231.8,"C",X(1),X(2),DA) "IX",231.8,231.8,"C",2.5) K ^EDPB(231.8,"C") "IX",231.8,231.8,"C",11.1,0) ^.114IA^2^2 "IX",231.8,231.8,"C",11.1,1,0) 1^F^231.8^.02^^1^F "IX",231.8,231.8,"C",11.1,1,3) "IX",231.8,231.8,"C",11.1,2,0) 2^F^231.8^.03^^2^F "IX",231.8,231.8,"C",11.1,2,3) "IX",233.1,233.1,"AB",0) 233.1^AB^Allows finding items by type and abbreviation^R^^R^IR^I^233.1^^^^^S "IX",233.1,233.1,"AB",1) S ^EDPB(233.1,"AB",$E(X(1),1,30),$E(X(2),1,30),DA)="" "IX",233.1,233.1,"AB",2) K ^EDPB(233.1,"AB",$E(X(1),1,30),$E(X(2),1,30),DA) "IX",233.1,233.1,"AB",2.5) K ^EDPB(233.1,"AB") "IX",233.1,233.1,"AB",11.1,0) ^.114IA^2^2 "IX",233.1,233.1,"AB",11.1,1,0) 1^F^233.1^.01^30^1^F "IX",233.1,233.1,"AB",11.1,1,2) S X=$P(X,".",2) "IX",233.1,233.1,"AB",11.1,1,3) "IX",233.1,233.1,"AB",11.1,2,0) 2^F^233.1^.03^30^2^F "IX",233.1,233.1,"AB",11.1,2,2) S X=$$UP^XLFSTR(X) "IX",233.1,233.1,"AB",11.1,2,3) "IX",233.1,233.1,"AC",0) 233.1^AC^Allows finding items by type and display name^R^^R^IR^I^233.1^^^^^S "IX",233.1,233.1,"AC",1) S ^EDPB(233.1,"AC",$E(X(1),1,30),$E(X(2),1,60),DA)="" "IX",233.1,233.1,"AC",2) K ^EDPB(233.1,"AC",$E(X(1),1,30),$E(X(2),1,60),DA) "IX",233.1,233.1,"AC",2.5) K ^EDPB(233.1,"AC") "IX",233.1,233.1,"AC",11.1,0) ^.114IA^2^2 "IX",233.1,233.1,"AC",11.1,1,0) 1^F^233.1^.01^30^1^F "IX",233.1,233.1,"AC",11.1,1,2) S X=$P(X,".",2) "IX",233.1,233.1,"AC",11.1,1,3) "IX",233.1,233.1,"AC",11.1,2,0) 2^F^233.1^.02^60^2^F "IX",233.1,233.1,"AC",11.1,2,2) S X=$$UP^XLFSTR(X) "IX",233.1,233.1,"AC",11.1,2,3) "KRN",19,13508,-1) 0^1 "KRN",19,13508,0) EDPS TRACKING CONTEXT^ED Tracking Context -- Server^^B^^^^^^^^ "KRN",19,13508,"RPC",0) ^19.05P^1^1 "KRN",19,13508,"RPC",1,0) EDPCTRL RPC "KRN",19,13508,"U") ED TRACKING CONTEXT -- SERVER "KRN",19,13509,-1) 0^2 "KRN",19,13509,0) EDPSERVER^Process incoming scheduling events from MailMan^^S^^^^^^^^EMERGENCY DEPARTMENT "KRN",19,13509,25) EDPMAIL "KRN",19,13509,220) ^R^^N^Y^N "KRN",19,13509,"U") PROCESS INCOMING SCHEDULING EV "KRN",8994,2527,-1) 0^1 "KRN",8994,2527,0) EDPCTRL RPC^RPC^EDPCTRL^2^R^^^^1^^1 "KRN",8994,2527,2,0) ^8994.02A^1^1 "KRN",8994,2527,2,1,0) REQ^2^^1^1 "KRN",8994,2527,2,"B","REQ",1) "KRN",8994,2527,2,"PARAMSEQ",1,1) "MBREQ") 0 "ORD",16,8994) 8994;16;1;;;;;;;RPCDEL^XPDIA1 "ORD",16,8994,0) REMOTE PROCEDURE "ORD",18,19) 19;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA "ORD",18,19,0) OPTION "PGL",233.1,0,4,.04) NATIONAL CODE^P233.1'^EDPB(233.1,^0;4^Q "PGL",233.21,0,2,.02) CODE^P233.1'^EDPB(233.1,^0;2^Q "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") YES "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") YES "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") YES "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 36 "RTN","EDPBCF") 0^1^B6377962 "RTN","EDPBCF",1,0) EDPBCF ;SLC/KCM - Display Board Configuration "RTN","EDPBCF",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPBCF",3,0) ; "RTN","EDPBCF",4,0) LOADBRD(AREA) ; Load Board Configuration for an Area "RTN","EDPBCF",5,0) N I "RTN","EDPBCF",6,0) S I=0 F S I=$O(^EDPB(231.9,AREA,2,I)) Q:'I D "RTN","EDPBCF",7,0) . D XML^EDPX(^EDPB(231.9,AREA,2,I,0)) "RTN","EDPBCF",8,0) ; "RTN","EDPBCF",9,0) D XML^EDPX("") "RTN","EDPBCF",10,0) S I=0 F S I=$O(^EDPB(231.9,AREA,3,I)) Q:'I D "RTN","EDPBCF",11,0) . D XML^EDPX(^EDPB(231.9,AREA,3,I,0)) "RTN","EDPBCF",12,0) D XML^EDPX("") "RTN","EDPBCF",13,0) ; "RTN","EDPBCF",14,0) D XML^EDPX("") "RTN","EDPBCF",15,0) F I=1:1 S NODE=$P($T(COLUMNS+I),";",3,99) Q:$E(NODE,1,5)="zzzzz" D "RTN","EDPBCF",16,0) . N X "RTN","EDPBCF",17,0) . S X("label")=$P(NODE,U) "RTN","EDPBCF",18,0) . S X("att")=$P(NODE,U,2) "RTN","EDPBCF",19,0) . S X("header")=$P(NODE,U,3) "RTN","EDPBCF",20,0) . S X("width")=50 "RTN","EDPBCF",21,0) . D XML^EDPX($$XMLA^EDPX("col",.X)) "RTN","EDPBCF",22,0) D XML^EDPX("") "RTN","EDPBCF",23,0) ; "RTN","EDPBCF",24,0) D XML^EDPX("") "RTN","EDPBCF",25,0) D COLORS^EDPBCM "RTN","EDPBCF",26,0) D XML^EDPX("") "RTN","EDPBCF",27,0) ;D XML^EDPX("") "RTN","EDPBCF",28,0) ;D LIST^EDPBCM "RTN","EDPBCF",29,0) ;D XML^EDPX("") "RTN","EDPBCF",30,0) ; "RTN","EDPBCF",31,0) D LOAD^EDPBRM(AREA) ; also load rooms/beds "RTN","EDPBCF",32,0) D LOAD^EDPBPM(AREA) ; also load parameters "RTN","EDPBCF",33,0) ; "RTN","EDPBCF",34,0) Q "RTN","EDPBCF",35,0) SAVEBRD(REQ) ; Save Configuration "RTN","EDPBCF",36,0) N X,WP,AREA "RTN","EDPBCF",37,0) S X="col-",AREA=$G(REQ("area",1)) "RTN","EDPBCF",38,0) I 'AREA D XML^EDPX("Missing area") Q "RTN","EDPBCF",39,0) F S X=$O(REQ(X)) Q:$E(X,1,4)'="col-" S WP(+$P(X,"-",2))=REQ(X,1) "RTN","EDPBCF",40,0) S WP(.1)="",WP(9999)="" "RTN","EDPBCF",41,0) D WP^DIE(231.9,AREA_",",2,"","WP") "RTN","EDPBCF",42,0) I $D(DIERR) D XML^EDPX("save failed") Q "RTN","EDPBCF",43,0) D XML^EDPX("") "RTN","EDPBCF",44,0) Q "RTN","EDPBCF",45,0) COLUMNS ;; Available columns "RTN","EDPBCF",46,0) ;;Room / Bed^@bedNm^Room "RTN","EDPBCF",47,0) ;;Patient Name^@ptNm^Patient "RTN","EDPBCF",48,0) ;;Patient X9999^@last4^Patient "RTN","EDPBCF",49,0) ;;Complaint^@complaint^Complaint "RTN","EDPBCF",50,0) ;;Comment^@comment^Comment "RTN","EDPBCF",51,0) ;;Provider Initials^@mdNm^Prv "RTN","EDPBCF",52,0) ;;Resident Initials^@resNm^Res "RTN","EDPBCF",53,0) ;;Nurse Initials^@rnNm^RN "RTN","EDPBCF",54,0) ;;Acuity^@acuityNm^Acuity "RTN","EDPBCF",55,0) ;;Status^@statusNm^Status "RTN","EDPBCF",56,0) ;;Lab Active/Complete^@lab^L "RTN","EDPBCF",57,0) ;;Imaging Active/Complete^@rad^I "RTN","EDPBCF",58,0) ;;New (Unverified) Orders^@ordNew^New "RTN","EDPBCF",59,0) ;;Total Minutes^@emins^E Mins "RTN","EDPBCF",60,0) ;;Minutes at Location^@lmins^Mins "RTN","EDPBCF",61,0) ;;zzzzz "RTN","EDPBCM") 0^2^B11802573 "RTN","EDPBCM",1,0) EDPBCM ;SLC/KCM - Available color maps "RTN","EDPBCM",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPBCM",3,0) ; "RTN","EDPBCM",4,0) SAVE(REQ) ; Save Configuration "RTN","EDPBCM",5,0) N X,WP,AREA "RTN","EDPBCM",6,0) S X="xml-",AREA=$G(REQ("area",1)) "RTN","EDPBCM",7,0) I 'AREA D XML^EDPX("Missing area") Q "RTN","EDPBCM",8,0) F S X=$O(REQ(X)) Q:$E(X,1,4)'="xml-" S WP(+$P(X,"-",2))=REQ(X,1) "RTN","EDPBCM",9,0) D WP^DIE(231.9,AREA_",",3,"","WP") "RTN","EDPBCM",10,0) I $D(DIERR) D XML^EDPX("save failed") Q "RTN","EDPBCM",11,0) D XML^EDPX("") "RTN","EDPBCM",12,0) Q "RTN","EDPBCM",13,0) COLORS ;; Available Color Maps "RTN","EDPBCM",14,0) D ENMAP("none"," ","none") ; for no selection "RTN","EDPBCM",15,0) ; "RTN","EDPBCM",16,0) D ENMAP("stsAcuity","Status / Acuity","val") "RTN","EDPBCM",17,0) D CODES("status"),CODES("acuity"),EXMAP "RTN","EDPBCM",18,0) ; "RTN","EDPBCM",19,0) D ENMAP("status","Status","val") "RTN","EDPBCM",20,0) D CODES("status"),EXMAP "RTN","EDPBCM",21,0) ; "RTN","EDPBCM",22,0) D ENMAP("acuity","Acuity","val") "RTN","EDPBCM",23,0) D CODES("acuity"),EXMAP "RTN","EDPBCM",24,0) ; "RTN","EDPBCM",25,0) D ENMAP("bed","Room / Bed","bed") "RTN","EDPBCM",26,0) D ENMAP("md","Provider","staff") "RTN","EDPBCM",27,0) D ENMAP("res","Resident","staff") "RTN","EDPBCM",28,0) D ENMAP("rn","Nurse","staff") "RTN","EDPBCM",29,0) ; "RTN","EDPBCM",30,0) D ENMAP("labUrg","Urgency - Lab","val") "RTN","EDPBCM",31,0) D URG("labUrg"),EXMAP "RTN","EDPBCM",32,0) ;D ENMAP("medUrg","Urgency - Medications","val") "RTN","EDPBCM",33,0) ;D URG("medUrg"),EXMAP "RTN","EDPBCM",34,0) D ENMAP("radUrg","Urgency - Radiology","val") "RTN","EDPBCM",35,0) D URG("radUrg"),EXMAP "RTN","EDPBCM",36,0) ; "RTN","EDPBCM",37,0) D ENMAP("emins","Total Elapsed Minutes","rng") "RTN","EDPBCM",38,0) D ENMAP("lmins","Minutes at Location","rng") "RTN","EDPBCM",39,0) D ENMAP("minLab","Minutes for Lab Order","rng") "RTN","EDPBCM",40,0) ;D ENMAP("minMed","Minutes for Medication Order","rng") "RTN","EDPBCM",41,0) D ENMAP("minRad","Minutes for Imaging Order","rng") "RTN","EDPBCM",42,0) D ENMAP("minVer","Minutes for Unverified Order","rng") "RTN","EDPBCM",43,0) Q "RTN","EDPBCM",44,0) ENMAP(ID,NM,TYP) ; create element for colormap "RTN","EDPBCM",45,0) N X,END "RTN","EDPBCM",46,0) S END="/" S:TYP="val" END="" "RTN","EDPBCM",47,0) S X("id")=ID "RTN","EDPBCM",48,0) S X("nm")=NM "RTN","EDPBCM",49,0) S X("type")=TYP "RTN","EDPBCM",50,0) D XML^EDPX($$XMLA^EDPX("colors",.X,END)) "RTN","EDPBCM",51,0) Q "RTN","EDPBCM",52,0) EXMAP ; create closing tag "RTN","EDPBCM",53,0) D XML^EDPX("") "RTN","EDPBCM",54,0) Q "RTN","EDPBCM",55,0) CODES(NM) ; create map elements for a set of codes "RTN","EDPBCM",56,0) N CODESET,IEN "RTN","EDPBCM",57,0) S CODESET=EDPSITE_"."_NM "RTN","EDPBCM",58,0) I '$D(^EDPB(233.2,"B",CODESET)) S CODESET="edp."_NM "RTN","EDPBCM",59,0) S IEN=$O(^EDPB(233.2,"B",CODESET,0)) "RTN","EDPBCM",60,0) Q:'IEN "RTN","EDPBCM",61,0) ; "RTN","EDPBCM",62,0) N SEQ,CODE,DA "RTN","EDPBCM",63,0) S SEQ=0 F S SEQ=$O(^EDPB(233.2,IEN,1,"B",SEQ)) Q:'SEQ D "RTN","EDPBCM",64,0) . S DA=0 F S DA=$O(^EDPB(233.2,IEN,1,"B",SEQ,DA)) Q:'DA D "RTN","EDPBCM",65,0) . . S CODE=$P(^EDPB(233.2,IEN,1,DA,0),U,2) "RTN","EDPBCM",66,0) . . Q:'CODE "RTN","EDPBCM",67,0) . . D MAP(NM,CODE,$P(^EDPB(233.1,CODE,0),U,2)) "RTN","EDPBCM",68,0) Q "RTN","EDPBCM",69,0) URG(ATT) ; create map elements for standard urgencies "RTN","EDPBCM",70,0) D MAP(ATT,0,"No Orders") "RTN","EDPBCM",71,0) D MAP(ATT,1,"Active Orders") "RTN","EDPBCM",72,0) D MAP(ATT,2,"STAT Orders") "RTN","EDPBCM",73,0) Q "RTN","EDPBCM",74,0) MAP(ATT,VAL,NM) ; create a single map element "RTN","EDPBCM",75,0) N X "RTN","EDPBCM",76,0) S X("att")="@"_ATT "RTN","EDPBCM",77,0) S X("val")=VAL "RTN","EDPBCM",78,0) S X("nm")=NM "RTN","EDPBCM",79,0) S X("clr")=0 "RTN","EDPBCM",80,0) D XML^EDPX($$XMLA^EDPX("map",.X)) "RTN","EDPBCM",81,0) Q "RTN","EDPBCM",82,0) LIST ; Build selection list for color maps "RTN","EDPBCM",83,0) N I,X "RTN","EDPBCM",84,0) F I=1:1 S X=$P($T(MAPLST+I),";",3,99) Q:$E(X,1,5)="zzzzz" D "RTN","EDPBCM",85,0) . S X("data")=$P(X,U,1),X("label")=$P(X,U,2) "RTN","EDPBCM",86,0) . D XML^EDPX($$XMLA^EDPX("colors",.X)) "RTN","EDPBCM",87,0) Q "RTN","EDPBCM",88,0) MAPLST ; list of available color maps "RTN","EDPBCM",89,0) ;;^ ^ "RTN","EDPBCM",90,0) ;;stsAcuity^Status / Acuity "RTN","EDPBCM",91,0) ;;status^Status "RTN","EDPBCM",92,0) ;;acuity^Acuity "RTN","EDPBCM",93,0) ;;bed^Room / Bed "RTN","EDPBCM",94,0) ;;staff^Staff "RTN","EDPBCM",95,0) ;;labUrg^Urgency - Lab "RTN","EDPBCM",96,0) ;;radUrg^Urgency - Imaging "RTN","EDPBCM",97,0) ;;emins^Total Minutes "RTN","EDPBCM",98,0) ;;lmins^Minutes at Location "RTN","EDPBCM",99,0) ;;labMin^Minutes for Lab Order "RTN","EDPBCM",100,0) ;;radMin^Minutes for Imaging Order "RTN","EDPBCM",101,0) ;;ordMin^Minutes for Unverified Order "RTN","EDPBCM",102,0) ;;zzzzz "RTN","EDPBPM") 0^3^B2766869 "RTN","EDPBPM",1,0) EDPBPM ;SLC/KCM - Parameters for Tracking Area "RTN","EDPBPM",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPBPM",3,0) ; "RTN","EDPBPM",4,0) LOAD(AREA) ; load parameters for area "RTN","EDPBPM",5,0) N X,X1 "RTN","EDPBPM",6,0) S X1=$G(^EDPB(231.9,AREA,1)) "RTN","EDPBPM",7,0) S X("reqDiag")=+$P(X1,U,1) "RTN","EDPBPM",8,0) S X("codedDiag")=+$P(X1,U,2) "RTN","EDPBPM",9,0) S X("reqDisp")=+$P(X1,U,3) "RTN","EDPBPM",10,0) S X("reqDelay")=+$P(X1,U,4) "RTN","EDPBPM",11,0) S X("minDelay")=+$P(X1,U,5) "RTN","EDPBPM",12,0) S X("shiftOne")=$P(X1,U,6) "RTN","EDPBPM",13,0) S X("shiftLen")=$P(X1,U,7) "RTN","EDPBPM",14,0) S X("residents")=$P(X1,U,8) "RTN","EDPBPM",15,0) D XML^EDPX($$XMLA^EDPX("params",.X)) "RTN","EDPBPM",16,0) Q "RTN","EDPBPM",17,0) SAVE(AREA,PARAM) ; save updated parameters "RTN","EDPBPM",18,0) I '$D(^EDPB(231.9,AREA,0)) D XML^EDPX("Area not set up") Q "RTN","EDPBPM",19,0) N FLD D NVPARSE^EDPX(.FLD,PARAM) "RTN","EDPBPM",20,0) N FDA,FDAIEN,DIERR "RTN","EDPBPM",21,0) S AREA=AREA_"," "RTN","EDPBPM",22,0) S FDA(231.9,AREA,1.1)=FLD("reqDiag") "RTN","EDPBPM",23,0) S FDA(231.9,AREA,1.2)=FLD("codedDiag") "RTN","EDPBPM",24,0) S FDA(231.9,AREA,1.3)=FLD("reqDisp") "RTN","EDPBPM",25,0) S FDA(231.9,AREA,1.4)=FLD("reqDelay") "RTN","EDPBPM",26,0) S FDA(231.9,AREA,1.5)=FLD("minDelay") "RTN","EDPBPM",27,0) S FDA(231.9,AREA,1.6)=FLD("shiftOne") "RTN","EDPBPM",28,0) S FDA(231.9,AREA,1.7)=FLD("shiftLen") "RTN","EDPBPM",29,0) S FDA(231.9,AREA,1.8)=FLD("residents") "RTN","EDPBPM",30,0) D FILE^DIE("","FDA","ERR") "RTN","EDPBPM",31,0) I $D(DIERR) D FAIL($G(ERR("DIERR",1,"TEXT",1))) Q "RTN","EDPBPM",32,0) D XML^EDPX("") "RTN","EDPBPM",33,0) Q "RTN","EDPBPM",34,0) TZSAVE(AREA,TZDIFF) ; save time zone difference in minutes "RTN","EDPBPM",35,0) N FDA,FDAIEN,DIERR "RTN","EDPBPM",36,0) S AREA=AREA_"," "RTN","EDPBPM",37,0) S FDA(231.9,AREA,.03)=TZDIFF "RTN","EDPBPM",38,0) D FILE^DIE("","FDA","ERR") "RTN","EDPBPM",39,0) Q "RTN","EDPBPM",40,0) FAIL(ERR) ; set fail node "RTN","EDPBPM",41,0) D XML^EDPX(""_ERR_"") "RTN","EDPBPM",42,0) Q "RTN","EDPBRM") 0^4^B8445684 "RTN","EDPBRM",1,0) EDPBRM ;SLC/KCM - Room/Bed Configuration "RTN","EDPBRM",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPBRM",3,0) ; "RTN","EDPBRM",4,0) LOAD(AREA) ; Load the list of rooms/beds for this area "RTN","EDPBRM",5,0) N BED,SEQ,BEDS,X0 "RTN","EDPBRM",6,0) ; "RTN","EDPBRM",7,0) ; Get a list of all the beds in sequence for this area "RTN","EDPBRM",8,0) S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D "RTN","EDPBRM",9,0) . S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999 "RTN","EDPBRM",10,0) . S BEDS(SEQ,BED)="" "RTN","EDPBRM",11,0) ; "RTN","EDPBRM",12,0) ; Build the XML for each bed in sequence "RTN","EDPBRM",13,0) D XML^EDPX("") "RTN","EDPBRM",14,0) S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D "RTN","EDPBRM",15,0) . S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D "RTN","EDPBRM",16,0) . . S X0=^EDPB(231.8,BED,0) "RTN","EDPBRM",17,0) . . N X "RTN","EDPBRM",18,0) . . S X("id")=BED "RTN","EDPBRM",19,0) . . S X("name")=$P(X0,U) "RTN","EDPBRM",20,0) . . S X("site")=$P(X0,U,2) "RTN","EDPBRM",21,0) . . S X("area")=$P(X0,U,3) "RTN","EDPBRM",22,0) . . S X("inactive")=$P(X0,U,4) "RTN","EDPBRM",23,0) . . S X("seq")=$P(X0,U,5) "RTN","EDPBRM",24,0) . . S X("display")=$P(X0,U,6) "RTN","EDPBRM",25,0) . . S X("when")=$P(X0,U,7) "RTN","EDPBRM",26,0) . . S X("status")=$P(X0,U,8) "RTN","EDPBRM",27,0) . . S X("multi")=$P(X0,U,9) "RTN","EDPBRM",28,0) . . S X("shared")=$P(X0,U,10) "RTN","EDPBRM",29,0) . . S X("board")=$P(X0,U,11) "RTN","EDPBRM",30,0) . . S X("color")=$P(X0,U,12) "RTN","EDPBRM",31,0) . . D XML^EDPX($$XMLA^EDPX("bed",.X)) "RTN","EDPBRM",32,0) D XML^EDPX("") "RTN","EDPBRM",33,0) D CHOICES "RTN","EDPBRM",34,0) Q "RTN","EDPBRM",35,0) SAVE(REQ) ; Save the updated bed list "RTN","EDPBRM",36,0) ; loop thru the records and update where changed "RTN","EDPBRM",37,0) N X,BED,ERR "RTN","EDPBRM",38,0) S X="bed-",ERR="" "RTN","EDPBRM",39,0) F S X=$O(REQ(X)) Q:$E(X,1,4)'="bed-" D "RTN","EDPBRM",40,0) . K BED S BED="" "RTN","EDPBRM",41,0) . D NVPARSE^EDPX(.BED,REQ(X,1)) "RTN","EDPBRM",42,0) . I BED("changed") D UPD(.BED,.ERR) "RTN","EDPBRM",43,0) I $L(ERR) D XML^EDPX(""_ERR_"") Q "RTN","EDPBRM",44,0) D XML^EDPX("") "RTN","EDPBRM",45,0) Q "RTN","EDPBRM",46,0) UPD(FLD,ERRMSG) ; Add/Update Record "RTN","EDPBRM",47,0) N EDPIEN "RTN","EDPBRM",48,0) S EDPIEN=FLD("id")_"," "RTN","EDPBRM",49,0) I FLD("id")=0 S EDPIEN="+1," "RTN","EDPBRM",50,0) ; "RTN","EDPBRM",51,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPBRM",52,0) S FDA(231.8,EDPIEN,.01)=FLD("name") "RTN","EDPBRM",53,0) S FDA(231.8,EDPIEN,.02)=EDPSITE "RTN","EDPBRM",54,0) S FDA(231.8,EDPIEN,.03)=FLD("area") "RTN","EDPBRM",55,0) S FDA(231.8,EDPIEN,.04)=FLD("inactive") "RTN","EDPBRM",56,0) S FDA(231.8,EDPIEN,.05)=FLD("seq") "RTN","EDPBRM",57,0) S FDA(231.8,EDPIEN,.06)=FLD("display") "RTN","EDPBRM",58,0) S FDA(231.8,EDPIEN,.07)=FLD("when") "RTN","EDPBRM",59,0) S FDA(231.8,EDPIEN,.08)=FLD("status") "RTN","EDPBRM",60,0) S FDA(231.8,EDPIEN,.09)=FLD("multi") "RTN","EDPBRM",61,0) S FDA(231.8,EDPIEN,.1)=FLD("shared") "RTN","EDPBRM",62,0) S FDA(231.8,EDPIEN,.11)=FLD("board") "RTN","EDPBRM",63,0) S FDA(231.8,EDPIEN,.12)=FLD("color") "RTN","EDPBRM",64,0) I EDPIEN="+1," D "RTN","EDPBRM",65,0) . D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPBRM",66,0) . I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. " "RTN","EDPBRM",67,0) E D "RTN","EDPBRM",68,0) . D FILE^DIE("","FDA","ERR") "RTN","EDPBRM",69,0) . I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. " "RTN","EDPBRM",70,0) Q "RTN","EDPBRM",71,0) CHOICES ; Load the choice lists "RTN","EDPBRM",72,0) N I,X "RTN","EDPBRM",73,0) F I=1:1 S X=$P($T(WHEN+I),";",3,99) Q:X="ZZZZZ" D XML^EDPX(X) "RTN","EDPBRM",74,0) D CODES^EDPQLE1("status","status") "RTN","EDPBRM",75,0) Q "RTN","EDPBRM",76,0) WHEN ; Display When Choices "RTN","EDPBRM",77,0) ;; "RTN","EDPBRM",78,0) ;; "RTN","EDPBRM",79,0) ;; "RTN","EDPBRM",80,0) ;; "RTN","EDPBRM",81,0) ;; "RTN","EDPBRM",82,0) ;;ZZZZZ "RTN","EDPBRS") 0^5^B17301676 "RTN","EDPBRS",1,0) EDPBRS ;SLC/KCM - Reset Board Configuration "RTN","EDPBRS",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPBRS",3,0) ; "RTN","EDPBRS",4,0) RESET(AREA) ; Set initial configuration for site & area "RTN","EDPBRS",5,0) D SPEC(AREA),COLOR(AREA),ROOMS(AREA),PARAMS(AREA) "RTN","EDPBRS",6,0) Q "RTN","EDPBRS",7,0) SPEC(AREA) ; Set up default board spec "RTN","EDPBRS",8,0) ; assumes site, area passed in "RTN","EDPBRS",9,0) N I,X,WP "RTN","EDPBRS",10,0) F I=1:1 S X=$P($T(BRDXML+I),";",3,99) Q:$E(X,1,5)="zzzzz" S WP(I)=X "RTN","EDPBRS",11,0) D WP^DIE(231.9,AREA_",",2,"","WP") "RTN","EDPBRS",12,0) I $D(DIERR) W !,"spec update failed" Q "RTN","EDPBRS",13,0) Q "RTN","EDPBRS",14,0) BRDXML ; XML for the board spec "RTN","EDPBRS",15,0) ;; "RTN","EDPBRS",16,0) ;; "RTN","EDPBRS",17,0) ;; "RTN","EDPBRS",18,0) ;; "RTN","EDPBRS",19,0) ;; "RTN","EDPBRS",20,0) ;; "RTN","EDPBRS",21,0) ;; "RTN","EDPBRS",22,0) ;; "RTN","EDPBRS",23,0) ;; "RTN","EDPBRS",24,0) ;; "RTN","EDPBRS",25,0) ;; "RTN","EDPBRS",26,0) ;; "RTN","EDPBRS",27,0) ;; "RTN","EDPBRS",28,0) ;;zzzzz "RTN","EDPBRS",29,0) ;; "RTN","EDPBRS",30,0) COLOR(AREA) ; Set up default colors "RTN","EDPBRS",31,0) N I,X,WP "RTN","EDPBRS",32,0) F I=1:1 S X=$P($T(CLRXML+I),";",3,99) Q:$E(X,1,5)="zzzzz" S WP(I)=X "RTN","EDPBRS",33,0) D WP^DIE(231.9,AREA_",",3,"","WP") "RTN","EDPBRS",34,0) I $D(DIERR) W !,"spec update failed" Q "RTN","EDPBRS",35,0) Q "RTN","EDPBRS",36,0) CLRXML ; XML for the color spec "RTN","EDPBRS",37,0) ;; "RTN","EDPBRS",38,0) ;; "RTN","EDPBRS",39,0) ;; "RTN","EDPBRS",40,0) ;; "RTN","EDPBRS",41,0) ;; "RTN","EDPBRS",42,0) ;; "RTN","EDPBRS",43,0) ;; "RTN","EDPBRS",44,0) ;; "RTN","EDPBRS",45,0) ;; "RTN","EDPBRS",46,0) ;; "RTN","EDPBRS",47,0) ;; "RTN","EDPBRS",48,0) ;; "RTN","EDPBRS",49,0) ;; "RTN","EDPBRS",50,0) ;; "RTN","EDPBRS",51,0) ;; "RTN","EDPBRS",52,0) ;; "RTN","EDPBRS",53,0) ;; "RTN","EDPBRS",54,0) ;; "RTN","EDPBRS",55,0) ;; "RTN","EDPBRS",56,0) ;; "RTN","EDPBRS",57,0) ;; "RTN","EDPBRS",58,0) ;; "RTN","EDPBRS",59,0) ;; "RTN","EDPBRS",60,0) ;; "RTN","EDPBRS",61,0) ;;zzzzz "RTN","EDPBRS",62,0) ;; "RTN","EDPBRS",63,0) ROOMS(AREA) ; baseline rooms "RTN","EDPBRS",64,0) N I,X "RTN","EDPBRS",65,0) F I=1:1 S X=$P($T(ROOMLST+I),";",3,99) Q:$E(X,1,5)="zzzzz" D "RTN","EDPBRS",66,0) . N FDA,FDAIEN,DIERR,ERR "RTN","EDPBRS",67,0) . S FDA(231.8,"+1,",.01)=$P(X,U) "RTN","EDPBRS",68,0) . S FDA(231.8,"+1,",.02)=EDPSITE "RTN","EDPBRS",69,0) . S FDA(231.8,"+1,",.03)=AREA "RTN","EDPBRS",70,0) . S FDA(231.8,"+1,",.05)=$P(X,U,3) "RTN","EDPBRS",71,0) . S FDA(231.8,"+1,",.06)=$P(X,U,2) "RTN","EDPBRS",72,0) . S FDA(231.8,"+1,",.07)=$P(X,U,4) "RTN","EDPBRS",73,0) . S FDA(231.8,"+1,",.09)=$P(X,U,5) "RTN","EDPBRS",74,0) . D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPBRS",75,0) Q "RTN","EDPBRS",76,0) ROOMLST ; Name^Display Name^Seq^When^Multi "RTN","EDPBRS",77,0) ;;Waiting^WAIT^1^0^1 "RTN","EDPBRS",78,0) ;;Ambulance^AMBU^5^0^1 "RTN","EDPBRS",79,0) ;;Hallway^HALL^10^0^1 "RTN","EDPBRS",80,0) ;;General Radiology^RAD^110^0^1 "RTN","EDPBRS",81,0) ;;CT^CT^120^0^1 "RTN","EDPBRS",82,0) ;;MRI^MRI^130^0^1 "RTN","EDPBRS",83,0) ;;Cardiac Cath^CATH^140^0^1 "RTN","EDPBRS",84,0) ;;Cardiac Stress Test^STEST^150^0^1 "RTN","EDPBRS",85,0) ;;Dialysis^DIAL^160^0^1 "RTN","EDPBRS",86,0) ;;Subspecialty Clinic^SCLIN^170^0^1 "RTN","EDPBRS",87,0) ;;zzzzz "RTN","EDPBRS",88,0) PARAMS(AREA) ; baseline parameters "RTN","EDPBRS",89,0) N FDA,DIERR "RTN","EDPBRS",90,0) S AREA=AREA_"," "RTN","EDPBRS",91,0) S FDA(231.9,AREA,1.1)=1 "RTN","EDPBRS",92,0) S FDA(231.9,AREA,1.2)=1 "RTN","EDPBRS",93,0) S FDA(231.9,AREA,1.3)=1 "RTN","EDPBRS",94,0) S FDA(231.9,AREA,1.4)=1 "RTN","EDPBRS",95,0) S FDA(231.9,AREA,1.5)=300 "RTN","EDPBRS",96,0) S FDA(231.9,AREA,1.6)=420 "RTN","EDPBRS",97,0) S FDA(231.9,AREA,1.7)=480 "RTN","EDPBRS",98,0) S FDA(231.9,AREA,1.8)=1 "RTN","EDPBRS",99,0) D FILE^DIE("","FDA","ERR") "RTN","EDPBRS",100,0) Q "RTN","EDPBSL") 0^6^B10687935 "RTN","EDPBSL",1,0) EDPBSL ;SLC/KCM - Selection List Configuration "RTN","EDPBSL",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPBSL",3,0) ; "RTN","EDPBSL",4,0) LOAD(AREA) ; Load selection lists for area "RTN","EDPBSL",5,0) ;D LIST("acuity","Acuity") "RTN","EDPBSL",6,0) D LIST("status","Status") "RTN","EDPBSL",7,0) D LIST("arrival","Mode of Arrival") "RTN","EDPBSL",8,0) D LIST("disposition","Disposition") "RTN","EDPBSL",9,0) D LIST("delay","Delay Reason") "RTN","EDPBSL",10,0) Q "RTN","EDPBSL",11,0) LIST(NM,TITLE) ; build XML for selection list "RTN","EDPBSL",12,0) N SETNM S SETNM=EDPSITE_"."_NM "RTN","EDPBSL",13,0) I '$D(^EDPB(233.2,"B",SETNM)) S SETNM="edp."_NM "RTN","EDPBSL",14,0) D XML^EDPX("<"_NM_" title='"_TITLE_"'>") "RTN","EDPBSL",15,0) N IEN,SEQ,DA,X0 "RTN","EDPBSL",16,0) S IEN=$O(^EDPB(233.2,"B",SETNM,0)) "RTN","EDPBSL",17,0) S SEQ=0 F S SEQ=$O(^EDPB(233.2,IEN,1,"B",SEQ)) Q:'SEQ D "RTN","EDPBSL",18,0) . S DA=0 F S DA=$O(^EDPB(233.2,IEN,1,"B",SEQ,DA)) Q:'DA D "RTN","EDPBSL",19,0) . . S X0=^EDPB(233.2,IEN,1,DA,0) "RTN","EDPBSL",20,0) . . N X "RTN","EDPBSL",21,0) . . S X("seq")=SEQ "RTN","EDPBSL",22,0) . . S X("id")=$P(X0,U,2) "RTN","EDPBSL",23,0) . . S X("inact")=$P(X0,U,3) "RTN","EDPBSL",24,0) . . S X("show")=$P(X0,U,4) "RTN","EDPBSL",25,0) . . S X("abbr")=$P(X0,U,5) "RTN","EDPBSL",26,0) . . ; switch to entry in 233.1 now "RTN","EDPBSL",27,0) . . S X0=^EDPB(233.1,X("id"),0) "RTN","EDPBSL",28,0) . . I X("show")="" S X("show")=$P(X0,U,2) "RTN","EDPBSL",29,0) . . I X("abbr")="" S X("abbr")=$P(X0,U,3) "RTN","EDPBSL",30,0) . . S X("flag")=$P(X0,U,5) "RTN","EDPBSL",31,0) . . D XML^EDPX($$XMLA^EDPX("code",.X)) "RTN","EDPBSL",32,0) D XML^EDPX("") "RTN","EDPBSL",33,0) Q "RTN","EDPBSL",34,0) SAVE(REQ) ; save the selection changes "RTN","EDPBSL",35,0) N CTYP,SET,SETNM,CODE,X,EDPERR "RTN","EDPBSL",36,0) S EDPERR="" "RTN","EDPBSL",37,0) F CTYP="status","disposition","delay","arrival" D "RTN","EDPBSL",38,0) . I $E($O(REQ(CTYP)),1,$L(CTYP))'=CTYP Q "RTN","EDPBSL",39,0) . S SETNM=EDPSITE_"."_CTYP,SET=$O(^EDPB(233.2,"B",SETNM,0)) "RTN","EDPBSL",40,0) . I 'SET D NEWSET(SETNM) S SET=$O(^EDPB(233.2,"B",SETNM,0)) "RTN","EDPBSL",41,0) . D CLEARSET(SET) "RTN","EDPBSL",42,0) . S X=CTYP F S X=$O(REQ(X)) Q:$E(X,1,$L(CTYP))'=CTYP D "RTN","EDPBSL",43,0) . . K CODE S CODE="" D NVPARSE^EDPX(.CODE,REQ(X,1)) "RTN","EDPBSL",44,0) . . I CODE("id")<1 D ADDCODE(CTYP,.CODE) "RTN","EDPBSL",45,0) . . D ADD2SET(SET,.CODE) "RTN","EDPBSL",46,0) I $L(EDPERR) D XML^EDPX(""_EDPERR_"") Q "RTN","EDPBSL",47,0) D XML^EDPX("") "RTN","EDPBSL",48,0) Q "RTN","EDPBSL",49,0) NEWSET(SETNM) ; Create a new code set for a site "RTN","EDPBSL",50,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPBSL",51,0) S FDA(233.2,"+1,",.01)=SETNM "RTN","EDPBSL",52,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPBSL",53,0) I $D(DIERR) S EDPERR=EDPERR_"new code set failed;" "RTN","EDPBSL",54,0) Q "RTN","EDPBSL",55,0) CLEARSET(SET) ; Clear the CODES mulitple "RTN","EDPBSL",56,0) I '$O(^EDPB(233.2,SET,1,0)) Q ; no child nodes "RTN","EDPBSL",57,0) N DA,DIK S DA=0,DA(1)=SET,DIK="^EDPB(233.2,"_DA(1)_",1," "RTN","EDPBSL",58,0) F S DA=$O(^EDPB(233.2,SET,1,DA)) Q:'DA D ^DIK "RTN","EDPBSL",59,0) Q "RTN","EDPBSL",60,0) ADDCODE(CTYP,X) ; Add a new code to the TRACKING CODE file "RTN","EDPBSL",61,0) Q:X("id")'=0 "RTN","EDPBSL",62,0) N NAME,DNAME,I "RTN","EDPBSL",63,0) S NAME=EDPSITE_"."_CTYP_"."_$TR(X("show")," ","") "RTN","EDPBSL",64,0) I $O(^EDPB(233.1,"B",NAME,0)) D "RTN","EDPBSL",65,0) . F I=1:1:99 Q:'$O(^EDPB(233.1,"B",NAME_I,0)) "RTN","EDPBSL",66,0) . S NAME=NAME_I "RTN","EDPBSL",67,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPBSL",68,0) S FDA(233.1,"+1,",.01)=NAME "RTN","EDPBSL",69,0) S FDA(233.1,"+1,",.02)=X("show") "RTN","EDPBSL",70,0) S FDA(233.1,"+1,",.03)=X("abbr") "RTN","EDPBSL",71,0) S FDA(233.1,"+1,",.05)=X("flag") "RTN","EDPBSL",72,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPBSL",73,0) I $D(DIERR) S EDPERR=EDPERR_"add code "_NAME_"failed;" "RTN","EDPBSL",74,0) S X("id")=FDAIEN(1),X("nm")=NAME "RTN","EDPBSL",75,0) Q "RTN","EDPBSL",76,0) ADD2SET(SET,X) ; Add a new code to the CODES multiple "RTN","EDPBSL",77,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPBSL",78,0) S FDA(233.21,"+1,"_SET_",",.01)=X("seq") "RTN","EDPBSL",79,0) S FDA(233.21,"+1,"_SET_",",.02)=X("id") "RTN","EDPBSL",80,0) S FDA(233.21,"+1,"_SET_",",.03)=X("inact") "RTN","EDPBSL",81,0) S FDA(233.21,"+1,"_SET_",",.04)=X("show") "RTN","EDPBSL",82,0) S FDA(233.21,"+1,"_SET_",",.05)=X("abbr") "RTN","EDPBSL",83,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPBSL",84,0) I $D(DIERR) S EDPERR=EDPERR_"add to set "_X("show")_" failed;" "RTN","EDPBSL",85,0) Q "RTN","EDPBST") 0^7^B5671603 "RTN","EDPBST",1,0) EDPBST ;SLC/KCM - Staff Configuration "RTN","EDPBST",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPBST",3,0) ; "RTN","EDPBST",4,0) MATCH(X) ; Return matching providers "RTN","EDPBST",5,0) Q "RTN","EDPBST",6,0) LOAD(AREA) ; Return nurse and provider sources, staff config "RTN","EDPBST",7,0) D XML^EDPX(""),ACTIVE(AREA,"P"),XML^EDPX("") "RTN","EDPBST",8,0) D XML^EDPX(""),ACTIVE(AREA,"R"),XML^EDPX("") "RTN","EDPBST",9,0) D XML^EDPX(""),ACTIVE(AREA,"N"),XML^EDPX("") "RTN","EDPBST",10,0) Q "RTN","EDPBST",11,0) ACTIVE(AREA,ROLE) ; build list of active for a role "RTN","EDPBST",12,0) N IEN,X0,X "RTN","EDPBST",13,0) S IEN=0 F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D "RTN","EDPBST",14,0) . S X0=^EDPB(231.7,IEN,0) "RTN","EDPBST",15,0) . S X("nm")=$P(X0,U) "RTN","EDPBST",16,0) . S X("duz")=$P(X0,U,5) "RTN","EDPBST",17,0) . S X("role")=$P(X0,U,6) "RTN","EDPBST",18,0) . S X("itl")=$P(X0,U,7) "RTN","EDPBST",19,0) . S X("clr")=$P(X0,U,8) "RTN","EDPBST",20,0) . D XML^EDPX($$XMLA^EDPX("staff",.X)) "RTN","EDPBST",21,0) Q "RTN","EDPBST",22,0) SAVE(REQ) ; save updated staff members "RTN","EDPBST",23,0) N X,STAFF,ERR,EDPAREA "RTN","EDPBST",24,0) S EDPAREA=$G(REQ("area",1)) "RTN","EDPBST",25,0) I EDPAREA="" D XML^EDPX("Missing Area") Q "RTN","EDPBST",26,0) ; "RTN","EDPBST",27,0) S X="staff-",ERR="" "RTN","EDPBST",28,0) F S X=$O(REQ(X)) Q:$E(X,1,6)'="staff-" D "RTN","EDPBST",29,0) . K STAFF S STAFF="" "RTN","EDPBST",30,0) . D NVPARSE^EDPX(.STAFF,REQ(X,1)) "RTN","EDPBST",31,0) . I STAFF("chg") D UPD(.STAFF,.ERR) "RTN","EDPBST",32,0) ; "RTN","EDPBST",33,0) I $L(ERR) D XML^EDPX(""_ERR_"") Q "RTN","EDPBST",34,0) D XML^EDPX("") "RTN","EDPBST",35,0) Q "RTN","EDPBST",36,0) UPD(FLD,ERRMSG) ; Add/Update Record (expects EDPAREA, EDPSITE to be defined) "RTN","EDPBST",37,0) N EDPIEN "RTN","EDPBST",38,0) S EDPIEN=$O(^EDPB(231.7,"AD",EDPSITE,EDPAREA,+FLD("duz"),0))_"," "RTN","EDPBST",39,0) I 'EDPIEN,FLD("inact") Q ; don't add inactive selection "RTN","EDPBST",40,0) I 'EDPIEN S EDPIEN="+1," "RTN","EDPBST",41,0) ; "RTN","EDPBST",42,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPBST",43,0) S FDA(231.7,EDPIEN,.01)=FLD("nm") "RTN","EDPBST",44,0) S FDA(231.7,EDPIEN,.02)=EDPSITE "RTN","EDPBST",45,0) S FDA(231.7,EDPIEN,.03)=EDPAREA "RTN","EDPBST",46,0) S FDA(231.7,EDPIEN,.04)=FLD("inact") "RTN","EDPBST",47,0) S FDA(231.7,EDPIEN,.05)=FLD("duz") "RTN","EDPBST",48,0) S FDA(231.7,EDPIEN,.06)=FLD("role") "RTN","EDPBST",49,0) S FDA(231.7,EDPIEN,.07)=FLD("itl") "RTN","EDPBST",50,0) S FDA(231.7,EDPIEN,.08)=FLD("clr") "RTN","EDPBST",51,0) I EDPIEN="+1," D "RTN","EDPBST",52,0) . D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPBST",53,0) . I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. " "RTN","EDPBST",54,0) E D "RTN","EDPBST",55,0) . D FILE^DIE("","FDA","ERR") "RTN","EDPBST",56,0) . I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. " "RTN","EDPBST",57,0) Q "RTN","EDPCSV") 0^8^B1174381 "RTN","EDPCSV",1,0) EDPCSV ;SLC/MKB - CSV format utilities "RTN","EDPCSV",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPCSV",3,0) ; "RTN","EDPCSV",4,0) EN(REQ) ; Controller for HTTP request "RTN","EDPCSV",5,0) ; "RTN","EDPCSV",6,0) S:'$G(EDPTEST) $ETRAP="D ^%ZTER H" "RTN","EDPCSV",7,0) ; "RTN","EDPCSV",8,0) N EDPSITE,EDPHTTP,EDPNULL,EDPFAIL,EDPCSV,I "RTN","EDPCSV",9,0) D UESREQ^EDPX(.REQ) ; unescape the posted data "RTN","EDPCSV",10,0) D SET^EDPZCTRL ; set up the environment, use null device "RTN","EDPCSV",11,0) ; "RTN","EDPCSV",12,0) D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"),1) "RTN","EDPCSV",13,0) ; "RTN","EDPCSV",14,0) U EDPHTTP "RTN","EDPCSV",15,0) ;W "",! "RTN","EDPCSV",16,0) S I=0 F S I=$O(EDPCSV(I)) Q:'I W EDPCSV(I),! "RTN","EDPCSV",17,0) ;W "",! "RTN","EDPCSV",18,0) Q "RTN","EDPCSV",19,0) ; "RTN","EDPCSV",20,0) VAL(X) ; return value from request "RTN","EDPCSV",21,0) Q $G(REQ(X,1)) "RTN","EDPCSV",22,0) ; "RTN","EDPCSV",23,0) ADD(X) ; -- add line X "RTN","EDPCSV",24,0) S EDPCSV=+$G(EDPCSV)+1,EDPCSV(EDPCSV)=X "RTN","EDPCSV",25,0) Q "RTN","EDPCSV",26,0) ; "RTN","EDPCSV",27,0) BLANK ; -- add blank line "RTN","EDPCSV",28,0) S EDPCSV=+$G(EDPCSV)+1,EDPCSV(EDPCSV)="" "RTN","EDPCSV",29,0) Q "RTN","EDPCTRL") 0^9^B34504423 "RTN","EDPCTRL",1,0) EDPCTRL ;SLC/KCM - Controller for ED Tracking "RTN","EDPCTRL",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPCTRL",3,0) ; "RTN","EDPCTRL",4,0) RPC(EDPXML,SESS,PARAMS) ; Process request via RPC instead of CSP "RTN","EDPCTRL",5,0) N X,REQ,EDPSITE,EDPUSER "RTN","EDPCTRL",6,0) K EDPXML "RTN","EDPCTRL",7,0) S EDPUSER=$P($G(SESS),U),EDPSITE=$P($G(SESS),U,2) "RTN","EDPCTRL",8,0) S X="" F S X=$O(PARAMS(X)) Q:X="" S REQ(X,1)=PARAMS(X) "RTN","EDPCTRL",9,0) ; "RTN","EDPCTRL",10,0) COMMON ; Come here for both CSP and RPC Mode "RTN","EDPCTRL",11,0) ; "RTN","EDPCTRL",12,0) N EDPFAIL,CMD "RTN","EDPCTRL",13,0) S CMD=$G(REQ("command",1)) "RTN","EDPCTRL",14,0) ; "RTN","EDPCTRL",15,0) ; switch on command "RTN","EDPCTRL",16,0) ; "RTN","EDPCTRL",17,0) ; --------------------------------- "RTN","EDPCTRL",18,0) ; "RTN","EDPCTRL",19,0) ; initUser -- MOVED TO FACILITY "RTN","EDPCTRL",20,0) ; return "RTN","EDPCTRL",21,0) ; ... "RTN","EDPCTRL",22,0) I CMD="initUser" D G OUT "RTN","EDPCTRL",23,0) . D SESS^EDPFAA,VIEWS^EDPFAA "RTN","EDPCTRL",24,0) ; "RTN","EDPCTRL",25,0) ; --------------------------------- "RTN","EDPCTRL",26,0) ; "RTN","EDPCTRL",27,0) ; matchPatients -- MOVED TO FACILITY "RTN","EDPCTRL",28,0) ; return ... "RTN","EDPCTRL",29,0) I CMD="matchPatients" D G OUT "RTN","EDPCTRL",30,0) . D MATCH^EDPFPTL($$VAL("partial")) "RTN","EDPCTRL",31,0) ; "RTN","EDPCTRL",32,0) ; --------------------------------- "RTN","EDPCTRL",33,0) ; "RTN","EDPCTRL",34,0) ; getPatientRecordFlags -- MOVED TO FACILITY "RTN","EDPCTRL",35,0) ; return "RTN","EDPCTRL",36,0) ; "RTN","EDPCTRL",37,0) I CMD="getPatientRecordFlags" D G OUT "RTN","EDPCTRL",38,0) . D SEC^EDPFPTS($$VAL("patient")) "RTN","EDPCTRL",39,0) ; "RTN","EDPCTRL",40,0) ; --------------------------------- "RTN","EDPCTRL",41,0) ; "RTN","EDPCTRL",42,0) ; saveSecurityLog -- MOVED TO FACILITY "RTN","EDPCTRL",43,0) ; return "RTN","EDPCTRL",44,0) I CMD="saveSecurityLog" D G OUT "RTN","EDPCTRL",45,0) . D LOG^EDPFPTS($$VAL("patient")) "RTN","EDPCTRL",46,0) ; "RTN","EDPCTRL",47,0) ; --------------------------------- "RTN","EDPCTRL",48,0) ; "RTN","EDPCTRL",49,0) ; getLexiconMatches -- MOVED TO FACILITY "RTN","EDPCTRL",50,0) ; return ... "RTN","EDPCTRL",51,0) I CMD="getLexiconMatches" D G OUT "RTN","EDPCTRL",52,0) . D ICD^EDPFLEX($$VAL("text")) "RTN","EDPCTRL",53,0) ; "RTN","EDPCTRL",54,0) ; --------------------------------- "RTN","EDPCTRL",55,0) ; "RTN","EDPCTRL",56,0) ; initLogArea "RTN","EDPCTRL",57,0) ; return "RTN","EDPCTRL",58,0) ; "RTN","EDPCTRL",59,0) ; ... "RTN","EDPCTRL",60,0) I CMD="initLogArea" D G OUT "RTN","EDPCTRL",61,0) . I $L($G(REQ("logEntry",1))) D UPD^EDPLOG(REQ("logEntry",1)) Q:$G(EDPFAIL) "RTN","EDPCTRL",62,0) . D PARAM^EDPQAR($$VAL("area")) "RTN","EDPCTRL",63,0) . D GET^EDPQLP($$VAL("area"),-1) ;-1 = force refresh "RTN","EDPCTRL",64,0) ; "RTN","EDPCTRL",65,0) ; --------------------------------- "RTN","EDPCTRL",66,0) ; "RTN","EDPCTRL",67,0) ; checkLogin -- OBSOLETE "RTN","EDPCTRL",68,0) ; return "RTN","EDPCTRL",69,0) I CMD="checkLogin" D SESS^EDPFAA G OUT "RTN","EDPCTRL",70,0) ; "RTN","EDPCTRL",71,0) ; --------------------------------- "RTN","EDPCTRL",72,0) ; "RTN","EDPCTRL",73,0) ; initTracking "RTN","EDPCTRL",74,0) ; return ... "RTN","EDPCTRL",75,0) I CMD="initTracking" D DFLTAREA^EDPQAR G OUT "RTN","EDPCTRL",76,0) ; "RTN","EDPCTRL",77,0) ; --------------------------------- "RTN","EDPCTRL",78,0) ; "RTN","EDPCTRL",79,0) ; refreshLogSelector "RTN","EDPCTRL",80,0) ; return ... "RTN","EDPCTRL",81,0) I CMD="refreshLogSelector" D G OUT "RTN","EDPCTRL",82,0) . D GET^EDPQLP($$VAL("area"),$$VAL("token")) "RTN","EDPCTRL",83,0) ; "RTN","EDPCTRL",84,0) ; --------------------------------- "RTN","EDPCTRL",85,0) ; "RTN","EDPCTRL",86,0) ; switchLogEntry "RTN","EDPCTRL",87,0) ; return "RTN","EDPCTRL",88,0) ; log fields... "RTN","EDPCTRL",89,0) ; choice lists... "RTN","EDPCTRL",90,0) I CMD="switchLogEntry" D G OUT "RTN","EDPCTRL",91,0) . I $L($G(REQ("logEntry",1))) D UPD^EDPLOG(REQ("logEntry",1)) Q:$G(EDPFAIL) "RTN","EDPCTRL",92,0) . D GET^EDPQLE($$VAL("logID"),$$VAL("getChoices")) "RTN","EDPCTRL",93,0) ; "RTN","EDPCTRL",94,0) ; --------------------------------- "RTN","EDPCTRL",95,0) ; "RTN","EDPCTRL",96,0) ; saveLogEntry "RTN","EDPCTRL",97,0) ; return "RTN","EDPCTRL",98,0) I CMD="saveLogEntry" D G OUT "RTN","EDPCTRL",99,0) . D UPD^EDPLOG(REQ("logEntry",1)) Q:$G(EDPFAIL) "RTN","EDPCTRL",100,0) ; "RTN","EDPCTRL",101,0) ; --------------------------------- "RTN","EDPCTRL",102,0) ; "RTN","EDPCTRL",103,0) ; addPatientToLog "RTN","EDPCTRL",104,0) ; return "RTN","EDPCTRL",105,0) ; "RTN","EDPCTRL",106,0) ; log fields... "RTN","EDPCTRL",107,0) ; choice lists... "RTN","EDPCTRL",108,0) ; ... "RTN","EDPCTRL",109,0) I CMD="addPatientToLog" D G OUT "RTN","EDPCTRL",110,0) . D ADD^EDPLOGA($$VAL("addPatient"),$$VAL("area"),$$VAL("localTime"),$$VAL("getChoices")) "RTN","EDPCTRL",111,0) . Q:$G(EDPFAIL) "RTN","EDPCTRL",112,0) . D GET^EDPQLP($$VAL("area"),-1) "RTN","EDPCTRL",113,0) ; "RTN","EDPCTRL",114,0) ; --------------------------------- "RTN","EDPCTRL",115,0) ; "RTN","EDPCTRL",116,0) ; deleteStubEntry "RTN","EDPCTRL",117,0) ; return "RTN","EDPCTRL",118,0) I CMD="deleteStubEntry" D G OUT "RTN","EDPCTRL",119,0) . D DEL^EDPLOGA($$VAL("area"),$$VAL("logID")) "RTN","EDPCTRL",120,0) ; "RTN","EDPCTRL",121,0) ; --------------------------------- "RTN","EDPCTRL",122,0) ; "RTN","EDPCTRL",123,0) ; removeLogEntry "RTN","EDPCTRL",124,0) ; return "RTN","EDPCTRL",125,0) ; ... "RTN","EDPCTRL",126,0) I CMD="removeLogEntry" D G OUT "RTN","EDPCTRL",127,0) . D UPD^EDPLOG(REQ("logEntry",1),1) Q:$G(EDPFAIL) "RTN","EDPCTRL",128,0) . D GET^EDPQLP($$VAL("area"),-1) "RTN","EDPCTRL",129,0) ; "RTN","EDPCTRL",130,0) ; --------------------------------- "RTN","EDPCTRL",131,0) ; "RTN","EDPCTRL",132,0) ; initDisplayBoard "RTN","EDPCTRL",133,0) ; return "RTN","EDPCTRL",134,0) ; ...... "RTN","EDPCTRL",135,0) ; ... "RTN","EDPCTRL",136,0) I CMD="initDisplayBoard" D G OUT "RTN","EDPCTRL",137,0) . D GET^EDPQDBS($$VAL("area")) "RTN","EDPCTRL",138,0) . D GET^EDPQDB($$VAL("area"),$$VAL("board"),-1) "RTN","EDPCTRL",139,0) ; "RTN","EDPCTRL",140,0) ; --------------------------------- "RTN","EDPCTRL",141,0) ; "RTN","EDPCTRL",142,0) ; refreshDisplayBoard "RTN","EDPCTRL",143,0) ; return ... "RTN","EDPCTRL",144,0) I CMD="refreshDisplayBoard" D G OUT "RTN","EDPCTRL",145,0) . D GET^EDPQDB($$VAL("area"),$$VAL("board"),-1) "RTN","EDPCTRL",146,0) ; "RTN","EDPCTRL",147,0) ; --------------------------------- "RTN","EDPCTRL",148,0) ; "RTN","EDPCTRL",149,0) ; matchClosed "RTN","EDPCTRL",150,0) ; return ... "RTN","EDPCTRL",151,0) I CMD="matchClosed" D G OUT "RTN","EDPCTRL",152,0) . D CLOSED^EDPQLP($$VAL("area"),$$VAL("partial")) "RTN","EDPCTRL",153,0) ; "RTN","EDPCTRL",154,0) ; --------------------------------- "RTN","EDPCTRL",155,0) ; "RTN","EDPCTRL",156,0) ; loadConfiguration "RTN","EDPCTRL",157,0) ; return ... "RTN","EDPCTRL",158,0) ; ...... "RTN","EDPCTRL",159,0) ; ... "RTN","EDPCTRL",160,0) ; ... "RTN","EDPCTRL",161,0) ; ... "RTN","EDPCTRL",162,0) ; ... "RTN","EDPCTRL",163,0) ; ... "RTN","EDPCTRL",164,0) I CMD="loadConfiguration" D G OUT "RTN","EDPCTRL",165,0) . D LOADBRD^EDPBCF($$VAL("area")) "RTN","EDPCTRL",166,0) ; "RTN","EDPCTRL",167,0) ; --------------------------------- "RTN","EDPCTRL",168,0) ; "RTN","EDPCTRL",169,0) ; saveConfigBoard "RTN","EDPCTRL",170,0) ; return "RTN","EDPCTRL",171,0) I CMD="saveConfigBoard" D G OUT "RTN","EDPCTRL",172,0) . D SAVEBRD^EDPBCF(.REQ) ; pass whole request for parsing "RTN","EDPCTRL",173,0) ; "RTN","EDPCTRL",174,0) ; --------------------------------- "RTN","EDPCTRL",175,0) ; "RTN","EDPCTRL",176,0) ; saveBedConfig "RTN","EDPCTRL",177,0) ; return "RTN","EDPCTRL",178,0) I CMD="saveBedConfig" D G OUT "RTN","EDPCTRL",179,0) . D SAVE^EDPBRM(.REQ) ; pass whole request for parsing "RTN","EDPCTRL",180,0) ; "RTN","EDPCTRL",181,0) ; --------------------------------- "RTN","EDPCTRL",182,0) ; "RTN","EDPCTRL",183,0) ; saveColorConfig "RTN","EDPCTRL",184,0) ; return "RTN","EDPCTRL",185,0) I CMD="saveColorConfig" D G OUT "RTN","EDPCTRL",186,0) . D SAVE^EDPBCM(.REQ) ; pass whole request for parsing "RTN","EDPCTRL",187,0) ; "RTN","EDPCTRL",188,0) ; --------------------------------- "RTN","EDPCTRL",189,0) ; "RTN","EDPCTRL",190,0) ; loadSelectionConfig "RTN","EDPCTRL",191,0) ; return ....... "RTN","EDPCTRL",192,0) I CMD="loadSelectionConfig" D G OUT "RTN","EDPCTRL",193,0) . D LOAD^EDPBSL($$VAL("area")) "RTN","EDPCTRL",194,0) ; "RTN","EDPCTRL",195,0) ; --------------------------------- "RTN","EDPCTRL",196,0) ; "RTN","EDPCTRL",197,0) ; loadStaffConfig "RTN","EDPCTRL",198,0) ; return providers, nurses, staff for area "RTN","EDPCTRL",199,0) I CMD="loadStaffConfig" D G OUT "RTN","EDPCTRL",200,0) . D LOAD^EDPBST($$VAL("area")) "RTN","EDPCTRL",201,0) ; "RTN","EDPCTRL",202,0) ; --------------------------------- "RTN","EDPCTRL",203,0) ; "RTN","EDPCTRL",204,0) ; saveStaffConfig "RTN","EDPCTRL",205,0) ; return "RTN","EDPCTRL",206,0) I CMD="saveStaffConfig" D G OUT "RTN","EDPCTRL",207,0) . D SAVE^EDPBST(.REQ) ; pass whole request for parsing "RTN","EDPCTRL",208,0) ; "RTN","EDPCTRL",209,0) ; --------------------------------- "RTN","EDPCTRL",210,0) ; "RTN","EDPCTRL",211,0) ; matchPersons "RTN","EDPCTRL",212,0) ; return ... "RTN","EDPCTRL",213,0) I CMD="matchPersons" D G OUT "RTN","EDPCTRL",214,0) . D MATCH^EDPFPER($$VAL("partial"),$$VAL("personType")) "RTN","EDPCTRL",215,0) ; "RTN","EDPCTRL",216,0) ; --------------------------------- "RTN","EDPCTRL",217,0) ; "RTN","EDPCTRL",218,0) ; saveParamConfig "RTN","EDPCTRL",219,0) ; return "RTN","EDPCTRL",220,0) I CMD="saveParamConfig" D G OUT "RTN","EDPCTRL",221,0) . D SAVE^EDPBPM($$VAL("area"),$$VAL("param")) "RTN","EDPCTRL",222,0) ; "RTN","EDPCTRL",223,0) ; --------------------------------- "RTN","EDPCTRL",224,0) ; "RTN","EDPCTRL",225,0) ; saveSelectionConfig "RTN","EDPCTRL",226,0) ; return "RTN","EDPCTRL",227,0) I CMD="saveSelectionConfig" D G OUT "RTN","EDPCTRL",228,0) . D SAVE^EDPBSL(.REQ) "RTN","EDPCTRL",229,0) ; "RTN","EDPCTRL",230,0) ; --------------------------------- "RTN","EDPCTRL",231,0) ; "RTN","EDPCTRL",232,0) ; getReport "RTN","EDPCTRL",233,0) ; return ... "RTN","EDPCTRL",234,0) ; "RTN","EDPCTRL",235,0) ; ... "RTN","EDPCTRL",236,0) I CMD="getReport" D G OUT "RTN","EDPCTRL",237,0) . D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id")) "RTN","EDPCTRL",238,0) ; "RTN","EDPCTRL",239,0) ; --------------------------------- "RTN","EDPCTRL",240,0) ; "RTN","EDPCTRL",241,0) ; getCSV "RTN","EDPCTRL",242,0) ; return TAB separated values for report "RTN","EDPCTRL",243,0) I CMD="getCSV" D G OUT "RTN","EDPCTRL",244,0) . N EDPCSV ; CSV mode uses EDPCSV instead of EDPXML "RTN","EDPCTRL",245,0) . D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"),1) "RTN","EDPCTRL",246,0) . M EDPXML=EDPCSV "RTN","EDPCTRL",247,0) ; "RTN","EDPCTRL",248,0) ; --------------------------------- "RTN","EDPCTRL",249,0) ; else "RTN","EDPCTRL",250,0) D XML^EDPX("") "RTN","EDPCTRL",251,0) ; end switch "RTN","EDPCTRL",252,0) ; "RTN","EDPCTRL",253,0) OUT ; output the XML "RTN","EDPCTRL",254,0) I $L($G(EDPHTTP)) D ; if in CSP mode "RTN","EDPCTRL",255,0) . U EDPHTTP "RTN","EDPCTRL",256,0) . W "",! "RTN","EDPCTRL",257,0) . N I S I=0 F S I=$O(EDPXML(I)) Q:'I W EDPXML(I),! "RTN","EDPCTRL",258,0) . W "",! "RTN","EDPCTRL",259,0) END Q "RTN","EDPCTRL",260,0) ; "RTN","EDPCTRL",261,0) VAL(X) ; return value from request "RTN","EDPCTRL",262,0) Q $G(REQ(X,1)) "RTN","EDPDD") 0^10^B107293 "RTN","EDPDD",1,0) EDPDD ;SLC/KCM - Test Update ED Log - Update "RTN","EDPDD",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPDD",3,0) ; "RTN","EDPDD",4,0) ISGONE(STS) ; "RTN","EDPDD",5,0) Q STS=$O(^EDPB(233.1,"B","edp.status.gone",0)) "RTN","EDPLOG") 0^19^B16849923 "RTN","EDPLOG",1,0) EDPLOG ;SLC/KCM - Update ED Log - Update "RTN","EDPLOG",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPLOG",3,0) ; "RTN","EDPLOG",4,0) ;TODO: add transaction processing "RTN","EDPLOG",5,0) ; "RTN","EDPLOG",6,0) UPD(REQ,REMOVE) ; Update a record "RTN","EDPLOG",7,0) N REC D NVPARSE^EDPX(.REC,REQ) "RTN","EDPLOG",8,0) N IEN S IEN=$$VAL("id") "RTN","EDPLOG",9,0) I '$G(IEN) D FAIL("upd",2300007) Q "RTN","EDPLOG",10,0) I '$D(^EDP(230,IEN,0)) D FAIL("upd",2300006) Q "RTN","EDPLOG",11,0) N ERR S ERR=$$VALID^EDPLOG1(.REC) I $L(ERR) D FAIL("upd",ERR) Q "RTN","EDPLOG",12,0) ; "RTN","EDPLOG",13,0) ; compute the local time "RTN","EDPLOG",14,0) N TIME S TIME=$$FMADD^XLFDT($$NOW^XLFDT,0,0,+$P(^EDP(230,IEN,0),U,12),0) "RTN","EDPLOG",15,0) ; before allowing remove, check the required fields "RTN","EDPLOG",16,0) S REMOVE=$G(REMOVE,0) "RTN","EDPLOG",17,0) I REMOVE D RDY2RMV Q:REC("status")'=$$CODE^EDPX("edp.status.gone") "RTN","EDPLOG",18,0) ; "RTN","EDPLOG",19,0) ; get the existing log entry "RTN","EDPLOG",20,0) N X0,X1,X2,X3,AREA,I "RTN","EDPLOG",21,0) S X0=^EDP(230,IEN,0),X1=$G(^(1)),X2=$G(^(2)),X3=$G(^(3)) "RTN","EDPLOG",22,0) S AREA=$P(X0,U,3),^EDPB(231.9,AREA,230)=$H ; last update timestamp "RTN","EDPLOG",23,0) ; "RTN","EDPLOG",24,0) ; if new DFN, register at site "RTN","EDPLOG",25,0) I '$P(X0,U,6),+$$VAL("dfn") D NEWLOG^EDPMAIL(AREA,IEN,$$VAL("dfn")) "RTN","EDPLOG",26,0) ; "RTN","EDPLOG",27,0) N NAME,SSN S NAME=$$VAL("name"),SSN=$$VAL("ssn") "RTN","EDPLOG",28,0) ; Update any fields that have values passed in "RTN","EDPLOG",29,0) N FDA,FDAIEN,DIERR,HIST "RTN","EDPLOG",30,0) D SETFDA(X0,4,"name",.04) "RTN","EDPLOG",31,0) D SETFDA(X0,5,"ssn",.05) "RTN","EDPLOG",32,0) D SETFDA(X0,6,"dfn",.06) "RTN","EDPLOG",33,0) D SETFDA(X0,8,"inTS",.08) "RTN","EDPLOG",34,0) D SETFDA(X0,9,"outTS",.09) "RTN","EDPLOG",35,0) D SETFDA(X0,10,"arrival",.1) "RTN","EDPLOG",36,0) D SETFDA(X1,1,"complaint",1.1) "RTN","EDPLOG",37,0) D SETFDA(X2,1,"compLong",2) "RTN","EDPLOG",38,0) D SETFDA(X3,2,"status",3.2) "RTN","EDPLOG",39,0) D SETFDA(X3,3,"acuity",3.3) "RTN","EDPLOG",40,0) D SETFDA(X3,4,"bed",3.4) "RTN","EDPLOG",41,0) D SETFDA(X3,5,"provider",3.5) "RTN","EDPLOG",42,0) D SETFDA(X3,6,"nurse",3.6) "RTN","EDPLOG",43,0) D SETFDA(X3,7,"resident",3.7) "RTN","EDPLOG",44,0) D SETFDA(X3,8,"comment",3.8) "RTN","EDPLOG",45,0) D SETFDA(X1,5,"delay",1.5) "RTN","EDPLOG",46,0) D SETFDA(X1,2,"disposition",1.2) "RTN","EDPLOG",47,0) I $G(FDA(230,IEN_",",1.2)) S FDA(230,IEN_",",1.3)=TIME "RTN","EDPLOG",48,0) I $L(NAME)&$L(SSN) S FDA(230,IEN_",",.11)=$E(NAME)_$E(SSN,6,9) "RTN","EDPLOG",49,0) I $D(HIST)>9 D SAVE^EDPLOGH(IEN,TIME,.HIST) "RTN","EDPLOG",50,0) I $D(FDA)>9 D FILE^DIE("","FDA","ERR") "RTN","EDPLOG",51,0) I $D(DIERR) D FAIL("upd",2300008) Q "RTN","EDPLOG",52,0) K FDA,ERR "RTN","EDPLOG",53,0) ; "RTN","EDPLOG",54,0) D1 N DIAG S DIAG="diagnosis-0",I=0 "RTN","EDPLOG",55,0) F S DIAG=$O(REC(DIAG)) Q:$E(DIAG,1,10)'="diagnosis-" D "RTN","EDPLOG",56,0) . S I=I+1,REC("diagnosis",I)=REC(DIAG) "RTN","EDPLOG",57,0) I $D(REC("diagnosis"))>9 D Q:$D(DIERR) ; replace the diagnosis multiple "RTN","EDPLOG",58,0) . D DELDIAG(IEN) "RTN","EDPLOG",59,0) . S FDA(230,IEN_",",1.4)=TIME "RTN","EDPLOG",60,0) . S I=0 F S I=$O(REC("diagnosis",I)) Q:'I D "RTN","EDPLOG",61,0) . . S FDA(230.04,"+"_I_","_IEN_",",.01)=$P(REC("diagnosis",I),U,3) "RTN","EDPLOG",62,0) . . S FDA(230.04,"+"_I_","_IEN_",",.02)=$P(REC("diagnosis",I),U,2) "RTN","EDPLOG",63,0) . D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPLOG",64,0) . I $D(DIERR) D FAIL("upd",2300008) Q "RTN","EDPLOG",65,0) . K FDA,FDAIEN,ERR "RTN","EDPLOG",66,0) ; "RTN","EDPLOG",67,0) D XML^EDPX("") "RTN","EDPLOG",68,0) Q "RTN","EDPLOG",69,0) DELDIAG(IEN) ; delete the diagnosis multiple "RTN","EDPLOG",70,0) I '$O(^EDP(230,IEN,4,0)) Q ; no child nodes "RTN","EDPLOG",71,0) N DA,DIK S DA=0,DA(1)=IEN,DIK="^EDP(230,"_DA(1)_",4," "RTN","EDPLOG",72,0) F S DA=$O(^EDP(230,IEN,4,DA)) Q:'DA D ^DIK "RTN","EDPLOG",73,0) Q "RTN","EDPLOG",74,0) RDY2RMV ; check required fields & set up so ready to remove "RTN","EDPLOG",75,0) ; called from UPD, expects REC and IEN and TIME "RTN","EDPLOG",76,0) N X,X1,AREA,MIN "RTN","EDPLOG",77,0) S X="",AREA=$P(^EDP(230,IEN,0),U,3),X1=$G(^EDPB(231.9,AREA,1)) "RTN","EDPLOG",78,0) S MIN=$$VAL("inTS") S:'MIN MIN=$P(^EDP(230,IEN,0),U,8) "RTN","EDPLOG",79,0) S MIN=$$FMDIFF^XLFDT(TIME,MIN,2)\60 "RTN","EDPLOG",80,0) I $P(X1,U,1),'$L($$VAL("diagnosis-1")) S X="diagnosis " "RTN","EDPLOG",81,0) I $P(X1,U,3),'$$VAL("disposition") S X=X_"disposition " "RTN","EDPLOG",82,0) I $P(X1,U,4),(MIN>$P(X1,U,5)),'$$VAL("delay") S X=X_" delay reason" "RTN","EDPLOG",83,0) I $L(X) D FAIL("upd","Fields required for remove are missing: "_X) Q "RTN","EDPLOG",84,0) I '$$VAL("outTS") S REC("outTS")=TIME "RTN","EDPLOG",85,0) S REC("status")=$$CODE^EDPX("edp.status.gone") "RTN","EDPLOG",86,0) ; unregister DFN at site "RTN","EDPLOG",87,0) D DELLOG^EDPMAIL(AREA,IEN) "RTN","EDPLOG",88,0) Q "RTN","EDPLOG",89,0) VAL(X) ; Returns parameter value or null "RTN","EDPLOG",90,0) ; HTTP passes HTML-escaped values in an array as REC(param,1) "RTN","EDPLOG",91,0) Q $G(REC(X)) "RTN","EDPLOG",92,0) ; "RTN","EDPLOG",93,0) SETFDA(NODE,P,SUB,FLD) ; Creates value in FDA & HIST arrays as appropriate "RTN","EDPLOG",94,0) ; from UPD, expects REC, FDA, HIST to be defined "RTN","EDPLOG",95,0) Q:'$D(REC(SUB)) ; value not sent in message "RTN","EDPLOG",96,0) Q:$P(NODE,U,P)=REC(SUB) ; value is the same "RTN","EDPLOG",97,0) S FDA(230,IEN_",",FLD)=REC(SUB) "RTN","EDPLOG",98,0) ; save the changed fields in the history "RTN","EDPLOG",99,0) I $L(REC(SUB)) D "RTN","EDPLOG",100,0) . S:FLD=1.1 FLD=.07 ; complaint "RTN","EDPLOG",101,0) . S:FLD=1.2 FLD=.11 ; disposition "RTN","EDPLOG",102,0) . S:FLD=1.5 FLD=.12 ; delay "RTN","EDPLOG",103,0) . S HIST(230.1,"+1,",FLD)=REC(SUB) "RTN","EDPLOG",104,0) Q "RTN","EDPLOG",105,0) FAIL(ELEM,MSG) ; creates failure node for returned XML "RTN","EDPLOG",106,0) N X "RTN","EDPLOG",107,0) I +MSG S MSG=$$MSG^EDPX(MSG) "RTN","EDPLOG",108,0) S X="<"_ELEM_" id='"_$$VAL("id")_"' status='fail' msg='"_MSG_"' />" "RTN","EDPLOG",109,0) D XML^EDPX(X) "RTN","EDPLOG",110,0) S EDPFAIL=1 "RTN","EDPLOG",111,0) Q "RTN","EDPLOG1") 0^20^B2757150 "RTN","EDPLOG1",1,0) EDPLOG1 ;SLC/KCM - Update ED Log - Validate "RTN","EDPLOG1",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPLOG1",3,0) ; "RTN","EDPLOG1",4,0) VALID(REC) ; validate the entries passed in REC "RTN","EDPLOG1",5,0) D XLATE("arrival") "RTN","EDPLOG1",6,0) D XLATE("bed") "RTN","EDPLOG1",7,0) D XLATE("acuity") "RTN","EDPLOG1",8,0) D XLATE("status") "RTN","EDPLOG1",9,0) D XLATE("provider") "RTN","EDPLOG1",10,0) D XLATE("nurse") "RTN","EDPLOG1",11,0) D XLATE("resident") "RTN","EDPLOG1",12,0) D XLATE("disposition") "RTN","EDPLOG1",13,0) D XLATE("delay") "RTN","EDPLOG1",14,0) ; "RTN","EDPLOG1",15,0) N ERR S ERR="" "RTN","EDPLOG1",16,0) D ADDTXT(.ERR,$$CHECK("name",230,.04,"Patient Name")) "RTN","EDPLOG1",17,0) D ADDTXT(.ERR,$$CHECK("ssn",230,.05,"Social Security Number")) "RTN","EDPLOG1",18,0) D ADDTXT(.ERR,$$CHECK("complaint",230,1.1,"Complaint")) "RTN","EDPLOG1",19,0) D ADDTXT(.ERR,$$CHECK("compLong",230,2,"Long Complaint")) "RTN","EDPLOG1",20,0) D ADDTXT(.ERR,$$CHECK("comment",230,3.8,"Comment")) "RTN","EDPLOG1",21,0) ; "RTN","EDPLOG1",22,0) N DIAG S DIAG="diagnosis-0" "RTN","EDPLOG1",23,0) F S DIAG=$O(REC(DIAG)) Q:$E(DIAG,1,10)'="diagnosis-" D "RTN","EDPLOG1",24,0) . S REC("edpDiagnosis")=$P(REC(DIAG),U,2) "RTN","EDPLOG1",25,0) . D ADDTXT(ERR,$$CHECK("edpDiagnosis",230.04,.01,"Diagnosis")) "RTN","EDPLOG1",26,0) Q ERR "RTN","EDPLOG1",27,0) ; "RTN","EDPLOG1",28,0) CHECK(NAME,FILE,FIELD,MSG) ; return error msg if field is not valid "RTN","EDPLOG1",29,0) ; called from VALID, assumes REC is defined "RTN","EDPLOG1",30,0) N VAL,RESULT "RTN","EDPLOG1",31,0) S VAL=$G(REC(NAME)) "RTN","EDPLOG1",32,0) Q:VAL="" "" "RTN","EDPLOG1",33,0) D CHK^DIE(FILE,FIELD,"",VAL,.RESULT) "RTN","EDPLOG1",34,0) Q:RESULT="^" MSG_" is not valid." "RTN","EDPLOG1",35,0) Q "" "RTN","EDPLOG1",36,0) ADDTXT(X,NEW) ; add new text comma delimited "RTN","EDPLOG1",37,0) I $L(NEW),$L(X) S X=X_", "_NEW "RTN","EDPLOG1",38,0) I $L(NEW),'$L(X) S X=NEW "RTN","EDPLOG1",39,0) Q "RTN","EDPLOG1",40,0) XLATE(NAME) ; "RTN","EDPLOG1",41,0) Q:'$D(REC(NAME)) "RTN","EDPLOG1",42,0) ;I REC(NAME)=0 S REC(NAME)="" ; store 0 when removing staff "RTN","EDPLOG1",43,0) I REC(NAME)=-1 S REC(NAME)="@" "RTN","EDPLOG1",44,0) Q "RTN","EDPLOGA") 0^21^B7949056 "RTN","EDPLOGA",1,0) EDPLOGA ;SLC/KCM - Add Entry to ED Log "RTN","EDPLOGA",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPLOGA",3,0) ; "RTN","EDPLOGA",4,0) ;TODO: add transaction processing "RTN","EDPLOGA",5,0) ; "RTN","EDPLOGA",6,0) ADD(NEWPT,AREA,TIME,CHOICES) ; Create a new ED Log record for a patient "RTN","EDPLOGA",7,0) ; add the new record to the returned XML "RTN","EDPLOGA",8,0) ; NEWPT = dfn \T name \T dob \T ssn "RTN","EDPLOGA",9,0) N DFN,NAME,SSN,TZMIN,STATUS,BED,ARR,REC,AMB "RTN","EDPLOGA",10,0) S AMB="(ambulance en route)" "RTN","EDPLOGA",11,0) ; "RTN","EDPLOGA",12,0) ; Set up the patient fields that were passed in "RTN","EDPLOGA",13,0) D NVPARSE^EDPX(.REC,NEWPT) "RTN","EDPLOGA",14,0) S DFN=REC("dfn") "RTN","EDPLOGA",15,0) ;I DFN S REC("name")=$P(^DPT(DFN,0),U,1),REC("ssn")=$P(^DPT(DFN,0),U,9) "RTN","EDPLOGA",16,0) S NAME=REC("name") "RTN","EDPLOGA",17,0) S SSN=REC("ssn") S:SSN="*SENSITIVE*" SSN="" "RTN","EDPLOGA",18,0) ; calculate time zone minutes -- add these to server time to get local time "RTN","EDPLOGA",19,0) S TZMIN=$$FMDIFF^XLFDT($$NOW^XLFDT,TIME,2)\60 "RTN","EDPLOGA",20,0) I $P($G(^EDPB(231.9,AREA,0)),U,3)-TZMIN>10 D TZSAVE^EDPBPM(AREA,TZMIN) "RTN","EDPLOGA",21,0) ; "RTN","EDPLOGA",22,0) ; Add default values to stub entry (should be based on config for area) "RTN","EDPLOGA",23,0) S BED=$O(^EDPB(231.8,"AC",EDPSITE,AREA,"WAIT",0)) "RTN","EDPLOGA",24,0) I $G(REC("name"))=AMB D "RTN","EDPLOGA",25,0) . S ARR=$O(^EDPB(233.1,"B","edp.arrival.ambulance",0)) "RTN","EDPLOGA",26,0) . S BED=$O(^EDPB(231.8,"AC",EDPSITE,AREA,"AMBU",0)) "RTN","EDPLOGA",27,0) ; "RTN","EDPLOGA",28,0) I +DFN,$D(^EDP(230,"AP",EDPSITE,AREA,DFN)) D FAIL^EDPLOG("add",2300002) Q "RTN","EDPLOGA",29,0) I +SSN,$D(^EDP(230,"AS",EDPSITE,AREA,SSN)) D FAIL^EDPLOG("add",2300002) Q "RTN","EDPLOGA",30,0) N ERR S ERR=$$VALID^EDPLOG1(.REC) I $L(ERR) D FAIL^EDPLOG("add",ERR) Q "RTN","EDPLOGA",31,0) S ^EDPB(231.9,AREA,230)=$H ; last update timestamp "RTN","EDPLOGA",32,0) ; "RTN","EDPLOGA",33,0) ; Create a current log record "RTN","EDPLOGA",34,0) N FDA,FDAIEN,DIERR,HIST,HISTIEN,LOGIEN "RTN","EDPLOGA",35,0) S FDA(230,"+1,",.01)=TIME "RTN","EDPLOGA",36,0) S FDA(230,"+1,",.02)=EDPSITE "RTN","EDPLOGA",37,0) S FDA(230,"+1,",.03)=AREA "RTN","EDPLOGA",38,0) S FDA(230,"+1,",.04)=NAME "RTN","EDPLOGA",39,0) S FDA(230,"+1,",.05)=SSN "RTN","EDPLOGA",40,0) S FDA(230,"+1,",.06)=DFN "RTN","EDPLOGA",41,0) S FDA(230,"+1,",.12)=TZMIN "RTN","EDPLOGA",42,0) S FDA(230,"+1,",3.4)=BED "RTN","EDPLOGA",43,0) I $L(SSN) S FDA(230,"+1,",.11)=$E(NAME)_$E(SSN,6,9) "RTN","EDPLOGA",44,0) I NAME=AMB S FDA(230,"+1,",.11)="(amb)" "RTN","EDPLOGA",45,0) I NAME'=AMB S FDA(230,"+1,",.08)=TIME "RTN","EDPLOGA",46,0) I $G(ARR) S FDA(230,"+1,",.1)=ARR "RTN","EDPLOGA",47,0) M HIST(230.1)=FDA(230) "RTN","EDPLOGA",48,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPLOGA",49,0) I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q "RTN","EDPLOGA",50,0) S LOGIEN=FDAIEN(1) "RTN","EDPLOGA",51,0) ; "RTN","EDPLOGA",52,0) ; Create the first history entry "RTN","EDPLOGA",53,0) S HIST(230.1,"+1,",.01)=LOGIEN "RTN","EDPLOGA",54,0) S HIST(230.1,"+1,",.02)=TIME "RTN","EDPLOGA",55,0) S HIST(230.1,"+1,",.03)=EDPUSER "RTN","EDPLOGA",56,0) K HIST(230.1,"+1,",.11) "RTN","EDPLOGA",57,0) D UPDATE^DIE("","HIST","HISTIEN","ERR") "RTN","EDPLOGA",58,0) I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q "RTN","EDPLOGA",59,0) ; "RTN","EDPLOGA",60,0) ; register DFN at site "RTN","EDPLOGA",61,0) I +DFN D NEWLOG^EDPMAIL(AREA,LOGIEN,DFN) "RTN","EDPLOGA",62,0) ; "RTN","EDPLOGA",63,0) D XML^EDPX("") "RTN","EDPLOGA",64,0) ; "RTN","EDPLOGA",65,0) D GET^EDPQLE(FDAIEN(1),CHOICES) "RTN","EDPLOGA",66,0) Q "RTN","EDPLOGA",67,0) ; "RTN","EDPLOGA",68,0) DEL(AREA,LOGID) ; Delete Stub Log Entry "RTN","EDPLOGA",69,0) N I,CNT,DIK,DA "RTN","EDPLOGA",70,0) S I=0,CNT=0 F S I=$O(^EDP(230.1,"B",LOGID,I)) Q:'I S CNT=CNT+1 "RTN","EDPLOGA",71,0) I $L($P($G(^EDP(230,LOGID,1)),U))!(CNT>1) D Q "RTN","EDPLOGA",72,0) . D FAIL^EDPLOG("upd","Does not appear to be a stub entry") "RTN","EDPLOGA",73,0) ; "RTN","EDPLOGA",74,0) ; Delete initial history entry "RTN","EDPLOGA",75,0) S DIK="^EDP(230.1,",DA=$O(^EDP(230.1,"B",LOGID,0)) "RTN","EDPLOGA",76,0) I DA D ^DIK "RTN","EDPLOGA",77,0) ; Delete stub log entry "RTN","EDPLOGA",78,0) S DIK="^EDP(230,",DA=LOGID "RTN","EDPLOGA",79,0) D ^DIK "RTN","EDPLOGA",80,0) ; "RTN","EDPLOGA",81,0) D XML^EDPX("") "RTN","EDPLOGA",82,0) Q "RTN","EDPLOGH") 0^22^B269228 "RTN","EDPLOGH",1,0) EDPLOGH ;SLC/KCM - Add History Entry for ED Log "RTN","EDPLOGH",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPLOGH",3,0) ; "RTN","EDPLOGH",4,0) ;TODO: add transaction processing "RTN","EDPLOGH",5,0) ; "RTN","EDPLOGH",6,0) SAVE(IEN,TIME,HIST) ; save a new history entry for changed fields "RTN","EDPLOGH",7,0) Q:$D(HIST)<10 "RTN","EDPLOGH",8,0) ; "RTN","EDPLOGH",9,0) N HISTIEN,DIERR "RTN","EDPLOGH",10,0) S HIST(230.1,"+1,",.01)=IEN "RTN","EDPLOGH",11,0) S HIST(230.1,"+1,",.02)=TIME "RTN","EDPLOGH",12,0) S HIST(230.1,"+1,",.03)=EDPUSER "RTN","EDPLOGH",13,0) D UPDATE^DIE("","HIST","HISTIEN","ERR") "RTN","EDPLOGH",14,0) Q "RTN","EDPMAIL") 0^23^B8916423 "RTN","EDPMAIL",1,0) EDPMAIL ;SLC/KCM - Process incoming mail for posted events "RTN","EDPMAIL",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPMAIL",3,0) ; "RTN","EDPMAIL",4,0) ; INCOMING "RTN","EDPMAIL",5,0) ; "RTN","EDPMAIL",6,0) IN ; parse incoming message from facility "RTN","EDPMAIL",7,0) N I,PARAM,LOG,ORIFN "RTN","EDPMAIL",8,0) F I=1:1 X XMREC Q:XMER<0 I XMRG?1.E1"="1.E D "RTN","EDPMAIL",9,0) . S PARAM($P(XMRG,"="))=$P(XMRG,"=",2,99) "RTN","EDPMAIL",10,0) S LOG=$$VAL("id"),ORIFN=$$VAL("orifn") "RTN","EDPMAIL",11,0) I $$VAL("command")="newOrder" D NEW "RTN","EDPMAIL",12,0) I $$VAL("command")="updateOrder" D UPD "RTN","EDPMAIL",13,0) I $$VAL("command")="deleteOrder" D DEL "RTN","EDPMAIL",14,0) I $$VAL("command")="verifyOrder" D VER "RTN","EDPMAIL",15,0) I $$VAL("command")="completeOrder" D COMP "RTN","EDPMAIL",16,0) I $$VAL("command")="patientCheckIn" D CHKIN "RTN","EDPMAIL",17,0) I $$VAL("command")="sendDomain" D SETDOM "RTN","EDPMAIL",18,0) I $$VAL("command")="convertVisit" D EN1^EDPCONV(.PARAM) "RTN","EDPMAIL",19,0) Q "RTN","EDPMAIL",20,0) ; "RTN","EDPMAIL",21,0) NEW ; add new order "RTN","EDPMAIL",22,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",23,0) N X,Y,DIC,DA "RTN","EDPMAIL",24,0) S DIC="^EDP(230,"_LOG_",8,",DIC(0)="LZ",DA(1)=LOG,X=+ORIFN "RTN","EDPMAIL",25,0) S DIC("DR")=".02///"_$$VAL("pkg")_";.03///N;.05///"_$$VAL("release") "RTN","EDPMAIL",26,0) S:$$VAL("stat") DIC("DR")=DIC("DR")_";.04///1" "RTN","EDPMAIL",27,0) D FILE^DICN "RTN","EDPMAIL",28,0) Q "RTN","EDPMAIL",29,0) UPD ; update order "RTN","EDPMAIL",30,0) Q:'LOG Q:'ORIFN Q:'$L($$VAL("sts")) "RTN","EDPMAIL",31,0) N IEN S IEN=$$FIND Q:IEN<1 "RTN","EDPMAIL",32,0) I $D(^EDP(230,LOG,8,+DA,0)) S $P(^(0),U,3)=$$VAL("sts") "RTN","EDPMAIL",33,0) Q "RTN","EDPMAIL",34,0) DEL ; delete order "RTN","EDPMAIL",35,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",36,0) N DIK,DA "RTN","EDPMAIL",37,0) S DA=$$FIND Q:DA<1 "RTN","EDPMAIL",38,0) S DIK="^EDP(230,"_LOG_",8,",DA(1)=LOG "RTN","EDPMAIL",39,0) D ^DIK "RTN","EDPMAIL",40,0) Q "RTN","EDPMAIL",41,0) VER ; verify order "RTN","EDPMAIL",42,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",43,0) N IEN S IEN=$$FIND Q:IEN<1 "RTN","EDPMAIL",44,0) I $P($G(^EDP(230,LOG,8,IEN,0)),U,3)'="C" S $P(^(0),U,3)="A" "RTN","EDPMAIL",45,0) Q "RTN","EDPMAIL",46,0) COMP ; complete order "RTN","EDPMAIL",47,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",48,0) N IEN S IEN=$$FIND Q:IEN<1 "RTN","EDPMAIL",49,0) S $P(^(0),U,3)="C" "RTN","EDPMAIL",50,0) Q "RTN","EDPMAIL",51,0) ; "RTN","EDPMAIL",52,0) FIND() ; -- return ien of ORIFN in multiple "RTN","EDPMAIL",53,0) N Y S Y=+$O(^EDP(230,LOG,8,"B",+ORIFN,0)) "RTN","EDPMAIL",54,0) Q Y "RTN","EDPMAIL",55,0) ; "RTN","EDPMAIL",56,0) VAL(X) ; -- return parameter value or null if undefined "RTN","EDPMAIL",57,0) Q $G(PARAM(X)) "RTN","EDPMAIL",58,0) ; "RTN","EDPMAIL",59,0) CHKIN ; check in a patient "RTN","EDPMAIL",60,0) Q:'$$VAL("dfn") Q:'$$VAL("ssn") Q:'$L($$VAL("ptNm")) Q:'$L($$VAL("site")) "RTN","EDPMAIL",61,0) N NEWPT "RTN","EDPMAIL",62,0) S NEWPT=$$VAL("dfn")_$C(9)_$$VAL("ptNm")_$C(9)_$$VAL("dob")_$C(9)_$$VAL("ssn") "RTN","EDPMAIL",63,0) N AREA "RTN","EDPMAIL",64,0) S AREA=$O(^EDPB(231.9,"C",$$VAL("site"),0)) Q:'AREA "RTN","EDPMAIL",65,0) N EDPXML,EDPSITE "RTN","EDPMAIL",66,0) S EDPSITE=$$VAL("site") "RTN","EDPMAIL",67,0) D ADD^EDPLOGA(NEWPT,AREA,$$VAL("time"),0) "RTN","EDPMAIL",68,0) Q "RTN","EDPMAIL",69,0) SETDOM ; set the mail domain for a site "RTN","EDPMAIL",70,0) N EDPSITE,EDPXML,AREA "RTN","EDPMAIL",71,0) S EDPSITE=$$VAL("station") "RTN","EDPMAIL",72,0) D DFLTAREA^EDPQAR "RTN","EDPMAIL",73,0) S AREA=$O(^EDPB(231.9,"C",EDPSITE,0)) "RTN","EDPMAIL",74,0) I AREA D "RTN","EDPMAIL",75,0) . N FDA,FDAIEN,DIERR,ERR "RTN","EDPMAIL",76,0) . S FDA(231.9,AREA_",",.04)=$$VAL("domain") "RTN","EDPMAIL",77,0) . D FILE^DIE("","FDA","ERR") "RTN","EDPMAIL",78,0) Q "RTN","EDPMAIL",79,0) ; "RTN","EDPMAIL",80,0) ; OUTGOING "RTN","EDPMAIL",81,0) ; "RTN","EDPMAIL",82,0) NEWLOG(AREA,LOG,DFN) ; send registration message for new log entry "RTN","EDPMAIL",83,0) D SEND(AREA,"registerLog:"_LOG_":"_DFN) "RTN","EDPMAIL",84,0) Q "RTN","EDPMAIL",85,0) DELLOG(AREA,LOG) ; send delete message for removed log entry "RTN","EDPMAIL",86,0) D SEND(AREA,"removeLog:"_LOG) "RTN","EDPMAIL",87,0) Q "RTN","EDPMAIL",88,0) SEND(AREA,MSG) ; Send message to local facility "RTN","EDPMAIL",89,0) N DOMAIN S DOMAIN=$P(^EDPB(231.9,AREA,0),U,4) "RTN","EDPMAIL",90,0) Q:'$L(DOMAIN) "RTN","EDPMAIL",91,0) ; "RTN","EDPMAIL",92,0) N XMSUB,XMY,XMTEXT,EDPMSG "RTN","EDPMAIL",93,0) S XMSUB="EDIS Registration Event" "RTN","EDPMAIL",94,0) S EDPMSG(1)=MSG "RTN","EDPMAIL",95,0) S XMTEXT="EDPMSG(" "RTN","EDPMAIL",96,0) S XMY("S.EDPFLOGLISTENER@"_DOMAIN)="" "RTN","EDPMAIL",97,0) D ^XMD "RTN","EDPMAIL",98,0) Q "RTN","EDPQAR") 0^24^B1525958 "RTN","EDPQAR",1,0) EDPQAR ;SLC/KCM - Log Area Information "RTN","EDPQAR",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPQAR",3,0) ; "RTN","EDPQAR",4,0) PARAM(AREA) ; return parameters for area "RTN","EDPQAR",5,0) N X,X1 "RTN","EDPQAR",6,0) S X1=$G(^EDPB(231.9,AREA,1)) "RTN","EDPQAR",7,0) S X("reqDiag")=+$P(X1,U,1) "RTN","EDPQAR",8,0) S X("codedDiag")=+$P(X1,U,2) "RTN","EDPQAR",9,0) S X("reqDisp")=+$P(X1,U,3) "RTN","EDPQAR",10,0) S X("reqDelay")=+$P(X1,U,4) "RTN","EDPQAR",11,0) S X("minDelay")=+$P(X1,U,5) "RTN","EDPQAR",12,0) S X("residents")=+$P(X1,U,8) "RTN","EDPQAR",13,0) D XML^EDPX($$XMLA^EDPX("params",.X)) "RTN","EDPQAR",14,0) Q "RTN","EDPQAR",15,0) DFLTAREA ; return the default area for a site "RTN","EDPQAR",16,0) N X,DFLT "RTN","EDPQAR",17,0) S DFLT=$O(^EDPB(231.9,"C",EDPSITE,0)) "RTN","EDPQAR",18,0) I 'DFLT D ADDAREA S DFLT=$O(^EDPB(231.9,"C",EDPSITE,0)) "RTN","EDPQAR",19,0) S X("area")=DFLT "RTN","EDPQAR",20,0) I X("area") S X("areaNm")=$P(^EDPB(231.9,X("area"),0),U) "RTN","EDPQAR",21,0) D XML^EDPX($$XMLA^EDPX("user",.X)) "RTN","EDPQAR",22,0) Q "RTN","EDPQAR",23,0) ADDAREA ; add area if none is defined for this site "RTN","EDPQAR",24,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPQAR",25,0) S FDA(231.9,"+1,",.01)="Emergency Department" "RTN","EDPQAR",26,0) S FDA(231.9,"+1,",.02)=EDPSITE "RTN","EDPQAR",27,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPQAR",28,0) Q:$D(DIERR) "RTN","EDPQAR",29,0) ; "RTN","EDPQAR",30,0) N AREA S AREA=FDAIEN(1) "RTN","EDPQAR",31,0) D RESET^EDPBRS(AREA) "RTN","EDPQAR",32,0) Q "RTN","EDPQDB") 0^25^B23470314 "RTN","EDPQDB",1,0) EDPQDB ;SLC/KCM - Display Active Log Entries "RTN","EDPQDB",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPQDB",3,0) ; "RTN","EDPQDB",4,0) NXT() ; Increment to the next line "RTN","EDPQDB",5,0) S XML=XML+1 "RTN","EDPQDB",6,0) Q XML "RTN","EDPQDB",7,0) ; "RTN","EDPQDB",8,0) GET(AREA,BOARD,TOKEN) ; Get display board contents "RTN","EDPQDB",9,0) I $G(^EDPB(231.9,AREA,230))=TOKEN D XML^EDPX("") Q "RTN","EDPQDB",10,0) ; "RTN","EDPQDB",11,0) N EDPTIME S EDPTIME=$$FMADD^XLFDT($$NOW^XLFDT,0,0,+$P(^EDPB(231.9,AREA,0),U,3),0) "RTN","EDPQDB",12,0) N SEQ,BED,LOG,BEDS,DWHEN,DUP,ACU "RTN","EDPQDB",13,0) D XML^EDPX("") "RTN","EDPQDB",14,0) ; "RTN","EDPQDB",15,0) ; Get a list of all the beds in sequence for this area "RTN","EDPQDB",16,0) S BOARD=$G(BOARD) "RTN","EDPQDB",17,0) S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D "RTN","EDPQDB",18,0) . S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999 "RTN","EDPQDB",19,0) . S BEDS(SEQ,BED)="",BEDS("B",BED,SEQ)="" "RTN","EDPQDB",20,0) ; "RTN","EDPQDB",21,0) ; Insert the active log entries into the correct sequence for the beds "RTN","EDPQDB",22,0) S BED=0 F S BED=$O(^EDP(230,"AL",EDPSITE,AREA,BED)) Q:'BED D "RTN","EDPQDB",23,0) . S LOG=0 F S LOG=$O(^EDP(230,"AL",EDPSITE,AREA,BED,LOG)) Q:'LOG D "RTN","EDPQDB",24,0) . . I '$D(BEDS("B",BED)) S BEDS(99999,BED)="",BEDS("B",BED,99999)="" "RTN","EDPQDB",25,0) . . S SEQ=$O(BEDS("B",BED,0)) "RTN","EDPQDB",26,0) . . S ACU=$P($G(^EDP(230,LOG,3)),U,3) S:'ACU ACU=99 "RTN","EDPQDB",27,0) . . S BEDS(SEQ,BED,ACU,LOG)="" "RTN","EDPQDB",28,0) ; "RTN","EDPQDB",29,0) ; Loop thru the sequence of beds to create display board rows "RTN","EDPQDB",30,0) D BLDDUP^EDPQLP(.DUP,AREA) "RTN","EDPQDB",31,0) S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D "RTN","EDPQDB",32,0) . S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D "RTN","EDPQDB",33,0) . . I $L(BOARD),($P(^EDPB(231.8,BED,0),U,11)'=BOARD) Q "RTN","EDPQDB",34,0) . . S DWHEN=$P(^EDPB(231.8,BED,0),U,7) "RTN","EDPQDB",35,0) . . ; never display DWHEN=2 "RTN","EDPQDB",36,0) . . Q:DWHEN=2 "RTN","EDPQDB",37,0) . . ; always display DWHEN=1 "RTN","EDPQDB",38,0) . . I ($D(BEDS(SEQ,BED))<10)&(DWHEN=1) D EMPTY(BED) Q "RTN","EDPQDB",39,0) . . ; display if occupied DWHEN=0 "RTN","EDPQDB",40,0) . . S ACU=0 F S ACU=$O(BEDS(SEQ,BED,ACU)) Q:'ACU D "RTN","EDPQDB",41,0) . . . S LOG=0 F S LOG=$O(BEDS(SEQ,BED,ACU,LOG)) Q:'LOG D OCCUPIED(LOG,.DUP) "RTN","EDPQDB",42,0) ; "RTN","EDPQDB",43,0) D XML^EDPX("") "RTN","EDPQDB",44,0) Q "RTN","EDPQDB",45,0) EMPTY(BED) ; add row if unoccupied be should show "RTN","EDPQDB",46,0) N ROW "RTN","EDPQDB",47,0) S ROW("bed")=BED "RTN","EDPQDB",48,0) S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6) "RTN","EDPQDB",49,0) D XML^EDPX($$XMLA^EDPX("row",.ROW)) "RTN","EDPQDB",50,0) Q "RTN","EDPQDB",51,0) OCCUPIED(LOG,DUP) ; add log entry row "RTN","EDPQDB",52,0) N X0,X1,X3,ROW "RTN","EDPQDB",53,0) S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)) "RTN","EDPQDB",54,0) S ROW("id")=LOG "RTN","EDPQDB",55,0) S ROW("bed")=BED "RTN","EDPQDB",56,0) S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6) "RTN","EDPQDB",57,0) S ROW("ptNm")=$P($P(X0,U,4),",") "RTN","EDPQDB",58,0) S ROW("last4")=$P(X0,U,11) "RTN","EDPQDB",59,0) S ROW("complaint")=$P(X1,U,1) "RTN","EDPQDB",60,0) S ROW("md")=$P(X3,U,5) "RTN","EDPQDB",61,0) S ROW("mdNm")=$$INITIAL($P(X3,U,5)) "RTN","EDPQDB",62,0) S ROW("rn")=$P(X3,U,6) "RTN","EDPQDB",63,0) S ROW("rnNm")=$$INITIAL($P(X3,U,6)) "RTN","EDPQDB",64,0) S ROW("res")=$P(X3,U,7) "RTN","EDPQDB",65,0) S ROW("resNm")=$$INITIAL($P(X3,U,7)) "RTN","EDPQDB",66,0) S ROW("status")=$P(X3,U,2) "RTN","EDPQDB",67,0) S ROW("statusNm")=$$CAB($P(X3,U,2)) "RTN","EDPQDB",68,0) S ROW("acuity")=$P(X3,U,3) "RTN","EDPQDB",69,0) S ROW("acuityNm")=$$CAB($P(X3,U,3)) "RTN","EDPQDB",70,0) S ROW("emins")=$$MIN($P(X0,U,8)) "RTN","EDPQDB",71,0) S ROW("lmins")=$$LMIN(LOG) "RTN","EDPQDB",72,0) S ROW("similar")=$$SIM^EDPQLP(ROW("ptNm"),ROW("last4"),.DUP) "RTN","EDPQDB",73,0) ; "RTN","EDPQDB",74,0) N STS D ORDSTS(LOG,.STS) "RTN","EDPQDB",75,0) S ROW("lab")=STS("LP")_"/"_STS("LC") "RTN","EDPQDB",76,0) S ROW("labUrg")=STS("LS") "RTN","EDPQDB",77,0) S ROW("labMin")=STS("LO") "RTN","EDPQDB",78,0) S ROW("rad")=STS("RP")_"/"_STS("RC") "RTN","EDPQDB",79,0) S ROW("radUrg")=STS("RS") "RTN","EDPQDB",80,0) S ROW("radMin")=STS("RO") "RTN","EDPQDB",81,0) S ROW("ordNew")=STS("ON") "RTN","EDPQDB",82,0) S ROW("ordMin")=STS("OO") "RTN","EDPQDB",83,0) D XML^EDPX($$XMLA^EDPX("row",.ROW)) "RTN","EDPQDB",84,0) Q "RTN","EDPQDB",85,0) INITIAL(LOCID) ; Return initials "RTN","EDPQDB",86,0) Q:'LOCID "" "RTN","EDPQDB",87,0) N IEN S IEN=$O(^EDPB(231.7,"AD",EDPSITE,AREA,LOCID,0)) "RTN","EDPQDB",88,0) Q:IEN $P(^EDPB(231.7,IEN,0),U,7) "RTN","EDPQDB",89,0) Q "" "RTN","EDPQDB",90,0) CAB(IEN) ; Return code abbreviation "RTN","EDPQDB",91,0) Q:IEN $P(^EDPB(233.1,IEN,0),U,3) "RTN","EDPQDB",92,0) Q "" "RTN","EDPQDB",93,0) MIN(START) ; Return elapse time "RTN","EDPQDB",94,0) I 'START Q "" "RTN","EDPQDB",95,0) Q $$FMDIFF^XLFDT(EDPTIME,START,2)\60 "RTN","EDPQDB",96,0) ; "RTN","EDPQDB",97,0) LMIN(LOG) ; Return time at location "RTN","EDPQDB",98,0) N IEN,TS,TM S TM=0 "RTN","EDPQDB",99,0) S TS=0 F S TS=$O(^EDP(230.1,"ADR",LOG,TS)) Q:'TS D Q:TM "RTN","EDPQDB",100,0) . S IEN=0 F S IEN=$O(^EDP(230.1,"ADR",LOG,TS,IEN)) Q:'IEN D Q:TM "RTN","EDPQDB",101,0) . . I +$P($G(^EDP(230.1,IEN,3)),U,4) S TM=$P($G(^EDP(230.1,IEN,0)),U,2) "RTN","EDPQDB",102,0) I TM Q $$FMDIFF^XLFDT(EDPTIME,TM,2)\60 "RTN","EDPQDB",103,0) Q 0 "RTN","EDPQDB",104,0) ; "RTN","EDPQDB",105,0) ORDSTS(LOG,STS) ; compute statuses of orders "RTN","EDPQDB",106,0) N IEN,X0 "RTN","EDPQDB",107,0) S STS("OO")=9999999,STS("ON")=0 ; oldest order, new orders "RTN","EDPQDB",108,0) S STS("LP")=0,STS("LO")=9999999,STS("LS")=0,STS("LC")=0 "RTN","EDPQDB",109,0) S STS("RP")=0,STS("RO")=9999999,STS("RS")=0,STS("RC")=0 "RTN","EDPQDB",110,0) S IEN=0 F S IEN=$O(^EDP(230,LOG,8,IEN)) Q:'IEN D "RTN","EDPQDB",111,0) . S X0=^EDP(230,LOG,8,IEN,0) "RTN","EDPQDB",112,0) . I ($P(X0,U,3)="N")!($P(X0,U,3)="A") D "RTN","EDPQDB",113,0) . . I $P(X0,U,5)") "RTN","EDPQDBS",9,0) D CLRBED(AREA) "RTN","EDPQDBS",10,0) D CLRSTAFF(AREA,"md","P") "RTN","EDPQDBS",11,0) D CLRSTAFF(AREA,"res","R") "RTN","EDPQDBS",12,0) D CLRSTAFF(AREA,"rn","N") "RTN","EDPQDBS",13,0) N I S I=0 "RTN","EDPQDBS",14,0) F S I=$O(^EDPB(231.9,AREA,3,I)) Q:'I D XML^EDPX(^EDPB(231.9,AREA,3,I,0)) "RTN","EDPQDBS",15,0) D XML^EDPX("") "RTN","EDPQDBS",16,0) Q "RTN","EDPQDBS",17,0) CLRBED(AREA) ; add bed colors "RTN","EDPQDBS",18,0) D XML^EDPX("") "RTN","EDPQDBS",19,0) N BED "RTN","EDPQDBS",20,0) S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D "RTN","EDPQDBS",21,0) . S X0=^EDPB(231.8,BED,0) "RTN","EDPQDBS",22,0) . I $P(X0,U,12)="" Q "RTN","EDPQDBS",23,0) . N X "RTN","EDPQDBS",24,0) . S X("att")="@bed" "RTN","EDPQDBS",25,0) . S X("clr")=$P(X0,U,12) "RTN","EDPQDBS",26,0) . S X("val")=BED "RTN","EDPQDBS",27,0) . D XML^EDPX($$XMLA^EDPX("map",.X)) "RTN","EDPQDBS",28,0) D XML^EDPX("") "RTN","EDPQDBS",29,0) Q "RTN","EDPQDBS",30,0) CLRSTAFF(AREA,ROLEID,ROLE) ; add staff colors "RTN","EDPQDBS",31,0) D XML^EDPX("") "RTN","EDPQDBS",32,0) N IEN "RTN","EDPQDBS",33,0) S IEN="" F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D "RTN","EDPQDBS",34,0) . S X0=^EDPB(231.7,IEN,0) Q:'$P(X0,U,8) "RTN","EDPQDBS",35,0) . N X "RTN","EDPQDBS",36,0) . S X("att")=$S(ROLE="P":"@md",ROLE="N":"@rn",ROLE="R":"@res",1:"nop") "RTN","EDPQDBS",37,0) . S X("clr")=$P(X0,U,8) "RTN","EDPQDBS",38,0) . S X("val")=$P(X0,U,5) "RTN","EDPQDBS",39,0) . D XML^EDPX($$XMLA^EDPX("map",.X)) "RTN","EDPQDBS",40,0) D XML^EDPX("") "RTN","EDPQDBS",41,0) Q "RTN","EDPQLE") 0^27^B11635607 "RTN","EDPQLE",1,0) EDPQLE ;SLC/KCM - Retrieve Log Entry "RTN","EDPQLE",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPQLE",3,0) ; "RTN","EDPQLE",4,0) GET(LOG,CHOICES) ; Get a log entry by request "RTN","EDPQLE",5,0) N CURBED,CURVAL,PERSON "RTN","EDPQLE",6,0) S AREA=$P(^EDP(230,LOG,0),U,3) "RTN","EDPQLE",7,0) N EDPTIME S EDPTIME=$$FMADD^XLFDT($$NOW^XLFDT,0,0,+$P(^EDPB(231.9,AREA,0),U,3),0) "RTN","EDPQLE",8,0) D LOG(LOG) "RTN","EDPQLE",9,0) D XML^EDPX("") "RTN","EDPQLE",10,0) D BEDS,PERSONS "RTN","EDPQLE",11,0) I $G(CHOICES) D CHOICES^EDPQLE1(AREA) "RTN","EDPQLE",12,0) D XML^EDPX("") "RTN","EDPQLE",13,0) Q "RTN","EDPQLE",14,0) LOG(LOG) ; return the log entry as XML "RTN","EDPQLE",15,0) N X,X0,X1,X3 "RTN","EDPQLE",16,0) S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)) "RTN","EDPQLE",17,0) S X("id")=LOG "RTN","EDPQLE",18,0) S X("site")=$P(X0,U,2) "RTN","EDPQLE",19,0) S X("area")=$P(X0,U,3) "RTN","EDPQLE",20,0) S X("name")=$P(X0,U,4) "RTN","EDPQLE",21,0) S X("ssn")=$P(X0,U,5) "RTN","EDPQLE",22,0) S X("dfn")=$P(X0,U,6) "RTN","EDPQLE",23,0) S X("dob")=$$DOB($P(X0,U,6)) "RTN","EDPQLE",24,0) S X("inTS")=$P(X0,U,8) "RTN","EDPQLE",25,0) S X("outTS")=$P(X0,U,9) "RTN","EDPQLE",26,0) S X("arrival")=$P(X0,U,10) "RTN","EDPQLE",27,0) S X("complaint")=$P(X1,U,1) "RTN","EDPQLE",28,0) S X("compLong")=$G(^EDP(230,LOG,2)) "RTN","EDPQLE",29,0) S X("status")=$P(X3,U,2) "RTN","EDPQLE",30,0) S X("acuity")=$P(X3,U,3) "RTN","EDPQLE",31,0) S X("bed")=$P(X3,U,4) "RTN","EDPQLE",32,0) S X("md")=$P(X3,U,5),PERSON("provider")=X("md") "RTN","EDPQLE",33,0) S X("nurse")=$P(X3,U,6),PERSON("nurse")=X("nurse") "RTN","EDPQLE",34,0) S X("res")=$P(X3,U,7),PERSON("resident")=X("res") "RTN","EDPQLE",35,0) S X("comment")=$P(X3,U,8) "RTN","EDPQLE",36,0) S X("delay")=$P(X1,U,5) "RTN","EDPQLE",37,0) S X("disposition")=$P(X1,U,2) "RTN","EDPQLE",38,0) S X("required")=$$REQ(.X) "RTN","EDPQLE",39,0) S CURBED=X("bed") ; for later use by BEDS "RTN","EDPQLE",40,0) ; "RTN","EDPQLE",41,0) D XML^EDPX("") "RTN","EDPQLE",42,0) D XMLE^EDPX(.X) "RTN","EDPQLE",43,0) ; "RTN","EDPQLE",44,0) N DIAG,CODE,LABEL,X4 "RTN","EDPQLE",45,0) S DIAG=0 F S DIAG=$O(^EDP(230,LOG,4,DIAG)) Q:'DIAG D "RTN","EDPQLE",46,0) . S X4=^EDP(230,LOG,4,DIAG,0),X4("code")=$P(X4,U,2),X4("label")=$P(X4,U,1) "RTN","EDPQLE",47,0) . D XML^EDPX($$XMLA^EDPX("diagnosis",.X4)) "RTN","EDPQLE",48,0) ; "RTN","EDPQLE",49,0) D XML^EDPX("") "RTN","EDPQLE",50,0) Q "RTN","EDPQLE",51,0) DOB(DFN) ; Return date of birth (external) "RTN","EDPQLE",52,0) I 'DFN Q "" "RTN","EDPQLE",53,0) N VA,VADM,X,Y "RTN","EDPQLE",54,0) D DEM^VADPT "RTN","EDPQLE",55,0) Q $P(VADM(3),U,2) "RTN","EDPQLE",56,0) ; "RTN","EDPQLE",57,0) BEDS ; add a list of available room/beds for this area "RTN","EDPQLE",58,0) D XML^EDPX("") "RTN","EDPQLE",59,0) ;D XML^EDPX($$XMLS^EDPX("bed",0," ")) ; non-selected value "RTN","EDPQLE",60,0) N BED,X0 "RTN","EDPQLE",61,0) S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D "RTN","EDPQLE",62,0) . S X0=^EDPB(231.8,BED,0) "RTN","EDPQLE",63,0) . ; QUIT if inactive bed "RTN","EDPQLE",64,0) . I $P(X0,U,4) Q "RTN","EDPQLE",65,0) . ; QUIT if occupied, unless own bed or multi-assign "RTN","EDPQLE",66,0) . I $D(^EDP(230,"AL",EDPSITE,AREA,BED)),((BED'=CURBED)&'$P(X0,U,9)) Q "RTN","EDPQLE",67,0) . ; "RTN","EDPQLE",68,0) . S X("data")=BED "RTN","EDPQLE",69,0) . S X("label")=$P(X0,U,6)_" ("_$P(X0,U)_")" "RTN","EDPQLE",70,0) . D XML^EDPX($$XMLA^EDPX("bed",.X)) "RTN","EDPQLE",71,0) D XML^EDPX("") "RTN","EDPQLE",72,0) Q "RTN","EDPQLE",73,0) PERSONS ; add the internal/external values for persons "RTN","EDPQLE",74,0) N ROLE,NAME,LOCID,IEN,X "RTN","EDPQLE",75,0) D XML^EDPX("") "RTN","EDPQLE",76,0) F ROLE="provider","nurse","resident" S LOCID=$G(PERSON(ROLE)) D "RTN","EDPQLE",77,0) . Q:'LOCID "RTN","EDPQLE",78,0) . S IEN=$O(^EDPB(231.7,"AD",EDPSITE,AREA,LOCID,0)) "RTN","EDPQLE",79,0) . Q:'IEN "RTN","EDPQLE",80,0) . S NAME=$P(^EDPB(231.7,IEN,0),U) "RTN","EDPQLE",81,0) . S X("data")=LOCID,X("label")=NAME "RTN","EDPQLE",82,0) . D XML^EDPX($$XMLA^EDPX(ROLE,.X)) "RTN","EDPQLE",83,0) D XML^EDPX("") "RTN","EDPQLE",84,0) Q "RTN","EDPQLE",85,0) REQ(VAL) ; return the fields required to close this entry "RTN","EDPQLE",86,0) ; called from LOG, AREA is assumed to be defined "RTN","EDPQLE",87,0) N NEED,PARAM "RTN","EDPQLE",88,0) S PARAM=$G(^EDPB(231.9,AREA,1)),NEED="" "RTN","EDPQLE",89,0) I $P(PARAM,U,1) S $P(NEED,",",1)="diag" "RTN","EDPQLE",90,0) I $P(PARAM,U,3) S $P(NEED,",",2)="disp" "RTN","EDPQLE",91,0) I $$DLYREQ,$$NOTOBS,$$EXCEED S $P(NEED,",",3)="delay" "RTN","EDPQLE",92,0) Q NEED "RTN","EDPQLE",93,0) ; "RTN","EDPQLE",94,0) DLYREQ() ; return true if delay params set to required "RTN","EDPQLE",95,0) ; called from REQ, PARAM is assumed to be defined "RTN","EDPQLE",96,0) Q $P(PARAM,U,4)&$P(PARAM,U,5) "RTN","EDPQLE",97,0) ; "RTN","EDPQLE",98,0) NOTOBS() ; return true if not in observation status "RTN","EDPQLE",99,0) ; called from REQ, VAL is assumed to be defined "RTN","EDPQLE",100,0) N STS S STS=+$G(VAL("status")) "RTN","EDPQLE",101,0) Q:'STS 1 "RTN","EDPQLE",102,0) Q:$P(^EDPB(233.1,STS,0),U,5)["O" 0 "RTN","EDPQLE",103,0) Q 1 "RTN","EDPQLE",104,0) ; "RTN","EDPQLE",105,0) EXCEED() ; return true if delay time exceeded "RTN","EDPQLE",106,0) ; called from REQ, VAL and PARAM are assumed to be defined "RTN","EDPQLE",107,0) N IN S IN=$G(VAL("inTS")) "RTN","EDPQLE",108,0) N MAX S MAX=$P(PARAM,U,5) "RTN","EDPQLE",109,0) Q ($$FMDIFF^XLFDT(EDPTIME,IN,2)\60)>MAX "RTN","EDPQLE1") 0^28^B4294300 "RTN","EDPQLE1",1,0) EDPQLE1 ;SLC/KCM - Retrive Log Entry - Supporting Info "RTN","EDPQLE1",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPQLE1",3,0) ; "RTN","EDPQLE1",4,0) CHOICES(AREA) ; Add choice lists for editing log entry to XML "RTN","EDPQLE1",5,0) ; called from EDPQLE "RTN","EDPQLE1",6,0) ; "RTN","EDPQLE1",7,0) D STAFF("md","P") "RTN","EDPQLE1",8,0) D STAFF("res","R") "RTN","EDPQLE1",9,0) D STAFF("nurse","N") "RTN","EDPQLE1",10,0) ; "RTN","EDPQLE1",11,0) D CODES("arrival","arrival") "RTN","EDPQLE1",12,0) D CODES("acuity","acuity") "RTN","EDPQLE1",13,0) D CODES("status","status") "RTN","EDPQLE1",14,0) D CODES("disposition","disposition") "RTN","EDPQLE1",15,0) D CODES("delay","delay") "RTN","EDPQLE1",16,0) Q "RTN","EDPQLE1",17,0) STAFF(LABEL,ROLE) ; add staff for this area to XML "RTN","EDPQLE1",18,0) N IEN,X0 "RTN","EDPQLE1",19,0) D XML^EDPX("<"_LABEL_"List>") "RTN","EDPQLE1",20,0) D XML^EDPX($$XMLS^EDPX(LABEL,0," ")) ;non-selected (-1 will delete) "RTN","EDPQLE1",21,0) S IEN=0 F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D "RTN","EDPQLE1",22,0) . S X0=^EDPB(231.7,IEN,0) "RTN","EDPQLE1",23,0) . D XML^EDPX($$XMLS^EDPX(LABEL,$P(X0,U,5),$P(X0,U))) "RTN","EDPQLE1",24,0) D XML^EDPX("") "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 7 "RTN","EDPQLP",3,0) ; "RTN","EDPQLP",4,0) GET(AREA,TOKEN) ; Return lists for edit context "RTN","EDPQLP",5,0) ; "RTN","EDPQLP",6,0) ; don't rebuild the list if it is unchanged "RTN","EDPQLP",7,0) ;I $G(^EDPB(231.9,AREA,230))=TOKEN D Q "RTN","EDPQLP",8,0) ;. D XML^EDPX("") "RTN","EDPQLP",9,0) ; "RTN","EDPQLP",10,0) ; build sequence based on bed sequence "RTN","EDPQLP",11,0) N IEN,X0,NAME,SSN,LAST4,BED,SEQ,DUP,LST "RTN","EDPQLP",12,0) D BLDDUP(.DUP,AREA) "RTN","EDPQLP",13,0) S IEN=0 F S IEN=$O(^EDP(230,"AC",EDPSITE,AREA,IEN)) Q:'IEN D "RTN","EDPQLP",14,0) . S X0=^EDP(230,IEN,0) "RTN","EDPQLP",15,0) . S NAME=$P(X0,U,4),SSN=$P(X0,U,5),LAST4=$P(X0,U,11) "RTN","EDPQLP",16,0) . S BED=$P($G(^EDP(230,IEN,3)),U,4) "RTN","EDPQLP",17,0) . S SEQ=0 "RTN","EDPQLP",18,0) . I BED S SEQ=$P($G(^EDPB(231.8,BED,0)),U,5) "RTN","EDPQLP",19,0) . I 'SEQ S SEQ=999999 "RTN","EDPQLP",20,0) . I BED S BED=$P(^EDPB(231.8,BED,0),U,6) "RTN","EDPQLP",21,0) . S LST(SEQ,IEN)=NAME_U_SSN_U_LAST4_U_BED_U_$$SIM(NAME,LAST4,.DUP) "RTN","EDPQLP",22,0) ; "RTN","EDPQLP",23,0) D XML^EDPX("") "RTN","EDPQLP",24,0) S SEQ=0 F S SEQ=$O(LST(SEQ)) Q:'SEQ D "RTN","EDPQLP",25,0) . S IEN=0 F S IEN=$O(LST(SEQ,IEN)) Q:'IEN D "RTN","EDPQLP",26,0) . . S X("id")=IEN "RTN","EDPQLP",27,0) . . S X("seq")=SEQ "RTN","EDPQLP",28,0) . . S X("name")=$P(LST(SEQ,IEN),U) "RTN","EDPQLP",29,0) . . S X("ssn")=$P(LST(SEQ,IEN),U,2) "RTN","EDPQLP",30,0) . . S X("last4")=$P(LST(SEQ,IEN),U,3) "RTN","EDPQLP",31,0) . . S X("bed")=$P(LST(SEQ,IEN),U,4) "RTN","EDPQLP",32,0) . . S X("same")=$P(LST(SEQ,IEN),U,5) "RTN","EDPQLP",33,0) . . D XML^EDPX($$XMLA^EDPX("log",.X)) "RTN","EDPQLP",34,0) D XML^EDPX("") "RTN","EDPQLP",35,0) Q "RTN","EDPQLP",36,0) BLDDUP(DUP,AREA) ; Build duplicate name/last4 counters "RTN","EDPQLP",37,0) ; called from GET^EDPQLP, GET^EDPQDB -- expect EDPSITE "RTN","EDPQLP",38,0) N X,IEN,CNT "RTN","EDPQLP",39,0) S X="" F S X=$O(^EDP(230,"ADUP",EDPSITE,AREA,X)) Q:X="" D "RTN","EDPQLP",40,0) . S IEN=0,CNT=0 "RTN","EDPQLP",41,0) . F S IEN=$O(^EDP(230,"ADUP",EDPSITE,AREA,X,IEN)) Q:'IEN S CNT=CNT+1 "RTN","EDPQLP",42,0) . S DUP(X)=CNT "RTN","EDPQLP",43,0) Q "RTN","EDPQLP",44,0) SIM(NAME,LAST4,DUP) ; Return true if similar patient name/last4 "RTN","EDPQLP",45,0) I $L(LAST4),$G(DUP(LAST4))>1 Q 1 "RTN","EDPQLP",46,0) I $G(DUP($P(NAME,",")))>1 Q 1 "RTN","EDPQLP",47,0) Q 0 "RTN","EDPQLP",48,0) ; "RTN","EDPQLP",49,0) CLOSED(AREA,PARTIAL) ; find matches on name "RTN","EDPQLP",50,0) S PARTIAL=$$UP^XLFSTR(PARTIAL) "RTN","EDPQLP",51,0) Q:PARTIAL="" "RTN","EDPQLP",52,0) ; "RTN","EDPQLP",53,0) N IEN,NAME,X "RTN","EDPQLP",54,0) S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,PARTIAL),-1) "RTN","EDPQLP",55,0) F S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,NAME)) Q:$E(NAME,1,$L(PARTIAL))'=PARTIAL Q:NAME="" D "RTN","EDPQLP",56,0) . S IEN=0 F S IEN=$O(^EDP(230,"PN",EDPSITE,AREA,NAME,IEN)) Q:'IEN D "RTN","EDPQLP",57,0) . . S X("id")=IEN,X("name")=NAME,X("inTS")=$P(^EDP(230,IEN,0),U,8) "RTN","EDPQLP",58,0) . . D XML^EDPX($$XMLA^EDPX("visit",.X)) "RTN","EDPQLP",59,0) Q "RTN","EDPRPT") 0^30^B8892171 "RTN","EDPRPT",1,0) EDPRPT ;SLC/MKB - Reports "RTN","EDPRPT",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT",3,0) ; "RTN","EDPRPT",4,0) EN(BEG,END,RPT,ID,CSV) ; Get RPT data for EDPSITE by date range "RTN","EDPRPT",5,0) I BEG,END D ;check "RTN","EDPRPT",6,0) . N X I END") "RTN","EDPRPT",32,0) Q "RTN","EDPRPT",33,0) ; "RTN","EDPRPT",34,0) NOW() ; -- Return local value of NOW, based on EDPSITE "RTN","EDPRPT",35,0) N TA,OFF,NOW "RTN","EDPRPT",36,0) S TA=+$O(^EDPB(231.9,"C",+$G(EDPSITE),0)),OFF=$P($G(^EDPB(231.9,TA,0)),U,3) "RTN","EDPRPT",37,0) S NOW=$$NOW^XLFDT S:OFF NOW=$$FMADD^XLFDT(NOW,,,OFF) ;time zone "RTN","EDPRPT",38,0) Q NOW "RTN","EDPRPT",39,0) ; "RTN","EDPRPT",40,0) PROV(MD) ; add list of assigned providers to XML "RTN","EDPRPT",41,0) N I,X0,X "RTN","EDPRPT",42,0) D XML^EDPX("") "RTN","EDPRPT",43,0) S I=0 F S I=$O(MD(I)) Q:I<1 D "RTN","EDPRPT",44,0) . S X0=$G(^EDPB(231.7,I,0)),X="" "RTN","EDPRPT",45,0) . D XML^EDPX(X) "RTN","EDPRPT",46,0) D XML^EDPX("") "RTN","EDPRPT",47,0) Q "RTN","EDPRPT",48,0) ; "RTN","EDPRPT",49,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT",50,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,3) ;code "RTN","EDPRPT",51,0) Q "" "RTN","EDPRPT",52,0) ; "RTN","EDPRPT",53,0) EPERS(IEN) ; Return external value for a Person (file 200) "RTN","EDPRPT",54,0) Q:IEN $P($G(^EDPB(231.7,IEN,0)),U) "RTN","EDPRPT",55,0) Q "" "RTN","EDPRPT",56,0) ; "RTN","EDPRPT",57,0) EDATE(FMDT) ; Return external value for a Date/Time "RTN","EDPRPT",58,0) Q:FMDT $TR($$FMTE^XLFDT(FMDT,"2M"),"@"," ") ;MM/DD/YY HH:MM "RTN","EDPRPT",59,0) Q "" "RTN","EDPRPT",60,0) ; "RTN","EDPRPT",61,0) ETIME(MINS) ; Return #minutes as HH:MM "RTN","EDPRPT",62,0) N H,M,Y "RTN","EDPRPT",63,0) S H=MINS\60,M=MINS#60 "RTN","EDPRPT",64,0) S Y=H_":"_$S($L(M)=1:"0"_M,1:M) "RTN","EDPRPT",65,0) Q Y "RTN","EDPRPT",66,0) ; "RTN","EDPRPT",67,0) ASSIGNED(LOG,PCE) ; Return time PCE was first assigned "RTN","EDPRPT",68,0) N D,I,Y S Y="" "RTN","EDPRPT",69,0) S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) I $P($G(^EDP(230.1,I,3)),U,PCE)'="" S Y=D Q "RTN","EDPRPT",70,0) Q Y "RTN","EDPRPT",71,0) ; "RTN","EDPRPT",72,0) NWBED(LOG) ; Return 1st time non-wait bed was assigned "RTN","EDPRPT",73,0) N D,I,X,Y,BED S Y="" "RTN","EDPRPT",74,0) S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D Q:Y "RTN","EDPRPT",75,0) . S BED=+$P($G(^EDP(230.1,I,3)),U,4) "RTN","EDPRPT",76,0) . S X=$P($G(^EDPB(231.8,BED,0)),U,9) ;allow multiple assignments? "RTN","EDPRPT",77,0) . I X=0!(X="false") S Y=D Q "RTN","EDPRPT",78,0) Q Y "RTN","EDPRPT",79,0) ; "RTN","EDPRPT",80,0) ADMSTS(LOG) ; Return 1st time admit status was assigned "RTN","EDPRPT",81,0) N D,I,X3,X,Y S Y="" "RTN","EDPRPT",82,0) S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D Q:Y "RTN","EDPRPT",83,0) . S X3=$G(^EDP(230.1,I,3)) "RTN","EDPRPT",84,0) . I $P(X3,U,2),$P($G(^EDPB(233.1,+$P(X3,U,2),0)),U,5)["A" S Y=D "RTN","EDPRPT",85,0) Q Y "RTN","EDPRPT1") 0^31^B33830475 "RTN","EDPRPT1",1,0) EDPRPT1 ;SLC/MKB - Activity Report "RTN","EDPRPT1",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT1",3,0) ; "RTN","EDPRPT1",4,0) ACT(BEG,END) ; Get Activity Report for EDPSITE by date range "RTN","EDPRPT1",5,0) N LOG,X,X0,X1,X3,X4,IN,OUT,ROW,PROV,I,NOW "RTN","EDPRPT1",6,0) N ELAPSE,TRIAGE,WAIT,ADMDEC,ADMDEL,ALL,ADM,NOT,DISP "RTN","EDPRPT1",7,0) D INIT ;set counters, sums to 0 "RTN","EDPRPT1",8,0) D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers "RTN","EDPRPT1",9,0) . N TAB S TAB=$C(9) "RTN","EDPRPT1",10,0) . S X="ED"_TAB_"Time In"_TAB_"Time Out"_TAB_"Complaint"_TAB_"MD"_TAB_"Acuity"_TAB_"Elapsed"_TAB_"Triage"_TAB_"Wait"_TAB_"Dispo"_TAB_"Adm Dec"_TAB_"Adm Delay"_TAB_"Arrival"_TAB_"Diagnosis"_TAB_"ICD9" "RTN","EDPRPT1",11,0) . D ADD^EDPCSV(X) "RTN","EDPRPT1",12,0) S IN=BEG-.000001 "RTN","EDPRPT1",13,0) F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT1",14,0) . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0)) "RTN","EDPRPT1",15,0) . S OUT=$P(X0,U,9) "RTN","EDPRPT1",16,0) . K ROW S ROW("id")=LOG,ALL=ALL+1 "RTN","EDPRPT1",17,0) . S ROW("inTS")=$$EDATE^EDPRPT(IN) "RTN","EDPRPT1",18,0) . S ROW("outTS")=$$EDATE^EDPRPT(OUT) "RTN","EDPRPT1",19,0) . S ROW("complaint")=$P(X1,U) "RTN","EDPRPT1",20,0) . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),ROW("disposition")=DISP "RTN","EDPRPT1",21,0) . S ROW("arrival")=$$ECODE($P(X1,U,10)) "RTN","EDPRPT1",22,0) . S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3)) "RTN","EDPRPT1",23,0) . S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5)) "RTN","EDPRPT1",24,0) . S:$P(X3,U,5) PROV(+$P(X3,U,5))="" "RTN","EDPRPT1",25,0) . S ROW("dx")=$P(X4,U),ROW("icd")=$P(X4,U,2) "RTN","EDPRPT1",26,0) . S:'$L(DISP) DISP="none" ;need as subscript "RTN","EDPRPT1",27,0) . S DISP(DISP)=DISP(DISP)+1 "RTN","EDPRPT1",28,0) . ; "RTN","EDPRPT1",29,0) A1 . ; calculate times "RTN","EDPRPT1",30,0) . S:OUT="" OUT=NOW ;for calculations "RTN","EDPRPT1",31,0) . S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60) "RTN","EDPRPT1",32,0) . S ROW("elapsed")=ELAPSE_$S(ELAPSE>359:" *",1:"") "RTN","EDPRPT1",33,0) . S ALL("elapsed")=ALL("elapsed")+ELAPSE "RTN","EDPRPT1",34,0) . S DISP(DISP,"elapsed")=DISP(DISP,"elapsed")+ELAPSE "RTN","EDPRPT1",35,0) . ; "RTN","EDPRPT1",36,0) . S X=$$ASSIGNED^EDPRPT(LOG,3),TRIAGE=0 ;acuity "RTN","EDPRPT1",37,0) . S TRIAGE=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0),ROW("triage")=TRIAGE "RTN","EDPRPT1",38,0) . S ALL("triage")=ALL("triage")+TRIAGE "RTN","EDPRPT1",39,0) . S DISP(DISP,"triage")=DISP(DISP,"triage")+TRIAGE "RTN","EDPRPT1",40,0) . ; "RTN","EDPRPT1",41,0) . S X=$$NWBED^EDPRPT(LOG),WAIT=0 "RTN","EDPRPT1",42,0) . S WAIT=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0),ROW("wait")=WAIT "RTN","EDPRPT1",43,0) . S ALL("wait")=ALL("wait")+WAIT "RTN","EDPRPT1",44,0) . S DISP(DISP,"wait")=DISP(DISP,"wait")+WAIT "RTN","EDPRPT1",45,0) . ; "RTN","EDPRPT1",46,0) . S X=$$ADMSTS^EDPRPT(LOG) I X<1 D "RTN","EDPRPT1",47,0) .. S NOT=NOT+1,NOT("elapsed")=NOT("elapsed")+ELAPSE "RTN","EDPRPT1",48,0) .. S NOT("triage")=NOT("triage")+TRIAGE "RTN","EDPRPT1",49,0) .. S NOT("wait")=NOT("wait")+WAIT "RTN","EDPRPT1",50,0) . E D ;decision to admit "RTN","EDPRPT1",51,0) .. S ADMDEC=($$FMDIFF^XLFDT(X,IN,2)\60),ROW("admDec")=ADMDEC "RTN","EDPRPT1",52,0) .. S ADMDEL=($$FMDIFF^XLFDT(OUT,X,2)\60),ROW("admDel")=ADMDEL "RTN","EDPRPT1",53,0) .. S ADM=ADM+1,ADM("elapsed")=ADM("elapsed")+ELAPSE "RTN","EDPRPT1",54,0) .. S ADM("triage")=ADM("triage")+TRIAGE "RTN","EDPRPT1",55,0) .. S ADM("wait")=ADM("wait")+WAIT "RTN","EDPRPT1",56,0) .. S ADM("admDec")=ADM("admDec")+ADMDEC "RTN","EDPRPT1",57,0) .. S ADM("admDel")=ADM("admDel")+ADMDEL "RTN","EDPRPT1",58,0) .. S DISP(DISP,"admDec")=DISP(DISP,"admDec")+ADMDEC "RTN","EDPRPT1",59,0) .. S DISP(DISP,"admDel")=DISP(DISP,"admDel")+ADMDEL "RTN","EDPRPT1",60,0) . ; "RTN","EDPRPT1",61,0) . I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q "RTN","EDPRPT1",62,0) . S X=ROW("id") "RTN","EDPRPT1",63,0) . F I="inTS","outTS","complaint","md","acuity","elapsed","triage","wait","disposition","admDec","admDel","arrival","dx","icd" S X=X_$C(9)_$G(ROW(I)) "RTN","EDPRPT1",64,0) . D ADD^EDPCSV(X) "RTN","EDPRPT1",65,0) D:'$G(CSV) XML^EDPX("") "RTN","EDPRPT1",66,0) ; "RTN","EDPRPT1",67,0) A2 ; calculate & include averages "RTN","EDPRPT1",68,0) Q:ALL<1 ;no visits found "RTN","EDPRPT1",69,0) S ALL("type")="All Patients",NOT("type")="Not Admitted",ADM("type")="Admitted" "RTN","EDPRPT1",70,0) F I="elapsed","triage","wait" S ALL(I)=$$ETIME^EDPRPT(ALL(I)\ALL) "RTN","EDPRPT1",71,0) F I="elapsed","triage","wait" S NOT(I)=$S(NOT:$$ETIME^EDPRPT(NOT(I)\NOT),1:"00:00") "RTN","EDPRPT1",72,0) F I="elapsed","triage","wait","admDec","admDel" S ADM(I)=$S(ADM:$$ETIME^EDPRPT(ADM(I)\ADM),1:"00:00") "RTN","EDPRPT1",73,0) F I="admDec","admDel" S ALL(I)=ADM(I) "RTN","EDPRPT1",74,0) S ALL("total")=ALL,NOT("total")=NOT,ADM("total")=ADM "RTN","EDPRPT1",75,0) S X="" F S X=$O(DISP(X)) Q:X="" I DISP(X) D "RTN","EDPRPT1",76,0) . S DISP(X,"total")=DISP(X),DISP(X,"type")=X "RTN","EDPRPT1",77,0) . F I="elapsed","triage","wait","admDec","admDel" S DISP(X,I)=$$ETIME^EDPRPT(DISP(X,I)\DISP(X)) "RTN","EDPRPT1",78,0) ; "RTN","EDPRPT1",79,0) A3 I $G(CSV) D Q ;CSV format "RTN","EDPRPT1",80,0) . N TAB,D S TAB=$C(9) "RTN","EDPRPT1",81,0) . D BLANK^EDPCSV "RTN","EDPRPT1",82,0) . S X=TAB_"Total Patients"_TAB_ALL_TAB_TAB_TAB_TAB_ALL("elapsed")_TAB_ALL("triage")_TAB_ALL("wait")_TAB_TAB_ALL("admDec")_TAB_ALL("admDel") "RTN","EDPRPT1",83,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT1",84,0) . S X=TAB_TAB_TAB_TAB_"Total"_TAB_"Visit"_TAB_"Triage"_TAB_"Wait"_TAB_"Adm Dec"_TAB_"Adm Del" "RTN","EDPRPT1",85,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT1",86,0) . S X=TAB_TAB_TAB_"Patients Not Admitted"_TAB_NOT_TAB_NOT("elapsed")_TAB_NOT("triage")_TAB_NOT("wait") "RTN","EDPRPT1",87,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT1",88,0) . S X=TAB_TAB_TAB_"Patients Admitted"_TAB_ADM_TAB_ADM("elapsed")_TAB_ADM("triage")_TAB_ADM("wait")_TAB_ADM("admDec")_TAB_ADM("admDel") "RTN","EDPRPT1",89,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT1",90,0) . S X=TAB_TAB_TAB_"Disposition" D ADD^EDPCSV(X) "RTN","EDPRPT1",91,0) . S D="" F S D=$O(DISP(D)) Q:D="" I DISP(D) D "RTN","EDPRPT1",92,0) .. S X=D_TAB_DISP(D)_TAB_DISP(D,"elapsed")_TAB_DISP(D,"triage")_TAB_DISP(D,"wait")_TAB_DISP(D,"admDec")_TAB_DISP(D,"admDel") "RTN","EDPRPT1",93,0) .. D ADD^EDPCSV(X) "RTN","EDPRPT1",94,0) D XML^EDPX("") "RTN","EDPRPT1",95,0) S X=$$XMLA^EDPX("average",.ALL) D XML^EDPX(X) "RTN","EDPRPT1",96,0) S X=$$XMLA^EDPX("average",.NOT) D XML^EDPX(X) "RTN","EDPRPT1",97,0) S X=$$XMLA^EDPX("average",.ADM) D XML^EDPX(X) "RTN","EDPRPT1",98,0) S I="" F S I=$O(DISP(I)) Q:I="" I DISP(I) K ROW M ROW=DISP(I) S X=$$XMLA^EDPX("average",.ROW) D XML^EDPX(X) "RTN","EDPRPT1",99,0) D XML^EDPX("") "RTN","EDPRPT1",100,0) ; include list of providers assigned "RTN","EDPRPT1",101,0) I $O(PROV(0)) D PROV^EDPRPT(.PROV) "RTN","EDPRPT1",102,0) Q "RTN","EDPRPT1",103,0) ; "RTN","EDPRPT1",104,0) INIT ; Initialize counters and sums "RTN","EDPRPT1",105,0) N I,NM S (ALL,ADM,NOT)=0 "RTN","EDPRPT1",106,0) F I="elapsed","triage","wait" S (ALL(I),NOT(I),ADM(I))=0 "RTN","EDPRPT1",107,0) F I="admDec","admDel" S ADM(I)=0 "RTN","EDPRPT1",108,0) S NM="" F S NM=$O(^EDPB(233.1,"B",NM)) Q:NM="" I $P(NM,".",2)="disposition" S I=+$O(^(NM,0)) D "RTN","EDPRPT1",109,0) . S X=$P($G(^EDPB(233.1,I,0)),U,3),DISP(X)=0 "RTN","EDPRPT1",110,0) . F I="elapsed","triage","wait","admDec","admDel" S DISP(X,I)=0 "RTN","EDPRPT1",111,0) S DISP("none")=0 F I="elapsed","triage","wait","admDec","admDel" S DISP("none",I)=0 "RTN","EDPRPT1",112,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT1",113,0) Q "RTN","EDPRPT1",114,0) ; "RTN","EDPRPT1",115,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT1",116,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT1",117,0) Q "" "RTN","EDPRPT10") 0^32^B19054284 "RTN","EDPRPT10",1,0) EDPRPT10 ;SLC/MKB - Admissions Report "RTN","EDPRPT10",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT10",3,0) ; "RTN","EDPRPT10",4,0) ADM(BEG,END) ; Get Admissions Report for EDPSITE by date range "RTN","EDPRPT10",5,0) N IN,OUT,LOG,X,X0,X1,X3,X4,DISP,ROW,NOW,TAB "RTN","EDPRPT10",6,0) N ELAPSE,TRIAGE,WAIT,ADMDEC,ADMDEL "RTN","EDPRPT10",7,0) D INIT ;set counters, sums to 0 "RTN","EDPRPT10",8,0) D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers "RTN","EDPRPT10",9,0) . S TAB=$C(9) "RTN","EDPRPT10",10,0) . S X="ED"_TAB_"Time Out"_TAB_"Complaint"_TAB_"MD"_TAB_"Acuity"_TAB_"Dispo"_TAB_"Adm Dec"_TAB_"Adm Delay"_TAB_"Diagnosis"_TAB_"ICD9" ;_TAB_"ER Spec Visit" "RTN","EDPRPT10",11,0) . D ADD^EDPCSV(X) "RTN","EDPRPT10",12,0) S IN=BEG-.000001 "RTN","EDPRPT10",13,0) F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT10",14,0) . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0)) "RTN","EDPRPT10",15,0) . S DISP=$$ECODE^EDPRPT($P(X1,U,2)) Q:'$D(CNT(DISP)) "RTN","EDPRPT10",16,0) . S OUT=$P(X0,U,9) "RTN","EDPRPT10",17,0) . K ROW S ROW("id")=LOG "RTN","EDPRPT10",18,0) . S ROW("outTS")=$$EDATE^EDPRPT(OUT) "RTN","EDPRPT10",19,0) . S ROW("complaint")=$P(X1,U) "RTN","EDPRPT10",20,0) . S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5)) "RTN","EDPRPT10",21,0) . S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3)) "RTN","EDPRPT10",22,0) . S ROW("disposition")=DISP "RTN","EDPRPT10",23,0) . S ROW("dx")=$P(X4,U),ROW("icd")=$P(X4,U,2) "RTN","EDPRPT10",24,0) . ; ER Special Visit ?? -- ck ^DPT dispositions "RTN","EDPRPT10",25,0) . S CNT("ALL")=CNT("ALL")+1,CNT(DISP)=CNT(DISP)+1 "RTN","EDPRPT10",26,0) . ; "RTN","EDPRPT10",27,0) A1 . ; calculate times "RTN","EDPRPT10",28,0) . S:OUT="" OUT=NOW "RTN","EDPRPT10",29,0) . S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60) "RTN","EDPRPT10",30,0) . F I="ALL",DISP S MIN(I,"elapsed")=MIN(I,"elapsed")+ELAPSE "RTN","EDPRPT10",31,0) . ; "RTN","EDPRPT10",32,0) . S X=$$ASSIGNED^EDPRPT(LOG,3) ;acuity assigned "RTN","EDPRPT10",33,0) . S TRIAGE=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) "RTN","EDPRPT10",34,0) . F I="ALL",DISP S MIN(I,"triage")=MIN(I,"triage")+TRIAGE "RTN","EDPRPT10",35,0) . ; "RTN","EDPRPT10",36,0) . S X=$$NWBED^EDPRPT(LOG) ;non-wait bed assigned "RTN","EDPRPT10",37,0) . S WAIT=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) "RTN","EDPRPT10",38,0) . F I="ALL",DISP S MIN(I,"wait")=MIN(I,"wait")+WAIT "RTN","EDPRPT10",39,0) . ; "RTN","EDPRPT10",40,0) . S X=$$ADMSTS^EDPRPT(LOG) ;decision to admit "RTN","EDPRPT10",41,0) . S ADMDEC=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) "RTN","EDPRPT10",42,0) . F I="ALL",DISP S MIN(I,"admDec")=MIN(I,"admDec")+ADMDEC "RTN","EDPRPT10",43,0) . S ROW("admDec")=ADMDEC "RTN","EDPRPT10",44,0) . ; "RTN","EDPRPT10",45,0) . S ADMDEL=$S(X:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0) "RTN","EDPRPT10",46,0) . F I="ALL",DISP S MIN(I,"admDel")=MIN(I,"admDel")+ADMDEL "RTN","EDPRPT10",47,0) . S ROW("admDel")=ADMDEL "RTN","EDPRPT10",48,0) . ; "RTN","EDPRPT10",49,0) . I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q "RTN","EDPRPT10",50,0) . S X=ROW("id") "RTN","EDPRPT10",51,0) . F I="outTS","complaint","md","acuity","disposition","admDec","admDel","dx","icd" S X=X_$C(9)_$G(ROW(I)) "RTN","EDPRPT10",52,0) . D ADD^EDPCSV(X) "RTN","EDPRPT10",53,0) D:'$G(CSV) XML^EDPX("") "RTN","EDPRPT10",54,0) ; "RTN","EDPRPT10",55,0) A2 ; calculate & include averages "RTN","EDPRPT10",56,0) Q:CNT("ALL")<1 ;no visits found "RTN","EDPRPT10",57,0) I $G(CSV) D Q ;return as CSV "RTN","EDPRPT10",58,0) . S X=TAB_TAB_TAB_" Activity Summary"_TAB_"Total"_TAB_"Visit"_TAB_"Triage"_TAB_"Wait"_TAB_"Adm Dec"_TAB_"Adm Delay" "RTN","EDPRPT10",59,0) . D BLANK^EDPCSV,ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT10",60,0) . S X=TAB_TAB_TAB_"Total Patients VA Admitted"_TAB_CNT("ALL") "RTN","EDPRPT10",61,0) . F I="elapsed","triage","wait","admDec","admDel" D "RTN","EDPRPT10",62,0) .. S Y=MIN("ALL",I)\CNT("ALL"),X=X_TAB_$S(Y:$$ETIME^EDPRPT(Y),1:"0:00") "RTN","EDPRPT10",63,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT10",64,0) . S X=TAB_TAB_TAB_" Disposition" D ADD^EDPCSV(X) "RTN","EDPRPT10",65,0) . S DISP="" F S DISP=$O(CNT(DISP)) Q:DISP="" I DISP'="ALL",CNT(DISP) D "RTN","EDPRPT10",66,0) .. S X=TAB_TAB_TAB_DISP_TAB_CNT(DISP) "RTN","EDPRPT10",67,0) .. F I="elapsed","triage","wait","admDec","admDel" D "RTN","EDPRPT10",68,0) ... S Y=MIN(DISP,I)\CNT(DISP),X=X_TAB_$S(Y:$$ETIME^EDPRPT(Y),1:"0:00") "RTN","EDPRPT10",69,0) .. D ADD^EDPCSV(X) "RTN","EDPRPT10",70,0) ; or as XML "RTN","EDPRPT10",71,0) D XML^EDPX("") "RTN","EDPRPT10",72,0) S DISP="" F S DISP=$O(CNT(DISP)) Q:DISP="" I CNT(DISP) D "RTN","EDPRPT10",73,0) . S MIN(DISP,"type")=$S(DISP="ALL":"Total Patients VA Admitted",1:DISP) "RTN","EDPRPT10",74,0) . S MIN(DISP,"total")=CNT(DISP) "RTN","EDPRPT10",75,0) . F I="elapsed","triage","wait","admDec","admDel" D "RTN","EDPRPT10",76,0) .. S X=MIN(DISP,I)\CNT(DISP) "RTN","EDPRPT10",77,0) .. S MIN(DISP,I)=$S(X:$$ETIME^EDPRPT(X),1:"0:00") "RTN","EDPRPT10",78,0) . K ROW M ROW=MIN(DISP) "RTN","EDPRPT10",79,0) . S X=$$XMLA^EDPX("average",.ROW) D XML^EDPX(X) "RTN","EDPRPT10",80,0) D XML^EDPX("") "RTN","EDPRPT10",81,0) Q "RTN","EDPRPT10",82,0) ; "RTN","EDPRPT10",83,0) INIT ; Initialize counters and sums "RTN","EDPRPT10",84,0) N D,N,I "RTN","EDPRPT10",85,0) ;F D="VA","T","ICU","OBS","ALL" D "RTN","EDPRPT10",86,0) S D="" F S D=$O(^EDPB(233.1,"AB","disposition",D)) Q:D="" D "RTN","EDPRPT10",87,0) . S N=0 F S N=$O(^EDPB(233.1,"AB","disposition",D,N)) Q:N<1 D "RTN","EDPRPT10",88,0) .. Q:$P($G(^EDPB(233.1,N,0)),U,5)'["A" "RTN","EDPRPT10",89,0) .. S CNT(D)=0 "RTN","EDPRPT10",90,0) .. F I="elapsed","triage","wait","admDec","admDel" S MIN(D,I)=0 "RTN","EDPRPT10",91,0) S CNT("ALL")=0 "RTN","EDPRPT10",92,0) F I="elapsed","triage","wait","admDec","admDel" S MIN("ALL",I)=0 "RTN","EDPRPT10",93,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT10",94,0) Q "RTN","EDPRPT10",95,0) ; "RTN","EDPRPT10",96,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT10",97,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT10",98,0) Q "" "RTN","EDPRPT11") 0^33^B8284389 "RTN","EDPRPT11",1,0) EDPRPT11 ;SLC/MKB - Patient Intake Report "RTN","EDPRPT11",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT11",3,0) ; "RTN","EDPRPT11",4,0) CNT(BEG,END) ; Get Patient Intake Report for EDPSITE by date range "RTN","EDPRPT11",5,0) ; CNT = counters "RTN","EDPRPT11",6,0) N IN,LOG,LAST,X,CNT,DAY,%H,%T,%Y,T,D,ROW,NM,NMA,TAB "RTN","EDPRPT11",7,0) D INIT S LAST="" ;set counters to 0 "RTN","EDPRPT11",8,0) S IN=BEG-.000001,TAB=$C(9) "RTN","EDPRPT11",9,0) F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT11",10,0) . S X=$P($G(^EDP(230,LOG,0)),U,8) Q:X<1 "RTN","EDPRPT11",11,0) . D H^%DTC S T=%T\3600,D=%Y "RTN","EDPRPT11",12,0) . S CNT=CNT+1,CNT(T)=CNT(T)+1,CNT(T,D)=CNT(T,D)+1 "RTN","EDPRPT11",13,0) . S CNT("D",D)=CNT("D",D)+1 "RTN","EDPRPT11",14,0) . I LAST=""!(LAST'=D) S DAY(D)=DAY(D)+1 "RTN","EDPRPT11",15,0) C1 ; return counts and averages "RTN","EDPRPT11",16,0) D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers "RTN","EDPRPT11",17,0) . S X="Time/Day"_TAB_"Sunday"_TAB_"Avg/Sun"_TAB_"Monday"_TAB_"Avg/Mon"_TAB_"Tuesday"_TAB_"Avg/Tue"_TAB_"Wednesday"_TAB_"Avg/Wed"_TAB_"Thursday"_TAB_"Avg/Thu"_TAB_"Friday"_TAB_"Avg/Fri"_TAB_"Saturday"_TAB_"Avg/Sat"_TAB_"Totals"_TAB_"Avg/Day" "RTN","EDPRPT11",18,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT11",19,0) F T=0:1:23 D "RTN","EDPRPT11",20,0) . K ROW S ROW("time")=$$TIME(T)_"-"_$$TIME(T+1) "RTN","EDPRPT11",21,0) . S ROW=ROW("time") ;CSV "RTN","EDPRPT11",22,0) . F D=0:1:6 S NM=$$DAY(D) D "RTN","EDPRPT11",23,0) .. S ROW(NM)=CNT(T,D),NMA="avg"_$E(NM,1,3) "RTN","EDPRPT11",24,0) .. S X=$S(DAY(D):CNT(T,D)/DAY(D),1:0) "RTN","EDPRPT11",25,0) .. S ROW(NMA)=$$ROUND(X) "RTN","EDPRPT11",26,0) .. S ROW=ROW_TAB_ROW(NM)_TAB_ROW(NMA) ;CSV "RTN","EDPRPT11",27,0) . S ROW("total")=CNT(T),ROW("average")=$$ROUND(CNT(T)/24) "RTN","EDPRPT11",28,0) . I '$G(CSV) S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) Q "RTN","EDPRPT11",29,0) . S ROW=ROW_TAB_ROW("total")_TAB_ROW("average") D ADD^EDPCSV(ROW) "RTN","EDPRPT11",30,0) ; totals row "RTN","EDPRPT11",31,0) K ROW S ROW("time")="Totals",ROW=ROW("time") "RTN","EDPRPT11",32,0) F D=0:1:6 S NM=$$DAY(D) D "RTN","EDPRPT11",33,0) . S ROW(NM)=CNT("D",D),NMA="avg"_$E(NM,1,3) "RTN","EDPRPT11",34,0) . S X=$S(DAY(D):CNT("D",D)/DAY(D),1:0) "RTN","EDPRPT11",35,0) . S ROW(NMA)=$$ROUND(X) "RTN","EDPRPT11",36,0) . S ROW=ROW_TAB_ROW(NM)_TAB_ROW(NMA) ;CSV "RTN","EDPRPT11",37,0) S ROW("total")=CNT,ROW=ROW_TAB_ROW("total") "RTN","EDPRPT11",38,0) I $G(CSV) D BLANK^EDPCSV,ADD^EDPCSV(ROW) Q "RTN","EDPRPT11",39,0) S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) "RTN","EDPRPT11",40,0) D XML^EDPX("") "RTN","EDPRPT11",41,0) Q "RTN","EDPRPT11",42,0) ; "RTN","EDPRPT11",43,0) INIT ; Initialize counters and sums "RTN","EDPRPT11",44,0) N T,D S CNT=0 "RTN","EDPRPT11",45,0) F T=0:1:23 S CNT(T)=0 F D=0:1:6 S CNT(T,D)=0 "RTN","EDPRPT11",46,0) F D=0:1:6 S CNT("D",D)=0,DAY(D)=0 "RTN","EDPRPT11",47,0) Q "RTN","EDPRPT11",48,0) ; "RTN","EDPRPT11",49,0) ROUND(X) ; Round X to nearest integer "RTN","EDPRPT11",50,0) N Y S Y=+$E($P(X,".",2)),X=X\1 "RTN","EDPRPT11",51,0) S:Y>4 X=X+1 "RTN","EDPRPT11",52,0) Q X "RTN","EDPRPT11",53,0) ; "RTN","EDPRPT11",54,0) TIME(X) ; Return 0000 form of hour# X "RTN","EDPRPT11",55,0) N Y S Y=$S($L(X)=1:"0"_X,1:X)_"00" "RTN","EDPRPT11",56,0) Q Y "RTN","EDPRPT11",57,0) ; "RTN","EDPRPT11",58,0) DAY(X) ; Return name of day# X "RTN","EDPRPT11",59,0) I X=1 Q "Monday" "RTN","EDPRPT11",60,0) I X=2 Q "Tuesday" "RTN","EDPRPT11",61,0) I X=3 Q "Wednesday" "RTN","EDPRPT11",62,0) I X=4 Q "Thursday" "RTN","EDPRPT11",63,0) I X=5 Q "Friday" "RTN","EDPRPT11",64,0) I X=6 Q "Saturday" "RTN","EDPRPT11",65,0) Q "Sunday" "RTN","EDPRPT2") 0^34^B16939211 "RTN","EDPRPT2",1,0) EDPRPT2 ;SLC/MKB - Delay Report "RTN","EDPRPT2",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT2",3,0) ; "RTN","EDPRPT2",4,0) DEL(BEG,END) ; Get Delay Report for EDPSITE by date range "RTN","EDPRPT2",5,0) ; CNT = counters "RTN","EDPRPT2",6,0) ; MIN = accumulate #minutes "RTN","EDPRPT2",7,0) N IN,OUT,LOG,X,X0,X1,X3,X4,ELAPSE,ADMDEC,ADMDEL,DISP,VADISP,CNT,MIN,DEL,ACU,NOW "RTN","EDPRPT2",8,0) D INIT ;set counters, sums to 0 "RTN","EDPRPT2",9,0) D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers "RTN","EDPRPT2",10,0) . N TAB S TAB=$C(9) "RTN","EDPRPT2",11,0) . S X="ED IEN"_TAB_"Time In"_TAB_"Elapsed"_TAB_"Dispo"_TAB_"Delay Reason"_TAB_"MD"_TAB_"Adm Dec"_TAB_"Adm Delay"_TAB_"Acuity"_TAB_"Diagnosis" "RTN","EDPRPT2",12,0) . D ADD^EDPCSV(X) "RTN","EDPRPT2",13,0) S IN=BEG-.000001 "RTN","EDPRPT2",14,0) F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT2",15,0) . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0)) "RTN","EDPRPT2",16,0) . S ACU=$$ECODE^EDPRPT($P(X3,U,3)),DEL=+$P(X1,U,5),CNT=CNT+1 "RTN","EDPRPT2",17,0) . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),VADISP=$$ADMIT(DISP) "RTN","EDPRPT2",18,0) . S OUT=$P(X0,U,9) S:OUT="" OUT=NOW "RTN","EDPRPT2",19,0) . S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60),MIN=MIN+ELAPSE "RTN","EDPRPT2",20,0) D1 . ; all admissions "RTN","EDPRPT2",21,0) . S (ADMDEC,ADMDEL)=0 "RTN","EDPRPT2",22,0) . S X=$$ADMSTS^EDPRPT(LOG) I X D "RTN","EDPRPT2",23,0) .. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60 "RTN","EDPRPT2",24,0) .. S:ADMDEC CNT("DEC")=CNT("DEC")+1,MIN("DEC")=MIN("DEC")+ADMDEC "RTN","EDPRPT2",25,0) .. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60 "RTN","EDPRPT2",26,0) D2 . ; VA admissions only "RTN","EDPRPT2",27,0) . I VADISP D "RTN","EDPRPT2",28,0) .. S CNT("VA")=CNT("VA")+1 "RTN","EDPRPT2",29,0) .. S MIN("VA")=MIN("VA")+ELAPSE "RTN","EDPRPT2",30,0) .. S MIN("VADEC")=MIN("VADEC")+ADMDEC "RTN","EDPRPT2",31,0) .. S MIN("VADEL")=MIN("VADEL")+ADMDEL "RTN","EDPRPT2",32,0) .. S:ADMDEL>359 CNT("VADEL6")=CNT("VADEL6")+1 "RTN","EDPRPT2",33,0) D3 . ; elapsed visit time >=6 hrs "RTN","EDPRPT2",34,0) . S:ELAPSE>1380 CNT("23+")=CNT("23+")+1 "RTN","EDPRPT2",35,0) . I ELAPSE>359 D "RTN","EDPRPT2",36,0) .. S CNT("6+")=CNT("6+")+1 "RTN","EDPRPT2",37,0) .. S:VADISP CNT("VA6")=CNT("VA6")+1 "RTN","EDPRPT2",38,0) .. N ROW S ROW("id")=LOG,ROW("inTS")=$$EDATE^EDPRPT(IN) "RTN","EDPRPT2",39,0) .. S ROW("elapsed")=$$ETIME^EDPRPT(ELAPSE)_" *" "RTN","EDPRPT2",40,0) .. S ROW("disposition")=DISP "RTN","EDPRPT2",41,0) .. S ROW("acuity")=ACU "RTN","EDPRPT2",42,0) .. S ROW("delayReason")=$$ECODE(DEL) "RTN","EDPRPT2",43,0) .. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5)) "RTN","EDPRPT2",44,0) .. S ROW("dx")=$P(X4,U) "RTN","EDPRPT2",45,0) .. S ROW("admDec")=ADMDEC "RTN","EDPRPT2",46,0) .. S ROW("admDel")=ADMDEL "RTN","EDPRPT2",47,0) .. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q "RTN","EDPRPT2",48,0) .. S X=ROW("id") "RTN","EDPRPT2",49,0) .. F I="inTS","elapsed","disposition","delayReason","md","admDec","admDel","acuity","dx" S X=X_$C(9)_$G(ROW(I)) "RTN","EDPRPT2",50,0) .. D ADD^EDPCSV(X) "RTN","EDPRPT2",51,0) . S:ACU="" ACU="none" "RTN","EDPRPT2",52,0) . S:DEL CNT(DEL,ACU)=+$G(CNT(DEL,ACU))+1,CNT(DEL)=+$G(CNT(DEL))+1 "RTN","EDPRPT2",53,0) D:'$G(CSV) XML^EDPX("") "RTN","EDPRPT2",54,0) Q "RTN","EDPRPT2",55,0) ; "RTN","EDPRPT2",56,0) D4 ; return counts and averages "RTN","EDPRPT2",57,0) D XML^EDPX("") "RTN","EDPRPT2",58,0) S X="" "RTN","EDPRPT2",59,0) D XML^EDPX(X) "RTN","EDPRPT2",60,0) S X="" "RTN","EDPRPT2",61,0) D XML^EDPX(X) "RTN","EDPRPT2",62,0) S X="" "RTN","EDPRPT2",63,0) D XML^EDPX(X) "RTN","EDPRPT2",64,0) I $G(SUMONLY) S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D "RTN","EDPRPT2",65,0) . S CNT(DEL,"reason")=$$ECODE(DEL) "RTN","EDPRPT2",66,0) . S CNT(DEL,"total")=CNT(DEL) "RTN","EDPRPT2",67,0) . K ROW M ROW=CNT(DEL) "RTN","EDPRPT2",68,0) . S X=$$XMLA^EDPX("delay",.ROW) D XML^EDPX(X) "RTN","EDPRPT2",69,0) D XML^EDPX("") "RTN","EDPRPT2",70,0) Q "RTN","EDPRPT2",71,0) ; "RTN","EDPRPT2",72,0) INIT ; Initialize counters and sums "RTN","EDPRPT2",73,0) N I S (CNT,MIN)=0 "RTN","EDPRPT2",74,0) F I="DEC","VA","VA6","VADEL6","6+","23+" S CNT(I)=0 "RTN","EDPRPT2",75,0) F I="DEC","VA","VADEC","VADEL" S MIN(I)=0 "RTN","EDPRPT2",76,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT2",77,0) Q "RTN","EDPRPT2",78,0) ; "RTN","EDPRPT2",79,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT2",80,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT2",81,0) Q "" "RTN","EDPRPT2",82,0) ; "RTN","EDPRPT2",83,0) ADMIT(X) ; -- Return 1 or 0, if disposition indicates a VA admission "RTN","EDPRPT2",84,0) N I,Y S Y=0 "RTN","EDPRPT2",85,0) S I=+$O(^EDPB(233.1,"AB","disposition",X,0)) "RTN","EDPRPT2",86,0) S:$P($G(^EDPB(233.1,I,0)),U,5)["A" Y=1 "RTN","EDPRPT2",87,0) Q Y "RTN","EDPRPT3") 0^35^B6932750 "RTN","EDPRPT3",1,0) EDPRPT3 ;SLC/MKB - Missed Opportunity Report "RTN","EDPRPT3",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT3",3,0) ; "RTN","EDPRPT3",4,0) MO(BEG,END) ; Get Missed Opp Report for EDPSITE by date range "RTN","EDPRPT3",5,0) ; CNT = counters "RTN","EDPRPT3",6,0) N IN,OUT,LOG,DISP,X,X0,X1,X3,X4,ADMDEC,ADMDEL,CNT,ROW,NOW "RTN","EDPRPT3",7,0) S CNT=0 F X="L","AMA","E" S CNT(X)=0 "RTN","EDPRPT3",8,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT3",9,0) D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers "RTN","EDPRPT3",10,0) . N TAB S TAB=$C(9) "RTN","EDPRPT3",11,0) . S X="ED"_TAB_"Time In"_TAB_"Complaint"_TAB_"MD"_TAB_"Acuity"_TAB_"Elapsed"_TAB_"Triage"_TAB_"Wait"_TAB_"Dispo"_TAB_"Adm Dec" "RTN","EDPRPT3",12,0) . D ADD^EDPCSV(X) "RTN","EDPRPT3",13,0) S IN=BEG-.000001 "RTN","EDPRPT3",14,0) F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT3",15,0) . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0)) "RTN","EDPRPT3",16,0) . S DISP=$$ECODE^EDPRPT($P(X1,U,2)) Q:"^L^AMA^E^"'[(U_DISP_U) "RTN","EDPRPT3",17,0) . S OUT=$P(X0,U,9) S:OUT="" OUT=NOW "RTN","EDPRPT3",18,0) . K ROW S ROW("id")=LOG "RTN","EDPRPT3",19,0) . S ROW("inTS")=$$EDATE^EDPRPT(IN) "RTN","EDPRPT3",20,0) . S ROW("complaint")=$P(X1,U) "RTN","EDPRPT3",21,0) . S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3)) "RTN","EDPRPT3",22,0) . S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5)) "RTN","EDPRPT3",23,0) . S ROW("disposition")=DISP,CNT(DISP)=CNT(DISP)+1 "RTN","EDPRPT3",24,0) . ;calculate times "RTN","EDPRPT3",25,0) . S ROW("elapsed")=($$FMDIFF^XLFDT(OUT,IN,2)\60) "RTN","EDPRPT3",26,0) . S X=$$ASSIGNED^EDPRPT(LOG,3),ROW("triage")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) ;acuity "RTN","EDPRPT3",27,0) . S X=$$NWBED^EDPRPT(LOG),ROW("wait")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) ;non-wait bed "RTN","EDPRPT3",28,0) . S X=$$ADMSTS^EDPRPT(LOG) "RTN","EDPRPT3",29,0) . S ROW("admDec")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) "RTN","EDPRPT3",30,0) . I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q "RTN","EDPRPT3",31,0) . S X=ROW("id") "RTN","EDPRPT3",32,0) . F I="inTS","complaint","md","acuity","elapsed","triage","wait","disposition","admDec" S X=X_$C(9)_$G(ROW(I)) "RTN","EDPRPT3",33,0) . D ADD^EDPCSV(X) "RTN","EDPRPT3",34,0) D:'$G(CSV) XML^EDPX("") "RTN","EDPRPT3",35,0) ; "RTN","EDPRPT3",36,0) ; return totals, as XML or CSV "RTN","EDPRPT3",37,0) I '$G(CSV) S X=$$XMLA^EDPX("totals",.CNT) D XML^EDPX(X) Q "RTN","EDPRPT3",38,0) N TAB S TAB=$C(9) "RTN","EDPRPT3",39,0) D BLANK^EDPCSV "RTN","EDPRPT3",40,0) S X=TAB_TAB_TAB_TAB_"Total Left without being Seen: "_CNT("L") "RTN","EDPRPT3",41,0) D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT3",42,0) S X=TAB_TAB_TAB_TAB_"Total Left AMA: "_CNT("AMA") "RTN","EDPRPT3",43,0) D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT3",44,0) S X=TAB_TAB_TAB_TAB_"Total Eloped: "_CNT("E") D ADD^EDPCSV(X) "RTN","EDPRPT3",45,0) Q "RTN","EDPRPT4") 0^36^B21986629 "RTN","EDPRPT4",1,0) EDPRPT4 ;SLC/MKB - Delay Summary Report "RTN","EDPRPT4",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT4",3,0) ; "RTN","EDPRPT4",4,0) SUM(BEG,END) ; Get Delay Report for EDPSITE by date range "RTN","EDPRPT4",5,0) ; CNT = counters "RTN","EDPRPT4",6,0) ; MIN = accumulate #minutes "RTN","EDPRPT4",7,0) N IN,OUT,LOG,X,X0,X1,X3,X4,ELAPSE,ADMDEC,ADMDEL,DISP,VADISP,CNT,MIN,PROV,DEL,ACU,Y,NOW "RTN","EDPRPT4",8,0) D INIT ;set counters, sums to 0 "RTN","EDPRPT4",9,0) S IN=BEG-.000001 "RTN","EDPRPT4",10,0) F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT4",11,0) . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0)) "RTN","EDPRPT4",12,0) . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),VADISP=$$ADMIT^EDPRPT2(DISP) "RTN","EDPRPT4",13,0) . S ACU=$$ECODE($P(X3,U,3)) "RTN","EDPRPT4",14,0) . S DEL=+$P(X1,U,5),CNT=CNT+1 "RTN","EDPRPT4",15,0) . S OUT=$P(X0,U,9) S:OUT="" OUT=NOW "RTN","EDPRPT4",16,0) . S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60),MIN=MIN+ELAPSE "RTN","EDPRPT4",17,0) D1 . ; all admissions "RTN","EDPRPT4",18,0) . S (ADMDEC,ADMDEL)=0 "RTN","EDPRPT4",19,0) . S X=$$ADMSTS^EDPRPT(LOG) I X D "RTN","EDPRPT4",20,0) .. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60 "RTN","EDPRPT4",21,0) .. S:ADMDEC CNT("DEC")=CNT("DEC")+1,MIN("DEC")=MIN("DEC")+ADMDEC "RTN","EDPRPT4",22,0) .. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60 "RTN","EDPRPT4",23,0) D2 . ; VA admissions only "RTN","EDPRPT4",24,0) . I VADISP D "RTN","EDPRPT4",25,0) .. S CNT("VA")=CNT("VA")+1 "RTN","EDPRPT4",26,0) .. S MIN("VA")=MIN("VA")+ELAPSE "RTN","EDPRPT4",27,0) .. S MIN("VADEC")=MIN("VADEC")+ADMDEC "RTN","EDPRPT4",28,0) .. S MIN("VADEL")=MIN("VADEL")+ADMDEL "RTN","EDPRPT4",29,0) .. S:ADMDEL>359 CNT("VADEL6")=CNT("VADEL6")+1 "RTN","EDPRPT4",30,0) D3 . ; elapsed visit time >=6 hrs "RTN","EDPRPT4",31,0) . S:ELAPSE>1380 CNT("23+")=CNT("23+")+1 "RTN","EDPRPT4",32,0) . I ELAPSE>359 D "RTN","EDPRPT4",33,0) .. S CNT("6+")=CNT("6+")+1 "RTN","EDPRPT4",34,0) .. S:VADISP CNT("VA6")=CNT("VA6")+1 "RTN","EDPRPT4",35,0) . S:DEL CNT(DEL,ACU)=+$G(CNT(DEL,ACU))+1,CNT(DEL)=+$G(CNT(DEL))+1 "RTN","EDPRPT4",36,0) ; "RTN","EDPRPT4",37,0) D4 ; return counts and averages as CSV "RTN","EDPRPT4",38,0) I $G(CSV) D Q "RTN","EDPRPT4",39,0) . N TAB S TAB=$C(9) "RTN","EDPRPT4",40,0) . S X=TAB_TAB_"Delay Reason"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total" "RTN","EDPRPT4",41,0) . D ADD^EDPCSV(X) ;headers "RTN","EDPRPT4",42,0) . S X="Total ED Visits: "_CNT_TAB "RTN","EDPRPT4",43,0) . S X=X_"Average ED Visit Time: "_$S(CNT:$$ETIME^EDPRPT(MIN\CNT),1:0) "RTN","EDPRPT4",44,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",45,0) . S X="Total Visits Over 6 Hours: "_CNT("6+")_TAB "RTN","EDPRPT4",46,0) . S X=X_"Total Visits Over 23 Hours: "_CNT("23+") "RTN","EDPRPT4",47,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",48,0) . S Y=CNT-CNT("VA"),X="Total Visits Not VA Admitted: "_Y_TAB "RTN","EDPRPT4",49,0) . S X=X_"Average Visit Time for Not VA Admitted: "_$S(Y:$$ETIME^EDPRPT((MIN-MIN("VA")\Y)),1:0) "RTN","EDPRPT4",50,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",51,0) . S Y=CNT("VA"),X="Total VA Admits: "_Y_TAB "RTN","EDPRPT4",52,0) . S X=X_"Total VA Admit Delay Over 6 Hours: "_CNT("VADEL6") "RTN","EDPRPT4",53,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",54,0) . S X="Average VA Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEC")\Y),1:0)_TAB "RTN","EDPRPT4",55,0) . S X=X_"Average VA Admit Delay Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEL")\Y),1:0) "RTN","EDPRPT4",56,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",57,0) . S Y=CNT("DEC"),X="Average All Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("DEC")\Y),1:0) "RTN","EDPRPT4",58,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",59,0) . S X=TAB_TAB_"Delay Chart" D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",60,0) . S X=TAB_TAB_"Acuity"_TAB_"None"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total" "RTN","EDPRPT4",61,0) . D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT4",62,0) . S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D "RTN","EDPRPT4",63,0) .. S X=TAB_TAB_$$ENAME(DEL) "RTN","EDPRPT4",64,0) .. F I="none","one","two","three","four","five" S X=X_TAB_+$G(CNT(DEL,I)) "RTN","EDPRPT4",65,0) .. S X=X_TAB_CNT(DEL) D ADD^EDPCSV(X) "RTN","EDPRPT4",66,0) D5 ; or return counts and averages as XML "RTN","EDPRPT4",67,0) D XML^EDPX("") "RTN","EDPRPT4",68,0) S X="" "RTN","EDPRPT4",72,0) D XML^EDPX(X) "RTN","EDPRPT4",73,0) S Y=CNT-CNT("VA") "RTN","EDPRPT4",74,0) S X="" "RTN","EDPRPT4",75,0) D XML^EDPX(X) "RTN","EDPRPT4",76,0) S Y=CNT("VA"),X="" "RTN","EDPRPT4",80,0) D XML^EDPX(X) "RTN","EDPRPT4",81,0) D XML^EDPX("") "RTN","EDPRPT4",82,0) D XML^EDPX("") "RTN","EDPRPT4",83,0) S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D "RTN","EDPRPT4",84,0) . S CNT(DEL,"reason")=$$ENAME(DEL) "RTN","EDPRPT4",85,0) . S CNT(DEL,"total")=CNT(DEL) "RTN","EDPRPT4",86,0) . F I="none","one","two","three","four","five" S CNT(DEL,I)=+$G(CNT(DEL,I)) "RTN","EDPRPT4",87,0) . K ROW M ROW=CNT(DEL) "RTN","EDPRPT4",88,0) . S X=$$XMLA^EDPX("delay",.ROW) D XML^EDPX(X) "RTN","EDPRPT4",89,0) D XML^EDPX("") "RTN","EDPRPT4",90,0) Q "RTN","EDPRPT4",91,0) ; "RTN","EDPRPT4",92,0) INIT ; Initialize counters and sums "RTN","EDPRPT4",93,0) N I S (CNT,MIN)=0 "RTN","EDPRPT4",94,0) F I="DEC","VA","VA6","VADEL6","6+","23+" S CNT(I)=0 "RTN","EDPRPT4",95,0) F I="DEC","VA","VADEC","VADEL" S MIN(I)=0 "RTN","EDPRPT4",96,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT4",97,0) Q "RTN","EDPRPT4",98,0) ; "RTN","EDPRPT4",99,0) ECODE(IEN) ; Return external value for an Acuity code "RTN","EDPRPT4",100,0) N X,Y S X=$P($G(^EDPB(233.1,+IEN,0)),U,3) ;code "RTN","EDPRPT4",101,0) S Y=$S(X="":"none",'X:X,X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"X") "RTN","EDPRPT4",102,0) Q Y "RTN","EDPRPT4",103,0) ; "RTN","EDPRPT4",104,0) ENAME(IEN) ; Return external value for a Code "RTN","EDPRPT4",105,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT4",106,0) Q "" "RTN","EDPRPT5") 0^37^B33876185 "RTN","EDPRPT5",1,0) EDPRPT5 ;SLC/MKB - Shift Report "RTN","EDPRPT5",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT5",3,0) ; "RTN","EDPRPT5",4,0) SFT(DAY) ; Get Shift Report for EDPSITE on DAY "RTN","EDPRPT5",5,0) N BEG,END,IN,OUT,LOG,X,X0,X1,X3,X4,S,SOUT,SHIFT,NOW "RTN","EDPRPT5",6,0) N CNT,VA,DX,OTH,HR6,TRG,OCB,MO,DIE,UNK,PREV,NEXT,SUB "RTN","EDPRPT5",7,0) N ELAPSE,ADMDEC,STS,DISP,COL "RTN","EDPRPT5",8,0) D INIT ;set counters to 0, SHIFT(#) = start time in seconds "RTN","EDPRPT5",9,0) I 'SHIFT D ERR^EDPRPT(2300013) Q "RTN","EDPRPT5",10,0) S BEG=$S(SHIFT(1)>0:$$FMADD^XLFDT(DAY,-1,,,SHIFT(SHIFT)),1:DAY) "RTN","EDPRPT5",11,0) S END=$S(SHIFT(1)>0:$$FMADD^XLFDT(DAY,,,,SHIFT(SHIFT)),1:DAY_".2359") "RTN","EDPRPT5",12,0) S IN=BEG-.000001 F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END D "RTN","EDPRPT5",13,0) . S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT5",14,0) .. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0)) "RTN","EDPRPT5",15,0) .. S STS=$$ECODE^EDPRPT($P(X3,U,2)) "RTN","EDPRPT5",16,0) .. S DISP=$$ECODE^EDPRPT($P(X1,U,2)) "RTN","EDPRPT5",17,0) .. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW "RTN","EDPRPT5",18,0) .. S ELAPSE=($$FMDIFF^XLFDT(OUT,IN,2)\60) ;#min "RTN","EDPRPT5",19,0) .. S ADMDEC=$$ADMSTS^EDPRPT(LOG) "RTN","EDPRPT5",20,0) D1 .. ; all visits "RTN","EDPRPT5",21,0) .. S S=$$SHIFT(IN,1),SOUT=$$SHIFT(OUT,1) "RTN","EDPRPT5",22,0) .. S CNT(S)=CNT(S)+1 "RTN","EDPRPT5",23,0) .. S:'$P(X3,U,3) TRG(S)=TRG(S)+1 "RTN","EDPRPT5",24,0) .. S:ELAPSE>359 HR6(S)=HR6(S)+1 "RTN","EDPRPT5",25,0) .. S:DISP="O" OTH(S)=OTH(S)+1 "RTN","EDPRPT5",26,0) .. S:DISP="D" DIE(S)=DIE(S)+1 "RTN","EDPRPT5",27,0) .. S:(DISP="AMA")!(DISP="L")!(DISP="E") MO(S)=MO(S)+1 "RTN","EDPRPT5",28,0) .. S:DISP="" UNK(S)=UNK(S)+1 "RTN","EDPRPT5",29,0) .. I $L(STS),$$UP^XLFSTR(STS)'="GONE",S'=SOUT S OCB(S)=OCB(S)+1 "RTN","EDPRPT5",30,0) D2 S OUT=BEG-.000001 F S OUT=$O(^EDP(230,"ATO",EDPSITE,OUT)) Q:'OUT Q:OUT>END D "RTN","EDPRPT5",31,0) . S LOG=0 F S LOG=+$O(^EDP(230,"ATO",EDPSITE,OUT,LOG)) Q:LOG<1 D "RTN","EDPRPT5",32,0) .. S DX(SOUT)=DX(SOUT)+1,IN=$P(X0,U,8) "RTN","EDPRPT5",33,0) .. S:INBEG,"^VA^ICU^T^"[(U_DISP_U) S S=$$SHIFT(ADMDEC,1),VA(S)=VA(S)+1 "RTN","EDPRPT5",35,0) D3 ; calculate #carried over "RTN","EDPRPT5",36,0) S S=SUB(SHIFT),NEXT(S)=PREV+CNT(S)-DX(S) "RTN","EDPRPT5",37,0) S PREV("one")=NEXT(S),PREV(S)=PREV "RTN","EDPRPT5",38,0) F I=1:1:(SHIFT-1) S S=SUB(I),X=SUB($S(I>1:I-1,1:SHIFT)),NEXT(S)=NEXT(X)+CNT(S)-DX(S) "RTN","EDPRPT5",39,0) F I=2:1:(SHIFT-1) S PREV(SUB(I))=NEXT(SUB(I-1)) "RTN","EDPRPT5",40,0) ;S NEXT("three")=PREV+CNT("three")-DX("three") "RTN","EDPRPT5",41,0) ;S NEXT("one")=NEXT("three")+CNT("one")-DX("one") "RTN","EDPRPT5",42,0) ;S NEXT("two")=NEXT("one")+CNT("two")-DX("two") "RTN","EDPRPT5",43,0) ;S PREV("one")=NEXT("three"),PREV("two")=NEXT("one"),PREV("three")=PREV "RTN","EDPRPT5",44,0) D4 ; return column info "RTN","EDPRPT5",45,0) F I=1:1:SHIFT D ;convert #seconds to HH[:MM] "RTN","EDPRPT5",46,0) . N X,Y S X=SHIFT(I) "RTN","EDPRPT5",47,0) . S Y=X\3600 S:Y=0 Y=12 S:Y>12 Y=Y-12 "RTN","EDPRPT5",48,0) . S SHIFT(I)=Y_$S(X#3600:":"_(X#3600)\60,1:"") "RTN","EDPRPT5",49,0) F I=1:1:SHIFT D ;build column captions "RTN","EDPRPT5",50,0) . S COL(I,"name")=SHIFT(I)_" to "_SHIFT($S(I+1>SHIFT:1,1:I+1)) "RTN","EDPRPT5",51,0) . S COL(I,"shiftId")=SUB(I) "RTN","EDPRPT5",52,0) ;S COL(1,"name")="7 to 3",COL(1,"shiftId")="one" "RTN","EDPRPT5",53,0) ;S COL(2,"name")="3 to 11",COL(2,"shiftId")="two" "RTN","EDPRPT5",54,0) ;S COL(3,"name")="11 to 7",COL(3,"shiftId")="three" "RTN","EDPRPT5",55,0) I $G(CSV) D CSV Q "RTN","EDPRPT5",56,0) D XML^EDPX("") "RTN","EDPRPT5",57,0) F S=1:1:SHIFT K X M X=COL(S) S X=$$XMLA^EDPX("column",.X) D XML^EDPX(X) "RTN","EDPRPT5",58,0) D XML^EDPX("") "RTN","EDPRPT5",59,0) D5 ; return counts and averages as XML "RTN","EDPRPT5",60,0) D XML^EDPX("") "RTN","EDPRPT5",61,0) S X=$$XMLA^EDPX("category",.PREV) D XML^EDPX(X) "RTN","EDPRPT5",62,0) S X=$$XMLA^EDPX("category",.CNT) D XML^EDPX(X) "RTN","EDPRPT5",63,0) S X=$$XMLA^EDPX("category",.DX) D XML^EDPX(X) "RTN","EDPRPT5",64,0) S X=$$XMLA^EDPX("category",.VA) D XML^EDPX(X) "RTN","EDPRPT5",65,0) S X=$$XMLA^EDPX("category",.OTH) D XML^EDPX(X) "RTN","EDPRPT5",66,0) S X=$$XMLA^EDPX("category",.HR6) D XML^EDPX(X) "RTN","EDPRPT5",67,0) S X=$$XMLA^EDPX("category",.TRG) D XML^EDPX(X) "RTN","EDPRPT5",68,0) S X=$$XMLA^EDPX("category",.OCB) D XML^EDPX(X) "RTN","EDPRPT5",69,0) S X=$$XMLA^EDPX("category",.MO) D XML^EDPX(X) "RTN","EDPRPT5",70,0) S X=$$XMLA^EDPX("category",.DIE) D XML^EDPX(X) "RTN","EDPRPT5",71,0) S X=$$XMLA^EDPX("category",.UNK) D XML^EDPX(X) "RTN","EDPRPT5",72,0) S X=$$XMLA^EDPX("category",.NEXT) D XML^EDPX(X) "RTN","EDPRPT5",73,0) D XML^EDPX("") "RTN","EDPRPT5",74,0) Q "RTN","EDPRPT5",75,0) ; "RTN","EDPRPT5",76,0) CSV ; Return headers, counts and averages as CSV "RTN","EDPRPT5",77,0) N X,TAB S TAB=$C(9) "RTN","EDPRPT5",78,0) S X="Category"_TAB_COL(SHIFT,"name") "RTN","EDPRPT5",79,0) F I=1:1:(SHIFT-1) S X=X_TAB_COL(I,"name") "RTN","EDPRPT5",80,0) D ADD^EDPCSV(X) ;headers "RTN","EDPRPT5",81,0) D ROW("Carried Over at Report Start",.PREV) "RTN","EDPRPT5",82,0) D ROW("Number of New Patients",.CNT) "RTN","EDPRPT5",83,0) D ROW("Number of Patients Discharged",.DX) "RTN","EDPRPT5",84,0) D ROW("Number Dec to Admit to Va",.VA) "RTN","EDPRPT5",85,0) D ROW("Number Dec to Admit to Other",.OTH) "RTN","EDPRPT5",86,0) D ROW("Number Over 6 Hours",.HR6) "RTN","EDPRPT5",87,0) D ROW("Number Waiting for Triage",.TRG) "RTN","EDPRPT5",88,0) D ROW("Number of Occupied Beds",.OCB) "RTN","EDPRPT5",89,0) D ROW("Number of Missed Opportunities",.MO) "RTN","EDPRPT5",90,0) D ROW("Number Deceased",.DIE) "RTN","EDPRPT5",91,0) D ROW("Number With No Disposition",.UNK) "RTN","EDPRPT5",92,0) D ROW("Carry Over to Next Shift",.NEXT) "RTN","EDPRPT5",93,0) Q "RTN","EDPRPT5",94,0) ; "RTN","EDPRPT5",95,0) ROW(NAME,LIST) ; add row "RTN","EDPRPT5",96,0) N S,I "RTN","EDPRPT5",97,0) S S=SUB(SHIFT),X=NAME_TAB_LIST(S) "RTN","EDPRPT5",98,0) F I=1:1:(SHIFT-1) S S=SUB(I),X=X_TAB_LIST(S) "RTN","EDPRPT5",99,0) D ADD^EDPCSV(X) "RTN","EDPRPT5",100,0) Q "RTN","EDPRPT5",101,0) ; "RTN","EDPRPT5",102,0) INIT ; Initialize counters and sums "RTN","EDPRPT5",103,0) N I,S "RTN","EDPRPT5",104,0) S PREV=0,DAY=$P(DAY,".") "RTN","EDPRPT5",105,0) D SETUP F I=1:1:SHIFT D "RTN","EDPRPT5",106,0) . S S=$$WORD(I),SUB(I)=S "RTN","EDPRPT5",107,0) . S CNT(S)=0,CNT("category")="Number of New Patients" "RTN","EDPRPT5",108,0) . S DX(S)=0,DX("category")="Number of Patients Discharged" "RTN","EDPRPT5",109,0) . S VA(S)=0,VA("category")="Number Dec to Admit to VA" "RTN","EDPRPT5",110,0) . S OTH(S)=0,OTH("category")="Number Dec to Admit to Other" "RTN","EDPRPT5",111,0) . S HR6(S)=0,HR6("category")="Number Over 6 Hours" "RTN","EDPRPT5",112,0) . S TRG(S)=0,TRG("category")="Number Waiting for Triage" ;no acuity "RTN","EDPRPT5",113,0) . S OCB(S)=0,OCB("category")="Number of Occupied Beds" "RTN","EDPRPT5",114,0) . S MO(S)=0,MO("category")="Number of Missed Opportunities" "RTN","EDPRPT5",115,0) . S DIE(S)=0,DIE("category")="Number Deceased" "RTN","EDPRPT5",116,0) . S UNK(S)=0,UNK("category")="Number With No Disposition" "RTN","EDPRPT5",117,0) . S PREV(S)=0,PREV("category")="Carried Over at Report Start" "RTN","EDPRPT5",118,0) . S NEXT(S)=0,NEXT("category")="Carry Over to Next Shift" "RTN","EDPRPT5",119,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT5",120,0) Q "RTN","EDPRPT5",121,0) ; "RTN","EDPRPT5",122,0) WORD(X) ; Return name of number X "RTN","EDPRPT5",123,0) N Y S Y=$S(X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",X=6:"six",X=7:"seven",X=8:"eight",X=9:"nine",X=10:"ten",X=11:"eleven",X=12:"twelve",1:"none") "RTN","EDPRPT5",124,0) Q Y "RTN","EDPRPT5",125,0) ; "RTN","EDPRPT5",126,0) SETUP ; Create SHIFT(#) list of shift times "RTN","EDPRPT5",127,0) N TA,X1,X,DUR "RTN","EDPRPT5",128,0) S TA=+$O(^EDPB(231.9,"C",EDPSITE,0)),X1=$G(^EDPB(231.9,TA,1)) "RTN","EDPRPT5",129,0) S X=$P(X1,U,6),DUR=$P(X1,U,7)*60 I DUR'>0 S SHIFT=0 Q "RTN","EDPRPT5",130,0) S SHIFT=1,SHIFT(1)=X*60 ;seconds "RTN","EDPRPT5",131,0) F S X=SHIFT(SHIFT)+DUR Q:X>86340 S SHIFT=SHIFT+1,SHIFT(SHIFT)=X "RTN","EDPRPT5",132,0) Q "RTN","EDPRPT5",133,0) ; "RTN","EDPRPT5",134,0) SHIFT(X,TXT) ; Return shift # for time X using SHIFT(#) "RTN","EDPRPT5",135,0) N TM,Y "RTN","EDPRPT5",136,0) S TM=$P($$FMTH^XLFDT(X),",",2) ;#seconds since midnight "RTN","EDPRPT5",137,0) I TM=SHIFT(SHIFT)) S Y=SHIFT "RTN","EDPRPT5",138,0) E F I=2:1:SHIFT I TMEND S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT6",10,0) . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0)) "RTN","EDPRPT6",11,0) . S MD=$P(X3,U,5) Q:MD<1 ;no provider "RTN","EDPRPT6",12,0) . S DISP=$P(X1,U,3),ACU=$$ACUITY($P(X3,U,3)) "RTN","EDPRPT6",13,0) . S MDTIME=$$ASSIGNED^EDPRPT(LOG,5) "RTN","EDPRPT6",14,0) . D INIT(MD) ;set counters,sums to 0 per provider "RTN","EDPRPT6",15,0) D1 . ; all visits "RTN","EDPRPT6",16,0) . S S=$$SHIFT^EDPRPT5(MDTIME) "RTN","EDPRPT6",17,0) . S CNT(MD)=CNT(MD)+1,CNT(MD,S,ACU)=CNT(MD,S,ACU)+1 "RTN","EDPRPT6",18,0) . S IN2MD=$$FMDIFF^XLFDT(MDTIME,IN,2)\60 "RTN","EDPRPT6",19,0) . S IN2MD(MD)=IN2MD(MD)+IN2MD,IN2MD(MD,S,ACU)=IN2MD(MD,S,ACU)+IN2MD "RTN","EDPRPT6",20,0) . S MD2DS=$S(DISP:$$FMDIFF^XLFDT(DISP,MDTIME,2)\60,1:0) "RTN","EDPRPT6",21,0) . S MD2DS(MD)=MD2DS(MD)+MD2DS,MD2DS(MD,S,ACU)=MD2DS(MD,S,ACU)+MD2DS "RTN","EDPRPT6",22,0) D2 ; calculate & return averages as CSV "RTN","EDPRPT6",23,0) I $G(CSV) D Q "RTN","EDPRPT6",24,0) . N TAB,NM,SFT S TAB=$C(9) "RTN","EDPRPT6",25,0) . S X="MD Name"_TAB_"Shift"_TAB_"Acuity"_TAB_"# Patients"_TAB_"Time In to MD Assigned"_TAB_"MD Assign to Dispo" "RTN","EDPRPT6",26,0) . D ADD^EDPCSV(X) "RTN","EDPRPT6",27,0) . S MD=0 F S MD=$O(CNT(MD)) Q:MD<1 I CNT(MD) D "RTN","EDPRPT6",28,0) .. S NM=$$EPERS^EDPRPT(MD) F S=1:1:SHIFT D "RTN","EDPRPT6",29,0) ... S SFT=S F ACU=0:1:5 I CNT(MD,S,ACU) D "RTN","EDPRPT6",30,0) .... S X=NM_TAB_SFT_TAB_ACU_TAB_CNT(MD,S,ACU) "RTN","EDPRPT6",31,0) .... S X=X_TAB_$$ETIME^EDPRPT(IN2MD(MD,S,ACU)/CNT(MD,S,ACU)) "RTN","EDPRPT6",32,0) .... S X=X_TAB_$$ETIME^EDPRPT(MD2DS(MD,S,ACU)/CNT(MD,S,ACU)) "RTN","EDPRPT6",33,0) .... D ADD^EDPCSV(X) S (NM,SFT)="" "RTN","EDPRPT6",34,0) .. S X=" MD TOTALS"_TAB_TAB_TAB_CNT(MD) "RTN","EDPRPT6",35,0) .. S X=X_TAB_$$ETIME^EDPRPT(IN2MD(MD)/CNT(MD)) "RTN","EDPRPT6",36,0) .. S X=X_TAB_$$ETIME^EDPRPT(MD2DS(MD)/CNT(MD)) "RTN","EDPRPT6",37,0) .. D ADD^EDPCSV(X) "RTN","EDPRPT6",38,0) D3 ; or as XML "RTN","EDPRPT6",39,0) D XML^EDPX("") "RTN","EDPRPT6",40,0) S MD=0 F S MD=$O(CNT(MD)) Q:MD<1 I CNT(MD) D "RTN","EDPRPT6",41,0) . K ROW S ROW("name")=$$EPERS^EDPRPT(MD),ROW("total")=CNT(MD) "RTN","EDPRPT6",42,0) . S ROW("timeMD")=$$ETIME^EDPRPT(IN2MD(MD)/CNT(MD)) "RTN","EDPRPT6",43,0) . S ROW("timeDisp")=$$ETIME^EDPRPT(MD2DS(MD)/CNT(MD)) "RTN","EDPRPT6",44,0) . S X=$$XMLA^EDPX("md",.ROW),X=$TR(X,"/") D XML^EDPX(X) "RTN","EDPRPT6",45,0) . D XML^EDPX("") "RTN","EDPRPT6",46,0) . F S=1:1:SHIFT D "RTN","EDPRPT6",47,0) .. F ACU=0:1:5 I CNT(MD,S,ACU) D "RTN","EDPRPT6",48,0) ... K ROW S ROW("total")=CNT(MD,S,ACU) "RTN","EDPRPT6",49,0) ... S ROW("number")=S,ROW("acuity")=ACU "RTN","EDPRPT6",50,0) ... S ROW("timeMD")=$$ETIME^EDPRPT(IN2MD(MD,S,ACU)/CNT(MD,S,ACU)) "RTN","EDPRPT6",51,0) ... S ROW("timeDisp")=$$ETIME^EDPRPT(MD2DS(MD,S,ACU)/CNT(MD,S,ACU)) "RTN","EDPRPT6",52,0) ... S X=$$XMLA^EDPX("shift",.ROW) D XML^EDPX(X) "RTN","EDPRPT6",53,0) . D XML^EDPX(""),XML^EDPX("") "RTN","EDPRPT6",54,0) D XML^EDPX("") "RTN","EDPRPT6",55,0) Q "RTN","EDPRPT6",56,0) ; "RTN","EDPRPT6",57,0) INIT(DR) ; Initialize counters and sums "RTN","EDPRPT6",58,0) N S,A "RTN","EDPRPT6",59,0) S (CNT(DR),IN2MD(DR),MD2DS(DR))=0 "RTN","EDPRPT6",60,0) F S=1:1:SHIFT D "RTN","EDPRPT6",61,0) . F A=0:1:5 S (CNT(DR,S,A),IN2MD(DR,S,A),MD2DS(DR,S,A))=0 "RTN","EDPRPT6",62,0) Q "RTN","EDPRPT6",63,0) ; "RTN","EDPRPT6",64,0) ACUITY(IEN) ; Return external value [0-5] for an Acuity code "RTN","EDPRPT6",65,0) N X0,Y S X0=$G(^EDPB(233.1,+IEN,0)) "RTN","EDPRPT6",66,0) S Y=$P(X0,U,3) S:Y<1 Y=+$P(X0,U,4) ;code or nat'l code "RTN","EDPRPT6",67,0) Q Y "RTN","EDPRPT7") 0^39^B21032834 "RTN","EDPRPT7",1,0) EDPRPT7 ;SLC/MKB - Exposure Report "RTN","EDPRPT7",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT7",3,0) ; "RTN","EDPRPT7",4,0) EXP(IEN) ; Get Exposure Report for IEN at EDPSITE "RTN","EDPRPT7",5,0) S IEN=+$G(IEN) Q:IEN<1 Q:'$D(^EDP(230,IEN,0)) "RTN","EDPRPT7",6,0) I $G(CSV) D EXP^EDPRPT7C(IEN) Q ;CSV format instead "RTN","EDPRPT7",7,0) N BEG,END,LIST,LOG,IN,OUT,X,X0,Y,WAIT,RLIST,TREAT,OTHER,MD,RN,RES,I,J "RTN","EDPRPT7",8,0) N SHIFT D SETUP^EDPRPT5 ;build SHIFT(#) "RTN","EDPRPT7",9,0) I 'SHIFT D ERR^EDPRPT(2300013) Q "RTN","EDPRPT7",10,0) S X0=^EDP(230,IEN,0),BEG=$P(X0,U,8),END=$P(X0,U,9) "RTN","EDPRPT7",11,0) S:'BEG BEG=$P(X0,U) S:'END END=$$NOW^EDPRPT "RTN","EDPRPT7",12,0) S WAIT=$$NWBED^EDPRPT(IEN) D ROOMS(IEN,END) "RTN","EDPRPT7",13,0) ; put IEN info into XML "RTN","EDPRPT7",14,0) D XML^EDPX("") "RTN","EDPRPT7",15,0) D ADD(IEN),STAFF(IEN) "RTN","EDPRPT7",16,0) D XML^EDPX("") "RTN","EDPRPT7",17,0) ; look for patients also in ED between BEG and END "RTN","EDPRPT7",18,0) D FIND(BEG,END) ;create LIST(#) list of ien's to check "RTN","EDPRPT7",19,0) S LOG=0 F S LOG=+$O(LIST(LOG)) Q:'LOG I LOG'=IEN D "RTN","EDPRPT7",20,0) . S X0=$G(^EDP(230,LOG,0)),IN=$P(X0,U,8),OUT=$P(X0,U,9) "RTN","EDPRPT7",21,0) . D ROOMS(LOG,OUT) "RTN","EDPRPT7",22,0) . ; in waiting room at same time? "RTN","EDPRPT7",23,0) . I WAIT,(BEG<=IN)&(IN<=WAIT) S WAIT(LOG)="" Q ;in "RTN","EDPRPT7",24,0) . S X=$$NWBED^EDPRPT(LOG) "RTN","EDPRPT7",25,0) . I X,(BEG<=X)&(X<=WAIT) S WAIT(LOG)="" Q ;out "RTN","EDPRPT7",26,0) . ; compare treatment rooms "RTN","EDPRPT7",27,0) . S I=1 F S I=$O(RLIST(IEN,I)) Q:I<1 D "RTN","EDPRPT7",28,0) .. N RIN,ROUT S RIN=$P(RLIST(IEN,I),U,2),ROUT=$P(RLIST(IEN,I),U,3) "RTN","EDPRPT7",29,0) .. S J=0 F S J=$O(RLIST(LOG,J)) Q:J<1 I $P(RLIST(IEN,I),U)=$P(RLIST(LOG,J),U) D "RTN","EDPRPT7",30,0) ... S X=$P(RLIST(LOG,J),U,2) ;in to treatment room "RTN","EDPRPT7",31,0) ... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q "RTN","EDPRPT7",32,0) ... S X=$P(RLIST(LOG,J),U,3) ;out of treatment room "RTN","EDPRPT7",33,0) ... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q "RTN","EDPRPT7",34,0) . I '$D(TREAT(LOG)) S OTHER(LOG)="" "RTN","EDPRPT7",35,0) E1 ; return waiting room patients "RTN","EDPRPT7",36,0) I $O(WAIT(0)) D "RTN","EDPRPT7",37,0) . D XML^EDPX("") "RTN","EDPRPT7",38,0) . S LOG=0 F S LOG=$O(WAIT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG) "RTN","EDPRPT7",39,0) . D XML^EDPX("") "RTN","EDPRPT7",40,0) ; return treatment room patients "RTN","EDPRPT7",41,0) I $O(TREAT(0)) D "RTN","EDPRPT7",42,0) . D XML^EDPX("") "RTN","EDPRPT7",43,0) . S LOG=0 F S LOG=$O(TREAT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG) "RTN","EDPRPT7",44,0) . D XML^EDPX("") "RTN","EDPRPT7",45,0) ; return other ED patients "RTN","EDPRPT7",46,0) I $O(OTHER(0)) D "RTN","EDPRPT7",47,0) . D XML^EDPX("") "RTN","EDPRPT7",48,0) . S LOG=0 F S LOG=$O(OTHER(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG) "RTN","EDPRPT7",49,0) . D XML^EDPX("") "RTN","EDPRPT7",50,0) E2 ; return staff on duty "RTN","EDPRPT7",51,0) D XML^EDPX("") "RTN","EDPRPT7",52,0) I $O(MD(0)) D "RTN","EDPRPT7",53,0) . D XML^EDPX("") "RTN","EDPRPT7",54,0) . S I=0 F S I=$O(MD(I)) Q:I<1 D "RTN","EDPRPT7",55,0) .. S X="" "RTN","EDPRPT7",56,0) .. D XML^EDPX(X) "RTN","EDPRPT7",57,0) . D XML^EDPX("") "RTN","EDPRPT7",58,0) I $O(RN(0)) D "RTN","EDPRPT7",59,0) . D XML^EDPX("") "RTN","EDPRPT7",60,0) . S I=0 F S I=$O(RN(I)) Q:I<1 D "RTN","EDPRPT7",61,0) .. S X="" "RTN","EDPRPT7",62,0) .. D XML^EDPX(X) "RTN","EDPRPT7",63,0) . D XML^EDPX("") "RTN","EDPRPT7",64,0) I $O(RES(0)) D "RTN","EDPRPT7",65,0) . D XML^EDPX("") "RTN","EDPRPT7",66,0) . S I=0 F S I=$O(RES(I)) Q:I<1 D "RTN","EDPRPT7",67,0) .. S X="" "RTN","EDPRPT7",68,0) .. D XML^EDPX(X) "RTN","EDPRPT7",69,0) . D XML^EDPX("") "RTN","EDPRPT7",70,0) D XML^EDPX("") "RTN","EDPRPT7",71,0) Q "RTN","EDPRPT7",72,0) ; "RTN","EDPRPT7",73,0) FIND(IN,OUT) ; create LIST(#) of visits at same time "RTN","EDPRPT7",74,0) N IDX,TIME,I K LIST "RTN","EDPRPT7",75,0) F IDX="ATI","ATO" D "RTN","EDPRPT7",76,0) . S TIME=IN "RTN","EDPRPT7",77,0) . F S TIME=$O(^EDP(230,IDX,EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D "RTN","EDPRPT7",78,0) .. S I=0 F S I=$O(^EDP(230,IDX,EDPSITE,TIME,I)) Q:I<1 S LIST(I)="" "RTN","EDPRPT7",79,0) Q "RTN","EDPRPT7",80,0) ; "RTN","EDPRPT7",81,0) ROOMS(LOG,OUT) ; Return RLIST(LOG,n)= room ^ time in ^ time out "RTN","EDPRPT7",82,0) N D,I,N,X S N=0 "RTN","EDPRPT7",83,0) S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D "RTN","EDPRPT7",84,0) . S X=+$P($G(^EDP(230.1,I,3)),U,4) Q:'X ;no location change "RTN","EDPRPT7",85,0) . S:N $P(RLIST(LOG,N),U,3)=D ;time out = time in of next room "RTN","EDPRPT7",86,0) . S N=N+1,RLIST(LOG,N)=X_U_D "RTN","EDPRPT7",87,0) I N,'$P(RLIST(LOG,N),U,3) S $P(RLIST(LOG,N),U,3)=OUT "RTN","EDPRPT7",88,0) Q "RTN","EDPRPT7",89,0) ; "RTN","EDPRPT7",90,0) ADD(LOG) ; Add row to XML for each room used during visit "RTN","EDPRPT7",91,0) N EDPI,EDPX,ROW,LABS,XRAY "RTN","EDPRPT7",92,0) S EDPI=0 F S EDPI=$O(RLIST(LOG,EDPI)) Q:EDPI<1 S EDPX=RLIST(LOG,EDPI) D "RTN","EDPRPT7",93,0) . K ROW S ROW("id")=LOG ;only return for EDPI=1 ?? "RTN","EDPRPT7",94,0) . S ROW("bed")=$P($G(^EDPB(231.8,+EDPX,0)),U) "RTN","EDPRPT7",95,0) . S X=$P(EDPX,U,2) "RTN","EDPRPT7",96,0) . S ROW("shiftTimeIn")=$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X) "RTN","EDPRPT7",97,0) . S X=$P(EDPX,U,3) "RTN","EDPRPT7",98,0) . S ROW("shiftTimeOut")=$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X) "RTN","EDPRPT7",99,0) . S ROW("dx")=$P($G(^EDP(230,LOG,4,1,0)),U) "RTN","EDPRPT7",100,0) . S X=$P($G(^EDP(230,LOG,1)),U,2),ROW("disposition")=$$ECODE^EDPRPT(X) "RTN","EDPRPT7",101,0) . S X=$P($G(^EDP(230,LOG,0)),U,10),ROW("arrival")=$$ECODE(X) "RTN","EDPRPT7",102,0) . S LABS=$D(^EDP(230,LOG,8,"AC","L")),XRAY=$D(^("R")),X="" "RTN","EDPRPT7",103,0) . I LABS!XRAY D S X=X_" ordered" "RTN","EDPRPT7",104,0) .. I LABS&XRAY S X="Labs and Imaging" Q "RTN","EDPRPT7",105,0) .. S:LABS X="Labs" S:XRAY X="Imaging" "RTN","EDPRPT7",106,0) . S ROW("notes")=X "RTN","EDPRPT7",107,0) . S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) "RTN","EDPRPT7",108,0) Q "RTN","EDPRPT7",109,0) ; "RTN","EDPRPT7",110,0) STAFF(LOG) ; save staff involved in patient care "RTN","EDPRPT7",111,0) N D,I,X,ACT S LOG=+$G(LOG) "RTN","EDPRPT7",112,0) S D=0 F S D=$O(^EDP(230.1,LOG,D)) Q:D<1 S I=+$O(^(D,0)) D "RTN","EDPRPT7",113,0) . S ACT=$G(^EDP(230.1,I,3)) "RTN","EDPRPT7",114,0) . S X=+$P(ACT,U,5) S:X MD(X)=$$EPERS^EDPRPT(X) "RTN","EDPRPT7",115,0) . S X=+$P(ACT,U,6) S:X RN(X)=$$EPERS^EDPRPT(X) "RTN","EDPRPT7",116,0) . S X=+$P(ACT,U,7) S:X RES(X)=$$EPERS^EDPRPT(X) "RTN","EDPRPT7",117,0) Q "RTN","EDPRPT7",118,0) ; "RTN","EDPRPT7",119,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT7",120,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT7",121,0) Q "" "RTN","EDPRPT7C") 0^40^B21231553 "RTN","EDPRPT7C",1,0) EDPRPT7C ;SLC/MKB - Exposure Report (CSV format) "RTN","EDPRPT7C",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT7C",3,0) ; "RTN","EDPRPT7C",4,0) EXP(IEN) ; Get Exposure Report for IEN at EDPSITE "RTN","EDPRPT7C",5,0) S IEN=+$G(IEN) Q:IEN<1 Q:'$D(^EDP(230,IEN,0)) "RTN","EDPRPT7C",6,0) N BEG,END,LIST,LOG,IN,OUT,X,X0,Y,WAIT,RLIST,TREAT,OTHER,MD,RN,RES,I,J,TAB "RTN","EDPRPT7C",7,0) N SHIFT D SETUP^EDPRPT5 ;build SHIFT(#) "RTN","EDPRPT7C",8,0) I 'SHIFT D ERR^EDPRPT(2300013) Q "RTN","EDPRPT7C",9,0) S X0=^EDP(230,IEN,0),BEG=$P(X0,U,8),END=$P(X0,U,9),TAB=$C(9) "RTN","EDPRPT7C",10,0) S:'BEG BEG=$P(X0,U) S:'END END=$$NOW^EDPRPT "RTN","EDPRPT7C",11,0) S WAIT=$$NWBED^EDPRPT(IEN) D ROOMS(IEN,END) "RTN","EDPRPT7C",12,0) ; put IEN info into CSV "RTN","EDPRPT7C",13,0) S X="ED"_TAB_"Bed"_TAB_"Shift - Time In"_TAB_"Shift - Time Out"_TAB_"Diagnosis"_TAB_"Dispo"_TAB_"Arr Mode"_TAB_"Notes" "RTN","EDPRPT7C",14,0) D ADD^EDPCSV(X) ;headers "RTN","EDPRPT7C",15,0) S X=TAB_TAB_"Contagious Patient Information" "RTN","EDPRPT7C",16,0) D ADD^EDPCSV(X),BLANK^EDPCSV "RTN","EDPRPT7C",17,0) D ADD(IEN),STAFF(IEN) "RTN","EDPRPT7C",18,0) D BLANK^EDPCSV "RTN","EDPRPT7C",19,0) ; look for patients also in ED between BEG and END "RTN","EDPRPT7C",20,0) D FIND(BEG,END) ;create LIST(#) list of ien's to check "RTN","EDPRPT7C",21,0) S LOG=0 F S LOG=+$O(LIST(LOG)) Q:'LOG I LOG'=IEN D "RTN","EDPRPT7C",22,0) . S X0=$G(^EDP(230,LOG,0)),IN=$P(X0,U,8),OUT=$P(X0,U,9) "RTN","EDPRPT7C",23,0) . D ROOMS(LOG,OUT) "RTN","EDPRPT7C",24,0) . ; in waiting room at same time? "RTN","EDPRPT7C",25,0) . I WAIT,(BEG<=IN)&(IN<=WAIT) S WAIT(LOG)="" Q ;in "RTN","EDPRPT7C",26,0) . S X=$$NWBED^EDPRPT(LOG) "RTN","EDPRPT7C",27,0) . I X,(BEG<=X)&(X<=WAIT) S WAIT(LOG)="" Q ;out "RTN","EDPRPT7C",28,0) . ; compare treatment rooms "RTN","EDPRPT7C",29,0) . S I=1 F S I=$O(RLIST(IEN,I)) Q:I<1 D "RTN","EDPRPT7C",30,0) .. N RIN,ROUT S RIN=$P(RLIST(IEN,I),U,2),ROUT=$P(RLIST(IEN,I),U,3) "RTN","EDPRPT7C",31,0) .. S J=0 F S J=$O(RLIST(LOG,J)) Q:J<1 I $P(RLIST(IEN,I),U)=$P(RLIST(LOG,J),U) D "RTN","EDPRPT7C",32,0) ... S X=$P(RLIST(LOG,J),U,2) ;in to treatment room "RTN","EDPRPT7C",33,0) ... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q "RTN","EDPRPT7C",34,0) ... S X=$P(RLIST(LOG,J),U,3) ;out of treatment room "RTN","EDPRPT7C",35,0) ... I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q "RTN","EDPRPT7C",36,0) . I '$D(TREAT(LOG)) S OTHER(LOG)="" "RTN","EDPRPT7C",37,0) E1 ; return waiting room patients "RTN","EDPRPT7C",38,0) D ADD^EDPCSV(TAB_TAB_"Exposed in the Waiting Room"),BLANK^EDPCSV "RTN","EDPRPT7C",39,0) I '$O(WAIT(0)) D ADD^EDPCSV(TAB_TAB_" None") "RTN","EDPRPT7C",40,0) E S LOG=0 F S LOG=$O(WAIT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG) "RTN","EDPRPT7C",41,0) D BLANK^EDPCSV "RTN","EDPRPT7C",42,0) ; return treatment room patients "RTN","EDPRPT7C",43,0) D ADD^EDPCSV(TAB_TAB_"Exposed in Treatment Room"),BLANK^EDPCSV "RTN","EDPRPT7C",44,0) I '$O(TREAT(0)) D ADD^EDPCSV(TAB_TAB_" None") "RTN","EDPRPT7C",45,0) E S LOG=0 F S LOG=$O(TREAT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG) "RTN","EDPRPT7C",46,0) D BLANK^EDPCSV "RTN","EDPRPT7C",47,0) ; return other ED patients "RTN","EDPRPT7C",48,0) D ADD^EDPCSV(TAB_TAB_"Other ED Patients"),BLANK^EDPCSV "RTN","EDPRPT7C",49,0) I '$O(OTHER(0)) D ADD^EDPCSV(TAB_TAB_" None") "RTN","EDPRPT7C",50,0) E S LOG=0 F S LOG=$O(OTHER(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG) "RTN","EDPRPT7C",51,0) D BLANK^EDPCSV "RTN","EDPRPT7C",52,0) E2 ; return staff on duty "RTN","EDPRPT7C",53,0) N MAX,MORE D ADD^EDPCSV(TAB_TAB_"On Duty Staff") "RTN","EDPRPT7C",54,0) D ADD^EDPCSV(TAB_"Doctors"_TAB_"Nurses"_TAB_"Residents") "RTN","EDPRPT7C",55,0) S MAX=+$G(RN) S:$G(MD)>MAX MAX=+MD S:$G(RES)>MAX MAX=+RES "RTN","EDPRPT7C",56,0) S MORE=1,(MD,RN,RES)=0 F D Q:'MORE "RTN","EDPRPT7C",57,0) . S:MD'="" MD=$O(MD(MD)) S:RN'="" RN=$O(RN(RN)) "RTN","EDPRPT7C",58,0) . S:RES'="" RES=$O(RES(RES)) ;get next "RTN","EDPRPT7C",59,0) . I MD="",RN="",RES="" S MORE=0 Q ;done "RTN","EDPRPT7C",60,0) . S X=TAB_$S(MD:MD(MD),1:"")_TAB_$S(RN:RN(RN),1:"")_TAB_$S(RES:RES(RES),1:"") "RTN","EDPRPT7C",61,0) . D ADD^EDPCSV(X) "RTN","EDPRPT7C",62,0) Q "RTN","EDPRPT7C",63,0) ; "RTN","EDPRPT7C",64,0) FIND(IN,OUT) ; create LIST(#) of visits at same time "RTN","EDPRPT7C",65,0) N IDX,TIME,I K LIST "RTN","EDPRPT7C",66,0) F IDX="ATI","ATO" D "RTN","EDPRPT7C",67,0) . S TIME=IN "RTN","EDPRPT7C",68,0) . F S TIME=$O(^EDP(230,IDX,EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D "RTN","EDPRPT7C",69,0) .. S I=0 F S I=$O(^EDP(230,IDX,EDPSITE,TIME,I)) Q:I<1 S LIST(I)="" "RTN","EDPRPT7C",70,0) Q "RTN","EDPRPT7C",71,0) ; "RTN","EDPRPT7C",72,0) ROOMS(LOG,OUT) ; Return RLIST(LOG,n)= room ^ time in ^ time out "RTN","EDPRPT7C",73,0) N D,I,N,X S N=0 "RTN","EDPRPT7C",74,0) S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D "RTN","EDPRPT7C",75,0) . S X=+$P($G(^EDP(230.1,I,3)),U,4) Q:'X ;no location change "RTN","EDPRPT7C",76,0) . S:N $P(RLIST(LOG,N),U,3)=D ;time out = time in of next room "RTN","EDPRPT7C",77,0) . S N=N+1,RLIST(LOG,N)=X_U_D "RTN","EDPRPT7C",78,0) I N,'$P(RLIST(LOG,N),U,3) S $P(RLIST(LOG,N),U,3)=OUT "RTN","EDPRPT7C",79,0) Q "RTN","EDPRPT7C",80,0) ; "RTN","EDPRPT7C",81,0) ADD(LOG) ; Add row to CSV for each room used during visit "RTN","EDPRPT7C",82,0) N EDPI,EDPX,ROW,LABS,XRAY,X "RTN","EDPRPT7C",83,0) S EDPI=0 F S EDPI=$O(RLIST(LOG,EDPI)) Q:EDPI<1 S EDPX=RLIST(LOG,EDPI) D "RTN","EDPRPT7C",84,0) . S ROW=$S(EDPI=1:LOG,1:"")_TAB_$P($G(^EDPB(231.8,+EDPX,0)),U) "RTN","EDPRPT7C",85,0) . S X=$P(EDPX,U,2) ;shiftTimeIn "RTN","EDPRPT7C",86,0) . S ROW=ROW_TAB_$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X) "RTN","EDPRPT7C",87,0) . S X=$P(EDPX,U,3) ;shiftTimeOut "RTN","EDPRPT7C",88,0) . S ROW=ROW_TAB_$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X) "RTN","EDPRPT7C",89,0) . S ROW=ROW_TAB_$P($G(^EDP(230,LOG,4,1,0)),U) ;Dx "RTN","EDPRPT7C",90,0) . S X=$P($G(^EDP(230,LOG,1)),U,2),ROW=ROW_TAB_$$ECODE^EDPRPT(X) ;dis "RTN","EDPRPT7C",91,0) . S X=$P($G(^EDP(230,LOG,0)),U,10),ROW=ROW_TAB_$$ECODE(X) ;arrival "RTN","EDPRPT7C",92,0) . S LABS=$D(^EDP(230,LOG,8,"AC","L")),XRAY=$D(^("R")),X="" "RTN","EDPRPT7C",93,0) . I LABS!XRAY D S X=X_" ordered" "RTN","EDPRPT7C",94,0) .. I LABS&XRAY S X="Labs and Imaging" Q "RTN","EDPRPT7C",95,0) .. S:LABS X="Labs" S:XRAY X="Imaging" "RTN","EDPRPT7C",96,0) . S ROW=ROW_TAB_X ;notes "RTN","EDPRPT7C",97,0) . D ADD^EDPCSV(ROW) "RTN","EDPRPT7C",98,0) Q "RTN","EDPRPT7C",99,0) ; "RTN","EDPRPT7C",100,0) STAFF(LOG) ; save staff involved in patient care "RTN","EDPRPT7C",101,0) N D,I,X,ACT S LOG=+$G(LOG) "RTN","EDPRPT7C",102,0) S D=0 F S D=$O(^EDP(230.1,LOG,D)) Q:D<1 S I=+$O(^(D,0)) D "RTN","EDPRPT7C",103,0) . S ACT=$G(^EDP(230.1,I,3)) "RTN","EDPRPT7C",104,0) . S X=+$P(ACT,U,5) S:X MD(X)=$$EPERS^EDPRPT(X) "RTN","EDPRPT7C",105,0) . S X=+$P(ACT,U,6) S:X RN(X)=$$EPERS^EDPRPT(X) "RTN","EDPRPT7C",106,0) . S X=+$P(ACT,U,7) S:X RES(X)=$$EPERS^EDPRPT(X) "RTN","EDPRPT7C",107,0) Q "RTN","EDPRPT7C",108,0) ; "RTN","EDPRPT7C",109,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT7C",110,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT7C",111,0) Q "" "RTN","EDPRPT8") 0^41^B15368168 "RTN","EDPRPT8",1,0) EDPRPT8 ;SLC/MKB - Acuity Report "RTN","EDPRPT8",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT8",3,0) ; "RTN","EDPRPT8",4,0) ACU(BEG,END) ; Get Acuity Report for EDPSITE by date range "RTN","EDPRPT8",5,0) ; CNT = counters for admissions "RTN","EDPRPT8",6,0) ; MIN = accumulate #minutes "RTN","EDPRPT8",7,0) ; ACU = counters by acuity "RTN","EDPRPT8",8,0) ; VA = counters for disposition=VA only "RTN","EDPRPT8",9,0) N IN,OUT,X,X0,X1,X3,X4,DISP,CNT,MIN,ACU,VA,TOT,ROW,NOW "RTN","EDPRPT8",10,0) D INIT ;set counters, sums to 0 "RTN","EDPRPT8",11,0) S IN=BEG-.000001 "RTN","EDPRPT8",12,0) F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT8",13,0) . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0)) "RTN","EDPRPT8",14,0) . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),ACU=$$ECODE($P(X3,U,3)),TOT=TOT+1 "RTN","EDPRPT8",15,0) . ; all admissions "RTN","EDPRPT8",16,0) . S (ADMDEC,ADMDEL)=0 "RTN","EDPRPT8",17,0) . S X=$$ADMSTS^EDPRPT(LOG) I X S CNT=CNT+1 D:$L(ACU) ;decision to admit "RTN","EDPRPT8",18,0) .. S CNT(ACU)=CNT(ACU)+1 "RTN","EDPRPT8",19,0) .. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60 "RTN","EDPRPT8",20,0) .. S:ADMDEC MIN("DEC")=MIN("DEC")+ADMDEC,MIN("DEC",ACU)=MIN("DEC",ACU)+ADMDEC "RTN","EDPRPT8",21,0) .. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW "RTN","EDPRPT8",22,0) .. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60 "RTN","EDPRPT8",23,0) .. ;S:ADMDEL MIN("DEL",ACU)=MIN("DEL",ACU)+ADMDEL "RTN","EDPRPT8",24,0) . I $L(ACU) S ACU(ACU)=ACU(ACU)+1 D:$$ADMIT^EDPRPT2(DISP) ;VA adm "RTN","EDPRPT8",25,0) .. S VA=VA+1,VA(ACU)=VA(ACU)+1 "RTN","EDPRPT8",26,0) .. S MIN(ACU)=MIN(ACU)+ADMDEC "RTN","EDPRPT8",27,0) .. S MIN("VADEC")=MIN("VADEC")+ADMDEC "RTN","EDPRPT8",28,0) .. S MIN("VADEC",ACU)=MIN("VADEC",ACU)+ADMDEC "RTN","EDPRPT8",29,0) .. S MIN("VADEL")=MIN("VADEL")+ADMDEL "RTN","EDPRPT8",30,0) .. S MIN("VADEL",ACU)=MIN("VADEL",ACU)+ADMDEL "RTN","EDPRPT8",31,0) A1 ; return counts and averages "RTN","EDPRPT8",32,0) S I="" F S I=$O(ACU(I)) Q:I="" D ;avg #min admit dec by acuity "RTN","EDPRPT8",33,0) . S MIN("DEC",I)=$S(CNT(I):$$ETIME(MIN("DEC",I)\CNT(I)),1:0) "RTN","EDPRPT8",34,0) . S MIN("VADEC",I)=$S(VA(I):$$ETIME(MIN("VADEC",I)\VA(I)),1:0) "RTN","EDPRPT8",35,0) . S MIN("VADEL",I)=$S(VA(I):$$ETIME(MIN("VADEL",I)\VA(I)),1:0) "RTN","EDPRPT8",36,0) S ACU("total")=TOT,CNT("total")=CNT,VA("total")=VA "RTN","EDPRPT8",37,0) S ACU("type")="Number of Patients",CNT("type")="Number Admitted",VA("type")="Number VA Admitted" "RTN","EDPRPT8",38,0) S MIN("DEC","type")="Avg All Admit Dec Time",MIN("VADEC","type")="Avg VA Admit Dec Time",MIN("VADEL","type")="Avg VA Admit Delay Time" "RTN","EDPRPT8",39,0) S MIN("DEC","total")=$S(CNT:$$ETIME(MIN("DEC")\CNT),1:0) "RTN","EDPRPT8",40,0) S MIN("VADEC","total")=$S(VA:$$ETIME(MIN("VADEC")\VA),1:0) "RTN","EDPRPT8",41,0) S MIN("VADEL","total")=$S(VA:$$ETIME(MIN("VADEL")\VA),1:0) "RTN","EDPRPT8",42,0) ; as CSV "RTN","EDPRPT8",43,0) I $G(CSV) D Q "RTN","EDPRPT8",44,0) . N TAB S TAB=$C(9) "RTN","EDPRPT8",45,0) . S X="Acuity->"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total/Average" "RTN","EDPRPT8",46,0) . D ADD^EDPCSV(X) "RTN","EDPRPT8",47,0) . D ROW("Number of Patients",.ACU) "RTN","EDPRPT8",48,0) . D ROW("Number Admitted",.CNT) "RTN","EDPRPT8",49,0) . D ROW("Number VA Admitted",.VA) "RTN","EDPRPT8",50,0) . M ROW=MIN("DEC") D ROW("Avg All Admit Dec Time",.ROW) K ROW "RTN","EDPRPT8",51,0) . M ROW=MIN("VADEC") D ROW("Avg VA Admit Dec Time",.ROW) K ROW "RTN","EDPRPT8",52,0) . M ROW=MIN("VADEL") D ROW("Avg VA Admit Delay Time",.ROW) K ROW "RTN","EDPRPT8",53,0) ; or as XML "RTN","EDPRPT8",54,0) D XML^EDPX("") "RTN","EDPRPT8",55,0) S X=$$XMLA^EDPX("row",.ACU) D XML^EDPX(X) "RTN","EDPRPT8",56,0) S X=$$XMLA^EDPX("row",.CNT) D XML^EDPX(X) "RTN","EDPRPT8",57,0) S X=$$XMLA^EDPX("row",.VA) D XML^EDPX(X) "RTN","EDPRPT8",58,0) M ROW=MIN("DEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW "RTN","EDPRPT8",59,0) M ROW=MIN("VADEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW "RTN","EDPRPT8",60,0) M ROW=MIN("VADEL") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW "RTN","EDPRPT8",61,0) D XML^EDPX("") "RTN","EDPRPT8",62,0) Q "RTN","EDPRPT8",63,0) ; "RTN","EDPRPT8",64,0) ROW(NAME,LIST) ; add line "RTN","EDPRPT8",65,0) N I S X=NAME "RTN","EDPRPT8",66,0) F I="none","one","two","three","four","five","total" S X=X_TAB_LIST(I) "RTN","EDPRPT8",67,0) D ADD^EDPCSV(X) "RTN","EDPRPT8",68,0) Q "RTN","EDPRPT8",69,0) ; "RTN","EDPRPT8",70,0) INIT ; Initialize acuity counters "RTN","EDPRPT8",71,0) N X S (TOT,CNT,VA)=0 "RTN","EDPRPT8",72,0) F X="none","one","two","three","four","five" D "RTN","EDPRPT8",73,0) . S (CNT(X),VA(X),ACU(X),MIN(X),MIN("DEC",X),MIN("VADEC",X),MIN("VADEL",X))=0 "RTN","EDPRPT8",74,0) F X="DEC","DEL","VADEC","VADEL" S MIN(X)=0 "RTN","EDPRPT8",75,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT8",76,0) Q "RTN","EDPRPT8",77,0) ; "RTN","EDPRPT8",78,0) ECODE(IEN) ; Return external value for an Acuity code "RTN","EDPRPT8",79,0) N X0,X,Y S X0=$G(^EDPB(233.1,+IEN,0)) "RTN","EDPRPT8",80,0) S X=$P(X0,U,3) S:X<1 X=$P(X0,U,4) ;code or nat'l code "RTN","EDPRPT8",81,0) S Y=$S(X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"none") "RTN","EDPRPT8",82,0) Q Y "RTN","EDPRPT8",83,0) ; "RTN","EDPRPT8",84,0) ETIME(MINS) ; Return #minutes as HH:MM "RTN","EDPRPT8",85,0) N H,M,Y "RTN","EDPRPT8",86,0) S H=MINS\60,M=MINS#60 "RTN","EDPRPT8",87,0) S Y=$E("0"_H,1,2)_":"_$E("0"_M,1,2) "RTN","EDPRPT8",88,0) Q Y "RTN","EDPRPT9") 0^42^B1592058 "RTN","EDPRPT9",1,0) EDPRPT9 ;SLC/MKB - Patient Xref Report "RTN","EDPRPT9",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPRPT9",3,0) ; "RTN","EDPRPT9",4,0) XRF(BEG,END) ; Get Patient Xref Report for EDPSITE by date range "RTN","EDPRPT9",5,0) ; CNT = counters "RTN","EDPRPT9",6,0) N IN,LOG,DFN,ID,X,ROW,TAB "RTN","EDPRPT9",7,0) D:'$G(CSV) XML^EDPX("") I $G(CSV) D ;headers "RTN","EDPRPT9",8,0) . S TAB=$C(9),X="ED"_TAB_"Patient ID"_TAB_"Patient DFN" "RTN","EDPRPT9",9,0) . D ADD^EDPCSV(X) "RTN","EDPRPT9",10,0) S IN=BEG-.000001 "RTN","EDPRPT9",11,0) F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D "RTN","EDPRPT9",12,0) . S DFN=$P($G(^EDP(230,LOG,0)),U,6),ID=$P($G(^(0)),U,11) Q:DFN<1 "RTN","EDPRPT9",13,0) . I $G(CSV) S X=LOG_TAB_ID_TAB_DFN D ADD^EDPCSV(X) Q "RTN","EDPRPT9",14,0) . K ROW S ROW("id")=LOG "RTN","EDPRPT9",15,0) . S ROW("patientDfn")=DFN "RTN","EDPRPT9",16,0) . S ROW("patientId")=ID "RTN","EDPRPT9",17,0) . S X=$$XMLA^EDPX("patient",.ROW) D XML^EDPX(X) "RTN","EDPRPT9",18,0) D:'$G(CSV) XML^EDPX("") "RTN","EDPRPT9",19,0) Q "RTN","EDPX") 0^46^B6480298 "RTN","EDPX",1,0) EDPX ;SLC/KCM - Common Utilities "RTN","EDPX",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPX",3,0) ; "RTN","EDPX",4,0) ESC(X) ; Escape for XML transmission "RTN","EDPX",5,0) Q $ZCONVERT(X,"O","HTML") "RTN","EDPX",6,0) ; "RTN","EDPX",7,0) UES(X) ; Unescape XML "RTN","EDPX",8,0) Q $ZCONVERT(X,"I","HTML") "RTN","EDPX",9,0) ; "RTN","EDPX",10,0) UESREQ(REQ) ; Unescape HTTP post "RTN","EDPX",11,0) N I,X "RTN","EDPX",12,0) S X="" F S X=$O(REQ(X)) Q:X="" D "RTN","EDPX",13,0) . S I=0 F S I=$O(REQ(X,I)) Q:'I D "RTN","EDPX",14,0) . . S REQ(X,I)=$ZCONVERT(REQ(X,I),"I","HTML") "RTN","EDPX",15,0) Q "RTN","EDPX",16,0) VAL(X,R) ; Returns parameter value or null "RTN","EDPX",17,0) ; HTTP passes HTML-escaped values in an array as REC(param,1) "RTN","EDPX",18,0) Q $G(R(X,1)) "RTN","EDPX",19,0) ; "RTN","EDPX",20,0) NVPARSE(LST,IN) ; Parses tab delimited name-value pairs into array "RTN","EDPX",21,0) N I,X,TAB,NM,VAL "RTN","EDPX",22,0) S TAB=$C(9) "RTN","EDPX",23,0) F I=1:1:$L(IN,TAB) S X=$P(IN,TAB,I),NM=$P(X,"="),VAL=$P(X,"=",2,999) S:$L(NM) LST(NM)=VAL "RTN","EDPX",24,0) Q "RTN","EDPX",25,0) XMLS(TAG,DATA,LBL) ; Return XML node as "RTN","EDPX",26,0) Q "<"_TAG_" data="""_$$ESC(DATA)_""" label="""_$$ESC(LBL)_""" />" "RTN","EDPX",27,0) ; "RTN","EDPX",28,0) XMLA(TAG,ATT,END) ; Return XML node as "RTN","EDPX",29,0) N NODE S NODE="<"_TAG_" " "RTN","EDPX",30,0) N X "RTN","EDPX",31,0) S X="" F S X=$O(ATT(X)) Q:X="" I $L(ATT(X)) S NODE=NODE_X_"="""_$$ESC(ATT(X))_""" " "RTN","EDPX",32,0) S NODE=NODE_$G(END,"/")_">" "RTN","EDPX",33,0) Q NODE "RTN","EDPX",34,0) ; "RTN","EDPX",35,0) XMLE(SRC) ; Append list to XML array as elements "RTN","EDPX",36,0) N X,NODE "RTN","EDPX",37,0) S X="" F S X=$O(SRC(X)) Q:X="" D "RTN","EDPX",38,0) . S NODE="<"_X_">"_$$ESC(SRC(X))_"" "RTN","EDPX",39,0) . D XML(NODE) "RTN","EDPX",40,0) Q "RTN","EDPX",41,0) XML(X) ; Add a line of XML to be returned "RTN","EDPX",42,0) S EDPXML=$G(EDPXML)+1 "RTN","EDPX",43,0) S EDPXML(EDPXML)=X "RTN","EDPX",44,0) Q "RTN","EDPX",45,0) CODE(X) ; Return internal value for a code "RTN","EDPX",46,0) Q $O(^EDPB(233.1,"B",X,0)) "RTN","EDPX",47,0) ; "RTN","EDPX",48,0) MSG(MSG) ; Write out error message "RTN","EDPX",49,0) I MSG=1 S X="some error" "RTN","EDPX",50,0) I MSG=2300001 S X="Station Number is missing" "RTN","EDPX",51,0) I MSG=2300002 S X="Patient is already active in log" "RTN","EDPX",52,0) I MSG=2300003 S X="Unable to create lock for new record" "RTN","EDPX",53,0) I MSG=2300004 S X="Error creating new record" "RTN","EDPX",54,0) I MSG=2300005 S X="Error creating sub-record" "RTN","EDPX",55,0) I MSG=2300006 S X="Missing log record" "RTN","EDPX",56,0) I MSG=2300007 S X="Missing log IEN" "RTN","EDPX",57,0) I MSG=2300008 S X="Error updating record" "RTN","EDPX",58,0) I MSG=2300009 S X="Error updating sub-record" "RTN","EDPX",59,0) I MSG=2300010 S X="Command missing or not recognized" "RTN","EDPX",60,0) I MSG=2300011 S X="Unknown report type" "RTN","EDPX",61,0) I MSG=2300012 S X="Missing or invalid date range" "RTN","EDPX",62,0) I MSG=2300013 S X="Shift times not defined for this site" "RTN","EDPX",63,0) Q $$ESC^EDPX(X) "RTN","EDPYSRV") 0^^B257666 "RTN","EDPYSRV",1,0) EDPYSRV ;SLC/KCM - Post-init for server install "RTN","EDPYSRV",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 7 "RTN","EDPYSRV",3,0) ; "RTN","EDPYSRV",4,0) PROXY ; Create proxy user "RTN","EDPYSRV",5,0) Q:$O(^VA(200,"B","EDPTRACKING,PROXY",0)) "RTN","EDPYSRV",6,0) N X "RTN","EDPYSRV",7,0) S X=$$CREATE^XUSAP("EDPTRACKING,PROXY","","EDPS TRACKING CONTEXT") "RTN","EDPYSRV",8,0) Q "SEC","^DIC",230,230,0,"AUDIT") @ "SEC","^DIC",230,230,0,"DD") @ "SEC","^DIC",230,230,0,"DEL") @ "SEC","^DIC",230,230,0,"LAYGO") @ "SEC","^DIC",230,230,0,"RD") @ "SEC","^DIC",230,230,0,"WR") @ "SEC","^DIC",230.1,230.1,0,"AUDIT") @ "SEC","^DIC",230.1,230.1,0,"DD") @ "SEC","^DIC",230.1,230.1,0,"DEL") @ "SEC","^DIC",230.1,230.1,0,"LAYGO") @ "SEC","^DIC",230.1,230.1,0,"RD") @ "SEC","^DIC",230.1,230.1,0,"WR") @ "SEC","^DIC",231.7,231.7,0,"AUDIT") @ "SEC","^DIC",231.7,231.7,0,"DD") @ "SEC","^DIC",231.7,231.7,0,"DEL") @ "SEC","^DIC",231.7,231.7,0,"LAYGO") @ "SEC","^DIC",231.7,231.7,0,"RD") @ "SEC","^DIC",231.7,231.7,0,"WR") @ "SEC","^DIC",231.8,231.8,0,"AUDIT") @ "SEC","^DIC",231.8,231.8,0,"DD") @ "SEC","^DIC",231.8,231.8,0,"DEL") @ "SEC","^DIC",231.8,231.8,0,"LAYGO") @ "SEC","^DIC",231.8,231.8,0,"RD") @ "SEC","^DIC",231.8,231.8,0,"WR") @ "SEC","^DIC",231.9,231.9,0,"AUDIT") @ "SEC","^DIC",231.9,231.9,0,"DD") @ "SEC","^DIC",231.9,231.9,0,"DEL") @ "SEC","^DIC",231.9,231.9,0,"LAYGO") @ "SEC","^DIC",231.9,231.9,0,"RD") @ "SEC","^DIC",231.9,231.9,0,"WR") @ "SEC","^DIC",233.1,233.1,0,"AUDIT") @ "SEC","^DIC",233.1,233.1,0,"DD") @ "SEC","^DIC",233.1,233.1,0,"DEL") @ "SEC","^DIC",233.1,233.1,0,"LAYGO") @ "SEC","^DIC",233.1,233.1,0,"RD") @ "SEC","^DIC",233.1,233.1,0,"WR") @ "SEC","^DIC",233.2,233.2,0,"AUDIT") @ "SEC","^DIC",233.2,233.2,0,"DD") @ "SEC","^DIC",233.2,233.2,0,"DEL") @ "SEC","^DIC",233.2,233.2,0,"LAYGO") @ "SEC","^DIC",233.2,233.2,0,"RD") @ "SEC","^DIC",233.2,233.2,0,"WR") @ "VER") 8.0^22.0 "^DD",230,230,0) FIELD^^.12^27 "^DD",230,230,0,"DT") 3071227 "^DD",230,230,0,"IX","B",230,.01) "^DD",230,230,0,"NM","ED LOG") "^DD",230,230,0,"PT",230.1,.01) "^DD",230,230,.01,0) LOG ENTRY TIME^RD^^0;1^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X "^DD",230,230,.01,1,0) ^.1 "^DD",230,230,.01,1,1,0) 230^B "^DD",230,230,.01,1,1,1) S ^EDP(230,"B",$E(X,1,30),DA)="" "^DD",230,230,.01,1,1,2) K ^EDP(230,"B",$E(X,1,30),DA) "^DD",230,230,.01,3) "^DD",230,230,.01,"DT") 3070721 "^DD",230,230,.02,0) STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X "^DD",230,230,.02,1,0) ^.1^^0 "^DD",230,230,.02,3) Answer must be 1-15 characters in length. "^DD",230,230,.02,"DT") 3071221 "^DD",230,230,.03,0) AREA^P231.9'^EDPB(231.9,^0;3^Q "^DD",230,230,.03,1,0) ^.1^^0 "^DD",230,230,.03,"DT") 3071216 "^DD",230,230,.04,0) PATIENT NAME^F^^0;4^K:$L(X)>40!($L(X)<3) X "^DD",230,230,.04,3) Answer must be 3-40 characters in length. "^DD",230,230,.04,"DT") 3071216 "^DD",230,230,.05,0) PATIENT SSN^F^^0;5^K:$L(X)>10!($L(X)<1) X "^DD",230,230,.05,1,0) ^.1^^0 "^DD",230,230,.05,3) Answer must be 1-10 characters in length. "^DD",230,230,.05,"DT") 3070920 "^DD",230,230,.06,0) PATIENT ID^F^^0;6^K:$L(X)>20!($L(X)<1) X "^DD",230,230,.06,3) Answer must be 1-20 characters in length. "^DD",230,230,.06,"DT") 3071115 "^DD",230,230,.07,0) CLOSED^S^1:YES;0:NO;^0;7^Q "^DD",230,230,.07,1,0) ^.1^^0 "^DD",230,230,.07,5,1,0) 230^3.2^1 "^DD",230,230,.07,9) ^ "^DD",230,230,.07,"DT") 3071129 "^DD",230,230,.08,0) TIME IN^D^^0;8^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X "^DD",230,230,.08,"DT") 3071120 "^DD",230,230,.09,0) TIME OUT^D^^0;9^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X "^DD",230,230,.09,"DT") 3071018 "^DD",230,230,.1,0) ARRIVAL MODE^P233.1'^EDPB(233.1,^0;10^Q "^DD",230,230,.1,"DT") 3070913 "^DD",230,230,.11,0) PATIENT BRIEF ID^F^^0;11^K:$L(X)>10!($L(X)<4) X "^DD",230,230,.11,3) Answer must be 4-10 characters in length. "^DD",230,230,.11,"DT") 3071129 "^DD",230,230,.12,0) TIME ZONE DIFFERENCE^NJ3,0^^0;12^K:+X'=X!(X>720)!(X<-720)!(X?.E1"."1N.N) X "^DD",230,230,.12,3) Type a Number between -720 and 720, 0 Decimal Digits "^DD",230,230,.12,21,0) ^^1^1^3071227^ "^DD",230,230,.12,21,1,0) Minutes difference between the server time zone and the local time zone. "^DD",230,230,.12,"DT") 3071227 "^DD",230,230,1.1,0) COMPLAINT^F^^1;1^K:$L(X)>50!($L(X)<1) X "^DD",230,230,1.1,3) Answer must be 1-50 characters in length. "^DD",230,230,1.1,"DT") 3070720 "^DD",230,230,1.2,0) DISPOSITION^P233.1'^EDPB(233.1,^1;2^Q "^DD",230,230,1.2,"DT") 3070720 "^DD",230,230,1.3,0) DISPOSITION TIME^D^^1;3^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X "^DD",230,230,1.3,"DT") 3070720 "^DD",230,230,1.4,0) DIAGNOSIS TIME^D^^1;4^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X "^DD",230,230,1.4,3) "^DD",230,230,1.4,"DT") 3070720 "^DD",230,230,1.5,0) DELAY^P233.1'^EDPB(233.1,^1;5^Q "^DD",230,230,1.5,"DT") 3070720 "^DD",230,230,2,0) COMPLAINT (LONG)^F^^2;1^K:$L(X)>220!($L(X)<1) X "^DD",230,230,2,3) Answer must be 1-220 characters in length. "^DD",230,230,2,"DT") 3070720 "^DD",230,230,3.2,0) STATUS^P233.1'^EDPB(233.1,^3;2^Q "^DD",230,230,3.2,1,0) ^.1 "^DD",230,230,3.2,1,1,0) ^^TRIGGER^230^.07 "^DD",230,230,3.2,1,1,1) K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^EDP(230,D0,0)):^(0),1:"") S X=$P(Y(1),U,7),X=X S DIU=X K Y S X=DIV S X=$$ISGONE^EDPDD(X) S DIH=$G(^EDP(230,DIV(0),0)),DIV=X S $P(^(0),U,7)=DIV,DIH=230,DIG=.07 D ^DICR "^DD",230,230,3.2,1,1,2) Q "^DD",230,230,3.2,1,1,"CREATE VALUE") S X=$$ISGONE^EDPDD(X) "^DD",230,230,3.2,1,1,"DELETE VALUE") NO EFFECT "^DD",230,230,3.2,1,1,"FIELD") CLOSED "^DD",230,230,3.2,"DT") 3071129 "^DD",230,230,3.3,0) ACUITY^P233.1'^EDPB(233.1,^3;3^Q "^DD",230,230,3.3,"DT") 3071129 "^DD",230,230,3.4,0) LOC^P231.8'^EDPB(231.8,^3;4^Q "^DD",230,230,3.4,"DT") 3071129 "^DD",230,230,3.5,0) MD ASSIGNED^F^^3;5^K:$L(X)>20!($L(X)<1) X "^DD",230,230,3.5,3) Answer must be 1-20 characters in length. "^DD",230,230,3.5,"DT") 3071129 "^DD",230,230,3.6,0) NURSE ASSIGNED^F^^3;6^K:$L(X)>20!($L(X)<1) X "^DD",230,230,3.6,3) Answer must be 1-20 characters in length. "^DD",230,230,3.6,"DT") 3071129 "^DD",230,230,3.7,0) RESIDENT ASSIGNED^F^^3;7^K:$L(X)>20!($L(X)<1) X "^DD",230,230,3.7,3) Answer must be 1-20 characters in length. "^DD",230,230,3.7,"DT") 3071129 "^DD",230,230,3.8,0) COMMENT^F^^3;8^K:$L(X)>80!($L(X)<1) X "^DD",230,230,3.8,3) Answer must be 1-80 characters in length. "^DD",230,230,3.8,"DT") 3071129 "^DD",230,230,4,0) DISCHARGE DIAGNOSIS^230.04A^^4;0 "^DD",230,230,8,0) ORDERS^230.08A^^8;0 "^DD",230,230.04,0) DISCHARGE DIAGNOSIS SUB-FIELD^^.02^2 "^DD",230,230.04,0,"DT") 3070720 "^DD",230,230.04,0,"IX","B",230.04,.01) "^DD",230,230.04,0,"NM","DISCHARGE DIAGNOSIS") "^DD",230,230.04,0,"UP") 230 "^DD",230,230.04,.01,0) DISCHARGE DIAGNOSIS^MF^^0;1^K:$L(X)>50!($L(X)<1) X "^DD",230,230.04,.01,1,0) ^.1 "^DD",230,230.04,.01,1,1,0) 230.04^B "^DD",230,230.04,.01,1,1,1) S ^EDP(230,DA(1),4,"B",$E(X,1,30),DA)="" "^DD",230,230.04,.01,1,1,2) K ^EDP(230,DA(1),4,"B",$E(X,1,30),DA) "^DD",230,230.04,.01,3) Answer must be 1-50 characters in length. "^DD",230,230.04,.01,"DT") 3070720 "^DD",230,230.04,.02,0) ICD9 CODE^F^^0;2^K:$L(X)>20!($L(X)<1) X "^DD",230,230.04,.02,3) Answer must be 1-20 characters in length. "^DD",230,230.04,.02,"DT") 3070720 "^DD",230,230.08,0) ORDERS SUB-FIELD^^.05^5 "^DD",230,230.08,0,"DT") 3071115 "^DD",230,230.08,0,"IX","AC",230.08,.02) "^DD",230,230.08,0,"IX","B",230.08,.01) "^DD",230,230.08,0,"NM","ORDERS") "^DD",230,230.08,0,"UP") 230 "^DD",230,230.08,.01,0) ORDER^MF^^0;1^K:$L(X)>30!($L(X)<1) X "^DD",230,230.08,.01,1,0) ^.1 "^DD",230,230.08,.01,1,1,0) 230.08^B "^DD",230,230.08,.01,1,1,1) S ^EDP(230,DA(1),8,"B",$E(X,1,30),DA)="" "^DD",230,230.08,.01,1,1,2) K ^EDP(230,DA(1),8,"B",$E(X,1,30),DA) "^DD",230,230.08,.01,3) Answer must be 1-30 characters in length. "^DD",230,230.08,.01,"DT") 3070918 "^DD",230,230.08,.02,0) SERVICE^S^M:medication;L:lab;R:radiology;C:consult;A:all other;^0;2^Q "^DD",230,230.08,.02,1,0) ^.1 "^DD",230,230.08,.02,1,1,0) 230.08^AC "^DD",230,230.08,.02,1,1,1) S ^EDP(230,DA(1),8,"AC",$E(X,1,30),DA)="" "^DD",230,230.08,.02,1,1,2) K ^EDP(230,DA(1),8,"AC",$E(X,1,30),DA) "^DD",230,230.08,.02,1,1,"%D",0) ^^2^2^3071115^ "^DD",230,230.08,.02,1,1,"%D",1,0) Allows quick check for the existence of various types of orders for this "^DD",230,230.08,.02,1,1,"%D",2,0) ED visit. "^DD",230,230.08,.02,1,1,"DT") 3071115 "^DD",230,230.08,.02,"DT") 3071115 "^DD",230,230.08,.03,0) STATUS^S^N:new;A:active;C:complete;^0;3^Q "^DD",230,230.08,.03,"DT") 3070911 "^DD",230,230.08,.04,0) STAT^S^1:stat;^0;4^Q "^DD",230,230.08,.04,"DT") 3070911 "^DD",230,230.08,.05,0) RELEASE TIME^D^^0;5^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X "^DD",230,230.08,.05,"DT") 3071115 "^DD",230.1,230.1,0) FIELD^^3.8^21 "^DD",230.1,230.1,0,"DT") 3071129 "^DD",230.1,230.1,0,"IX","B",230.1,.01) "^DD",230.1,230.1,0,"NM","ED LOG HISTORY") "^DD",230.1,230.1,.01,0) LOG ENTRY^RP230'^EDP(230,^0;1^Q "^DD",230.1,230.1,.01,1,0) ^.1 "^DD",230.1,230.1,.01,1,1,0) 230.1^B "^DD",230.1,230.1,.01,1,1,1) S ^EDP(230.1,"B",$E(X,1,30),DA)="" "^DD",230.1,230.1,.01,1,1,2) K ^EDP(230.1,"B",$E(X,1,30),DA) "^DD",230.1,230.1,.01,3) "^DD",230.1,230.1,.01,"DT") 3071129 "^DD",230.1,230.1,.02,0) TIME^D^^0;2^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X "^DD",230.1,230.1,.02,"DT") 3071129 "^DD",230.1,230.1,.03,0) ENTERED BY^F^^0;3^K:$L(X)>12!($L(X)<1) X "^DD",230.1,230.1,.03,3) Answer must be 1-12 characters in length. "^DD",230.1,230.1,.03,"DT") 3071123 "^DD",230.1,230.1,.04,0) PATIENT NAME^F^^0;4^K:$L(X)>40!($L(X)<3) X "^DD",230.1,230.1,.04,3) Answer must be 3-40 characters in length. "^DD",230.1,230.1,.04,"DT") 3071123 "^DD",230.1,230.1,.05,0) PATIENT SSN^F^^0;5^K:$L(X)>10!($L(X)<1) X "^DD",230.1,230.1,.05,3) Answer must be 1-10 characters in length. "^DD",230.1,230.1,.05,"DT") 3071123 "^DD",230.1,230.1,.06,0) PATIENT ID^F^^0;6^K:$L(X)>20!($L(X)<1) X "^DD",230.1,230.1,.06,3) Answer must be 1-20 characters in length. "^DD",230.1,230.1,.06,"DT") 3071123 "^DD",230.1,230.1,.07,0) COMPLAINT^F^^0;7^K:$L(X)>50!($L(X)<1) X "^DD",230.1,230.1,.07,3) Answer must be 1-50 characters in length. "^DD",230.1,230.1,.07,"DT") 3071123 "^DD",230.1,230.1,.08,0) TIME IN^D^^0;8^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X "^DD",230.1,230.1,.08,"DT") 3071123 "^DD",230.1,230.1,.09,0) TIME OUT^D^^0;9^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X "^DD",230.1,230.1,.09,"DT") 3071123 "^DD",230.1,230.1,.1,0) ARRIVAL MODE^P233.1'^EDPB(233.1,^0;10^Q "^DD",230.1,230.1,.1,"DT") 3071123 "^DD",230.1,230.1,.11,0) DISPOSITION^P233.1'^EDPB(233.1,^0;11^Q "^DD",230.1,230.1,.11,"DT") 3071123 "^DD",230.1,230.1,.12,0) DELAY^P233.1'^EDPB(233.1,^0;12^Q "^DD",230.1,230.1,.12,"DT") 3071123 "^DD",230.1,230.1,1,0) COMPLAINT (LONG)^F^^1;1^K:$L(X)>220!($L(X)<1) X "^DD",230.1,230.1,1,3) Answer must be 1-220 characters in length. "^DD",230.1,230.1,1,"DT") 3071123 "^DD",230.1,230.1,2,0) COMPLAINT (LONG)^F^^2;1^K:$L(X)>220!($L(X)<1) X "^DD",230.1,230.1,2,3) Answer must be 1-220 characters in length. "^DD",230.1,230.1,2,"DT") 3071129 "^DD",230.1,230.1,3.2,0) STATUS^P233.1'^EDPB(233.1,^3;2^Q "^DD",230.1,230.1,3.2,"DT") 3071129 "^DD",230.1,230.1,3.3,0) ACUITY^P233.1'^EDPB(233.1,^3;3^Q "^DD",230.1,230.1,3.3,"DT") 3071129 "^DD",230.1,230.1,3.4,0) LOC^P231.8'^EDPB(231.8,^3;4^Q "^DD",230.1,230.1,3.4,"DT") 3071129 "^DD",230.1,230.1,3.5,0) MD ASSIGNED^F^^3;5^K:$L(X)>20!($L(X)<1) X "^DD",230.1,230.1,3.5,3) Answer must be 1-20 characters in length. "^DD",230.1,230.1,3.5,"DT") 3071129 "^DD",230.1,230.1,3.6,0) NURSE ASSIGNED^F^^3;6^K:$L(X)>20!($L(X)<1) X "^DD",230.1,230.1,3.6,3) Answer must be 1-20 characters in length. "^DD",230.1,230.1,3.6,"DT") 3071129 "^DD",230.1,230.1,3.7,0) RESIDENT ASSIGNED^F^^3;7^K:$L(X)>20!($L(X)<1) X "^DD",230.1,230.1,3.7,3) Answer must be 1-20 characters in length. "^DD",230.1,230.1,3.7,"DT") 3071129 "^DD",230.1,230.1,3.8,0) COMMENT^F^^3;8^K:$L(X)>80!($L(X)<1) X "^DD",230.1,230.1,3.8,3) Answer must be 1-80 characters in length. "^DD",230.1,230.1,3.8,"DT") 3071129 "^DD",231.7,231.7,0) FIELD^^.08^8 "^DD",231.7,231.7,0,"DT") 3071221 "^DD",231.7,231.7,0,"IX","B",231.7,.01) "^DD",231.7,231.7,0,"NM","TRACKING STAFF") "^DD",231.7,231.7,.01,0) NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X "^DD",231.7,231.7,.01,1,0) ^.1 "^DD",231.7,231.7,.01,1,1,0) 231.7^B "^DD",231.7,231.7,.01,1,1,1) S ^EDPB(231.7,"B",$E(X,1,30),DA)="" "^DD",231.7,231.7,.01,1,1,2) K ^EDPB(231.7,"B",$E(X,1,30),DA) "^DD",231.7,231.7,.01,3) NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION "^DD",231.7,231.7,.01,"DT") 3071124 "^DD",231.7,231.7,.02,0) STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X "^DD",231.7,231.7,.02,3) Answer must be 1-15 characters in length. "^DD",231.7,231.7,.02,"DT") 3071221 "^DD",231.7,231.7,.03,0) AREA^P231.9'^EDPB(231.9,^0;3^Q "^DD",231.7,231.7,.03,"DT") 3071127 "^DD",231.7,231.7,.04,0) INACTIVE^S^0:ACTIVE;1:INACTIVE;^0;4^Q "^DD",231.7,231.7,.04,"DT") 3071124 "^DD",231.7,231.7,.05,0) LOCAL ID^F^^0;5^K:$L(X)>12!($L(X)<1) X "^DD",231.7,231.7,.05,3) Answer must be 1-12 characters in length. "^DD",231.7,231.7,.05,"DT") 3071127 "^DD",231.7,231.7,.06,0) ROLE^S^P:provider;R:resident;N:nurse;^0;6^Q "^DD",231.7,231.7,.06,"DT") 3071124 "^DD",231.7,231.7,.07,0) INITIALS^F^^0;7^K:$L(X)>7!($L(X)<1) X "^DD",231.7,231.7,.07,3) Answer must be 1-7 characters in length. "^DD",231.7,231.7,.07,"DT") 3071124 "^DD",231.7,231.7,.08,0) COLOR^F^^0;8^K:$L(X)>20!($L(X)<1) X "^DD",231.7,231.7,.08,3) Answer must be 1-20 characters in length. "^DD",231.7,231.7,.08,"DT") 3071124 "^DD",231.8,231.8,0) FIELD^^.12^12 "^DD",231.8,231.8,0,"DT") 3071221 "^DD",231.8,231.8,0,"IX","B",231.8,.01) "^DD",231.8,231.8,0,"NM","TRACKING ROOM-BED") "^DD",231.8,231.8,0,"PT",230,3.4) "^DD",231.8,231.8,0,"PT",230.1,3.4) "^DD",231.8,231.8,.01,0) NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X "^DD",231.8,231.8,.01,1,0) ^.1 "^DD",231.8,231.8,.01,1,1,0) 231.8^B "^DD",231.8,231.8,.01,1,1,1) S ^EDPB(231.8,"B",$E(X,1,30),DA)="" "^DD",231.8,231.8,.01,1,1,2) K ^EDPB(231.8,"B",$E(X,1,30),DA) "^DD",231.8,231.8,.01,3) NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION "^DD",231.8,231.8,.02,0) STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X "^DD",231.8,231.8,.02,3) Answer must be 1-15 characters in length. "^DD",231.8,231.8,.02,"DT") 3080111 "^DD",231.8,231.8,.03,0) AREA^P231.9'^EDPB(231.9,^0;3^Q "^DD",231.8,231.8,.03,"DT") 3080111 "^DD",231.8,231.8,.04,0) INACTIVE^S^0:ACTIVE;1:INACTIVE;^0;4^Q "^DD",231.8,231.8,.04,"DT") 3070911 "^DD",231.8,231.8,.05,0) SEQUENCE^NJ7,2^^0;5^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."3N.N) X "^DD",231.8,231.8,.05,3) Type a Number between 1 and 9999, 2 Decimal Digits "^DD",231.8,231.8,.05,"DT") 3070911 "^DD",231.8,231.8,.06,0) DISPLAY NAME^F^^0;6^K:$L(X)>30!($L(X)<1) X "^DD",231.8,231.8,.06,3) Answer must be 1-30 characters in length. "^DD",231.8,231.8,.06,"DT") 3080111 "^DD",231.8,231.8,.07,0) DISPLAY WHEN^S^0:OCCUPIED;1:ALWAYS;2:NEVER;^0;7^Q "^DD",231.8,231.8,.07,"DT") 3070912 "^DD",231.8,231.8,.08,0) DEFAULT STATUS^P233.1'^EDPB(233.1,^0;8^Q "^DD",231.8,231.8,.08,"DT") 3070911 "^DD",231.8,231.8,.09,0) MULTIPLE ASSIGN^S^0:NO;1:YES;^0;9^Q "^DD",231.8,231.8,.09,"DT") 3070911 "^DD",231.8,231.8,.1,0) SHARED NAME^F^^0;10^K:$L(X)>30!($L(X)<1) X "^DD",231.8,231.8,.1,3) Answer must be 1-30 characters in length. "^DD",231.8,231.8,.1,"DT") 3070911 "^DD",231.8,231.8,.11,0) BOARD^F^^0;11^K:$L(X)>30!($L(X)<1) X "^DD",231.8,231.8,.11,3) Answer must be 1-30 characters in length. "^DD",231.8,231.8,.11,"DT") 3071030 "^DD",231.8,231.8,.12,0) COLOR^F^^0;12^K:$L(X)>20!($L(X)<1) X "^DD",231.8,231.8,.12,3) Answer must be 1-20 characters in length. "^DD",231.8,231.8,.12,"DT") 3071123 "^DD",231.9,231.9,0) FIELD^^.04^15 "^DD",231.9,231.9,0,"DT") 3071228 "^DD",231.9,231.9,0,"IX","B",231.9,.01) "^DD",231.9,231.9,0,"IX","C",231.9,.02) "^DD",231.9,231.9,0,"NM","TRACKING AREA") "^DD",231.9,231.9,0,"PT",230,.03) "^DD",231.9,231.9,0,"PT",231.7,.03) "^DD",231.9,231.9,0,"PT",231.8,.03) "^DD",231.9,231.9,.01,0) NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X "^DD",231.9,231.9,.01,1,0) ^.1 "^DD",231.9,231.9,.01,1,1,0) 231.9^B "^DD",231.9,231.9,.01,1,1,1) S ^EDPB(231.9,"B",$E(X,1,30),DA)="" "^DD",231.9,231.9,.01,1,1,2) K ^EDPB(231.9,"B",$E(X,1,30),DA) "^DD",231.9,231.9,.01,3) NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION "^DD",231.9,231.9,.02,0) STATION NUMBER^F^^0;2^K:$L(X)>15!($L(X)<1) X "^DD",231.9,231.9,.02,1,0) ^.1 "^DD",231.9,231.9,.02,1,1,0) 231.9^C "^DD",231.9,231.9,.02,1,1,1) S ^EDPB(231.9,"C",$E(X,1,30),DA)="" "^DD",231.9,231.9,.02,1,1,2) K ^EDPB(231.9,"C",$E(X,1,30),DA) "^DD",231.9,231.9,.02,1,1,"DT") 3070913 "^DD",231.9,231.9,.02,3) Answer must be 1-15 characters in length. "^DD",231.9,231.9,.02,"DT") 3071221 "^DD",231.9,231.9,.03,0) TIME ZONE DIFFERENCE^NJ3,0^^0;3^K:+X'=X!(X>720)!(X<-720)!(X?.E1"."1N.N) X "^DD",231.9,231.9,.03,3) Type a Number between -720 and 720, 0 Decimal Digits "^DD",231.9,231.9,.03,"DT") 3071227 "^DD",231.9,231.9,.04,0) MAIL DOMAIN^F^^0;4^K:$L(X)>45!($L(X)<3) X "^DD",231.9,231.9,.04,3) Answer must be 3-45 characters in length. "^DD",231.9,231.9,.04,"DT") 3071228 "^DD",231.9,231.9,1.1,0) DIAGNOSIS REQUIRED^S^0:NO;1:YES;^1;1^Q "^DD",231.9,231.9,1.1,"DT") 3071015 "^DD",231.9,231.9,1.2,0) CODED DIAGNOSIS^S^0:NO;1:YES;^1;2^Q "^DD",231.9,231.9,1.2,"DT") 3071015 "^DD",231.9,231.9,1.3,0) DISPOSITION REQUIRED^S^0:NO;1:YES;^1;3^Q "^DD",231.9,231.9,1.3,"DT") 3071015 "^DD",231.9,231.9,1.4,0) DELAY REQUIRED^S^0:NO;1:YES;^1;4^Q "^DD",231.9,231.9,1.4,"DT") 3071015 "^DD",231.9,231.9,1.5,0) DELAY MINUTES^NJ4,0^^1;5^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",231.9,231.9,1.5,3) Type a Number between 1 and 9999, 0 Decimal Digits "^DD",231.9,231.9,1.5,"DT") 3071015 "^DD",231.9,231.9,1.6,0) FIRST SHIFT START^NJ5,0^^1;6^K:+X'=X!(X>86400)!(X<0)!(X?.E1"."1N.N) X "^DD",231.9,231.9,1.6,3) Type a Number between 0 and 86400, 0 Decimal Digits "^DD",231.9,231.9,1.6,"DT") 3071130 "^DD",231.9,231.9,1.7,0) SHIFT DURATION^NJ5,0^^1;7^K:+X'=X!(X>86400)!(X<0)!(X?.E1"."1N.N) X "^DD",231.9,231.9,1.7,3) Type a Number between 0 and 86400, 0 Decimal Digits "^DD",231.9,231.9,1.7,"DT") 3071130 "^DD",231.9,231.9,1.8,0) PROMPT RESIDENTS^S^0:NO;1:YES;^1;8^Q "^DD",231.9,231.9,1.8,"DT") 3071130 "^DD",231.9,231.9,2,0) DISPLAY BOARD SPEC^231.92^^2;0 "^DD",231.9,231.9,3,0) COLOR SPEC^231.93^^3;0 "^DD",231.9,231.9,230.1,0) TRACKING UPDATED^F^^230;1^K:$L(X)>30!($L(X)<1) X "^DD",231.9,231.9,230.1,3) Answer must be 1-30 characters in length. "^DD",231.9,231.9,230.1,"DT") 3071006 "^DD",231.9,231.92,0) DISPLAY BOARD SPEC SUB-FIELD^^.01^1 "^DD",231.9,231.92,0,"DT") 3071022 "^DD",231.9,231.92,0,"NM","DISPLAY BOARD SPEC") "^DD",231.9,231.92,0,"UP") 231.9 "^DD",231.9,231.92,.01,0) DISPLAY BOARD SPEC^WL^^0;1^Q "^DD",231.9,231.92,.01,"DT") 3071022 "^DD",231.9,231.93,0) COLOR SPEC SUB-FIELD^^.01^1 "^DD",231.9,231.93,0,"DT") 3071027 "^DD",231.9,231.93,0,"NM","COLOR SPEC") "^DD",231.9,231.93,0,"UP") 231.9 "^DD",231.9,231.93,.01,0) COLOR SPEC^WL^^0;1^Q "^DD",231.9,231.93,.01,"DT") 3071027 "^DD",233.1,233.1,0) FIELD^^2^6 "^DD",233.1,233.1,0,"DT") 3080102 "^DD",233.1,233.1,0,"IX","B",233.1,.01) "^DD",233.1,233.1,0,"NM","TRACKING CODE") "^DD",233.1,233.1,0,"PT",230,.06) "^DD",233.1,233.1,0,"PT",230,.1) "^DD",233.1,233.1,0,"PT",230,1.2) "^DD",233.1,233.1,0,"PT",230,1.5) "^DD",233.1,233.1,0,"PT",230,3.2) "^DD",233.1,233.1,0,"PT",230,3.3) "^DD",233.1,233.1,0,"PT",230.1,.1) "^DD",233.1,233.1,0,"PT",230.1,.11) "^DD",233.1,233.1,0,"PT",230.1,.12) "^DD",233.1,233.1,0,"PT",230.1,3.2) "^DD",233.1,233.1,0,"PT",230.1,3.3) "^DD",233.1,233.1,0,"PT",231.41,.03) "^DD",233.1,233.1,0,"PT",231.8,.05) "^DD",233.1,233.1,0,"PT",231.8,.08) "^DD",233.1,233.1,0,"PT",233.1,.04) "^DD",233.1,233.1,0,"PT",233.21,.02) "^DD",233.1,233.1,.01,0) NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X "^DD",233.1,233.1,.01,1,0) ^.1 "^DD",233.1,233.1,.01,1,1,0) 233.1^B "^DD",233.1,233.1,.01,1,1,1) S ^EDPB(233.1,"B",$E(X,1,30),DA)="" "^DD",233.1,233.1,.01,1,1,2) K ^EDPB(233.1,"B",$E(X,1,30),DA) "^DD",233.1,233.1,.01,3) NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION "^DD",233.1,233.1,.01,"DT") 3080122 "^DD",233.1,233.1,.02,0) DISPLAY NAME^F^^0;2^K:$L(X)>60!($L(X)<1) X "^DD",233.1,233.1,.02,3) Answer must be 1-60 characters in length. "^DD",233.1,233.1,.02,"DT") 3080122 "^DD",233.1,233.1,.03,0) ABBREVIATION^F^^0;3^K:$L(X)>30!($L(X)<1) X "^DD",233.1,233.1,.03,3) Answer must be 1-30 characters in length. "^DD",233.1,233.1,.03,"DT") 3080122 "^DD",233.1,233.1,.04,0) NATIONAL CODE^P233.1'^EDPB(233.1,^0;4^Q "^DD",233.1,233.1,.04,"DT") 3070719 "^DD",233.1,233.1,.05,0) FLAGS^F^^0;5^K:$L(X)>5!($L(X)<1) X "^DD",233.1,233.1,.05,3) Answer must be 1-5 characters in length. "^DD",233.1,233.1,.05,"DT") 3080102 "^DD",233.1,233.1,2,0) DESCRIPTION^233.12^^2;0 "^DD",233.1,233.12,0) DESCRIPTION SUB-FIELD^^.01^1 "^DD",233.1,233.12,0,"DT") 3070720 "^DD",233.1,233.12,0,"NM","DESCRIPTION") "^DD",233.1,233.12,0,"UP") 233.1 "^DD",233.1,233.12,.01,0) DESCRIPTION^W^^0;1^Q "^DD",233.1,233.12,.01,"DT") 3070720 "^DD",233.2,233.2,0) FIELD^^1^2 "^DD",233.2,233.2,0,"DT") 3071229 "^DD",233.2,233.2,0,"IX","B",233.2,.01) "^DD",233.2,233.2,0,"NM","TRACKING CODE SET") "^DD",233.2,233.2,.01,0) NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X "^DD",233.2,233.2,.01,1,0) ^.1 "^DD",233.2,233.2,.01,1,1,0) 233.2^B "^DD",233.2,233.2,.01,1,1,1) S ^EDPB(233.2,"B",$E(X,1,30),DA)="" "^DD",233.2,233.2,.01,1,1,2) K ^EDPB(233.2,"B",$E(X,1,30),DA) "^DD",233.2,233.2,.01,3) NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION "^DD",233.2,233.2,1,0) CODES^233.21A^^1;0 "^DD",233.2,233.21,0) CODES SUB-FIELD^^.05^5 "^DD",233.2,233.21,0,"DT") 3071229 "^DD",233.2,233.21,0,"IX","B",233.21,.01) "^DD",233.2,233.21,0,"NM","CODES") "^DD",233.2,233.21,0,"UP") 233.2 "^DD",233.2,233.21,.01,0) SEQUENCE^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",233.2,233.21,.01,1,0) ^.1 "^DD",233.2,233.21,.01,1,1,0) 233.21^B "^DD",233.2,233.21,.01,1,1,1) S ^EDPB(233.2,DA(1),1,"B",$E(X,1,30),DA)="" "^DD",233.2,233.21,.01,1,1,2) K ^EDPB(233.2,DA(1),1,"B",$E(X,1,30),DA) "^DD",233.2,233.21,.01,3) Type a Number between 1 and 9999, 0 Decimal Digits "^DD",233.2,233.21,.01,"DT") 3070719 "^DD",233.2,233.21,.02,0) CODE^P233.1'^EDPB(233.1,^0;2^Q "^DD",233.2,233.21,.02,"DT") 3070719 "^DD",233.2,233.21,.03,0) INACTIVE^S^1:INACTIVE;0:ACTIVE;^0;3^Q "^DD",233.2,233.21,.03,"DT") 3071228 "^DD",233.2,233.21,.04,0) NAME AT SITE^F^^0;4^K:$L(X)>60!($L(X)<1) X "^DD",233.2,233.21,.04,3) Answer must be 1-60 characters in length. "^DD",233.2,233.21,.04,"DT") 3080102 "^DD",233.2,233.21,.05,0) ABBREVIATION AT SITE^F^^0;5^K:$L(X)>30!($L(X)<1) X "^DD",233.2,233.21,.05,3) Answer must be 1-30 characters in length. "^DD",233.2,233.21,.05,"DT") 3080102 "^DIC",230,230,0) ED LOG^230 "^DIC",230,230,0,"GL") ^EDP(230, "^DIC",230,"B","ED LOG",230) "^DIC",230.1,230.1,0) ED LOG HISTORY^230.1 "^DIC",230.1,230.1,0,"GL") ^EDP(230.1, "^DIC",230.1,"B","ED LOG HISTORY",230.1) "^DIC",231.7,231.7,0) TRACKING STAFF^231.7 "^DIC",231.7,231.7,0,"GL") ^EDPB(231.7, "^DIC",231.7,"B","TRACKING STAFF",231.7) "^DIC",231.8,231.8,0) TRACKING ROOM-BED^231.8 "^DIC",231.8,231.8,0,"GL") ^EDPB(231.8, "^DIC",231.8,"B","TRACKING ROOM-BED",231.8) "^DIC",231.9,231.9,0) TRACKING AREA^231.9 "^DIC",231.9,231.9,0,"GL") ^EDPB(231.9, "^DIC",231.9,"B","TRACKING AREA",231.9) "^DIC",233.1,233.1,0) TRACKING CODE^233.1 "^DIC",233.1,233.1,0,"GL") ^EDPB(233.1, "^DIC",233.1,"B","TRACKING CODE",233.1) "^DIC",233.2,233.2,0) TRACKING CODE SET^233.2 "^DIC",233.2,233.2,0,"GL") ^EDPB(233.2, "^DIC",233.2,"B","TRACKING CODE SET",233.2) **END** **END**