KIDS Distribution saved on Apr 03, 2008@00:34:13 Emergency Department 1.0T8 **KIDS**:EMERGENCY DEPARTMENT 1.0^ **INSTALL NAME** EMERGENCY DEPARTMENT 1.0 "BLD",6764,0) EMERGENCY DEPARTMENT 1.0^EMERGENCY DEPARTMENT^0^3080403^y "BLD",6764,1,0) ^^4^4^3080305^ "BLD",6764,1,1,0) This is the initial installation of the Emergency Department Information "BLD",6764,1,2,0) System (EDIS). This is the module that handles tracking of a patient "BLD",6764,1,3,0) through an emergency department visit. The user interface for this "BLD",6764,1,4,0) application is a web application. "BLD",6764,4,0) ^9.64PA^233.2^7 "BLD",6764,4,230,0) 230 "BLD",6764,4,230,222) y^y^f^^^^n "BLD",6764,4,230.1,0) 230.1 "BLD",6764,4,230.1,222) y^y^f^^^^n "BLD",6764,4,231.7,0) 231.7 "BLD",6764,4,231.7,222) y^y^f^^^^n "BLD",6764,4,231.8,0) 231.8 "BLD",6764,4,231.8,222) y^y^f^^^^n "BLD",6764,4,231.9,0) 231.9 "BLD",6764,4,231.9,222) y^y^f^^^^n "BLD",6764,4,233.1,0) 233.1 "BLD",6764,4,233.1,222) y^y^f^^y^^y^r^n "BLD",6764,4,233.1,224) I $E(^(0),1,4)="edp." "BLD",6764,4,233.2,0) 233.2 "BLD",6764,4,233.2,222) y^y^f^^y^^y^r^n "BLD",6764,4,233.2,224) I $E(^(0),1,4)="edp." "BLD",6764,4,"B",230,230) "BLD",6764,4,"B",230.1,230.1) "BLD",6764,4,"B",231.7,231.7) "BLD",6764,4,"B",231.8,231.8) "BLD",6764,4,"B",231.9,231.9) "BLD",6764,4,"B",233.1,233.1) "BLD",6764,4,"B",233.2,233.2) "BLD",6764,6.3) 26 "BLD",6764,"ABPKG") n "BLD",6764,"INI") EDPYPRE "BLD",6764,"INIT") EDPYPST "BLD",6764,"KRN",0) ^9.67PA^8989.52^19 "BLD",6764,"KRN",.4,0) .4 "BLD",6764,"KRN",.401,0) .401 "BLD",6764,"KRN",.402,0) .402 "BLD",6764,"KRN",.403,0) .403 "BLD",6764,"KRN",.5,0) .5 "BLD",6764,"KRN",.84,0) .84 "BLD",6764,"KRN",3.6,0) 3.6 "BLD",6764,"KRN",3.8,0) 3.8 "BLD",6764,"KRN",9.2,0) 9.2 "BLD",6764,"KRN",9.8,0) 9.8 "BLD",6764,"KRN",9.8,"NM",0) ^9.68A^49^45 "BLD",6764,"KRN",9.8,"NM",1,0) EDPFAA^^0^B4736966 "BLD",6764,"KRN",9.8,"NM",2,0) EDPFLEX^^0^B1745474 "BLD",6764,"KRN",9.8,"NM",3,0) EDPFMON^^0^B17338011 "BLD",6764,"KRN",9.8,"NM",5,0) EDPFPER^^0^B2953018 "BLD",6764,"KRN",9.8,"NM",6,0) EDPFPTL^^0^B3299385 "BLD",6764,"KRN",9.8,"NM",9,0) EDPX^^0^B8367733 "BLD",6764,"KRN",9.8,"NM",10,0) EDPRPT^^0^B7993997 "BLD",6764,"KRN",9.8,"NM",11,0) EDPRPT1^^0^B33201845 "BLD",6764,"KRN",9.8,"NM",12,0) EDPRPT10^^0^B18747692 "BLD",6764,"KRN",9.8,"NM",13,0) EDPRPT11^^0^B8284389 "BLD",6764,"KRN",9.8,"NM",14,0) EDPRPT2^^0^B15693212 "BLD",6764,"KRN",9.8,"NM",15,0) EDPRPT3^^0^B8551745 "BLD",6764,"KRN",9.8,"NM",16,0) EDPRPT4^^0^B21886528 "BLD",6764,"KRN",9.8,"NM",17,0) EDPRPT5^^0^B33868084 "BLD",6764,"KRN",9.8,"NM",18,0) EDPRPT6^^0^B9637359 "BLD",6764,"KRN",9.8,"NM",19,0) EDPRPT7^^0^B22243761 "BLD",6764,"KRN",9.8,"NM",20,0) EDPRPT7C^^0^B22375057 "BLD",6764,"KRN",9.8,"NM",21,0) EDPRPT8^^0^B14729048 "BLD",6764,"KRN",9.8,"NM",22,0) EDPRPT9^^0^B1592058 "BLD",6764,"KRN",9.8,"NM",23,0) EDPFMOVE^^0^B25998709 "BLD",6764,"KRN",9.8,"NM",24,0) EDPCONV^^0^B69324317 "BLD",6764,"KRN",9.8,"NM",25,0) EDPBCF^^0^B6148648 "BLD",6764,"KRN",9.8,"NM",26,0) EDPBCM^^0^B11803353 "BLD",6764,"KRN",9.8,"NM",27,0) EDPBPM^^0^B2766869 "BLD",6764,"KRN",9.8,"NM",28,0) EDPBRM^^0^B8445684 "BLD",6764,"KRN",9.8,"NM",29,0) EDPBRS^^0^B17301676 "BLD",6764,"KRN",9.8,"NM",30,0) EDPBSL^^0^B10687935 "BLD",6764,"KRN",9.8,"NM",31,0) EDPBST^^0^B5475516 "BLD",6764,"KRN",9.8,"NM",32,0) EDPCBRD^^0^B2212606 "BLD",6764,"KRN",9.8,"NM",34,0) EDPCTRL^^0^B29824391 "BLD",6764,"KRN",9.8,"NM",35,0) EDPDD^^0^B107293 "BLD",6764,"KRN",9.8,"NM",36,0) EDPFPTC^^0^B14650211 "BLD",6764,"KRN",9.8,"NM",37,0) EDPLOG^^0^B22496356 "BLD",6764,"KRN",9.8,"NM",38,0) EDPLOG1^^0^B2523379 "BLD",6764,"KRN",9.8,"NM",39,0) EDPLOGA^^0^B6686415 "BLD",6764,"KRN",9.8,"NM",40,0) EDPLOGH^^0^B269228 "BLD",6764,"KRN",9.8,"NM",41,0) EDPMAIL^^0^B5650063 "BLD",6764,"KRN",9.8,"NM",42,0) EDPQAR^^0^B2509873 "BLD",6764,"KRN",9.8,"NM",43,0) EDPQDB^^0^B27455627 "BLD",6764,"KRN",9.8,"NM",44,0) EDPQDBS^^0^B2920790 "BLD",6764,"KRN",9.8,"NM",45,0) EDPQLE^^0^B19401035 "BLD",6764,"KRN",9.8,"NM",46,0) EDPQLE1^^0^B4668105 "BLD",6764,"KRN",9.8,"NM",47,0) EDPQLP^^0^B5911520 "BLD",6764,"KRN",9.8,"NM",48,0) EDPCSV^^0^B959295 "BLD",6764,"KRN",9.8,"NM",49,0) EDPLPCE^^0^B8566272 "BLD",6764,"KRN",9.8,"NM","B","EDPBCF",25) "BLD",6764,"KRN",9.8,"NM","B","EDPBCM",26) "BLD",6764,"KRN",9.8,"NM","B","EDPBPM",27) "BLD",6764,"KRN",9.8,"NM","B","EDPBRM",28) "BLD",6764,"KRN",9.8,"NM","B","EDPBRS",29) "BLD",6764,"KRN",9.8,"NM","B","EDPBSL",30) "BLD",6764,"KRN",9.8,"NM","B","EDPBST",31) "BLD",6764,"KRN",9.8,"NM","B","EDPCBRD",32) "BLD",6764,"KRN",9.8,"NM","B","EDPCONV",24) "BLD",6764,"KRN",9.8,"NM","B","EDPCSV",48) "BLD",6764,"KRN",9.8,"NM","B","EDPCTRL",34) "BLD",6764,"KRN",9.8,"NM","B","EDPDD",35) "BLD",6764,"KRN",9.8,"NM","B","EDPFAA",1) "BLD",6764,"KRN",9.8,"NM","B","EDPFLEX",2) "BLD",6764,"KRN",9.8,"NM","B","EDPFMON",3) "BLD",6764,"KRN",9.8,"NM","B","EDPFMOVE",23) "BLD",6764,"KRN",9.8,"NM","B","EDPFPER",5) "BLD",6764,"KRN",9.8,"NM","B","EDPFPTC",36) "BLD",6764,"KRN",9.8,"NM","B","EDPFPTL",6) "BLD",6764,"KRN",9.8,"NM","B","EDPLOG",37) "BLD",6764,"KRN",9.8,"NM","B","EDPLOG1",38) "BLD",6764,"KRN",9.8,"NM","B","EDPLOGA",39) "BLD",6764,"KRN",9.8,"NM","B","EDPLOGH",40) "BLD",6764,"KRN",9.8,"NM","B","EDPLPCE",49) "BLD",6764,"KRN",9.8,"NM","B","EDPMAIL",41) "BLD",6764,"KRN",9.8,"NM","B","EDPQAR",42) "BLD",6764,"KRN",9.8,"NM","B","EDPQDB",43) "BLD",6764,"KRN",9.8,"NM","B","EDPQDBS",44) "BLD",6764,"KRN",9.8,"NM","B","EDPQLE",45) "BLD",6764,"KRN",9.8,"NM","B","EDPQLE1",46) "BLD",6764,"KRN",9.8,"NM","B","EDPQLP",47) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT",10) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT1",11) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT10",12) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT11",13) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT2",14) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT3",15) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT4",16) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT5",17) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT6",18) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT7",19) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT7C",20) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT8",21) "BLD",6764,"KRN",9.8,"NM","B","EDPRPT9",22) "BLD",6764,"KRN",9.8,"NM","B","EDPX",9) "BLD",6764,"KRN",19,0) 19 "BLD",6764,"KRN",19,"NM",0) ^9.68A^17^16 "BLD",6764,"KRN",19,"NM",1,0) EDPF TRACKING MENU ALL^^0 "BLD",6764,"KRN",19,"NM",2,0) EDPF TRACKING MENU CLINICIAN^^0 "BLD",6764,"KRN",19,"NM",3,0) EDPF TRACKING MENU SIGNIN^^0 "BLD",6764,"KRN",19,"NM",4,0) EDPF TRACKING MENU TRIAGE^^0 "BLD",6764,"KRN",19,"NM",5,0) EDPF TRACKING SYSTEM^^0 "BLD",6764,"KRN",19,"NM",6,0) EDPF TRACKING VIEW BOARD^^0 "BLD",6764,"KRN",19,"NM",7,0) EDPF TRACKING VIEW CONFIGURE^^0 "BLD",6764,"KRN",19,"NM",8,0) EDPF TRACKING VIEW DISPOSITION^^0 "BLD",6764,"KRN",19,"NM",9,0) EDPF TRACKING VIEW EDIT CLOSED^^0 "BLD",6764,"KRN",19,"NM",10,0) EDPF TRACKING VIEW REPORTS^^0 "BLD",6764,"KRN",19,"NM",11,0) EDPF TRACKING VIEW SIGNIN^^0 "BLD",6764,"KRN",19,"NM",12,0) EDPF TRACKING VIEW STAFF^^0 "BLD",6764,"KRN",19,"NM",13,0) EDPF TRACKING VIEW TRIAGE^^0 "BLD",6764,"KRN",19,"NM",14,0) EDPF TRACKING VIEW UPDATE^^0 "BLD",6764,"KRN",19,"NM",16,0) EDP CONVERSION^^0 "BLD",6764,"KRN",19,"NM",17,0) EDPS BOARD CONTEXT^^0 "BLD",6764,"KRN",19,"NM","B","EDP CONVERSION",16) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING MENU ALL",1) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING MENU CLINICIAN",2) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING MENU SIGNIN",3) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING MENU TRIAGE",4) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING SYSTEM",5) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING VIEW BOARD",6) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING VIEW CONFIGURE",7) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING VIEW DISPOSITION",8) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING VIEW EDIT CLOSED",9) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING VIEW REPORTS",10) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING VIEW SIGNIN",11) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING VIEW STAFF",12) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING VIEW TRIAGE",13) "BLD",6764,"KRN",19,"NM","B","EDPF TRACKING VIEW UPDATE",14) "BLD",6764,"KRN",19,"NM","B","EDPS BOARD CONTEXT",17) "BLD",6764,"KRN",19.1,0) 19.1 "BLD",6764,"KRN",19.1,"NM",0) ^9.68A^3^3 "BLD",6764,"KRN",19.1,"NM",1,0) EDPR EXPORT^^0 "BLD",6764,"KRN",19.1,"NM",2,0) EDPR PROVIDER^^0 "BLD",6764,"KRN",19.1,"NM",3,0) EDPR XREF^^0 "BLD",6764,"KRN",19.1,"NM","B","EDPR EXPORT",1) "BLD",6764,"KRN",19.1,"NM","B","EDPR PROVIDER",2) "BLD",6764,"KRN",19.1,"NM","B","EDPR XREF",3) "BLD",6764,"KRN",101,0) 101 "BLD",6764,"KRN",101,"NM",0) ^9.68A^9^9 "BLD",6764,"KRN",101,"NM",1,0) EDP CHECK-IN^^0 "BLD",6764,"KRN",101,"NM",2,0) EDP MONITOR^^0 "BLD",6764,"KRN",101,"NM",3,0) FH EVSEND OR^^2 "BLD",6764,"KRN",101,"NM",4,0) GMRC EVSEND OR^^2 "BLD",6764,"KRN",101,"NM",5,0) LR7O CH EVSEND OR^^2 "BLD",6764,"KRN",101,"NM",6,0) OR EVSEND ORG^^2 "BLD",6764,"KRN",101,"NM",7,0) PS EVSEND OR^^2 "BLD",6764,"KRN",101,"NM",8,0) RA EVSEND OR^^2 "BLD",6764,"KRN",101,"NM",9,0) SDAM APPOINTMENT EVENTS^^2 "BLD",6764,"KRN",101,"NM","B","EDP CHECK-IN",1) "BLD",6764,"KRN",101,"NM","B","EDP MONITOR",2) "BLD",6764,"KRN",101,"NM","B","FH EVSEND OR",3) "BLD",6764,"KRN",101,"NM","B","GMRC EVSEND OR",4) "BLD",6764,"KRN",101,"NM","B","LR7O CH EVSEND OR",5) "BLD",6764,"KRN",101,"NM","B","OR EVSEND ORG",6) "BLD",6764,"KRN",101,"NM","B","PS EVSEND OR",7) "BLD",6764,"KRN",101,"NM","B","RA EVSEND OR",8) "BLD",6764,"KRN",101,"NM","B","SDAM APPOINTMENT EVENTS",9) "BLD",6764,"KRN",409.61,0) 409.61 "BLD",6764,"KRN",771,0) 771 "BLD",6764,"KRN",870,0) 870 "BLD",6764,"KRN",8989.51,0) 8989.51 "BLD",6764,"KRN",8989.51,"NM",0) ^9.68A^1^1 "BLD",6764,"KRN",8989.51,"NM",1,0) EDPF LOCATION^^0 "BLD",6764,"KRN",8989.51,"NM","B","EDPF LOCATION",1) "BLD",6764,"KRN",8989.52,0) 8989.52 "BLD",6764,"KRN",8994,0) 8994 "BLD",6764,"KRN",8994,"NM",0) ^9.68A^2^2 "BLD",6764,"KRN",8994,"NM",1,0) EDPCBRD RPC^^0 "BLD",6764,"KRN",8994,"NM",2,0) EDPCTRL RPC^^0 "BLD",6764,"KRN",8994,"NM","B","EDPCBRD RPC",1) "BLD",6764,"KRN",8994,"NM","B","EDPCTRL RPC",2) "BLD",6764,"KRN","B",.4,.4) "BLD",6764,"KRN","B",.401,.401) "BLD",6764,"KRN","B",.402,.402) "BLD",6764,"KRN","B",.403,.403) "BLD",6764,"KRN","B",.5,.5) "BLD",6764,"KRN","B",.84,.84) "BLD",6764,"KRN","B",3.6,3.6) "BLD",6764,"KRN","B",3.8,3.8) "BLD",6764,"KRN","B",9.2,9.2) "BLD",6764,"KRN","B",9.8,9.8) "BLD",6764,"KRN","B",19,19) "BLD",6764,"KRN","B",19.1,19.1) "BLD",6764,"KRN","B",101,101) "BLD",6764,"KRN","B",409.61,409.61) "BLD",6764,"KRN","B",771,771) "BLD",6764,"KRN","B",870,870) "BLD",6764,"KRN","B",8989.51,8989.51) "BLD",6764,"KRN","B",8989.52,8989.52) "BLD",6764,"KRN","B",8994,8994) "BLD",6764,"PRE") EDPYCHK "BLD",6764,"QUES",0) ^9.62^^ "BLD",6764,"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^^VA "DATA",233.1,37,0) edp.disposition.left^Left Without Being Treated/Seen^L^^M "DATA",233.1,38,0) edp.disposition.xferva^Transferred to VA Facility^O^^A "DATA",233.1,39,0) edp.disposition.ama^AMA^AMA^^M "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^^VA "DATA",233.1,43,0) edp.disposition.icu^Admitted to ICU^ICU^^VA "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^^M "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.nhcu^NHCU "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^^VA "DATA",233.1,59,0) edp.delay.consult^Obtain Consultation^CSLT "DATA",233.1,60,0) edp.disposition.error^Patient Name Entered in Error^ERR "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^14^14 "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 "DATA",233.2,6,1,14,0) 300^60 "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,0,"VR") 1.0^EMERGENCY DEPARTMENT "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,0,"VR") 1.0^EMERGENCY DEPARTMENT "FIA",230.1,230.1) 0 "FIA",231.7) TRACKING STAFF "FIA",231.7,0) ^EDPB(231.7, "FIA",231.7,0,0) 231.7P "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,0,"VR") 1.0^EMERGENCY DEPARTMENT "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,0,"VR") 1.0^EMERGENCY DEPARTMENT "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,0,"VR") 1.0^EMERGENCY DEPARTMENT "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^r^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,0,"VR") 1.0^EMERGENCY DEPARTMENT "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^r^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,0,"VR") 1.0^EMERGENCY DEPARTMENT "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.nhcu "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,14,0",2) edp.disposition.error "FRV1",233.2,"6,1,14,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, "INI") EDPYPRE "INIT") EDPYPST "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,"APA",0) 230^APA^DFN,IEN for currently active patients^R^^R^IR^I^230^^^^^S "IX",230,230,"APA",1) S ^EDP(230,"APA",X(1),DA)="" "IX",230,230,"APA",1.4) S X='X2(2) "IX",230,230,"APA",2) K ^EDP(230,"APA",X(1),DA) "IX",230,230,"APA",2.5) K ^EDP(230,"APA") "IX",230,230,"APA",11.1,0) ^.114IA^2^2 "IX",230,230,"APA",11.1,1,0) 1^F^230^.06^^1^F "IX",230,230,"APA",11.1,1,3) "IX",230,230,"APA",11.1,2,0) 2^F^230^.07^^^F "IX",230,230,"APA",11.1,2,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^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,2,0) 2^F^231.7^.03^^2^F "IX",231.7,231.7,"AD",11.1,3,0) 3^F^231.7^.01^^3^F "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,13496,-1) 0^5 "KRN",19,13496,0) EDPF TRACKING SYSTEM^ED Tracking System - Facility^^B^^^^^^^^ "KRN",19,13496,1,0) ^^1^1^3071207^ "KRN",19,13496,1,1,0) Context option for ED Tracking System RPC calls at local facility. "KRN",19,13496,99.1) 61001,51187 "KRN",19,13496,"RPC",0) ^19.05P^8^2 "KRN",19,13496,"RPC",7,0) EDPCTRL RPC "KRN",19,13496,"RPC",8,0) EDPCBRD RPC "KRN",19,13496,"U") ED TRACKING SYSTEM - FACILITY "KRN",19,13497,-1) 0^11 "KRN",19,13497,0) EDPF TRACKING VIEW SIGNIN^Sign In Patient^^M^^^^^^^^ "KRN",19,13497,10,0) ^19.01IP^1^1 "KRN",19,13497,10,1,0) 13496 "KRN",19,13497,10,1,"^") EDPF TRACKING SYSTEM "KRN",19,13497,99) 61055,41714 "KRN",19,13497,"U") SIGN IN PATIENT "KRN",19,13498,-1) 0^13 "KRN",19,13498,0) EDPF TRACKING VIEW TRIAGE^Triage Patient^^M^^^^^^^^ "KRN",19,13498,10,0) ^19.01IP^1^1 "KRN",19,13498,10,1,0) 13496 "KRN",19,13498,10,1,"^") EDPF TRACKING SYSTEM "KRN",19,13498,99) 61055,41714 "KRN",19,13498,"U") TRIAGE PATIENT "KRN",19,13499,-1) 0^14 "KRN",19,13499,0) EDPF TRACKING VIEW UPDATE^Update Tracking Board^^M^^^^^^^^ "KRN",19,13499,10,0) ^19.01IP^1^1 "KRN",19,13499,10,1,0) 13496 "KRN",19,13499,10,1,"^") EDPF TRACKING SYSTEM "KRN",19,13499,99) 61055,41714 "KRN",19,13499,"U") UPDATE TRACKING BOARD "KRN",19,13500,-1) 0^8 "KRN",19,13500,0) EDPF TRACKING VIEW DISPOSITION^Disposition Patient^^M^^^^^^^^ "KRN",19,13500,10,0) ^19.01IP^1^1 "KRN",19,13500,10,1,0) 13496 "KRN",19,13500,10,1,"^") EDPF TRACKING SYSTEM "KRN",19,13500,99) 61055,41714 "KRN",19,13500,"U") DISPOSITION PATIENT "KRN",19,13501,-1) 0^9 "KRN",19,13501,0) EDPF TRACKING VIEW EDIT CLOSED^Edit Closed Patient^^M^^^^^^^^ "KRN",19,13501,10,0) ^19.01IP^1^1 "KRN",19,13501,10,1,0) 13496 "KRN",19,13501,10,1,"^") EDPF TRACKING SYSTEM "KRN",19,13501,99) 61055,41714 "KRN",19,13501,"U") EDIT CLOSED PATIENT "KRN",19,13502,-1) 0^6 "KRN",19,13502,0) EDPF TRACKING VIEW BOARD^Display Board^^M^^^^^^^^ "KRN",19,13502,10,0) ^19.01IP^1^1 "KRN",19,13502,10,1,0) 13496 "KRN",19,13502,10,1,"^") EDPF TRACKING SYSTEM "KRN",19,13502,99) 61055,41714 "KRN",19,13502,99.1) 61079,62253 "KRN",19,13502,"U") DISPLAY BOARD "KRN",19,13503,-1) 0^10 "KRN",19,13503,0) EDPF TRACKING VIEW REPORTS^Tracking Reports^^M^^^^^^^^ "KRN",19,13503,10,0) ^19.01IP^1^1 "KRN",19,13503,10,1,0) 13496 "KRN",19,13503,10,1,"^") EDPF TRACKING SYSTEM "KRN",19,13503,99) 61055,41714 "KRN",19,13503,"U") TRACKING REPORTS "KRN",19,13504,-1) 0^7 "KRN",19,13504,0) EDPF TRACKING VIEW CONFIGURE^Configure Tracking Board^^M^^^^^^^^ "KRN",19,13504,10,0) ^19.01IP^1^1 "KRN",19,13504,10,1,0) 13496 "KRN",19,13504,10,1,"^") EDPF TRACKING SYSTEM "KRN",19,13504,99) 61055,41714 "KRN",19,13504,"U") CONFIGURE TRACKING BOARD "KRN",19,13505,-1) 0^12 "KRN",19,13505,0) EDPF TRACKING VIEW STAFF^Assign Staff^^M^^^^^^^^ "KRN",19,13505,10,0) ^19.01IP^1^1 "KRN",19,13505,10,1,0) 13496 "KRN",19,13505,10,1,"^") EDPF TRACKING SYSTEM "KRN",19,13505,99) 61055,41714 "KRN",19,13505,99.1) 61079,62253 "KRN",19,13505,"U") ASSIGN STAFF "KRN",19,13506,-1) 0^1 "KRN",19,13506,0) EDPF TRACKING MENU ALL^All Tracking Views^^M^^^^^^^^ "KRN",19,13506,10,0) ^19.01IP^9^9 "KRN",19,13506,10,1,0) 13497^^10 "KRN",19,13506,10,1,"^") EDPF TRACKING VIEW SIGNIN "KRN",19,13506,10,2,0) 13498^^20 "KRN",19,13506,10,2,"^") EDPF TRACKING VIEW TRIAGE "KRN",19,13506,10,3,0) 13499^^30 "KRN",19,13506,10,3,"^") EDPF TRACKING VIEW UPDATE "KRN",19,13506,10,4,0) 13500^^40 "KRN",19,13506,10,4,"^") EDPF TRACKING VIEW DISPOSITION "KRN",19,13506,10,5,0) 13501^^50 "KRN",19,13506,10,5,"^") EDPF TRACKING VIEW EDIT CLOSED "KRN",19,13506,10,6,0) 13502^^60 "KRN",19,13506,10,6,"^") EDPF TRACKING VIEW BOARD "KRN",19,13506,10,7,0) 13505^^70 "KRN",19,13506,10,7,"^") EDPF TRACKING VIEW STAFF "KRN",19,13506,10,8,0) 13503^^80 "KRN",19,13506,10,8,"^") EDPF TRACKING VIEW REPORTS "KRN",19,13506,10,9,0) 13504^^90 "KRN",19,13506,10,9,"^") EDPF TRACKING VIEW CONFIGURE "KRN",19,13506,99) 61055,41714 "KRN",19,13506,99.1) 61079,62253 "KRN",19,13506,"U") ALL TRACKING VIEWS "KRN",19,13508,-1) 0^3 "KRN",19,13508,0) EDPF TRACKING MENU SIGNIN^Sign-in Tracking Views^^M^^^^^^^^ "KRN",19,13508,10,0) ^19.01IP^2^2 "KRN",19,13508,10,1,0) 13497^^10 "KRN",19,13508,10,1,"^") EDPF TRACKING VIEW SIGNIN "KRN",19,13508,10,2,0) 13502^^20 "KRN",19,13508,10,2,"^") EDPF TRACKING VIEW BOARD "KRN",19,13508,99) 61055,41714 "KRN",19,13508,99.1) 61079,62253 "KRN",19,13508,"U") SIGN-IN TRACKING VIEWS "KRN",19,13509,-1) 0^4 "KRN",19,13509,0) EDPF TRACKING MENU TRIAGE^Triage Tracking Views^^M^^^^^^^^ "KRN",19,13509,10,0) ^19.01IP^2^2 "KRN",19,13509,10,1,0) 13498^^10 "KRN",19,13509,10,1,"^") EDPF TRACKING VIEW TRIAGE "KRN",19,13509,10,2,0) 13502^^20 "KRN",19,13509,10,2,"^") EDPF TRACKING VIEW BOARD "KRN",19,13509,99) 61055,41714 "KRN",19,13509,99.1) 61079,62253 "KRN",19,13509,"U") TRIAGE TRACKING VIEWS "KRN",19,13510,-1) 0^2 "KRN",19,13510,0) EDPF TRACKING MENU CLINICIAN^Clinician Tracking Views^^M^^^^^^^^ "KRN",19,13510,10,0) ^19.01IP^3^3 "KRN",19,13510,10,1,0) 13499^^10 "KRN",19,13510,10,1,"^") EDPF TRACKING VIEW UPDATE "KRN",19,13510,10,2,0) 13500^^20 "KRN",19,13510,10,2,"^") EDPF TRACKING VIEW DISPOSITION "KRN",19,13510,10,3,0) 13502^^30 "KRN",19,13510,10,3,"^") EDPF TRACKING VIEW BOARD "KRN",19,13510,99) 61055,41714 "KRN",19,13510,99.1) 61079,62253 "KRN",19,13510,"U") CLINICIAN TRACKING VIEWS "KRN",19,13512,-1) 0^17 "KRN",19,13512,0) EDPS BOARD CONTEXT^ED Tracking Board Context^^B^^^^^^^^ "KRN",19,13512,"RPC",0) ^19.05P^1^1 "KRN",19,13512,"RPC",1,0) EDPCBRD RPC "KRN",19,13512,"U") ED TRACKING BOARD CONTEXT "KRN",19,13514,-1) 0^16 "KRN",19,13514,0) EDP CONVERSION^Convert local ER data to EDIS files^^R^^^^^^^^EMERGENCY DEPARTMENT "KRN",19,13514,1,0) ^^6^6^3080305^ "KRN",19,13514,1,1,0) This option allows a site to trigger the conversion of its local data in "KRN",19,13514,1,2,0) ^DIZ(1720xx) files to the new Emergency Department Information System "KRN",19,13514,1,3,0) files. Local configuration data will be transferred first, followed by "KRN",19,13514,1,4,0) all currently open visits; a task will also be queued to copy closed "KRN",19,13514,1,5,0) visits as well, to permit the reporting features to continue functioning "KRN",19,13514,1,6,0) normally. "KRN",19,13514,25) EDPFMOVE "KRN",19,13514,"U") CONVERT LOCAL ER DATA TO EDIS "KRN",19.1,594,-1) 0^1 "KRN",19.1,594,0) EDPR EXPORT^Allows CSV Export of Report "KRN",19.1,594,1,0) ^^2^2^3071221^ "KRN",19.1,594,1,1,0) Allows export of report using tab delimited values for use in Excel and "KRN",19.1,594,1,2,0) other products. "KRN",19.1,595,-1) 0^2 "KRN",19.1,595,0) EDPR PROVIDER^Allow Provider Report "KRN",19.1,595,1,0) ^^2^2^3071221^ "KRN",19.1,595,1,1,0) Allows access to the provider report in the reports menu for the ED "KRN",19.1,595,1,2,0) package. "KRN",19.1,596,-1) 0^3 "KRN",19.1,596,0) EDPR XREF^Allow Pt Xref Report "KRN",19.1,596,1,0) ^^2^2^3071221^ "KRN",19.1,596,1,1,0) Allows use of the patient cross reference report in the list of reports "KRN",19.1,596,1,2,0) for the emergency department. "KRN",101,1302,-1) 2^9 "KRN",101,1302,0) SDAM APPOINTMENT EVENTS^Appointment Event Driver^^X^10000000179^^^^^^^16 "KRN",101,1302,10,0) ^101.01PA^20^20 "KRN",101,1302,10,20,0) 5601^^^ "KRN",101,1302,10,20,"^") EDP CHECK-IN "KRN",101,2690,-1) 2^8 "KRN",101,2690,0) RA EVSEND OR^Radiology event sent to OE/RR^^X^10000000179^^^^^^^31 "KRN",101,2690,10,0) ^101.01PA^4^4 "KRN",101,2690,10,4,0) 5600^^^ "KRN",101,2690,10,4,"^") EDP MONITOR "KRN",101,3336,-1) 2^5 "KRN",101,3336,0) LR7O CH EVSEND OR^LAB => OE/RR ORDER MESSAGE EVENT^^X^10000000179^^^^^^^ "KRN",101,3336,10,0) ^101.01PA^4^4 "KRN",101,3336,10,4,0) 5600^^^ "KRN",101,3336,10,4,"^") EDP MONITOR "KRN",101,3373,-1) 2^7 "KRN",101,3373,0) PS EVSEND OR^Send Pharmacy orders to CPRS.^^X^10000000179^^^^^^^18 "KRN",101,3373,10,0) ^101.01PA^6^6 "KRN",101,3373,10,6,0) 5600^^2^ "KRN",101,3373,10,6,"^") EDP MONITOR "KRN",101,3392,-1) 2^4 "KRN",101,3392,0) GMRC EVSEND OR^Consults event sent to OE/RR^^X^10000000179^^^^^^^294 "KRN",101,3392,10,0) ^101.01PA^5^5 "KRN",101,3392,10,5,0) 5600^^^ "KRN",101,3392,10,5,"^") EDP MONITOR "KRN",101,3411,-1) 2^3 "KRN",101,3411,0) FH EVSEND OR^FH --> OR event messages^^X^10000000179^^^^^^^ "KRN",101,3411,10,0) ^101.01PA^3^3 "KRN",101,3411,10,3,0) 5600^^^ "KRN",101,3411,10,3,"^") EDP MONITOR "KRN",101,3536,-1) 2^6 "KRN",101,3536,0) OR EVSEND ORG^OE/RR => GENERIC MESSAGE EVENT^^X^10000000179^^^^^^^ "KRN",101,3536,10,0) ^101.01PA^3^3 "KRN",101,3536,10,3,0) 5600^^^ "KRN",101,3536,10,3,"^") EDP MONITOR "KRN",101,5600,-1) 0^2 "KRN",101,5600,0) EDP MONITOR^Monitor order messages for EDP Log^^A^^^^^^^^ "KRN",101,5600,1,0) ^101.06^4^4^3080321^^ "KRN",101,5600,1,1,0) This protocol monitors ordering events for the Emergency Department "KRN",101,5600,1,2,0) tracking board. It is placed on the * EVSEND OR protocols to check for "KRN",101,5600,1,3,0) updates being sent from ancillary packages to order entry. In monitors "KRN",101,5600,1,4,0) when orders are transmitted and when orders are completed. "KRN",101,5600,20) D EN^EDPFMON(.XQORMSG) "KRN",101,5600,99) 61055,41714 "KRN",101,5601,-1) 0^1 "KRN",101,5601,0) EDP CHECK-IN^Monitor for ED check-in^^A^^^^^^^^ "KRN",101,5601,1,0) ^101.06^3^3^3080321^^ "KRN",101,5601,1,1,0) This protocol will monitor Scheduling events for patients being checked-in "KRN",101,5601,1,2,0) to the Emergency Department. It is placed on the SDAM APPOINTMENT EVENTS "KRN",101,5601,1,3,0) protocol. "KRN",101,5601,20) D SDAM^EDPFMON "KRN",101,5601,99) 61055,41714 "KRN",8989.51,510,-1) 0^1 "KRN",8989.51,510,0) EDPF LOCATION^Local ED Hospital Location^0^^ED LOCATION "KRN",8989.51,510,1) P^44^Enter the Hospital Location that is the local Emergency Department. "KRN",8989.51,510,3) I $P(^(0),U,3)'="W" "KRN",8989.51,510,20,0) ^8989.512^2^2^3080307^^^ "KRN",8989.51,510,20,1,0) This parameter holds the Hospital Location file #44 ien of the local "KRN",8989.51,510,20,2,0) Emergency Department. "KRN",8989.51,510,30,0) ^8989.513I^2^1 "KRN",8989.51,510,30,2,0) 2^4 "KRN",8994,2523,-1) 0^2 "KRN",8994,2523,0) EDPCTRL RPC^RPC^EDPCTRL^2^R^^^^1^^0 "KRN",8994,2523,1,0) ^^5^5^3080307^ "KRN",8994,2523,1,1,0) This RPC acts as the "front controller" for the EDIS Tracking Application. "KRN",8994,2523,1,2,0) It accepts requests that are initially passed into a web server. The RPC "KRN",8994,2523,1,3,0) uses the parameters that are passed in to determine which command to "KRN",8994,2523,1,4,0) execute. The returned data is formatted as XML. The XML structure varies "KRN",8994,2523,1,5,0) based a what data were requested. "KRN",8994,2523,2,0) ^8994.02A^1^1 "KRN",8994,2523,2,1,0) PARAMS^2^^1^1 "KRN",8994,2523,2,1,1,0) ^^2^2^3080307^ "KRN",8994,2523,2,1,1,1,0) This is a list of parameters that were passed to the Java middle tier via "KRN",8994,2523,2,1,1,2,0) an HTTP Post message. "KRN",8994,2523,2,"B","PARAMS",1) "KRN",8994,2523,2,"PARAMSEQ",1,1) "KRN",8994,2523,3,0) ^^1^1^3080307^ "KRN",8994,2523,3,1,0) The return results are formatted as an XML document. "KRN",8994,2524,-1) 0^1 "KRN",8994,2524,0) EDPCBRD RPC^RPC^EDPCBRD^2^R^^^^^^1 "KRN",8994,2524,1,0) ^^8^8^3080307^ "KRN",8994,2524,1,1,0) This RPC acts as the "front controller" for the EDIS Display Board. It "KRN",8994,2524,1,2,0) accepts requests that are initially passed into a web server. The RPC "KRN",8994,2524,1,3,0) uses the parameters that are passed in to determine which command to "KRN",8994,2524,1,4,0) execute. The returned data is formatted as XML. The XML structure "KRN",8994,2524,1,5,0) varies based a what data were requested. "KRN",8994,2524,1,6,0) "KRN",8994,2524,1,7,0) Since the Display Board runs in a "kiosk" mode, this RPC allows proxy "KRN",8994,2524,1,8,0) user access. "KRN",8994,2524,2,0) ^8994.02A^2^2 "KRN",8994,2524,2,1,0) SESS^1^^1^1 "KRN",8994,2524,2,1,1,0) ^^3^3^3080307^ "KRN",8994,2524,2,1,1,1,0) This identifies the user and site that are passed in from the Java middle "KRN",8994,2524,2,1,1,2,0) tier. In cases when the display board is running with a proxy user (in "KRN",8994,2524,2,1,1,3,0) kiosk mode), the SSL configuration will determine the user and site. "KRN",8994,2524,2,2,0) PARAMS^2^^^2 "KRN",8994,2524,2,2,1,0) ^^2^2^3080307^ "KRN",8994,2524,2,2,1,1,0) This is a list of parameters that were passed to the Java middle tier via "KRN",8994,2524,2,2,1,2,0) an HTTP Post message. "KRN",8994,2524,2,"B","PARAMS",2) "KRN",8994,2524,2,"B","SESS",1) "KRN",8994,2524,2,"PARAMSEQ",1,1) "KRN",8994,2524,2,"PARAMSEQ",2,2) "KRN",8994,2524,3,0) ^^1^1^3080307^ "KRN",8994,2524,3,1,0) The return results are formatted as an XML document. "MBREQ") 0 "ORD",3,19.1) 19.1;3;1;;KEY^XPDTA1;;;KEYF2^XPDIA1;;KEYDEL^XPDIA1 "ORD",3,19.1,0) SECURITY KEY "ORD",15,101) 101;15;;;PRO^XPDTA;PROF1^XPDIA;PROE1^XPDIA;PROF2^XPDIA;;PRODEL^XPDIA "ORD",15,101,0) PROTOCOL "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 "ORD",20,8989.51) 8989.51;20;;;PAR1E1^XPDTA2;PAR1F1^XPDIA3;PAR1E1^XPDIA3;PAR1F2^XPDIA3;;PAR1DEL^XPDIA3(%) "ORD",20,8989.51,0) PARAMETER DEFINITION "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 "PKG",562,-1) 1^1 "PKG",562,0) EMERGENCY DEPARTMENT^EDP^Emergency Department Information System "PKG",562,1,0) ^^1^1^3080111^ "PKG",562,1,1,0) This is the Emergency Department Information System (EDIS). "PKG",562,20,0) ^9.402P^^ "PKG",562,22,0) ^9.49I^1^1 "PKG",562,22,1,0) 1.0^3080403^3080229^10000000179 "PKG",562,22,1,1,0) ^^4^4^3080403 "PKG",562,22,1,1,1,0) This is the initial installation of the Emergency Department Information "PKG",562,22,1,1,2,0) System (EDIS). This is the module that handles tracking of a patient "PKG",562,22,1,1,3,0) through an emergency department visit. The user interface for this "PKG",562,22,1,1,4,0) application is a web application. "PKG",562,"VERSION") 1.0 "PRE") EDPYCHK "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") 48 "RTN","EDPBCF") 0^25^B6148648 "RTN","EDPBCF",1,0) EDPBCF ;SLC/KCM - Display Board Configuration "RTN","EDPBCF",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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) ; "RTN","EDPBCF",28,0) D LOAD^EDPBRM(AREA) ; also load rooms/beds "RTN","EDPBCF",29,0) D LOAD^EDPBPM(AREA) ; also load parameters "RTN","EDPBCF",30,0) ; "RTN","EDPBCF",31,0) Q "RTN","EDPBCF",32,0) SAVEBRD(REQ) ; Save Configuration "RTN","EDPBCF",33,0) N X,WP,AREA "RTN","EDPBCF",34,0) S X="col-",AREA=$G(REQ("area",1)) "RTN","EDPBCF",35,0) I 'AREA D XML^EDPX("Missing area") Q "RTN","EDPBCF",36,0) F S X=$O(REQ(X)) Q:$E(X,1,4)'="col-" S WP(+$P(X,"-",2))=REQ(X,1) "RTN","EDPBCF",37,0) S WP(.1)="",WP(9999)="" "RTN","EDPBCF",38,0) D WP^DIE(231.9,AREA_",",2,"","WP") "RTN","EDPBCF",39,0) I $D(DIERR) D XML^EDPX("save failed") Q "RTN","EDPBCF",40,0) D XML^EDPX("") "RTN","EDPBCF",41,0) Q "RTN","EDPBCF",42,0) COLUMNS ;; Available columns "RTN","EDPBCF",43,0) ;;Room / Bed^@bedNm^Room "RTN","EDPBCF",44,0) ;;Patient Name^@ptNm^Patient "RTN","EDPBCF",45,0) ;;Patient X9999^@last4^Patient "RTN","EDPBCF",46,0) ;;Complaint^@complaint^Complaint "RTN","EDPBCF",47,0) ;;Comment^@comment^Comment "RTN","EDPBCF",48,0) ;;Provider Initials^@mdNm^Prv "RTN","EDPBCF",49,0) ;;Resident Initials^@resNm^Res "RTN","EDPBCF",50,0) ;;Nurse Initials^@rnNm^RN "RTN","EDPBCF",51,0) ;;Acuity^@acuityNm^Acuity "RTN","EDPBCF",52,0) ;;Status^@statusNm^Status "RTN","EDPBCF",53,0) ;;Lab Active/Complete^@lab^L "RTN","EDPBCF",54,0) ;;Imaging Active/Complete^@rad^I "RTN","EDPBCF",55,0) ;;New (Unverified) Orders^@ordNew^New "RTN","EDPBCF",56,0) ;;Total Minutes^@emins^E Mins "RTN","EDPBCF",57,0) ;;Minutes at Location^@lmins^Mins "RTN","EDPBCF",58,0) ;;zzzzz "RTN","EDPBCM") 0^26^B11803353 "RTN","EDPBCM",1,0) EDPBCM ;SLC/KCM - Available color maps "RTN","EDPBCM",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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 -- OBSOLETE? "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) ;;minLab^Minutes for Lab Order "RTN","EDPBCM",100,0) ;;minRad^Minutes for Imaging Order "RTN","EDPBCM",101,0) ;;minVer^Minutes for Unverified Order "RTN","EDPBCM",102,0) ;;zzzzz "RTN","EDPBPM") 0^27^B2766869 "RTN","EDPBPM",1,0) EDPBPM ;SLC/KCM - Parameters for Tracking Area "RTN","EDPBPM",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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^28^B8445684 "RTN","EDPBRM",1,0) EDPBRM ;SLC/KCM - Room/Bed Configuration "RTN","EDPBRM",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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^29^B17301676 "RTN","EDPBRS",1,0) EDPBRS ;SLC/KCM - Reset Board Configuration "RTN","EDPBRS",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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^30^B10687935 "RTN","EDPBSL",1,0) EDPBSL ;SLC/KCM - Selection List Configuration "RTN","EDPBSL",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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^31^B5475516 "RTN","EDPBST",1,0) EDPBST ;SLC/KCM - Staff Configuration "RTN","EDPBST",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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("duz")=$P(X0,U) "RTN","EDPBST",16,0) . S X("nm")=$P(^VA(200,X("duz"),0),U) "RTN","EDPBST",17,0) . S X("role")=$P(X0,U,6) "RTN","EDPBST",18,0) . S X("itl")=$P(^VA(200,X("duz"),0),U,2) "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("duz") "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,.06)=FLD("role") "RTN","EDPBST",48,0) ;S FDA(231.7,EDPIEN,.07)=FLD("itl") --NtoL "RTN","EDPBST",49,0) S FDA(231.7,EDPIEN,.08)=FLD("clr") "RTN","EDPBST",50,0) I EDPIEN="+1," D "RTN","EDPBST",51,0) . D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPBST",52,0) . I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. " "RTN","EDPBST",53,0) E D "RTN","EDPBST",54,0) . D FILE^DIE("","FDA","ERR") "RTN","EDPBST",55,0) . I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. " "RTN","EDPBST",56,0) Q "RTN","EDPCBRD") 0^32^B2212606 "RTN","EDPCBRD",1,0) EDPCBRD ;SLC/KCM - Controller for ED Tracking Board "RTN","EDPCBRD",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPCBRD",3,0) ; "RTN","EDPCBRD",4,0) RPC(EDPXML,SESS,PARAMS) ; Process request via RPC instead of CSP "RTN","EDPCBRD",5,0) N X,REQ,EDPSITE,EDPUSER "RTN","EDPCBRD",6,0) K EDPXML "RTN","EDPCBRD",7,0) S EDPUSER=$P($G(SESS),U),EDPSITE=$P($G(SESS),U,2) "RTN","EDPCBRD",8,0) S X="" F S X=$O(PARAMS(X)) Q:X="" S REQ(X,1)=PARAMS(X) "RTN","EDPCBRD",9,0) ; "RTN","EDPCBRD",10,0) COMMON ; Come here for both CSP and RPC Mode "RTN","EDPCBRD",11,0) ; "RTN","EDPCBRD",12,0) N EDPFAIL,CMD "RTN","EDPCBRD",13,0) S CMD=$G(REQ("command",1)) "RTN","EDPCBRD",14,0) ; "RTN","EDPCBRD",15,0) ; switch on command "RTN","EDPCBRD",16,0) ; "RTN","EDPCBRD",17,0) ; --------------------------------- "RTN","EDPCBRD",18,0) ; "RTN","EDPCBRD",19,0) ; initTracking "RTN","EDPCBRD",20,0) ; return ... "RTN","EDPCBRD",21,0) I CMD="initTracking" D DFLTAREA^EDPQAR G OUT "RTN","EDPCBRD",22,0) ; "RTN","EDPCBRD",23,0) ; --------------------------------- "RTN","EDPCBRD",24,0) ; "RTN","EDPCBRD",25,0) ; initDisplayBoard "RTN","EDPCBRD",26,0) ; return "RTN","EDPCBRD",27,0) ; ...... "RTN","EDPCBRD",28,0) ; ... "RTN","EDPCBRD",29,0) I CMD="initDisplayBoard" D G OUT "RTN","EDPCBRD",30,0) . D GET^EDPQDBS($$VAL("area")) "RTN","EDPCBRD",31,0) . D GET^EDPQDB($$VAL("area"),$$VAL("board"),-1) "RTN","EDPCBRD",32,0) ; "RTN","EDPCBRD",33,0) ; --------------------------------- "RTN","EDPCBRD",34,0) ; "RTN","EDPCBRD",35,0) ; refreshDisplayBoard "RTN","EDPCBRD",36,0) ; return ... "RTN","EDPCBRD",37,0) I CMD="refreshDisplayBoard" D G OUT "RTN","EDPCBRD",38,0) . D GET^EDPQDB($$VAL("area"),$$VAL("board"),-1) "RTN","EDPCBRD",39,0) ; "RTN","EDPCBRD",40,0) ; --------------------------------- "RTN","EDPCBRD",41,0) ; else "RTN","EDPCBRD",42,0) D XML^EDPX("") "RTN","EDPCBRD",43,0) ; end switch "RTN","EDPCBRD",44,0) ; "RTN","EDPCBRD",45,0) OUT ; output the XML "RTN","EDPCBRD",46,0) I $L($G(EDPHTTP)) D ; if in CSP mode "RTN","EDPCBRD",47,0) . U EDPHTTP "RTN","EDPCBRD",48,0) . W "",! "RTN","EDPCBRD",49,0) . N I S I=0 F S I=$O(EDPXML(I)) Q:'I W EDPXML(I),! "RTN","EDPCBRD",50,0) . W "",! "RTN","EDPCBRD",51,0) END Q "RTN","EDPCBRD",52,0) ; "RTN","EDPCBRD",53,0) VAL(X) ; return value from request "RTN","EDPCBRD",54,0) Q $G(REQ(X,1)) "RTN","EDPCONV") 0^24^B69324317 "RTN","EDPCONV",1,0) EDPCONV ;SLC/MKB - Process incoming mail to convert local ED Visits "RTN","EDPCONV",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPCONV",3,0) ; "RTN","EDPCONV",4,0) ENC(DIZ) ; -- Update the local DIZ(NODE) site configuration into ^EDPB(231.9) "RTN","EDPCONV",5,0) N EDPSITE,TZDIFF,EDPAREA,X,X2,X3,X5,Y,NODE "RTN","EDPCONV",6,0) S EDPSITE=$G(DIZ("SITE")),X=$G(DIZ("TZ")),TZDIFF=0 ;$$TZONE(X) "RTN","EDPCONV",7,0) S EDPAREA=+$O(^EDPB(231.9,"C",EDPSITE,0)) Q:EDPAREA<1 "RTN","EDPCONV",8,0) S X2=$G(DIZ(2)),X3=$G(DIZ(3)),X5=$G(DIZ(5)) "RTN","EDPCONV",9,0) ; update entry "RTN","EDPCONV",10,0) S:$L(TZDIFF) $P(^EDPB(231.9,EDPAREA,0),U,3)=TZDIFF "RTN","EDPCONV",11,0) S NODE=$G(^EDPB(231.9,EDPAREA,1)) "RTN","EDPCONV",12,0) S X=$P(X5,U,1) S:$L(X) $P(NODE,U,1)=X ;Dx Reqd "RTN","EDPCONV",13,0) S X=$P(X5,U,4) S:$L(X) $P(NODE,U,3)=X ;Disp Reqd "RTN","EDPCONV",14,0) S X=$P(X5,U,5) S:$L(X) $P(NODE,U,4)=X ;Delay Reqd "RTN","EDPCONV",15,0) S X=$P(X5,U,6) S:$L(X) $P(NODE,U,5)=X ;Delay Minutes "RTN","EDPCONV",16,0) S X=$P(X2,U,4) I $L(X) D "RTN","EDPCONV",17,0) . S Y=(+$P(X,":")*60)+$P(X,":",2) ;HH:MM -> minutes since Midnight "RTN","EDPCONV",18,0) . S $P(NODE,U,6)=Y ;First Shift Start "RTN","EDPCONV",19,0) S X=$P(X2,U,5) I X D "RTN","EDPCONV",20,0) . S Y=X*60 ;hours -> minutes "RTN","EDPCONV",21,0) . S $P(NODE,U,7)=Y ;Shift Duration "RTN","EDPCONV",22,0) S ^EDPB(231.9,EDPAREA,1)=NODE "RTN","EDPCONV",23,0) ENC1 ; Color Spec "RTN","EDPCONV",24,0) N CSPEC,N,I,BACK,FONT "RTN","EDPCONV",25,0) S CSPEC(1,0)="",N=1 "RTN","EDPCONV",26,0) S I="STS" F S I=$O(DIZ(I)) Q:I'?1"STS"1.N D "RTN","EDPCONV",27,0) . S NODE=$G(DIZ(I)),FONT=$P(NODE,U,2),BACK=$P(NODE,U,3) "RTN","EDPCONV",28,0) . S X="" "RTN","EDPCONV",30,0) . E S X=X_"1,"_$$CLR(BACK)_","_$$CLR(FONT)_""" val="""_Y_""" />" "RTN","EDPCONV",31,0) . S N=N+1,CSPEC(N,0)=X "RTN","EDPCONV",32,0) S I="ACU" F S I=$O(DIZ(I)) Q:I'?1"ACU"1.N D "RTN","EDPCONV",33,0) . S NODE=$G(DIZ(I)),FONT=$$CLR($P(NODE,U,3)),BACK=$$CLR($P(NODE,U,4)) "RTN","EDPCONV",34,0) . S X="" "RTN","EDPCONV",36,0) . E S X=X_"1,"_BACK_","_FONT_""" val="""_Y_""" />" "RTN","EDPCONV",37,0) . S N=N+1,CSPEC(N,0)=X "RTN","EDPCONV",38,0) S N=N+1,CSPEC(N,0)="" "RTN","EDPCONV",39,0) F I=1:1 S X=$P($T(ORDCLR+I),";",3) Q:X="ZZZZ" S N=N+1,CSPEC(N,0)=X "RTN","EDPCONV",40,0) S CSPEC(0)="^^"_N_U_N_U_DT "RTN","EDPCONV",41,0) K ^EDPB(231.9,EDPAREA,3) M ^(3)=CSPEC "RTN","EDPCONV",42,0) Q "RTN","EDPCONV",43,0) ; "RTN","EDPCONV",44,0) AREA(STA) ; -- Return #231.9 ien for STAtion number "RTN","EDPCONV",45,0) Q +$O(^EDPB(231.9,"C",STA,0)) "RTN","EDPCONV",46,0) ; "RTN","EDPCONV",47,0) EN1(DIZ) ; -- Save the local DIZ(node) ER visit entry into ^EDP(230) "RTN","EDPCONV",48,0) N X,I,EDPY,EDPSITE,EDPDIFF,EDPAREA,EDPLOG,EDPI,PNM,SSN "RTN","EDPCONV",49,0) S EDPSITE=$G(DIZ("SITE")),X=$G(DIZ("TZ")),EDPDIFF=0 ;$$TZONE(X) "RTN","EDPCONV",50,0) S EDPAREA=$$AREA(EDPSITE) Q:EDPAREA<1 "RTN","EDPCONV",51,0) F I=0,1,2,3,4,6,9 S DIZ(I)=$G(DIZ(I)) ;defined "RTN","EDPCONV",52,0) S X=$P(DIZ(0),U,5),EDPY=$$NEW(230,X) Q:EDPY<1 "RTN","EDPCONV",53,0) S PNM=$P(DIZ(0),U),SSN=$P(DIZ(0),U,3) ;patient name, ssn "RTN","EDPCONV",54,0) S EDPLOG(0)=X_U_EDPSITE_U_EDPAREA_U_PNM_U_SSN_U_$P(DIZ(6),U,2)_U_$G(DIZ("CLOSED"))_U_$P(DIZ(4),U,4,5)_U_$$ARR($P(DIZ(0),U,6))_U_$$PID(PNM,SSN) ;_U_EDPDIFF "RTN","EDPCONV",55,0) S X=$P(DIZ(9),U,3) S:'X X=$P(DIZ(6),U,3) ;disposition "RTN","EDPCONV",56,0) S EDPLOG(1)=$P(DIZ(1),U)_U_$$DISP(X)_U_$P(DIZ(9),U,2)_U_$P(DIZ(9),U)_U_$$DEL($P(DIZ(4),U,7)) "RTN","EDPCONV",57,0) S X=$P(DIZ(2),U) S:$L(X) EDPLOG(2)=X "RTN","EDPCONV",58,0) S EDPLOG(3)=U_$$STS($P(DIZ(0),U,4))_U_$$ACU($P(DIZ(4),U,3))_U_$$LOC($P(DIZ(3),U,2))_U_$P(DIZ(4),U)_U_$P(DIZ(4),U,2)_U_$P(DIZ(4),U,6)_U_$P(DIZ(6),U) "RTN","EDPCONV",59,0) I $D(DIZ(8)) M EDPLOG(4)=DIZ(8) S EDPLOG(8,0)="^230.04A^"_DIZ(8)_U_DIZ(8) "RTN","EDPCONV",60,0) ; Save/Xref log entry "RTN","EDPCONV",61,0) M ^EDP(230,EDPY)=EDPLOG "RTN","EDPCONV",62,0) D XREF(230,EDPY) "RTN","EDPCONV",63,0) ; Set History from Movement nodes "RTN","EDPCONV",64,0) S EDPI="MVT" F S EDPI=$O(DIZ(EDPI)) Q:EDPI'?1"MVT"1.N D HIST(EDPI,EDPY) "RTN","EDPCONV",65,0) Q "RTN","EDPCONV",66,0) ; "RTN","EDPCONV",67,0) HIST(MVTI,LOG) ; -- Save the DIZ(MVTI) into ^EDP(230.1) "RTN","EDPCONV",68,0) N EDPY,MVT,ACT "RTN","EDPCONV",69,0) S EDPY=$$NEW(230.1,LOG) Q:EDPY<1 "RTN","EDPCONV",70,0) S MVT=DIZ(MVTI) "RTN","EDPCONV",71,0) S ACT(0)=LOG_U_$P(MVT,U,2)_U_U_$P($G(^EDP(230,LOG,0)),U,4,6) "RTN","EDPCONV",72,0) S ACT(3)=U_$$STS($P(MVT,U,3))_U_$$ACU($P(MVT,U,4))_U_$$LOC($P(MVT,U,5))_U_$P(MVT,U,6,8) "RTN","EDPCONV",73,0) ; Save/Xref history "RTN","EDPCONV",74,0) M ^EDP(230.1,EDPY)=ACT "RTN","EDPCONV",75,0) D XREF(230.1,EDPY) "RTN","EDPCONV",76,0) Q "RTN","EDPCONV",77,0) ; "RTN","EDPCONV",78,0) NEW(FILE,X) ; -- Return ien of new entry in FILE "RTN","EDPCONV",79,0) N DO,DIC,DA,Y "RTN","EDPCONV",80,0) S DIC="^EDP("_FILE_",",DIC(0)="LF" D FILE^DICN "RTN","EDPCONV",81,0) Q +Y "RTN","EDPCONV",82,0) ; "RTN","EDPCONV",83,0) XREF(FILE,DA) ; -- Set all xrefs for DA in FILE "RTN","EDPCONV",84,0) N DIK "RTN","EDPCONV",85,0) S DIK="^EDP("_FILE_"," D IX1^DIK "RTN","EDPCONV",86,0) Q "RTN","EDPCONV",87,0) ; "RTN","EDPCONV",88,0) PID(NM,ID) ; -- Return brief id (L0000) for patient "RTN","EDPCONV",89,0) N Y S Y=$E(NM)_$E(ID,6,9) "RTN","EDPCONV",90,0) Q Y "RTN","EDPCONV",91,0) ; "RTN","EDPCONV",92,0) TZONE(X) ; -- Return #minutes local offset for time zone "RTN","EDPCONV",93,0) N Y S Y=$E(X)_(60*$E(X,2,3)+$E(X,4,5)) "RTN","EDPCONV",94,0) Q Y "RTN","EDPCONV",95,0) ; "RTN","EDPCONV",96,0) ACU(X) ; -- Return[/add] #233.1 ien for Acuity X "RTN","EDPCONV",97,0) I $G(X)="" Q "" "RTN","EDPCONV",98,0) N Y,NODE S NODE=$G(DIZ("ACU"_+X)),X=$P(NODE,U,2) "RTN","EDPCONV",99,0) S Y=+$O(^EDPB(233.1,"AB","acuity",X,0)) Q:Y Y "RTN","EDPCONV",100,0) ; add local item "RTN","EDPCONV",101,0) N FDA,FDAIEN,DIERR,ERR,NM "RTN","EDPCONV",102,0) S NM=$P(NODE,U),NM=$S(NM["-":$P(NM,"-",2),1:NM) "RTN","EDPCONV",103,0) S FDA(233.1,"+1,",.01)=EDPSITE_".acuity."_$$LOW^XLFSTR(NM) "RTN","EDPCONV",104,0) S FDA(233.1,"+1,",.02)=X "RTN","EDPCONV",105,0) S FDA(233.1,"+1,",.03)=X "RTN","EDPCONV",106,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPCONV",107,0) S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"") "RTN","EDPCONV",108,0) Q Y "RTN","EDPCONV",109,0) ; "RTN","EDPCONV",110,0) STS(X) ; -- Return[/add] #233.1 ien for Status X "RTN","EDPCONV",111,0) I $G(X)="" Q "" "RTN","EDPCONV",112,0) N Y,NODE S NODE=$G(DIZ("STS"_+X)) "RTN","EDPCONV",113,0) S X=$P(NODE,U,1),Y=+$O(^EDPB(233.1,"AC","status",X,0)) Q:Y Y "RTN","EDPCONV",114,0) S X=$P(NODE,U,4),Y=+$O(^EDPB(233.1,"AB","status",X,0)) Q:Y Y "RTN","EDPCONV",115,0) ; add local item "RTN","EDPCONV",116,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPCONV",117,0) S FDA(233.1,"+1,",.01)=EDPSITE_".status."_$$LOW^XLFSTR(X) "RTN","EDPCONV",118,0) S FDA(233.1,"+1,",.02)=$P(NODE,U) ;text "RTN","EDPCONV",119,0) S FDA(233.1,"+1,",.03)=X ;display/abbreviation "RTN","EDPCONV",120,0) S:$P(NODE,U,6)="Y" FDA(233.1,"+1,",.05)="A" ;admission flag "RTN","EDPCONV",121,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPCONV",122,0) S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"") "RTN","EDPCONV",123,0) Q Y "RTN","EDPCONV",124,0) ; "RTN","EDPCONV",125,0) DEL(X) ; -- Return[/add] #233.1 ien for Delay Reason X "RTN","EDPCONV",126,0) I $G(X)="" Q "" "RTN","EDPCONV",127,0) N Y,NODE S NODE=$G(DIZ("DEL"_+X)) "RTN","EDPCONV",128,0) S X=$P(NODE,U,1),Y=+$O(^EDPB(233.1,"AC","delay",X,0)) Q:Y Y "RTN","EDPCONV",129,0) S X=$P(NODE,U,3),Y=+$O(^EDPB(233.1,"AB","delay",X,0)) Q:Y Y "RTN","EDPCONV",130,0) ; add local item "RTN","EDPCONV",131,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPCONV",132,0) S FDA(233.1,"+1,",.01)=EDPSITE_".delay."_$$LOW^XLFSTR(X) "RTN","EDPCONV",133,0) S FDA(233.1,"+1,",.02)=$P(NODE,U) ;name "RTN","EDPCONV",134,0) S FDA(233.1,"+1,",.03)=$P(NODE,U,3) ;abbreviation "RTN","EDPCONV",135,0) S FDA(233.1,"+1,",.05)=$P(NODE,U,5) ;report flag "RTN","EDPCONV",136,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPCONV",137,0) S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"") "RTN","EDPCONV",138,0) Q Y "RTN","EDPCONV",139,0) ; "RTN","EDPCONV",140,0) ARR(X) ; -- Return[/add] #233.1 ien for Arrival Mode X "RTN","EDPCONV",141,0) I $G(X)="" Q "" "RTN","EDPCONV",142,0) N Y,NODE S NODE=$G(DIZ("ARR"_+X)),X=$P($P(NODE,U)," ") "RTN","EDPCONV",143,0) S Y=+$O(^EDPB(233.1,"AC","source",X,0)) Q:Y Y "RTN","EDPCONV",144,0) ; add local item "RTN","EDPCONV",145,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPCONV",146,0) S FDA(233.1,"+1,",.01)=EDPSITE_".source."_$$LOW^XLFSTR(X) "RTN","EDPCONV",147,0) S FDA(233.1,"+1,",.02)=X "RTN","EDPCONV",148,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPCONV",149,0) S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"") "RTN","EDPCONV",150,0) Q Y "RTN","EDPCONV",151,0) ; "RTN","EDPCONV",152,0) DISP(X) ; -- Return[/add] #233.1 ien for Disposition code X "RTN","EDPCONV",153,0) I $G(X)="" Q "" "RTN","EDPCONV",154,0) N Y,NODE "RTN","EDPCONV",155,0) S NODE=$G(DIZ("DIS"_X)),Y="" Q:NODE="" "" "RTN","EDPCONV",156,0) S:X X=$P(NODE,U,5) ;ien -> abbreviation "RTN","EDPCONV",157,0) I $L(X) S Y=+$O(^EDPB(233.1,"AB","disposition",X,0)) Q:Y Y "RTN","EDPCONV",158,0) E S X=$P(NODE,U) S:$L(X) Y=+$O(^EDPB(233.1,"AC","disposition",X,0)) Q:Y Y "RTN","EDPCONV",159,0) ; add local item "RTN","EDPCONV",160,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPCONV",161,0) S X=$P($P(NODE,U)," ") ;1st word, for name "RTN","EDPCONV",162,0) S FDA(233.1,"+1,",.01)=EDPSITE_".disposition."_$$LOW^XLFSTR(X) "RTN","EDPCONV",163,0) S FDA(233.1,"+1,",.02)=$P(NODE,U) ;Display Name "RTN","EDPCONV",164,0) S FDA(233.1,"+1,",.03)=$P(NODE,U,5) ;Abbreviation "RTN","EDPCONV",165,0) S:$P(NODE,U,7) FDA(233.1,"+1,",.05)="M" ;Missed Opportunity "RTN","EDPCONV",166,0) S:$P(NODE,U,6) FDA(233.1,"+1,",.05)="A" ;Admission "RTN","EDPCONV",167,0) S:$P(NODE,U,8) FDA(233.1,"+1,",.05)="VA" ;VA Admission "RTN","EDPCONV",168,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPCONV",169,0) S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"") "RTN","EDPCONV",170,0) Q Y "RTN","EDPCONV",171,0) ; "RTN","EDPCONV",172,0) LOC(X) ; -- Return[/add] #231.8 ien for Location X "RTN","EDPCONV",173,0) I $G(X)="" Q "" "RTN","EDPCONV",174,0) N Y,NODE S NODE=$G(DIZ("LOC"_+X)),X=$P(NODE,U,2) "RTN","EDPCONV",175,0) S Y=+$O(^EDPB(231.8,"AC",EDPSITE,EDPAREA,X,0)) Q:Y Y "RTN","EDPCONV",176,0) ; add local item "RTN","EDPCONV",177,0) N FDA,FDAIEN,DIERR,ERR,X "RTN","EDPCONV",178,0) S FDA(231.8,"+1,",.01)=$TR($P(NODE,U),"-") ;Name "RTN","EDPCONV",179,0) S FDA(231.8,"+1,",.02)=EDPSITE ;Station# "RTN","EDPCONV",180,0) S FDA(231.8,"+1,",.03)=EDPAREA ;Area ien "RTN","EDPCONV",181,0) S FDA(231.8,"+1,",.04)='$P(NODE,U,4) ;Inactive "RTN","EDPCONV",182,0) S FDA(231.8,"+1,",.05)=$P(NODE,U,6) ;Sequence "RTN","EDPCONV",183,0) S FDA(231.8,"+1,",.06)=$P(NODE,U,2) ;Display Name "RTN","EDPCONV",184,0) S X=$P(NODE,U,7),X=$S(X=2:0,X=0:2,1:1) "RTN","EDPCONV",185,0) S FDA(231.8,"+1,",.07)=X ;Display When "RTN","EDPCONV",186,0) S FDA(231.8,"+1,",.08)=$$STS($P(NODE,U,8)) ;Default Status ien "RTN","EDPCONV",187,0) S FDA(231.8,"+1,",.1)=$P(NODE,U,9) ;Shared Name [Room] "RTN","EDPCONV",188,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPCONV",189,0) S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"") "RTN","EDPCONV",190,0) LCQ ;exit "RTN","EDPCONV",191,0) Q Y "RTN","EDPCONV",192,0) ; "RTN","EDPCONV",193,0) STAFF(X,ROLE) ; -- Return[/add] Staff ien for local user X "RTN","EDPCONV",194,0) I $G(X)="" Q "" "RTN","EDPCONV",195,0) N Y S Y=+$O(^EDPB(231.7,"AD",EDPSITE,EDPAREA,+X,0)) G:Y SQ "RTN","EDPCONV",196,0) ; add local user "RTN","EDPCONV",197,0) N FDA,FDAIEN,DIERR,ERR,NODE "RTN","EDPCONV",198,0) S NODE=$G(DIZ("PER"_+X)) "RTN","EDPCONV",199,0) S FDA(231.7,"+1,",.01)=$P(NODE,U) ;name "RTN","EDPCONV",200,0) S FDA(231.7,"+1,",.02)=EDPSITE "RTN","EDPCONV",201,0) S FDA(231.7,"+1,",.03)=EDPAREA "RTN","EDPCONV",202,0) S FDA(231.7,"+1,",.04)=0 ;inactive "RTN","EDPCONV",203,0) S FDA(231.7,"+1,",.05)=+X ;local ID "RTN","EDPCONV",204,0) S FDA(231.7,"+1,",.06)=ROLE "RTN","EDPCONV",205,0) S FDA(231.7,"+1,",.07)=$P(NODE,U,2) ;initials "RTN","EDPCONV",206,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPCONV",207,0) S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"") "RTN","EDPCONV",208,0) SQ ;exit "RTN","EDPCONV",209,0) Q Y "RTN","EDPCONV",210,0) ; "RTN","EDPCONV",211,0) CLR(X) ; -- Return code for color X "RTN","EDPCONV",212,0) I X="CLRED" Q "0xff0000" "RTN","EDPCONV",213,0) I X="CLBLUE" Q "0x0000ff" "RTN","EDPCONV",214,0) I X="CLGREEN" Q "0x00ff00" "RTN","EDPCONV",215,0) I X="CLYELLOW" Q "0xffff00" "RTN","EDPCONV",216,0) I X="CLWHITE" Q "0xffffff" "RTN","EDPCONV",217,0) I X="CLBLACK" Q "0x000000" "RTN","EDPCONV",218,0) I X="CLNAVY" Q "0x000088" "RTN","EDPCONV",219,0) I X="CLFUCHSIA" Q "0xff00ff" "RTN","EDPCONV",220,0) I X="CLMONEYGREEN" Q "0xc0dcc0" "RTN","EDPCONV",221,0) I X="CLSKYBLUE" Q "0xa6caf0" "RTN","EDPCONV",222,0) I X="CLCREAM" Q "0xfffbf0" "RTN","EDPCONV",223,0) I X="CLMAROON" Q "0x880000" "RTN","EDPCONV",224,0) I X="CLTEAL" Q "0x008888" "RTN","EDPCONV",225,0) I X="CLOLIVE" Q "0x888800" "RTN","EDPCONV",226,0) Q "" "RTN","EDPCONV",227,0) ; "RTN","EDPCONV",228,0) ORDCLR ; -- default color scheme for order urgencies "RTN","EDPCONV",229,0) ;; "RTN","EDPCONV",230,0) ;; "RTN","EDPCONV",231,0) ;; "RTN","EDPCONV",232,0) ;; "RTN","EDPCONV",233,0) ;; "RTN","EDPCONV",234,0) ;; "RTN","EDPCONV",235,0) ;; "RTN","EDPCONV",236,0) ;; "RTN","EDPCONV",237,0) ;; "RTN","EDPCONV",238,0) ;; "RTN","EDPCONV",239,0) ;;ZZZZ "RTN","EDPCONV",240,0) Q "RTN","EDPCSV") 0^48^B959295 "RTN","EDPCSV",1,0) EDPCSV ;SLC/MKB - CSV format utilities "RTN","EDPCSV",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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) ; "RTN","EDPCSV",11,0) ;D SET^EDPZCTRL ; set up the environment, use null device "RTN","EDPCSV",12,0) ; "RTN","EDPCSV",13,0) D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"),1) "RTN","EDPCSV",14,0) ; "RTN","EDPCSV",15,0) U EDPHTTP "RTN","EDPCSV",16,0) ;W "",! "RTN","EDPCSV",17,0) S I=0 F S I=$O(EDPCSV(I)) Q:'I W EDPCSV(I),! "RTN","EDPCSV",18,0) ;W "",! "RTN","EDPCSV",19,0) Q "RTN","EDPCSV",20,0) ; "RTN","EDPCSV",21,0) VAL(X) ; return value from request "RTN","EDPCSV",22,0) Q $G(REQ(X,1)) "RTN","EDPCSV",23,0) ; "RTN","EDPCSV",24,0) ADD(X) ; -- add line X "RTN","EDPCSV",25,0) S EDPCSV=+$G(EDPCSV)+1,EDPCSV(EDPCSV)=X "RTN","EDPCSV",26,0) Q "RTN","EDPCSV",27,0) ; "RTN","EDPCSV",28,0) BLANK ; -- add blank line "RTN","EDPCSV",29,0) S EDPCSV=+$G(EDPCSV)+1,EDPCSV(EDPCSV)="" "RTN","EDPCSV",30,0) Q "RTN","EDPCTRL") 0^34^B29824391 "RTN","EDPCTRL",1,0) EDPCTRL ;SLC/KCM - Controller for ED Tracking "RTN","EDPCTRL",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPCTRL",3,0) ; "RTN","EDPCTRL",4,0) RPC(EDPXML,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=DUZ,EDPSITE=$$STA^XUAF4(DUZ(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 "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 "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) ; getPatientChecks "RTN","EDPCTRL",35,0) ; return "RTN","EDPCTRL",36,0) ; "RTN","EDPCTRL",37,0) ; "RTN","EDPCTRL",38,0) ; ... "RTN","EDPCTRL",39,0) I CMD="getPatientChecks" D G OUT "RTN","EDPCTRL",40,0) . D CHK^EDPFPTC($$VAL("area"),$$VAL("patient"),$$VAL("name")) "RTN","EDPCTRL",41,0) ; "RTN","EDPCTRL",42,0) ; --------------------------------- "RTN","EDPCTRL",43,0) ; "RTN","EDPCTRL",44,0) ; saveSecurityLog "RTN","EDPCTRL",45,0) ; return "RTN","EDPCTRL",46,0) I CMD="saveSecurityLog" D G OUT "RTN","EDPCTRL",47,0) . D LOG^EDPFPTC($$VAL("patient")) "RTN","EDPCTRL",48,0) ; "RTN","EDPCTRL",49,0) ; --------------------------------- "RTN","EDPCTRL",50,0) ; "RTN","EDPCTRL",51,0) ; getLexiconMatches "RTN","EDPCTRL",52,0) ; return ... "RTN","EDPCTRL",53,0) I CMD="getLexiconMatches" D G OUT "RTN","EDPCTRL",54,0) . D ICD^EDPFLEX($$VAL("text")) "RTN","EDPCTRL",55,0) ; "RTN","EDPCTRL",56,0) ; --------------------------------- "RTN","EDPCTRL",57,0) ; "RTN","EDPCTRL",58,0) ; initLogArea "RTN","EDPCTRL",59,0) ; return "RTN","EDPCTRL",60,0) ; "RTN","EDPCTRL",61,0) ; ... "RTN","EDPCTRL",62,0) I CMD="initLogArea" D G OUT "RTN","EDPCTRL",63,0) . I $L($$VAL("logEntry")) D UPD^EDPLOG($$VAL("logEntry")) Q:$G(EDPFAIL) "RTN","EDPCTRL",64,0) . D PARAM^EDPQAR($$VAL("area")) "RTN","EDPCTRL",65,0) . D GET^EDPQLP($$VAL("area"),-1) ;-1 = force refresh "RTN","EDPCTRL",66,0) ; "RTN","EDPCTRL",67,0) ; --------------------------------- "RTN","EDPCTRL",68,0) ; "RTN","EDPCTRL",69,0) ; checkLogin -- OBSOLETE "RTN","EDPCTRL",70,0) ; return "RTN","EDPCTRL",71,0) I CMD="checkLogin" D SESS^EDPFAA G OUT "RTN","EDPCTRL",72,0) ; "RTN","EDPCTRL",73,0) ; --------------------------------- "RTN","EDPCTRL",74,0) ; "RTN","EDPCTRL",75,0) ; refreshLogSelector "RTN","EDPCTRL",76,0) ; return ... "RTN","EDPCTRL",77,0) I CMD="refreshLogSelector" D G OUT "RTN","EDPCTRL",78,0) . D GET^EDPQLP($$VAL("area"),$$VAL("token")) "RTN","EDPCTRL",79,0) ; "RTN","EDPCTRL",80,0) ; --------------------------------- "RTN","EDPCTRL",81,0) ; "RTN","EDPCTRL",82,0) ; switchLogEntry "RTN","EDPCTRL",83,0) ; return "RTN","EDPCTRL",84,0) ; log fields... "RTN","EDPCTRL",85,0) ; choice lists... "RTN","EDPCTRL",86,0) I CMD="switchLogEntry" D G OUT "RTN","EDPCTRL",87,0) . I $L($$VAL("logEntry")) D UPD^EDPLOG($$VAL("logEntry")) Q:$G(EDPFAIL) "RTN","EDPCTRL",88,0) . D GET^EDPQLE($$VAL("logID"),$$VAL("getChoices")) "RTN","EDPCTRL",89,0) ; "RTN","EDPCTRL",90,0) ; --------------------------------- "RTN","EDPCTRL",91,0) ; "RTN","EDPCTRL",92,0) ; saveLogEntry "RTN","EDPCTRL",93,0) ; return "RTN","EDPCTRL",94,0) I CMD="saveLogEntry" D G OUT "RTN","EDPCTRL",95,0) . D UPD^EDPLOG($$VAL("logEntry")) Q:$G(EDPFAIL) "RTN","EDPCTRL",96,0) ; "RTN","EDPCTRL",97,0) ; --------------------------------- "RTN","EDPCTRL",98,0) ; "RTN","EDPCTRL",99,0) ; addPatientToLog "RTN","EDPCTRL",100,0) ; return "RTN","EDPCTRL",101,0) ; "RTN","EDPCTRL",102,0) ; log fields... "RTN","EDPCTRL",103,0) ; choice lists... "RTN","EDPCTRL",104,0) ; ... "RTN","EDPCTRL",105,0) I CMD="addPatientToLog" D G OUT "RTN","EDPCTRL",106,0) . D ADD^EDPLOGA($$VAL("addPatient"),$$VAL("area"),$$VAL("localTime"),$$VAL("getChoices")) "RTN","EDPCTRL",107,0) . Q:$G(EDPFAIL) "RTN","EDPCTRL",108,0) . D GET^EDPQLP($$VAL("area"),-1) "RTN","EDPCTRL",109,0) ; "RTN","EDPCTRL",110,0) ; --------------------------------- "RTN","EDPCTRL",111,0) ; "RTN","EDPCTRL",112,0) ; deleteStubEntry "RTN","EDPCTRL",113,0) ; return "RTN","EDPCTRL",114,0) I CMD="deleteStubEntry" D G OUT "RTN","EDPCTRL",115,0) . D DEL^EDPLOGA($$VAL("area"),$$VAL("logID")) "RTN","EDPCTRL",116,0) ; "RTN","EDPCTRL",117,0) ; --------------------------------- "RTN","EDPCTRL",118,0) ; "RTN","EDPCTRL",119,0) ; removeLogEntry "RTN","EDPCTRL",120,0) ; return "RTN","EDPCTRL",121,0) ; ... "RTN","EDPCTRL",122,0) I CMD="removeLogEntry" D G OUT "RTN","EDPCTRL",123,0) . D UPD^EDPLOG($$VAL("logEntry"),1) Q:$G(EDPFAIL) "RTN","EDPCTRL",124,0) . D GET^EDPQLP($$VAL("area"),-1) "RTN","EDPCTRL",125,0) ; "RTN","EDPCTRL",126,0) ; --------------------------------- "RTN","EDPCTRL",127,0) ; "RTN","EDPCTRL",128,0) ; matchClosed "RTN","EDPCTRL",129,0) ; return ... "RTN","EDPCTRL",130,0) I CMD="matchClosed" D G OUT "RTN","EDPCTRL",131,0) . D CLOSED^EDPQLP($$VAL("area"),$$VAL("partial")) "RTN","EDPCTRL",132,0) ; "RTN","EDPCTRL",133,0) ; --------------------------------- "RTN","EDPCTRL",134,0) ; "RTN","EDPCTRL",135,0) ; loadConfiguration "RTN","EDPCTRL",136,0) ; return ... "RTN","EDPCTRL",137,0) ; ...... "RTN","EDPCTRL",138,0) ; ... "RTN","EDPCTRL",139,0) ; ... "RTN","EDPCTRL",140,0) ; ... "RTN","EDPCTRL",141,0) ; ... "RTN","EDPCTRL",142,0) ; ... "RTN","EDPCTRL",143,0) I CMD="loadConfiguration" D G OUT "RTN","EDPCTRL",144,0) . D LOADBRD^EDPBCF($$VAL("area")) "RTN","EDPCTRL",145,0) ; "RTN","EDPCTRL",146,0) ; --------------------------------- "RTN","EDPCTRL",147,0) ; "RTN","EDPCTRL",148,0) ; saveConfigBoard "RTN","EDPCTRL",149,0) ; return "RTN","EDPCTRL",150,0) I CMD="saveConfigBoard" D G OUT "RTN","EDPCTRL",151,0) . D SAVEBRD^EDPBCF(.REQ) ; pass whole request for parsing "RTN","EDPCTRL",152,0) ; "RTN","EDPCTRL",153,0) ; --------------------------------- "RTN","EDPCTRL",154,0) ; "RTN","EDPCTRL",155,0) ; saveBedConfig "RTN","EDPCTRL",156,0) ; return "RTN","EDPCTRL",157,0) I CMD="saveBedConfig" D G OUT "RTN","EDPCTRL",158,0) . D SAVE^EDPBRM(.REQ) ; pass whole request for parsing "RTN","EDPCTRL",159,0) ; "RTN","EDPCTRL",160,0) ; --------------------------------- "RTN","EDPCTRL",161,0) ; "RTN","EDPCTRL",162,0) ; saveColorConfig "RTN","EDPCTRL",163,0) ; return "RTN","EDPCTRL",164,0) I CMD="saveColorConfig" D G OUT "RTN","EDPCTRL",165,0) . D SAVE^EDPBCM(.REQ) ; pass whole request for parsing "RTN","EDPCTRL",166,0) ; "RTN","EDPCTRL",167,0) ; --------------------------------- "RTN","EDPCTRL",168,0) ; "RTN","EDPCTRL",169,0) ; loadSelectionConfig "RTN","EDPCTRL",170,0) ; return ....... "RTN","EDPCTRL",171,0) I CMD="loadSelectionConfig" D G OUT "RTN","EDPCTRL",172,0) . D LOAD^EDPBSL($$VAL("area")) "RTN","EDPCTRL",173,0) ; "RTN","EDPCTRL",174,0) ; --------------------------------- "RTN","EDPCTRL",175,0) ; "RTN","EDPCTRL",176,0) ; loadStaffConfig "RTN","EDPCTRL",177,0) ; return providers, nurses, staff for area "RTN","EDPCTRL",178,0) I CMD="loadStaffConfig" D G OUT "RTN","EDPCTRL",179,0) . D LOAD^EDPBST($$VAL("area")) "RTN","EDPCTRL",180,0) ; "RTN","EDPCTRL",181,0) ; --------------------------------- "RTN","EDPCTRL",182,0) ; "RTN","EDPCTRL",183,0) ; saveStaffConfig "RTN","EDPCTRL",184,0) ; return "RTN","EDPCTRL",185,0) I CMD="saveStaffConfig" D G OUT "RTN","EDPCTRL",186,0) . D SAVE^EDPBST(.REQ) ; pass whole request for parsing "RTN","EDPCTRL",187,0) ; "RTN","EDPCTRL",188,0) ; --------------------------------- "RTN","EDPCTRL",189,0) ; "RTN","EDPCTRL",190,0) ; matchPersons "RTN","EDPCTRL",191,0) ; return ... "RTN","EDPCTRL",192,0) I CMD="matchPersons" D G OUT "RTN","EDPCTRL",193,0) . D MATCH^EDPFPER($$VAL("partial"),$$VAL("personType")) "RTN","EDPCTRL",194,0) ; "RTN","EDPCTRL",195,0) ; --------------------------------- "RTN","EDPCTRL",196,0) ; "RTN","EDPCTRL",197,0) ; saveParamConfig "RTN","EDPCTRL",198,0) ; return "RTN","EDPCTRL",199,0) I CMD="saveParamConfig" D G OUT "RTN","EDPCTRL",200,0) . D SAVE^EDPBPM($$VAL("area"),$$VAL("param")) "RTN","EDPCTRL",201,0) ; "RTN","EDPCTRL",202,0) ; --------------------------------- "RTN","EDPCTRL",203,0) ; "RTN","EDPCTRL",204,0) ; saveSelectionConfig "RTN","EDPCTRL",205,0) ; return "RTN","EDPCTRL",206,0) I CMD="saveSelectionConfig" D G OUT "RTN","EDPCTRL",207,0) . D SAVE^EDPBSL(.REQ) "RTN","EDPCTRL",208,0) ; "RTN","EDPCTRL",209,0) ; --------------------------------- "RTN","EDPCTRL",210,0) ; "RTN","EDPCTRL",211,0) ; getReport "RTN","EDPCTRL",212,0) ; return ... "RTN","EDPCTRL",213,0) ; "RTN","EDPCTRL",214,0) ; ... "RTN","EDPCTRL",215,0) I CMD="getReport" D G OUT "RTN","EDPCTRL",216,0) . D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id")) "RTN","EDPCTRL",217,0) ; "RTN","EDPCTRL",218,0) ; --------------------------------- "RTN","EDPCTRL",219,0) ; "RTN","EDPCTRL",220,0) ; getCSV "RTN","EDPCTRL",221,0) ; return TAB separated values for report "RTN","EDPCTRL",222,0) I CMD="getCSV" D G OUT "RTN","EDPCTRL",223,0) . N EDPCSV ; CSV mode uses EDPCSV instead of EDPXML "RTN","EDPCTRL",224,0) . D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"),1) "RTN","EDPCTRL",225,0) . M EDPXML=EDPCSV "RTN","EDPCTRL",226,0) ; "RTN","EDPCTRL",227,0) ; --------------------------------- "RTN","EDPCTRL",228,0) ; else "RTN","EDPCTRL",229,0) D XML^EDPX("") "RTN","EDPCTRL",230,0) ; end switch "RTN","EDPCTRL",231,0) ; "RTN","EDPCTRL",232,0) OUT ; output the XML "RTN","EDPCTRL",233,0) I $L($G(EDPHTTP)) D ; if in CSP mode "RTN","EDPCTRL",234,0) . U EDPHTTP "RTN","EDPCTRL",235,0) . W "",! "RTN","EDPCTRL",236,0) . N I S I=0 F S I=$O(EDPXML(I)) Q:'I W EDPXML(I),! "RTN","EDPCTRL",237,0) . W "",! "RTN","EDPCTRL",238,0) END Q "RTN","EDPCTRL",239,0) ; "RTN","EDPCTRL",240,0) VAL(X) ; return value from request "RTN","EDPCTRL",241,0) Q $G(REQ(X,1)) "RTN","EDPDD") 0^35^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 26 "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","EDPFAA") 0^1^B4736966 "RTN","EDPFAA",1,0) EDPFAA ;SLC/KCM - RPC Calls to Facility "RTN","EDPFAA",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPFAA",3,0) ; "RTN","EDPFAA",4,0) SESS ; set up session "RTN","EDPFAA",5,0) N X "RTN","EDPFAA",6,0) S X("duz")=DUZ "RTN","EDPFAA",7,0) S X("userNm")=$P($G(^VA(200,DUZ,0)),U) "RTN","EDPFAA",8,0) S X("site")=DUZ(2) "RTN","EDPFAA",9,0) S X("siteNm")=$$NAME^XUAF4(X("site")) "RTN","EDPFAA",10,0) S X("station")=$$STA^XUAF4(DUZ(2)) "RTN","EDPFAA",11,0) S X("time")=$$NOW^XLFDT "RTN","EDPFAA",12,0) S X("rptExport")=($D(^XUSEC("EDPR EXPORT",DUZ))>0) "RTN","EDPFAA",13,0) S X("rptProvider")=($D(^XUSEC("EDPR PROVIDER",DUZ))>0) "RTN","EDPFAA",14,0) S X("rptXRef")=($D(^XUSEC("EDPR XREF",DUZ))>0) "RTN","EDPFAA",15,0) S X("progMode")=($D(^XUSEC("XUPROGMODE",DUZ))>0) "RTN","EDPFAA",16,0) ; "RTN","EDPFAA",17,0) S X("timeOut")=$$GET^XPAR("USR^SYS","ORWOR TIMEOUT CHART",1,"I") "RTN","EDPFAA",18,0) S:'X("timeOut") X("timeOut")=$$DTIME^XUP(DUZ) "RTN","EDPFAA",19,0) S:'X("timeOut") X("timeOut")=300 "RTN","EDPFAA",20,0) S X("timeOut")=X("timeOut")*1000 ; milliseconds "RTN","EDPFAA",21,0) S X("countDown")=$$GET^XPAR("USR^SYS^PKG","ORWOR TIMEOUT COUNTDOWN",1,"I") "RTN","EDPFAA",22,0) S:'X("countDown") X("countDown")=10 "RTN","EDPFAA",23,0) S X("countDown")=X("countDown")*1000 ; milliseconds "RTN","EDPFAA",24,0) D XML^EDPX($$XMLA^EDPX("user",.X)) "RTN","EDPFAA",25,0) Q "RTN","EDPFAA",26,0) ; "RTN","EDPFAA",27,0) VIEWS ; Return views allowed for this user "RTN","EDPFAA",28,0) N I,X,ID "RTN","EDPFAA",29,0) F I=1:1 S X=$P($T(OPTIONS+I),";",3,99) Q:X="zzzzz" D "RTN","EDPFAA",30,0) . I $$ACCESS^XQCHK(DUZ,$P(X,U)) D "RTN","EDPFAA",31,0) . . D XML^EDPX($$XMLS^EDPX("view",$P(X,U,3),$P(X,U,2))) "RTN","EDPFAA",32,0) Q "RTN","EDPFAA",33,0) OPTIONS ;; options visible in Tracking System "RTN","EDPFAA",34,0) ;;EDPF TRACKING VIEW SIGNIN^Sign In^1 "RTN","EDPFAA",35,0) ;;EDPF TRACKING VIEW TRIAGE^Triage^2 "RTN","EDPFAA",36,0) ;;EDPF TRACKING VIEW UPDATE^Update^3 "RTN","EDPFAA",37,0) ;;EDPF TRACKING VIEW DISPOSITION^Disposition^4 "RTN","EDPFAA",38,0) ;;EDPF TRACKING VIEW EDIT CLOSED^Edit Closed^5 "RTN","EDPFAA",39,0) ;;EDPF TRACKING VIEW BOARD^Display Board^6 "RTN","EDPFAA",40,0) ;;EDPF TRACKING VIEW STAFF^Assign Staff^7 "RTN","EDPFAA",41,0) ;;EDPF TRACKING VIEW REPORTS^Reports^8 "RTN","EDPFAA",42,0) ;;EDPF TRACKING VIEW CONFIGURE^Configure^9 "RTN","EDPFAA",43,0) ;;zzzzz "RTN","EDPFLEX") 0^2^B1745474 "RTN","EDPFLEX",1,0) EDPFLEX ;SLC/KCM - Lexicon Utilities "RTN","EDPFLEX",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPFLEX",3,0) ; "RTN","EDPFLEX",4,0) ICD(TEXT) ; Return Lexicon hits for TEXT "RTN","EDPFLEX",5,0) N LEX,X,Y,I,ICD,CPT,NAME,IEN "RTN","EDPFLEX",6,0) ;D CONFIG^LEXSET("GMPL","PL1",DT) "RTN","EDPFLEX",7,0) ;D LOOK^LEXA(TEXT,"GMPL",999,"",DT) "RTN","EDPFLEX",8,0) ; (just do diagnoses until we figure out CPT modifiers) "RTN","EDPFLEX",9,0) D CONFIG^LEXSET("ICD","ICD",DT) "RTN","EDPFLEX",10,0) D LOOK^LEXA(TEXT,"ICD",999,"",DT) "RTN","EDPFLEX",11,0) D XML^EDPX("") "RTN","EDPFLEX",12,0) S I=0 F S I=$O(LEX("LIST",I)) Q:I<1 D "RTN","EDPFLEX",13,0) . N ITEM "RTN","EDPFLEX",14,0) . S IEN=$P(LEX("LIST",I),U),X=$P(LEX("LIST",I),U,2),CPT="" "RTN","EDPFLEX",15,0) . S ICD=$P($P(X,"ICD-9-CM ",2),")") I $L(ICD) S NAME=X ;$P(X," (ICD-9-CM") "RTN","EDPFLEX",16,0) . E S CPT=$P($P(X,"CPT-4 ",2),")"),NAME=X ;$P(X," (CPT-4") "RTN","EDPFLEX",17,0) . I '$L(ICD),'$L(CPT) Q "RTN","EDPFLEX",18,0) . S:$E(NAME,$L(NAME))="*" NAME=$E(NAME,1,$L(NAME)-2) "RTN","EDPFLEX",19,0) . S ITEM("text")=NAME,ITEM("ien")=IEN "RTN","EDPFLEX",20,0) . I $L(ICD) S ITEM("code")=ICD,ITEM("type")="POV",ITEM("icd")=ICD "RTN","EDPFLEX",21,0) . I $L(CPT) S ITEM("code")=CPT,ITEM("type")="CPT",ITEM("cpt")=CPT "RTN","EDPFLEX",22,0) . S Y=$$XMLA^EDPX("item",.ITEM) D XML^EDPX(Y) "RTN","EDPFLEX",23,0) D XML^EDPX("") "RTN","EDPFLEX",24,0) Q "RTN","EDPFMON") 0^3^B17338011 "RTN","EDPFMON",1,0) EDPFMON ;SLC/MKB - ED Monitor at facility "RTN","EDPFMON",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPFMON",3,0) ; "RTN","EDPFMON",4,0) EN(MSG) ; -- main entry point for EDP MONITOR where MSG contains HL7 msg "RTN","EDPFMON",5,0) N EDMSG,PKG,MSH,PID,PV1,ORC,DFN,LOG "RTN","EDPFMON",6,0) S EDMSG=$S($L($G(MSG)):MSG,1:"MSG"),MSH=0 ;MSG="NAME" or MSG(#) "RTN","EDPFMON",7,0) F S MSH=$O(@EDMSG@(MSH)) Q:MSH'>0 Q:$E(@EDMSG@(MSH),1,3)="MSH" "RTN","EDPFMON",8,0) Q:'MSH ;no message/header "RTN","EDPFMON",9,0) S PKG=$$PKG($P(@EDMSG@(MSH),"|",3)) Q:'$L(PKG) ;unknown or not tracked "RTN","EDPFMON",10,0) S DFN=$$PID Q:DFN<1 ;missing patient "RTN","EDPFMON",11,0) S LOG=+$O(^EDP(230,"APA",DFN,0)) Q:LOG<1 ;not in ED now "RTN","EDPFMON",12,0) S ORC=0 F S ORC=$O(@EDMSG@(+ORC)) Q:ORC'>0 I $E(@EDMSG@(ORC),1,3)="ORC" D "RTN","EDPFMON",13,0) . N ORDCNTRL,ORIFN,STS,RTN "RTN","EDPFMON",14,0) . S ORC=ORC_U_@EDMSG@(ORC),ORDCNTRL=$TR($P(ORC,"|",2),"@","P") "RTN","EDPFMON",15,0) . Q:'$L(ORDCNTRL) "RTN","EDPFMON",16,0) . S ORIFN=$P($P(ORC,"|",3),U),STS=$P(ORC,"|",6) "RTN","EDPFMON",17,0) . S RTN=$S("NW^OK^SN^XR"[ORDCNTRL:"NEW",1:"UPD") "RTN","EDPFMON",18,0) . D @RTN "RTN","EDPFMON",19,0) Q "RTN","EDPFMON",20,0) ; "RTN","EDPFMON",21,0) PKG(NAME) ; -- Returns package code "RTN","EDPFMON",22,0) I NAME="RADIOLOGY"!(NAME="IMAGING") Q "R" "RTN","EDPFMON",23,0) I NAME="LABORATORY" Q "L" "RTN","EDPFMON",24,0) I NAME="PHARMACY" Q "M" "RTN","EDPFMON",25,0) I NAME="CONSULTS" Q "C" "RTN","EDPFMON",26,0) I NAME="PROCEDURES" Q "C" "RTN","EDPFMON",27,0) I NAME="DIETETICS" Q "A" "RTN","EDPFMON",28,0) I NAME="ORDER ENTRY" Q "A" "RTN","EDPFMON",29,0) Q "" "RTN","EDPFMON",30,0) ; "RTN","EDPFMON",31,0) PID() ; -- Returns patient DFN from PID segment in current msg "RTN","EDPFMON",32,0) N I,Y,SEG S I=MSH "RTN","EDPFMON",33,0) F S I=$O(@EDMSG@(I)) Q:I'>0 S SEG=$E(@EDMSG@(I),1,3) Q:SEG="ORC" I SEG="PID" S Y=+$P(@EDMSG@(I),"|",4) Q "RTN","EDPFMON",34,0) Q Y "RTN","EDPFMON",35,0) ; "RTN","EDPFMON",36,0) NEW ; -- add new order to patient log "RTN","EDPFMON",37,0) Q:$$START(ORIFN)>DT ;no future orders "RTN","EDPFMON",38,0) N MSG,URG "RTN","EDPFMON",39,0) S URG=$$VALUE^ORX8(ORIFN,"URGENCY",1,"E") S:'$L(URG) URG="ROUTINE" "RTN","EDPFMON",40,0) S MSG(1)="command=newOrder" "RTN","EDPFMON",41,0) S MSG(2)="id="_LOG "RTN","EDPFMON",42,0) S MSG(3)="orifn="_+ORIFN "RTN","EDPFMON",43,0) S MSG(4)="pkg="_PKG "RTN","EDPFMON",44,0) S MSG(5)="sts="_"N" "RTN","EDPFMON",45,0) S MSG(6)="stat="_(URG="STAT"!(URG="ASAP")) "RTN","EDPFMON",46,0) S MSG(7)="release="_$$NOW^XLFDT "RTN","EDPFMON",47,0) D SEND(.MSG) "RTN","EDPFMON",48,0) Q "RTN","EDPFMON",49,0) ; "RTN","EDPFMON",50,0) START(IFN) ; -- return start date (day only) of order "RTN","EDPFMON",51,0) N X,Y,%DT "RTN","EDPFMON",52,0) S Y=$P($G(^OR(100,IFN,0)),U,8) I Y<1 D "RTN","EDPFMON",53,0) . S X=$$VALUE^ORX8(IFN,"START") "RTN","EDPFMON",54,0) . I '$L(X) S Y=DT Q ;assume NOW "RTN","EDPFMON",55,0) . S %DT="T" D ^%DT S:Y<1 Y="" "RTN","EDPFMON",56,0) S Y=$P(Y,".") "RTN","EDPFMON",57,0) Q Y "RTN","EDPFMON",58,0) ; "RTN","EDPFMON",59,0) UPD ; -- update state of order in log "RTN","EDPFMON",60,0) I ORDCNTRL="RE" D STS("C") Q "RTN","EDPFMON",61,0) I "CA^DC^OC^OD^CR^DR"[ORDCNTRL D DEL Q ;?? "RTN","EDPFMON",62,0) I PKG="L",ORDCNTRL="SC" D STS("A") Q "RTN","EDPFMON",63,0) I PKG="R",ORDCNTRL="SC" D STS("A") Q "RTN","EDPFMON",64,0) I PKG="C","SC^XX"[ORDCNTRL D STS("A") Q "RTN","EDPFMON",65,0) I PKG="M" D Q "RTN","EDPFMON",66,0) . I "RO^XX^ZV"[ORDCNTRL D STS("A") Q "RTN","EDPFMON",67,0) . Q:ORDCNTRL'="SC" Q:'$L(STS) "RTN","EDPFMON",68,0) . I "DC^ZE^RP"[STS D STS("C") Q "RTN","EDPFMON",69,0) . D STS("A") "RTN","EDPFMON",70,0) I PKG="A","SC^XX"[ORDCNTRL D Q "RTN","EDPFMON",71,0) . I "DC^ZE"[STS D STS("C") Q "RTN","EDPFMON",72,0) . D STS("A") "RTN","EDPFMON",73,0) Q "RTN","EDPFMON",74,0) ; "RTN","EDPFMON",75,0) STS(X) ; -- update status "RTN","EDPFMON",76,0) N MSG "RTN","EDPFMON",77,0) S MSG(1)="command=updateOrder" "RTN","EDPFMON",78,0) S MSG(2)="id="_LOG "RTN","EDPFMON",79,0) S MSG(3)="orifn="_+ORIFN "RTN","EDPFMON",80,0) S MSG(4)="sts="_X "RTN","EDPFMON",81,0) D SEND(.MSG) "RTN","EDPFMON",82,0) Q "RTN","EDPFMON",83,0) ; "RTN","EDPFMON",84,0) DEL ; -- remove order "RTN","EDPFMON",85,0) N MSG "RTN","EDPFMON",86,0) S MSG(1)="command=deleteOrder" "RTN","EDPFMON",87,0) S MSG(2)="id="_LOG "RTN","EDPFMON",88,0) S MSG(3)="orifn="_+ORIFN "RTN","EDPFMON",89,0) D SEND(.MSG) "RTN","EDPFMON",90,0) Q "RTN","EDPFMON",91,0) ; "RTN","EDPFMON",92,0) VER(ORIFN) ; -- update status when ORIFN verified "RTN","EDPFMON",93,0) N SITE,DFN,LOG,DA S ORIFN=+$G(ORIFN) "RTN","EDPFMON",94,0) S DFN=+$P($G(^OR(100,ORIFN,0)),U,2) Q:DFN<1 "RTN","EDPFMON",95,0) S LOG=+$O(^EDP(232,"C",DFN,0)) Q:LOG<1 ;not in ED "RTN","EDPFMON",96,0) S LOG=+$P(^EDP(232,LOG,0),U) Q:LOG<1 "RTN","EDPFMON",97,0) N MSG "RTN","EDPFMON",98,0) S MSG(1)="command=verifyOrder" "RTN","EDPFMON",99,0) S MSG(2)="id="_LOG "RTN","EDPFMON",100,0) S MSG(3)="orifn="_ORIFN "RTN","EDPFMON",101,0) D SEND(.MSG) "RTN","EDPFMON",102,0) Q "RTN","EDPFMON",103,0) ; "RTN","EDPFMON",104,0) COMP(ORIFN) ; -- update status when ORIFN completed "RTN","EDPFMON",105,0) N SITE,DFN,LOG,DA S ORIFN=+$G(ORIFN) "RTN","EDPFMON",106,0) S DFN=+$P($G(^OR(100,ORIFN,0)),U,2) Q:DFN<1 "RTN","EDPFMON",107,0) S LOG=+$O(^EDP(232,"C",DFN,0)) Q:LOG<1 ;not in ED "RTN","EDPFMON",108,0) S LOG=+$P(^EDP(232,LOG,0),U) Q:LOG<1 "RTN","EDPFMON",109,0) N MSG "RTN","EDPFMON",110,0) S MSG(1)="command=completeOrder" "RTN","EDPFMON",111,0) S MSG(2)="id="_LOG "RTN","EDPFMON",112,0) S MSG(3)="orifn="_ORIFN "RTN","EDPFMON",113,0) D SEND(.MSG) "RTN","EDPFMON",114,0) Q "RTN","EDPFMON",115,0) ; "RTN","EDPFMON",116,0) ; -- Monitor SDAM APPOINTMENT EVENTS for patients checking-in to ED "RTN","EDPFMON",117,0) ; "RTN","EDPFMON",118,0) SDAM ; -- send bulletin on check-in "RTN","EDPFMON",119,0) Q:$G(SDAMEVT)'=4 ;only looking for check-in events for ED "RTN","EDPFMON",120,0) Q:$P(SDATA,U,4)'=$$GET^XPAR("ALL","EDPF LOCATION") "RTN","EDPFMON",121,0) N DFN,DATE,HLOC "RTN","EDPFMON",122,0) S DFN=+$P(SDATA,U,2),DATE=+$P(SDATA,U,3),HLOC=+$P(SDATA,U,4) "RTN","EDPFMON",123,0) ; your code goes here :) "RTN","EDPFMON",124,0) N MSG "RTN","EDPFMON",125,0) S MSG(1)="command=patientCheckIn" "RTN","EDPFMON",126,0) S MSG(2)="dfn="_DFN "RTN","EDPFMON",127,0) S MSG(3)="ptNm="_$P(^DPT(DFN,0),U) "RTN","EDPFMON",128,0) S MSG(4)="ssn="_$P(^DPT(DFN,0),U,9) "RTN","EDPFMON",129,0) S MSG(5)="hloc="_HLOC "RTN","EDPFMON",130,0) S MSG(6)="site="_$$STA^XUAF4(DUZ(2)) "RTN","EDPFMON",131,0) S MSG(7)="time="_$$NOW^XLFDT "RTN","EDPFMON",132,0) D SEND(.MSG) "RTN","EDPFMON",133,0) Q "RTN","EDPFMON",134,0) ; "RTN","EDPFMON",135,0) SEND(MSG) ; Transfer control to message handler "RTN","EDPFMON",136,0) D MSG^EDPMAIL(.MSG) "RTN","EDPFMON",137,0) Q "RTN","EDPFMOVE") 0^23^B25998709 "RTN","EDPFMOVE",1,0) EDPFMOVE ;SLC/MKB - Move local ED Log entries to nat'l server "RTN","EDPFMOVE",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPFMOVE",3,0) ; "RTN","EDPFMOVE",4,0) EN ; -- Option EDP CONVERT to convert local data "RTN","EDPFMOVE",5,0) I '$D(^DIZ(172006,0)) W !!,"You have no ER data to convert." H 1 Q "RTN","EDPFMOVE",6,0) I $G(^XTMP("EDP-CONV","X"))="DONE" W !!,"All data has been converted." H 1 Q "RTN","EDPFMOVE",7,0) I '$L($$GET^XPAR("ALL","EDPF SERVER",1,"Q")) W !!,"Error - the domain of the national server is missing." H 1 Q "RTN","EDPFMOVE",8,0) ; "RTN","EDPFMOVE",9,0) N X,Y,DIR,DTOUT,DUOUT,DIRUT,DIROUT "RTN","EDPFMOVE",10,0) W !!,"This option will send ER configuration and visit data from your site," "RTN","EDPFMOVE",11,0) W !,"including all divisions, to the EDP national server. Your local" "RTN","EDPFMOVE",12,0) W !,"configuration data will be sent first, followed by all currently active" "RTN","EDPFMOVE",13,0) W !,"patient visits. A task will then be queued to populate previous, closed" "RTN","EDPFMOVE",14,0) W !,"visits on the national server to allow reports to continue to function." "RTN","EDPFMOVE",15,0) W !!,"DO NOT PROCEED UNTIL YOU ARE READY TO USE THE NEW ED PACKAGE!!",! "RTN","EDPFMOVE",16,0) S DIR(0)="YA",DIR("A")="Are you ready? ",DIR("B")="NO" "RTN","EDPFMOVE",17,0) D ^DIR Q:'Y "RTN","EDPFMOVE",18,0) ; "RTN","EDPFMOVE",19,0) E1 ; -- start here "RTN","EDPFMOVE",20,0) N XMMG "RTN","EDPFMOVE",21,0) D CONFIG I $D(XMMG) W !,XMMG Q "RTN","EDPFMOVE",22,0) D ACTIVE I $D(XMMG) W !,XMMG Q "RTN","EDPFMOVE",23,0) ; "RTN","EDPFMOVE",24,0) EQ ; -- task LOOP "RTN","EDPFMOVE",25,0) N ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTUCI,ZTCPU,ZTPRI,ZTSAVE,ZTKIL,ZTSYNC,ZTSK "RTN","EDPFMOVE",26,0) S ZTRTN="LOOP^EDPFMOVE",ZTIO="",ZTDTH=$H "RTN","EDPFMOVE",27,0) S ZTDESC="Convert old ER data to national server" "RTN","EDPFMOVE",28,0) D ^%ZTLOAD "RTN","EDPFMOVE",29,0) W !,"Task "_$S($G(ZTSK):"#"_ZTSK,1:"not")_" started." "RTN","EDPFMOVE",30,0) Q "RTN","EDPFMOVE",31,0) ; "RTN","EDPFMOVE",32,0) CONFIG ; -- convert site configuration "RTN","EDPFMOVE",33,0) N EDPI,MSG,N,DIV,I,X0,XMZ K XMMG "RTN","EDPFMOVE",34,0) S EDPI=$P($G(^XTMP("EDP-CONV","X")),U) ; = 0^0^0 in post-init "RTN","EDPFMOVE",35,0) I EDPI="" W !,"Configuration data already sent." Q "RTN","EDPFMOVE",36,0) W !,"Sending local configuration ... " "RTN","EDPFMOVE",37,0) F S EDPI=$O(^DIZ(172012,EDPI)) Q:EDPI<1 D Q:$D(XMMG) "RTN","EDPFMOVE",38,0) . K MSG S MSG(1)="command=convertConfiguration",N=1 "RTN","EDPFMOVE",39,0) . S DIV=+$G(^DIZ(172012,EDPI,0)) "RTN","EDPFMOVE",40,0) . S N=N+1,MSG(N)="SITE="_$$STA^XUAF4(DIV) "RTN","EDPFMOVE",41,0) . S N=N+1,MSG(N)="TZ="_$$TZ^XLFDT "RTN","EDPFMOVE",42,0) . F I=2,3,5 S N=N+1,MSG(N)=I_"="_$G(^DIZ(172012,EDPI,I)) "RTN","EDPFMOVE",43,0) . ; include acuities and statuses for default colors "RTN","EDPFMOVE",44,0) . S I=0 F S I=$O(^DIZ(172007,"D",DIV,I)) Q:I<1 D "RTN","EDPFMOVE",45,0) .. S X0=$G(^DIZ(172007,I,0)) Q:'$P(X0,U,6) ;inactive "RTN","EDPFMOVE",46,0) .. S $P(X0,U,3)=$$EXTERNAL^DILFD(172007,2,"",$P(X0,U,3)) "RTN","EDPFMOVE",47,0) .. S $P(X0,U,4)=$$EXTERNAL^DILFD(172007,3,"",$P(X0,U,4)) "RTN","EDPFMOVE",48,0) .. S N=N+1,MSG(N)="ACU"_I_"="_X0 "RTN","EDPFMOVE",49,0) . S I=0 F S I=$O(^DIZ(172009,I)) Q:I<1 S X0=$G(^(I,0)) D "RTN","EDPFMOVE",50,0) .. S $P(X0,U,2)=$$EXTERNAL^DILFD(172009,1,"",$P(X0,U,2)) "RTN","EDPFMOVE",51,0) .. S $P(X0,U,3)=$$EXTERNAL^DILFD(172009,2,"",$P(X0,U,3)) "RTN","EDPFMOVE",52,0) .. S N=N+1,MSG(N)="STS"_I_"="_X0 "RTN","EDPFMOVE",53,0) . D SEND^EDPFMON(.MSG) "RTN","EDPFMOVE",54,0) . S:'$D(XMMG) $P(^XTMP("EDP-CONV","X"),U)=EDPI "RTN","EDPFMOVE",55,0) I '$D(XMMG) S $P(^XTMP("EDP-CONV","X"),U)="" ;done "RTN","EDPFMOVE",56,0) Q "RTN","EDPFMOVE",57,0) ; "RTN","EDPFMOVE",58,0) ACTIVE ; -- Loop through ER Locations, convert open visits first "RTN","EDPFMOVE",59,0) ; Returns list of visits converted in EDPACTV(ien) "RTN","EDPFMOVE",60,0) N EDPL,VST,XMZ K EDPACTV,XMMG "RTN","EDPFMOVE",61,0) S EDPL=$P($G(^XTMP("EDP-CONV","X")),U,2) ; = 0^0^0 in post-init "RTN","EDPFMOVE",62,0) I EDPL="" W !,"Active visits already sent." Q "RTN","EDPFMOVE",63,0) W !,"Sending currently active visits ... " "RTN","EDPFMOVE",64,0) F S EDPL=$O(^DIZ(172008,EDPL)) Q:EDPL<1 S VST=$P($G(^(EDPL,0)),U,5) I VST D Q:$D(XMMG) "RTN","EDPFMOVE",65,0) . D EN1(VST,1) Q:$D(XMMG) "RTN","EDPFMOVE",66,0) . S ^XTMP("EDP-CONV",VST)="" "RTN","EDPFMOVE",67,0) . S $P(^XTMP("EDP-CONV","X"),U,2)=EDPL "RTN","EDPFMOVE",68,0) I '$D(XMMG) S $P(^XTMP("EDP-CONV","X"),U,2)="" ;done "RTN","EDPFMOVE",69,0) Q "RTN","EDPFMOVE",70,0) ; "RTN","EDPFMOVE",71,0) LOOP ; -- Queued loop to send previous,closed visits "RTN","EDPFMOVE",72,0) ; EDPACTV(ien) contains converted active visits "RTN","EDPFMOVE",73,0) N EDPI,XMMG "RTN","EDPFMOVE",74,0) Q:$G(^XTMP("EDP-CONV","X"))="DONE" "RTN","EDPFMOVE",75,0) S EDPI=$P($G(^XTMP("EDP-CONV","X")),U,3) "RTN","EDPFMOVE",76,0) F S EDPI=$O(^DIZ(172006,EDPI)) Q:EDPI<1 D Q:$D(XMMG) "RTN","EDPFMOVE",77,0) . D:'$D(^XTMP("EDP-CONV",EDPI)) EN1(EDPI) "RTN","EDPFMOVE",78,0) . S:'$D(XMMG) $P(^XTMP("EDP-CONV","X"),U,3)=EDPI "RTN","EDPFMOVE",79,0) I '$D(XMMG) S ^XTMP("EDP-CONV","X")="DONE" "RTN","EDPFMOVE",80,0) Q "RTN","EDPFMOVE",81,0) ; "RTN","EDPFMOVE",82,0) EN1(IEN,OPEN) ; -- convert single ER visit "RTN","EDPFMOVE",83,0) N I,X,Y,X0,MSG "RTN","EDPFMOVE",84,0) F I=0,1,2,3,4,6,9 S Y(I)=$G(^DIZ(172006,IEN,I)) "RTN","EDPFMOVE",85,0) S I=0 F S I=$O(^DIZ(172006,IEN,8,I)) Q:I<1 S Y("DX"_I)=^(I,0),Y("DX")=I "RTN","EDPFMOVE",86,0) S X=$P(Y(3),U,1),Y("SITE")=$$STA^XUAF4(X) ;Station# "RTN","EDPFMOVE",87,0) S Y("TZ")=$$TZ^XLFDT ;Time Zone difference "RTN","EDPFMOVE",88,0) S:'$G(OPEN) Y("CLOSED")=1 ;Closed visit "RTN","EDPFMOVE",89,0) ; "RTN","EDPFMOVE",90,0) ;include static file nodes used: "RTN","EDPFMOVE",91,0) S X=$P(Y(0),U,4) S:X Y("STS"_X)=$$STS(X) ;Status "RTN","EDPFMOVE",92,0) S X=$P(Y(0),U,6) S:X Y("ARR"_X)=$$ARR(X) ;Arrival Mode "RTN","EDPFMOVE",93,0) S X=$P(Y(3),U,2) S:X Y("LOC"_X)=$$LOC(X) ;Location "RTN","EDPFMOVE",94,0) S X=$P(Y(4),U,2) S:X $P(Y(4),U,2)=$$NUR(X) ;RN->200 "RTN","EDPFMOVE",95,0) S X=$P(Y(4),U,3) S:X Y("ACU"_X)=$$ACU(X) ;Acuity "RTN","EDPFMOVE",96,0) S X=$P(Y(4),U,7) S:X Y("DEL"_X)=$$DEL(X) ;Delay Reason "RTN","EDPFMOVE",97,0) S X=$P(Y(9),U,3) S:X Y("DIS"_X)=$$DIS(X) ;Disposition "RTN","EDPFMOVE",98,0) I 'X S X=$P(Y(6),U,3) S:$L(X) Y("DIS"_X)=$$EXTERNAL^DILFD(172006,16,,X)_"^1^^^"_X "RTN","EDPFMOVE",99,0) S I=0 F S I=$O(^DIZ(172006,IEN,7,I)) Q:I<1 S X0=$G(^(I,0)) D "RTN","EDPFMOVE",100,0) . S X=$P(X0,U,3) I X,'$D(Y("STS"_X)) S Y("STS"_X)=$$STS(X) "RTN","EDPFMOVE",101,0) . S X=$P(X0,U,4) I X,'$D(Y("ACU"_X)) S Y("ACU"_X)=$$ACU(X) "RTN","EDPFMOVE",102,0) . S X=$P(X0,U,5) I X,'$D(Y("LOC"_X)) S Y("LOC"_X)=$$LOC(X) "RTN","EDPFMOVE",103,0) . S X=$P(X0,U,7) S:X $P(X0,U,7)=$$NUR(X) ;RN->200 "RTN","EDPFMOVE",104,0) . S Y("MVT"_I)=X0 "RTN","EDPFMOVE",105,0) ; "RTN","EDPFMOVE",106,0) ;send to nat'l server "RTN","EDPFMOVE",107,0) S MSG(1)="command=convertVisit",I=1 "RTN","EDPFMOVE",108,0) S X="" F S X=$O(Y(X)) Q:X="" S I=I+1,MSG(I)=X_"="_Y(X) "RTN","EDPFMOVE",109,0) D SEND^EDPFMON(.MSG) "RTN","EDPFMOVE",110,0) Q "RTN","EDPFMOVE",111,0) ; "RTN","EDPFMOVE",112,0) LOC(X) ; -- Return 0-node for Location ien X "RTN","EDPFMOVE",113,0) N NODE,S S NODE=$G(^DIZ(172008,+$G(X),0)) "RTN","EDPFMOVE",114,0) S S=$P(NODE,U,8) I S,'$D(Y("STS"_S)) S Y("STS"_S)=$$STS(S) "RTN","EDPFMOVE",115,0) Q NODE "RTN","EDPFMOVE",116,0) ; "RTN","EDPFMOVE",117,0) ACU(X) ; -- Return 0-node for Acuity ien X "RTN","EDPFMOVE",118,0) Q $G(^DIZ(172007,+$G(X),0)) "RTN","EDPFMOVE",119,0) ; "RTN","EDPFMOVE",120,0) STS(X) ; -- Return 0-node for Status ien X "RTN","EDPFMOVE",121,0) Q $G(^DIZ(172009,+$G(X),0)) "RTN","EDPFMOVE",122,0) ; "RTN","EDPFMOVE",123,0) DEL(X) ; -- Return 0-node for Delay Reason ien X "RTN","EDPFMOVE",124,0) Q $G(^DIZ(172011,+$G(X),0)) "RTN","EDPFMOVE",125,0) ; "RTN","EDPFMOVE",126,0) ARR(X) ; -- Return 0-node for Arrival Mode ien X "RTN","EDPFMOVE",127,0) Q $G(^DIZ(172014,+$G(X),0)) "RTN","EDPFMOVE",128,0) ; "RTN","EDPFMOVE",129,0) DIS(X) ; -- Return 0-node for Disposition ien X "RTN","EDPFMOVE",130,0) Q $G(^DIZ(172015,+$G(X),0)) "RTN","EDPFMOVE",131,0) ; "RTN","EDPFMOVE",132,0) PER(X) ; -- Return NAME^INITIALS for New Person ien X "RTN","EDPFMOVE",133,0) Q $P($G(^VA(200,+$G(X),0)),U,1,2) "RTN","EDPFMOVE",134,0) ; "RTN","EDPFMOVE",135,0) NUR(X) ; -- Return #200 ptr for Nurse Staff ien X "RTN","EDPFMOVE",136,0) Q $P($G(^NURSF(210,+$G(X),0)),U) "RTN","EDPFPER") 0^5^B2953018 "RTN","EDPFPER",1,0) EDPFPER ;SLC/KCM - Lookup Persons at Facility "RTN","EDPFPER",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPFPER",3,0) ; "RTN","EDPFPER",4,0) MATCH(MATCH,PTYP) ; Return a matching list of providers "RTN","EDPFPER",5,0) S MATCH=$$UP^XLFSTR(MATCH) "RTN","EDPFPER",6,0) D XML^EDPX(""_PTYP_"") "RTN","EDPFPER",7,0) I PTYP="N" D NURS "RTN","EDPFPER",8,0) I PTYP'="N" D PROV "RTN","EDPFPER",9,0) Q "RTN","EDPFPER",10,0) PROV ; match providers "RTN","EDPFPER",11,0) N NM,PRV,X0,X,TITLE "RTN","EDPFPER",12,0) S NM=$O(^VA(200,"AK.PROVIDER",MATCH),-1) "RTN","EDPFPER",13,0) F S NM=$O(^VA(200,"AK.PROVIDER",NM)) Q:$E(NM,1,$L(MATCH))'=MATCH D "RTN","EDPFPER",14,0) . S PRV=0 F S PRV=$O(^VA(200,"AK.PROVIDER",NM,PRV)) Q:'PRV D "RTN","EDPFPER",15,0) . . I '$$ACTIVE^XUSER(PRV) Q "RTN","EDPFPER",16,0) . . I '$$PROVIDER^XUSER(PRV) Q "RTN","EDPFPER",17,0) . . S X0=^VA(200,PRV,0),TITLE=$P(X0,U,9) "RTN","EDPFPER",18,0) . . S X("nm")=NM "RTN","EDPFPER",19,0) . . S X("itl")=$P(X0,U,2) "RTN","EDPFPER",20,0) . . I X("itl")="" S X("itl")=$E($P(NM,",",2))_$E(NM) "RTN","EDPFPER",21,0) . . S X("duz")=PRV "RTN","EDPFPER",22,0) . . I TITLE S X("title")=$P($G(^DIC(3.1,TITLE,0)),U) "RTN","EDPFPER",23,0) . . D XML^EDPX($$XMLA^EDPX("staff",.X)) "RTN","EDPFPER",24,0) Q "RTN","EDPFPER",25,0) NURS ; match nurses "RTN","EDPFPER",26,0) N NM,NRS "RTN","EDPFPER",27,0) S NM=$O(^VA(200,"B",MATCH),-1) "RTN","EDPFPER",28,0) F S NM=$O(^VA(200,"B",NM)) Q:$E(NM,1,$L(MATCH))'=MATCH D "RTN","EDPFPER",29,0) . S NRS=0 F S NRS=$O(^VA(200,"B",NM,NRS)) Q:'NRS D "RTN","EDPFPER",30,0) . . I '$D(^NURSF(210,"B",NRS)) Q "RTN","EDPFPER",31,0) . . I '$$ACTIVE^XUSER(NRS) Q "RTN","EDPFPER",32,0) . . S X0=^VA(200,NRS,0),TITLE=$P(X0,U,9) "RTN","EDPFPER",33,0) . . S X("nm")=NM "RTN","EDPFPER",34,0) . . S X("itl")=$P(X0,U,2) "RTN","EDPFPER",35,0) . . I X("itl")="" S X("itl")=$E($P(NM,",",2))_$E(NM) "RTN","EDPFPER",36,0) . . S X("duz")=NRS "RTN","EDPFPER",37,0) . . I TITLE S X("title")=$P($G(^DIC(3.1,TITLE,0)),U) "RTN","EDPFPER",38,0) . . D XML^EDPX($$XMLA^EDPX("staff",.X)) "RTN","EDPFPER",39,0) Q "RTN","EDPFPTC") 0^36^B14650211 "RTN","EDPFPTC",1,0) EDPFPTC ;SLC/MKB - Patient look-up Utilities at Facility "RTN","EDPFPTC",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPFPTC",3,0) ; "RTN","EDPFPTC",4,0) CHK(AREA,DFN,NAME) ; perform patient select checks "RTN","EDPFPTC",5,0) ; "RTN","EDPFPTC",6,0) ; check for active on board "RTN","EDPFPTC",7,0) N IEN,X0,CHK S NAME=$$UP^XLFSTR(NAME) "RTN","EDPFPTC",8,0) S IEN=0 F S IEN=$O(^EDP(230,"AC",EDPSITE,AREA,IEN)) Q:'IEN D Q:$D(CHK("onBoard")) "RTN","EDPFPTC",9,0) . S X0=^EDP(230,IEN,0) "RTN","EDPFPTC",10,0) . I DFN,($P(X0,U,6)=DFN) S CHK("onBoard")=$P(^DPT(DFN,0),U) "RTN","EDPFPTC",11,0) . I 'DFN,($E(NAME,1,10)'="(AMBULANCE"),($$UP^XLFSTR($P(X0,U,4))=NAME) S CHK("onBoard")=NAME "RTN","EDPFPTC",12,0) ; "RTN","EDPFPTC",13,0) ; stop here if no DFN "RTN","EDPFPTC",14,0) I 'DFN D Q "RTN","EDPFPTC",15,0) . S CHK("sensitive")=0,CHK("mayAccess")=1,CHK("logAccess")=0 "RTN","EDPFPTC",16,0) . D XML^EDPX($$XMLA^EDPX("checks",.CHK,"/")) "RTN","EDPFPTC",17,0) ; "RTN","EDPFPTC",18,0) ; check for sensitive record "RTN","EDPFPTC",19,0) N EDPY,WARN,I,X "RTN","EDPFPTC",20,0) D PTSEC^DGSEC4(.EDPY,DFN,1) ;IA #3027 "RTN","EDPFPTC",21,0) S CHK("dfn")=DFN "RTN","EDPFPTC",22,0) S CHK("sensitive")=(EDPY(1)>0) "RTN","EDPFPTC",23,0) S CHK("mayAccess")=(EDPY(1)<3) "RTN","EDPFPTC",24,0) S CHK("logAccess")=(EDPY(1)>1) "RTN","EDPFPTC",25,0) M WARN=EDPY K WARN(1) "RTN","EDPFPTC",26,0) ; "RTN","EDPFPTC",27,0) ; check for deceased patient "RTN","EDPFPTC",28,0) N DIED S DIED=0 "RTN","EDPFPTC",29,0) I +$G(^DPT(DFN,.35)) D "RTN","EDPFPTC",30,0) . S DIED(1)="This patient died on "_$$FMTE^XLFDT(^DPT(DFN,.35),"D")_"." "RTN","EDPFPTC",31,0) . S DIED(2)="Do you wish to continue?" "RTN","EDPFPTC",32,0) ; "RTN","EDPFPTC",33,0) ; check for similar patients "RTN","EDPFPTC",34,0) K EDPY "RTN","EDPFPTC",35,0) N MSG,SIM S MSG=0,SIM=0 "RTN","EDPFPTC",36,0) D GUIBS5A^DPTLK6(.EDPY,DFN) ;IA #3593 "RTN","EDPFPTC",37,0) S CHK("similar")=(EDPY(1)>0) "RTN","EDPFPTC",38,0) S I=1 F S I=$O(EDPY(I)) Q:'I S X=EDPY(I) D "RTN","EDPFPTC",39,0) . I $E(X)=0 S MSG=MSG+1,MSG(MSG)=$P(X,U,2) "RTN","EDPFPTC",40,0) . I $E(X)=1 D "RTN","EDPFPTC",41,0) .. S X("dfn")=$P(X,U,2) "RTN","EDPFPTC",42,0) .. S X("name")=$P(X,U,3) "RTN","EDPFPTC",43,0) .. S X("dob")=$$FMTE^XLFDT($P(X,U,4),"D") "RTN","EDPFPTC",44,0) .. S X("ssn")=$P(X,U,5) "RTN","EDPFPTC",45,0) .. S SIM=SIM+1,SIM(SIM)=$$XMLA^EDPX("similar",.X,"/") "RTN","EDPFPTC",46,0) ; "RTN","EDPFPTC",47,0) ; possibly check means test: GUIMTD^DPTLK6 "RTN","EDPFPTC",48,0) ; possibly check legacy data: I $L($T(HXDATA^A7RDPAGU)... "RTN","EDPFPTC",49,0) ; "RTN","EDPFPTC",50,0) ; put it all together "RTN","EDPFPTC",51,0) D XML^EDPX($$XMLA^EDPX("checks",.CHK,"/")) "RTN","EDPFPTC",52,0) I $D(WARN) D "RTN","EDPFPTC",53,0) . D XML^EDPX("") "RTN","EDPFPTC",54,0) . S I=0 F S I=$O(WARN(I)) Q:'I D XML^EDPX(WARN(I)) "RTN","EDPFPTC",55,0) . I CHK("logAccess"),CHK("mayAccess") D XML^EDPX("Are you sure you wish to continue?") "RTN","EDPFPTC",56,0) . D XML^EDPX("") "RTN","EDPFPTC",57,0) S I=0 F S I=$O(SIM(I)) Q:'I D XML^EDPX(SIM(I)) "RTN","EDPFPTC",58,0) I $D(MSG) D "RTN","EDPFPTC",59,0) . D XML^EDPX("") "RTN","EDPFPTC",60,0) . S I=0 F S I=$O(MSG(I)) Q:'I D XML^EDPX(MSG(I)) "RTN","EDPFPTC",61,0) . D XML^EDPX("") "RTN","EDPFPTC",62,0) I $D(DIED) D "RTN","EDPFPTC",63,0) . D XML^EDPX("") "RTN","EDPFPTC",64,0) . S I=0 F S I=$O(DIED(I)) Q:'I D XML^EDPX(DIED(I)) "RTN","EDPFPTC",65,0) . D XML^EDPX("") "RTN","EDPFPTC",66,0) I CHK("mayAccess") D PRF(DFN) "RTN","EDPFPTC",67,0) Q "RTN","EDPFPTC",68,0) PRF(DFN) ; get Patient Record Flags "RTN","EDPFPTC",69,0) N EDPY,EDI,PRF,N,X "RTN","EDPFPTC",70,0) Q:$$GETACT^DGPFAPI(DFN,"EDPY")'>0 "RTN","EDPFPTC",71,0) D XML^EDPX("") "RTN","EDPFPTC",72,0) S EDI=0 F S EDI=$O(EDPY(EDI)) Q:EDI<1 K PRF D "RTN","EDPFPTC",73,0) . S PRF("assignmentStatus")="Active" "RTN","EDPFPTC",74,0) . S PRF("assignTS")=$P($G(EDPY(EDI,"ASSIGNDT")),U) "RTN","EDPFPTC",75,0) . S PRF("approved")=$P($G(EDPY(EDI,"APPRVBY")),U,2) "RTN","EDPFPTC",76,0) . S PRF("nextReviewDT")=$P($G(EDPY(EDI,"REVIEWDT")),U) "RTN","EDPFPTC",77,0) . S PRF("name")=$P($G(EDPY(EDI,"FLAG")),U,2) "RTN","EDPFPTC",78,0) . S PRF("type")=$P($G(EDPY(EDI,"FLAGTYPE")),U,2) "RTN","EDPFPTC",79,0) . S PRF("category")=$P($G(EDPY(EDI,"CATEGORY")),U,2) "RTN","EDPFPTC",80,0) . S PRF("ownerSite")=$P($G(EDPY(EDI,"OWNER")),U,2) "RTN","EDPFPTC",81,0) . S PRF("originatingSite")=$P($G(EDPY(EDI,"ORIGSITE")),U,2) "RTN","EDPFPTC",82,0) . D XML^EDPX($$XMLA^EDPX("flag",.PRF,"")) "RTN","EDPFPTC",83,0) . S N=1,X=$G(EDPY(EDI,"NARR",1,0)) "RTN","EDPFPTC",84,0) . F S N=$O(EDPY(EDI,"NARR",N)) Q:N<1 S X=X_$C(13,10)_$G(EDPY(EDI,"NARR",N,0)) "RTN","EDPFPTC",85,0) . D XML^EDPX(""_$$ESC^EDPX(X)_"") "RTN","EDPFPTC",86,0) . D XML^EDPX("") "RTN","EDPFPTC",87,0) D XML^EDPX("") "RTN","EDPFPTC",88,0) Q "RTN","EDPFPTC",89,0) ; "RTN","EDPFPTC",90,0) LOG(DFN) ; Make entry in security log for sensitive patient access "RTN","EDPFPTC",91,0) N EDPY,X "RTN","EDPFPTC",92,0) D NOTICE^DGSEC4(.EDPY,DFN) ;IA #3027 "RTN","EDPFPTC",93,0) S X=$S(EDPY:"ok",1:"fail") "RTN","EDPFPTC",94,0) D XML^EDPX("") "RTN","EDPFPTC",95,0) Q "RTN","EDPFPTC",96,0) ; "RTN","EDPFPTC",97,0) TEST ; "RTN","EDPFPTC",98,0) S EDPSITE=442,NAME="doe,john" "RTN","EDPFPTC",99,0) D CHK(1,"",NAME) "RTN","EDPFPTC",100,0) ;N PID S EDPSITE=442 "RTN","EDPFPTC",101,0) ;R "DFN:",PID Q:PID="" W ! "RTN","EDPFPTC",102,0) ;D CHK(1,PID,$P(^DPT(PID,0),U)) "RTN","EDPFPTC",103,0) N I S I=0 F S I=$O(EDPXML(I)) Q:'I W !,EDPXML(I) "RTN","EDPFPTC",104,0) K EDPXML "RTN","EDPFPTC",105,0) Q "RTN","EDPFPTC",106,0) TEST1 ; "RTN","EDPFPTC",107,0) S EDPSITE=442,NAME="doe,john" "RTN","EDPFPTC",108,0) D CHK(1,"",NAME) "RTN","EDPFPTC",109,0) ; "RTN","EDPFPTC",110,0) ;DO LATER? -- linked progress notes "RTN","EDPFPTC",111,0) ;D GETTITLE^TIUPRF2(.EDPT,DFN,EDI),GETNOTES^TIUPRF2(.EDPN,DFN,EDPT,1) "RTN","EDPFPTC",112,0) ;I $O(EDPN(0)) D "RTN","EDPFPTC",113,0) ;. D XML^EDPX("") "RTN","EDPFPTC",114,0) ;. S N=0 F S N=$O(EDPN(N)) Q:N<1 K PN S X=EDPN(N) D "RTN","EDPFPTC",115,0) ;.. S PN("id")=+X,PN("action")=$P(X,U,2),PN("author")=$P(X,U,4) "RTN","EDPFPTC",116,0) ;.. S PN("noteTS")=9999999-N "RTN","EDPFPTC",117,0) ;.. D TGET^TIUSRVR1(.EDPX,+X) "RTN","EDPFPTC",118,0) ;.. S X=$$XMLA^EDPX("note",.PN),X=$TR(X,"/") D XML^EDPX(X) "RTN","EDPFPTC",119,0) ;.. S I=1,X=$G(@EDPX@(1)) "RTN","EDPFPTC",120,0) ;.. F S I=$O(@EDPX@(I)) Q:I<1 S X=X_$C(13,10)_$G(@EDPX@(I)) "RTN","EDPFPTC",121,0) ;.. S X=""_$$ESC^EDPX(X)_"" D XML^EDPX(X) "RTN","EDPFPTC",122,0) ;.. D XML^EDPX("") "RTN","EDPFPTC",123,0) ;. D XML^EDPX("") "RTN","EDPFPTL") 0^6^B3299385 "RTN","EDPFPTL",1,0) EDPFPTL ;SLC/KCM - Select Patient at Facility "RTN","EDPFPTL",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPFPTL",3,0) ; "RTN","EDPFPTL",4,0) MATCH(MATCH) ; return XML of matching patients "RTN","EDPFPTL",5,0) S MATCH=$$UP^XLFSTR(MATCH) "RTN","EDPFPTL",6,0) Q:MATCH="" "RTN","EDPFPTL",7,0) ; "RTN","EDPFPTL",8,0) S:+MATCH MATCH=$TR(MATCH,"-","") "RTN","EDPFPTL",9,0) ; "RTN","EDPFPTL",10,0) N LST S LST=0 "RTN","EDPFPTL",11,0) I MATCH?4N D BS(MATCH) "RTN","EDPFPTL",12,0) I MATCH?1U4N D BS5(MATCH) "RTN","EDPFPTL",13,0) I MATCH?9N.1U D SSN(MATCH) "RTN","EDPFPTL",14,0) D LNAM(MATCH) "RTN","EDPFPTL",15,0) I LST=0 D NONE "RTN","EDPFPTL",16,0) I LST>0 D LIST(.LST) "RTN","EDPFPTL",17,0) Q "RTN","EDPFPTL",18,0) ; "RTN","EDPFPTL",19,0) NONE ; create a "no matches" list "RTN","EDPFPTL",20,0) N X "RTN","EDPFPTL",21,0) S X("name")="No matches found." "RTN","EDPFPTL",22,0) S X("ssn")="",X("dob")="",X("dfn")=0 "RTN","EDPFPTL",23,0) D XML^EDPX($$XMLA^EDPX("ptlk",.X)) "RTN","EDPFPTL",24,0) Q "RTN","EDPFPTL",25,0) LIST(LST) ; list names that match "RTN","EDPFPTL",26,0) N I,X,DFN "RTN","EDPFPTL",27,0) S I=0 F S I=$O(LST(I)) Q:'I D "RTN","EDPFPTL",28,0) . S DFN=LST(I) "RTN","EDPFPTL",29,0) . S X("name")=$P(^DPT(DFN,0),U) "RTN","EDPFPTL",30,0) . S X("ssn")=$$SSN^DPTLK1(DFN) ; DG249 "RTN","EDPFPTL",31,0) . S X("dob")=$$DOB^DPTLK1(DFN) ; DG249 "RTN","EDPFPTL",32,0) . S X("dfn")=DFN "RTN","EDPFPTL",33,0) . D XML^EDPX($$XMLA^EDPX("ptlk",.X)) "RTN","EDPFPTL",34,0) Q "RTN","EDPFPTL",35,0) BS(X) ; find matches on 9999 (BS) "RTN","EDPFPTL",36,0) ; expects LST to be defined "RTN","EDPFPTL",37,0) N DFN S DFN=0 "RTN","EDPFPTL",38,0) F S DFN=$O(^DPT("BS",X,DFN)) Q:'DFN S LST=LST+1,LST(LST)=DFN "RTN","EDPFPTL",39,0) Q "RTN","EDPFPTL",40,0) BS5(X) ; find matches on X9999 (BS5) "RTN","EDPFPTL",41,0) ; expects LST to be defined "RTN","EDPFPTL",42,0) N DFN S DFN=0 "RTN","EDPFPTL",43,0) F S DFN=$O(^DPT("BS5",X,DFN)) Q:'DFN S LST=LST+1,LST(LST)=DFN "RTN","EDPFPTL",44,0) Q "RTN","EDPFPTL",45,0) SSN(X) ; find matches on 999999999 (SSN) "RTN","EDPFPTL",46,0) ; expects LST to be defined "RTN","EDPFPTL",47,0) N DFN S DFN=0 "RTN","EDPFPTL",48,0) F S DFN=$O(^DPT("SSN",X,DFN)) Q:'DFN S LST=LST+1,LST(LST)=DFN "RTN","EDPFPTL",49,0) Q "RTN","EDPFPTL",50,0) LNAM(X) ; find matches on name (B) "RTN","EDPFPTL",51,0) ; expects LST to be defined "RTN","EDPFPTL",52,0) N DFN,NAME "RTN","EDPFPTL",53,0) S NAME=$O(^DPT("B",X),-1) "RTN","EDPFPTL",54,0) F S NAME=$O(^DPT("B",NAME)) Q:$E(NAME,1,$L(X))'=X Q:NAME="" D "RTN","EDPFPTL",55,0) . S DFN=0 F S DFN=$O(^DPT("B",NAME,DFN)) Q:'DFN S LST=LST+1,LST(LST)=DFN "RTN","EDPFPTL",56,0) Q "RTN","EDPLOG") 0^37^B22496356 "RTN","EDPLOG",1,0) EDPLOG ;SLC/KCM - Update ED Log - Update "RTN","EDPLOG",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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) N AMB S AMB="(ambulance en route)" "RTN","EDPLOG",13,0) ; "RTN","EDPLOG",14,0) ; compute the local time "RTN","EDPLOG",15,0) N TIME S TIME=$$NOW^XLFDT "RTN","EDPLOG",16,0) ; before allowing remove, check the required fields "RTN","EDPLOG",17,0) S REMOVE=$G(REMOVE,0) "RTN","EDPLOG",18,0) I REMOVE D RDY2RMV Q:'REC("closed") "RTN","EDPLOG",19,0) ; "RTN","EDPLOG",20,0) ; get the existing log entry "RTN","EDPLOG",21,0) N X0,X1,X2,X3,AREA,I "RTN","EDPLOG",22,0) S X0=^EDP(230,IEN,0),X1=$G(^(1)),X2=$G(^(2)),X3=$G(^(3)) "RTN","EDPLOG",23,0) S AREA=$P(X0,U,3),^EDPB(231.9,AREA,230)=$H ; last update timestamp "RTN","EDPLOG",24,0) ; "RTN","EDPLOG",25,0) N NAME,DFN,SSN,PCE "RTN","EDPLOG",26,0) S NAME=$$VAL("name"),DFN=$$VAL("dfn"),SSN="" "RTN","EDPLOG",27,0) I DFN S SSN=$P(^DPT(DFN,0),U,9) "RTN","EDPLOG",28,0) I '$P(X0,U,8),((NAME'=AMB)!DFN) S REC("inTS")=TIME "RTN","EDPLOG",29,0) ; Update any fields that have values passed in "RTN","EDPLOG",30,0) N FDA,FDAIEN,DIERR,HIST "RTN","EDPLOG",31,0) D SETFDA(X0,4,"name",.04) "RTN","EDPLOG",32,0) ;D SETFDA(X0,5,"ssn",.05) -- NtoL "RTN","EDPLOG",33,0) D SETFDA(X0,6,"dfn",.06) "RTN","EDPLOG",34,0) D SETFDA(X0,7,"closed",.07) "RTN","EDPLOG",35,0) D SETFDA(X0,8,"inTS",.08) "RTN","EDPLOG",36,0) D SETFDA(X0,9,"outTS",.09) "RTN","EDPLOG",37,0) D SETFDA(X0,10,"arrival",.1) "RTN","EDPLOG",38,0) D SETFDA(X1,1,"complaint",1.1) "RTN","EDPLOG",39,0) D SETFDA(X2,1,"compLong",2) "RTN","EDPLOG",40,0) D SETFDA(X3,2,"status",3.2) "RTN","EDPLOG",41,0) D SETFDA(X3,3,"acuity",3.3) "RTN","EDPLOG",42,0) D SETFDA(X3,4,"bed",3.4) "RTN","EDPLOG",43,0) D SETFDA(X3,5,"provider",3.5) "RTN","EDPLOG",44,0) D SETFDA(X3,6,"nurse",3.6) "RTN","EDPLOG",45,0) D SETFDA(X3,7,"resident",3.7) "RTN","EDPLOG",46,0) D SETFDA(X3,8,"comment",3.8) "RTN","EDPLOG",47,0) D SETFDA(X1,5,"delay",1.5) "RTN","EDPLOG",48,0) D SETFDA(X1,2,"disposition",1.2) "RTN","EDPLOG",49,0) I $G(FDA(230,IEN_",",1.2)) S FDA(230,IEN_",",1.3)=TIME "RTN","EDPLOG",50,0) I $L(NAME)&$L(SSN) S FDA(230,IEN_",",.11)=$E(NAME)_$E(SSN,6,9) "RTN","EDPLOG",51,0) I $D(HIST)>9 D SAVE^EDPLOGH(IEN,TIME,.HIST) "RTN","EDPLOG",52,0) I $D(FDA)>9 D FILE^DIE("","FDA","ERR") "RTN","EDPLOG",53,0) I $D(DIERR) D FAIL("upd",2300008) Q "RTN","EDPLOG",54,0) K FDA,ERR "RTN","EDPLOG",55,0) ; "RTN","EDPLOG",56,0) D1 ; process diagnoses "RTN","EDPLOG",57,0) N DIAG S DIAG="diagnosis-0",I=0 "RTN","EDPLOG",58,0) F S DIAG=$O(REC(DIAG)) Q:$E(DIAG,1,10)'="diagnosis-" D "RTN","EDPLOG",59,0) . S I=I+1,REC("diagnosis",I)=REC(DIAG) "RTN","EDPLOG",60,0) . S PCE($P(REC(DIAG),U),I)=REC(DIAG) "RTN","EDPLOG",61,0) I $D(REC("diagnosis"))>9 D Q:$D(DIERR) ; replace the diagnosis multiple "RTN","EDPLOG",62,0) . D DELDIAG(IEN) "RTN","EDPLOG",63,0) . S FDA(230,IEN_",",1.4)=TIME "RTN","EDPLOG",64,0) . S I=0 F S I=$O(REC("diagnosis",I)) Q:'I D "RTN","EDPLOG",65,0) . . Q:$P(REC("diagnosis",I),U,6) ; entry being removed "RTN","EDPLOG",66,0) . . S FDA(230.04,"+"_I_","_IEN_",",.01)=$P(REC("diagnosis",I),U,4) "RTN","EDPLOG",67,0) . . S FDA(230.04,"+"_I_","_IEN_",",.02)=$P(REC("diagnosis",I),U,3) "RTN","EDPLOG",68,0) . D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPLOG",69,0) . I $D(DIERR) D FAIL("upd",2300008) Q "RTN","EDPLOG",70,0) . K FDA,FDAIEN,ERR "RTN","EDPLOG",71,0) ; "RTN","EDPLOG",72,0) D UPDVISIT^EDPLPCE(IEN,.PCE) "RTN","EDPLOG",73,0) ; "RTN","EDPLOG",74,0) D XML^EDPX("") "RTN","EDPLOG",75,0) Q "RTN","EDPLOG",76,0) DELDIAG(IEN) ; delete the diagnosis multiple "RTN","EDPLOG",77,0) I '$O(^EDP(230,IEN,4,0)) Q ; no child nodes "RTN","EDPLOG",78,0) N DA,DIK S DA=0,DA(1)=IEN,DIK="^EDP(230,"_DA(1)_",4," "RTN","EDPLOG",79,0) F S DA=$O(^EDP(230,IEN,4,DA)) Q:'DA D ^DIK "RTN","EDPLOG",80,0) Q "RTN","EDPLOG",81,0) RDY2RMV ; check required fields & set up so ready to remove "RTN","EDPLOG",82,0) ; called from UPD, expects REC and IEN and TIME "RTN","EDPLOG",83,0) ; "RTN","EDPLOG",84,0) ; check special dispositions first "RTN","EDPLOG",85,0) N DISP,CLOSE "RTN","EDPLOG",86,0) S DISP=+$$VAL("disposition"),CLOSE=0 "RTN","EDPLOG",87,0) I DISP=+$O(^EDPB(233.1,"B","edp.disposition.error",0)) S CLOSE=1 "RTN","EDPLOG",88,0) I DISP=+$O(^EDPB(233.1,"B","edp.disposition.nec",0)) S CLOSE=1 "RTN","EDPLOG",89,0) I DISP=+$O(^EDPB(233.1,"B","edp.disposition.left",0)) S CLOSE=1 "RTN","EDPLOG",90,0) I CLOSE S REC("closed")=1 Q "RTN","EDPLOG",91,0) ; "RTN","EDPLOG",92,0) ; check the normally required fields "RTN","EDPLOG",93,0) N X,X1,AREA,MIN,STS "RTN","EDPLOG",94,0) S X="",AREA=$P(^EDP(230,IEN,0),U,3),STS=$P($G(^(3)),U,2) "RTN","EDPLOG",95,0) S X1=$G(^EDPB(231.9,AREA,1)) "RTN","EDPLOG",96,0) S MIN=$$VAL("inTS") S:'MIN MIN=$P(^EDP(230,IEN,0),U,8) "RTN","EDPLOG",97,0) S MIN=$$FMDIFF^XLFDT(TIME,MIN,2)\60 "RTN","EDPLOG",98,0) I $P(X1,U,1),'$L($$VAL("diagnosis-1")) S X="diagnosis " "RTN","EDPLOG",99,0) I $P(X1,U,3),'$$VAL("disposition") S X=X_"disposition " "RTN","EDPLOG",100,0) I $P(X1,U,4),(MIN>$P(X1,U,5)),'$$VAL("delay"),'$$OBS(STS) S X=X_" delay reason" "RTN","EDPLOG",101,0) I $L(X) D FAIL("upd","Fields required for remove are missing: "_X) Q "RTN","EDPLOG",102,0) I '$$VAL("outTS") S REC("outTS")=TIME "RTN","EDPLOG",103,0) ;S REC("status")=$$CODE^EDPX("edp.status.gone") ; was caused edit-closed to re-open "RTN","EDPLOG",104,0) S REC("closed")=1 "RTN","EDPLOG",105,0) Q "RTN","EDPLOG",106,0) VAL(X) ; Returns parameter value or null "RTN","EDPLOG",107,0) ; HTTP passes HTML-escaped values in an array as REC(param) "RTN","EDPLOG",108,0) Q $G(REC(X)) "RTN","EDPLOG",109,0) ; "RTN","EDPLOG",110,0) OBS(X) ; Returns 1 or 0, if observation status X "RTN","EDPLOG",111,0) Q ($P($G(^EDPB(233.1,+$G(X),0)),U,5)["O") "RTN","EDPLOG",112,0) ; "RTN","EDPLOG",113,0) SETFDA(NODE,P,SUB,FLD) ; Creates value in FDA & HIST arrays as appropriate "RTN","EDPLOG",114,0) ; from UPD, expects REC, FDA, HIST to be defined "RTN","EDPLOG",115,0) Q:'$D(REC(SUB)) ; value not sent in message "RTN","EDPLOG",116,0) Q:$P(NODE,U,P)=REC(SUB) ; value is the same "RTN","EDPLOG",117,0) S FDA(230,IEN_",",FLD)=REC(SUB) "RTN","EDPLOG",118,0) ; save the changed fields in the history "RTN","EDPLOG",119,0) I $L(REC(SUB)) D "RTN","EDPLOG",120,0) . S:FLD=1.1 FLD=.07 ; complaint "RTN","EDPLOG",121,0) . S:FLD=1.2 FLD=.11 ; disposition "RTN","EDPLOG",122,0) . S:FLD=1.5 FLD=.12 ; delay "RTN","EDPLOG",123,0) . S HIST(230.1,"+1,",FLD)=REC(SUB) "RTN","EDPLOG",124,0) . ; check for updated providers "RTN","EDPLOG",125,0) . S:FLD=3.5 PCE("PRV",1)=REC(SUB)_"^1" ; provider "RTN","EDPLOG",126,0) . S:FLD=3.7 PCE("PRV",2)=REC(SUB) ; resident "RTN","EDPLOG",127,0) Q "RTN","EDPLOG",128,0) FAIL(ELEM,MSG) ; creates failure node for returned XML "RTN","EDPLOG",129,0) N X "RTN","EDPLOG",130,0) I +MSG S MSG=$$MSG^EDPX(MSG) "RTN","EDPLOG",131,0) S X="<"_ELEM_" id='"_$$VAL("id")_"' status='fail' msg='"_MSG_"' />" "RTN","EDPLOG",132,0) D XML^EDPX(X) "RTN","EDPLOG",133,0) S EDPFAIL=1 "RTN","EDPLOG",134,0) Q "RTN","EDPLOG1") 0^38^B2523379 "RTN","EDPLOG1",1,0) EDPLOG1 ;SLC/KCM - Update ED Log - Validate "RTN","EDPLOG1",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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")) --NtoL "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^39^B6686415 "RTN","EDPLOGA",1,0) EDPLOGA ;SLC/KCM - Add Entry to ED Log "RTN","EDPLOGA",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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,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"),NAME=REC("name"),SSN="" "RTN","EDPLOGA",15,0) I DFN S REC("name")=$P(^DPT(DFN,0),U),REC("ssn")=$P(^DPT(DFN,0),U,9) "RTN","EDPLOGA",16,0) ;S SSN=REC("ssn") S:SSN="*SENSITIVE*" SSN="" --NtoL "RTN","EDPLOGA",17,0) I 'DFN,(NAME="") D FAIL^EDPLOG("add",2300014) Q "RTN","EDPLOGA",18,0) ; "RTN","EDPLOGA",19,0) ; Add default values to stub entry (should be based on config for area) "RTN","EDPLOGA",20,0) S BED=$O(^EDPB(231.8,"AC",EDPSITE,AREA,"WAIT",0)) "RTN","EDPLOGA",21,0) I $G(REC("name"))=AMB D "RTN","EDPLOGA",22,0) . S ARR=$O(^EDPB(233.1,"B","edp.arrival.ambulance",0)) "RTN","EDPLOGA",23,0) . S BED=$O(^EDPB(231.8,"AC",EDPSITE,AREA,"AMBU",0)) "RTN","EDPLOGA",24,0) ; "RTN","EDPLOGA",25,0) I +DFN,$D(^EDP(230,"AP",EDPSITE,AREA,DFN)) D FAIL^EDPLOG("add",2300002) Q "RTN","EDPLOGA",26,0) ;I +SSN,$D(^EDP(230,"AS",EDPSITE,AREA,SSN)) D FAIL^EDPLOG("add",2300002) Q --NtoL "RTN","EDPLOGA",27,0) N ERR S ERR=$$VALID^EDPLOG1(.REC) I $L(ERR) D FAIL^EDPLOG("add",ERR) Q "RTN","EDPLOGA",28,0) S ^EDPB(231.9,AREA,230)=$H ; last update timestamp "RTN","EDPLOGA",29,0) ; "RTN","EDPLOGA",30,0) ; Create a current log record "RTN","EDPLOGA",31,0) N FDA,FDAIEN,DIERR,HIST,HISTIEN,LOGIEN "RTN","EDPLOGA",32,0) S FDA(230,"+1,",.01)=TIME "RTN","EDPLOGA",33,0) S FDA(230,"+1,",.02)=EDPSITE "RTN","EDPLOGA",34,0) S FDA(230,"+1,",.03)=AREA "RTN","EDPLOGA",35,0) S FDA(230,"+1,",.04)=NAME "RTN","EDPLOGA",36,0) ;S FDA(230,"+1,",.05)=SSN --NtoL "RTN","EDPLOGA",37,0) S FDA(230,"+1,",.06)=DFN "RTN","EDPLOGA",38,0) S FDA(230,"+1,",3.4)=BED "RTN","EDPLOGA",39,0) I $L(SSN) S FDA(230,"+1,",.11)=$E(NAME)_$E(SSN,6,9) "RTN","EDPLOGA",40,0) I NAME=AMB S FDA(230,"+1,",.11)="(amb)" "RTN","EDPLOGA",41,0) I NAME'=AMB S FDA(230,"+1,",.08)=TIME "RTN","EDPLOGA",42,0) I $G(ARR) S FDA(230,"+1,",.1)=ARR "RTN","EDPLOGA",43,0) M HIST(230.1)=FDA(230) "RTN","EDPLOGA",44,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPLOGA",45,0) I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q "RTN","EDPLOGA",46,0) S LOGIEN=FDAIEN(1) "RTN","EDPLOGA",47,0) ; "RTN","EDPLOGA",48,0) ; Create the first history entry "RTN","EDPLOGA",49,0) S HIST(230.1,"+1,",.01)=LOGIEN "RTN","EDPLOGA",50,0) S HIST(230.1,"+1,",.02)=TIME "RTN","EDPLOGA",51,0) S HIST(230.1,"+1,",.03)=EDPUSER "RTN","EDPLOGA",52,0) K HIST(230.1,"+1,",.11) "RTN","EDPLOGA",53,0) D UPDATE^DIE("","HIST","HISTIEN","ERR") "RTN","EDPLOGA",54,0) I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q "RTN","EDPLOGA",55,0) ; "RTN","EDPLOGA",56,0) D XML^EDPX("") "RTN","EDPLOGA",57,0) D GET^EDPQLE(FDAIEN(1),CHOICES) "RTN","EDPLOGA",58,0) Q "RTN","EDPLOGA",59,0) ; "RTN","EDPLOGA",60,0) DEL(AREA,LOGID) ; Delete Stub Log Entry "RTN","EDPLOGA",61,0) N I,CNT,DIK,DA "RTN","EDPLOGA",62,0) S I=0,CNT=0 F S I=$O(^EDP(230.1,"B",LOGID,I)) Q:'I S CNT=CNT+1 "RTN","EDPLOGA",63,0) I $L($P($G(^EDP(230,LOGID,1)),U))!(CNT>1) D Q "RTN","EDPLOGA",64,0) . D FAIL^EDPLOG("upd","Does not appear to be a stub entry") "RTN","EDPLOGA",65,0) ; "RTN","EDPLOGA",66,0) ; Delete initial history entry "RTN","EDPLOGA",67,0) S DIK="^EDP(230.1,",DA=$O(^EDP(230.1,"B",LOGID,0)) "RTN","EDPLOGA",68,0) I DA D ^DIK "RTN","EDPLOGA",69,0) ; Delete stub log entry "RTN","EDPLOGA",70,0) S DIK="^EDP(230,",DA=LOGID "RTN","EDPLOGA",71,0) D ^DIK "RTN","EDPLOGA",72,0) ; "RTN","EDPLOGA",73,0) D XML^EDPX("") "RTN","EDPLOGA",74,0) Q "RTN","EDPLOGH") 0^40^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 26 "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","EDPLPCE") 0^49^B8566272 "RTN","EDPLPCE",1,0) EDPLPCE ;SLC/KCM - Create a Visit "RTN","EDPLPCE",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPLPCE",3,0) ; "RTN","EDPLPCE",4,0) UPDVISIT(LOG,PCE) ; Get / Create a Visit "RTN","EDPLPCE",5,0) ; PCE is list of potential updates to the visit "RTN","EDPLPCE",6,0) ; PCE(TYP,n)=type^ien^code^label^add^del^upd^prim^qty "RTN","EDPLPCE",7,0) N DFN,TS,LOC,INST,X0 "RTN","EDPLPCE",8,0) S X0=^EDP(230,LOG,0),DFN=$P(X0,U,6),TS=$P(X0,U,8) "RTN","EDPLPCE",9,0) S INST=$$IEN^XUAF4(EDPSITE) "RTN","EDPLPCE",10,0) S LOC=$$GET^XPAR(INST_";DIC(4,","EDPF LOCATION") "RTN","EDPLPCE",11,0) I 'DFN!('TS)!('LOC) Q 0 ; not enough info "RTN","EDPLPCE",12,0) ; "RTN","EDPLPCE",13,0) N EDPDATA,EDPVISIT "RTN","EDPLPCE",14,0) S EDPVISIT=$P(X0,U,12) "RTN","EDPLPCE",15,0) ; create a visit if the acuity is there "RTN","EDPLPCE",16,0) I 'EDPVISIT,$P($G(^EDP(230,LOG,3)),U,3) D "RTN","EDPLPCE",17,0) . S PCE("CPT",999)="CPT^^T1002^Nursing assessment^1" "RTN","EDPLPCE",18,0) ; add any new providers that were entered "RTN","EDPLPCE",19,0) S I=0 F S I=$O(PCE("PRV",I)) Q:'I D "RTN","EDPLPCE",20,0) . S EDPDATA("PROVIDER",I,"NAME")=$P(PCE("PRV",I),U) "RTN","EDPLPCE",21,0) . I $P(PCE("PRV",I),U,2) S EDPDATA("PROVIDER",I,"PRIMARY")=1 "RTN","EDPLPCE",22,0) ; update diagnoses "RTN","EDPLPCE",23,0) S I=0 F S I=$O(PCE("POV",I)) Q:'I D "RTN","EDPLPCE",24,0) . S X=PCE("POV",I) "RTN","EDPLPCE",25,0) . Q:'($P(X,U,5)!$P(X,U,6)!$P(X,U,7)) ; no updates for this diagnosis "RTN","EDPLPCE",26,0) . I $P(X,U,2) D "RTN","EDPLPCE",27,0) . . N CODE S CODE=$$ICDONE^LEXU($P(X,U,2),TS) "RTN","EDPLPCE",28,0) . . S $P(X,U,3)=CODE "RTN","EDPLPCE",29,0) . Q:'$L($P(X,U,3)) ; not coded "RTN","EDPLPCE",30,0) . S IEN=+$O(^ICD9("AB",$P(X,U,3)_" ",0)) Q:'IEN "RTN","EDPLPCE",31,0) . S EDPDATA("DX/PL",I,"DIAGNOSIS")=IEN "RTN","EDPLPCE",32,0) . S EDPDATA("DX/PL",I,"NARRATIVE")=$P(X,U,4) "RTN","EDPLPCE",33,0) . I $P(X,U,8) S EDPDATA("DX/PL",I,"PRIMARY")=1 "RTN","EDPLPCE",34,0) . I $P(X,U,6) S EDPDATA("DX/PL",I,"DELETE")=1 "RTN","EDPLPCE",35,0) ; update procedures "RTN","EDPLPCE",36,0) S I=0 F S I=$O(PCE("CPT",I)) Q:'I D "RTN","EDPLPCE",37,0) . S X=PCE("CPT",I) "RTN","EDPLPCE",38,0) . Q:'($P(X,U,5)!$P(X,U,6)!$P(X,U,7)) ; no updates for this procedure "RTN","EDPLPCE",39,0) . I $P(X,U,2) D "RTN","EDPLPCE",40,0) . . N CODE S CODE=$$CPTONE^LEXU($P(X,U,2),TS) "RTN","EDPLPCE",41,0) . . S $P(X,U,3)=CODE "RTN","EDPLPCE",42,0) . Q:'$L($P(X,U,3)) ; not coded "RTN","EDPLPCE",43,0) . S IEN=+$O(^ICPT("B",$P(X,U,3),0)) "RTN","EDPLPCE",44,0) . S EDPDATA("PROCEDURE",I,"PROCEDURE")=IEN "RTN","EDPLPCE",45,0) . S EDPDATA("PROCEDURE",I,"QTY")=$S($P(X,U,9):$P(X,U,9),1:1) "RTN","EDPLPCE",46,0) . S EDPDATA("PROCEDURE",I,"NARRATIVE")=$P(X,U,4) "RTN","EDPLPCE",47,0) . I $P(X,U,6) S EDPDATA("PROCEDURE",I,"DELETE")=1 "RTN","EDPLPCE",48,0) ; exit if no updates "RTN","EDPLPCE",49,0) Q:'$D(EDPDATA) 0 "RTN","EDPLPCE",50,0) ; "RTN","EDPLPCE",51,0) N EDPKG,EDPSRC,OK "RTN","EDPLPCE",52,0) S EDPKG=$O(^DIC(9.4,"B","EMERGENCY DEPARTMENT",0)) "RTN","EDPLPCE",53,0) S EDPSRC="EDP TRACKING LOG" "RTN","EDPLPCE",54,0) S EDPDATA("ENCOUNTER",1,"PATIENT")=DFN "RTN","EDPLPCE",55,0) S EDPDATA("ENCOUNTER",1,"HOS LOC")=LOC "RTN","EDPLPCE",56,0) S EDPDATA("ENCOUNTER",1,"SERVICE CATEGORY")="A" "RTN","EDPLPCE",57,0) S EDPDATA("ENCOUNTER",1,"ENCOUNTER TYPE")="P" "RTN","EDPLPCE",58,0) I 'EDPVISIT S EDPDATA("ENCOUNTER",1,"ENC D/T")=TS "RTN","EDPLPCE",59,0) S OK=$$DATA2PCE^PXAPI("EDPDATA",EDPKG,EDPSRC,.EDPVISIT) "RTN","EDPLPCE",60,0) ; "RTN","EDPLPCE",61,0) ; update the visit pointer in 230 "RTN","EDPLPCE",62,0) I '$P(X0,U,12),OK,EDPVISIT D "RTN","EDPLPCE",63,0) . N FDA,DIERR,ERR "RTN","EDPLPCE",64,0) . S FDA(230,LOG_",",.12)=EDPVISIT "RTN","EDPLPCE",65,0) . D FILE^DIE("","FDA","ERR") "RTN","EDPLPCE",66,0) Q "RTN","EDPLPCE",67,0) DELVISIT(LOG) ; Delete visit for stub entry "RTN","EDPLPCE",68,0) N EDPVISIT S EDPVISIT=$P(^EDP(230,LOG,0),U,12) "RTN","EDPLPCE",69,0) Q:'EDPVISIT "RTN","EDPLPCE",70,0) ; "RTN","EDPLPCE",71,0) N FDA,DIERR,ERR "RTN","EDPLPCE",72,0) S FDA(230,LOG_",",.12)="@" "RTN","EDPLPCE",73,0) D FILE^DIE("","FDA","ERR") "RTN","EDPLPCE",74,0) ; "RTN","EDPLPCE",75,0) S OK=$$DELVFILE^PXAPI("ALL",EDPVISIT,"EMERGENCY DEPARTMENT","EDP TRACKING LOG") "RTN","EDPLPCE",76,0) Q "RTN","EDPMAIL") 0^41^B5650063 "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 26 "RTN","EDPMAIL",3,0) ; "RTN","EDPMAIL",4,0) MSG(MSG) ; parse message passed in from SEND^EDPFMON "RTN","EDPMAIL",5,0) N I,PARAM,LOG,ORIFN "RTN","EDPMAIL",6,0) S I=0 F S I=$O(MSG(I)) Q:'I S PARAM($P(MSG(I),"="))=$P(MSG(I),"=",2,99) "RTN","EDPMAIL",7,0) S LOG=$$VAL("id"),ORIFN=$$VAL("orifn") "RTN","EDPMAIL",8,0) I $$VAL("command")="newOrder" D NEW "RTN","EDPMAIL",9,0) I $$VAL("command")="updateOrder" D UPD "RTN","EDPMAIL",10,0) I $$VAL("command")="deleteOrder" D DEL "RTN","EDPMAIL",11,0) I $$VAL("command")="verifyOrder" D VER "RTN","EDPMAIL",12,0) I $$VAL("command")="completeOrder" D COMP "RTN","EDPMAIL",13,0) I $$VAL("command")="patientCheckIn" D CHKIN "RTN","EDPMAIL",14,0) I $$VAL("command")="convertVisit" D EN1^EDPCONV(.PARAM) "RTN","EDPMAIL",15,0) I $$VAL("command")="convertConfiguration" D ENC^EDPCONV(.PARAM) "RTN","EDPMAIL",16,0) Q "RTN","EDPMAIL",17,0) ; "RTN","EDPMAIL",18,0) NEW ; add new order "RTN","EDPMAIL",19,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",20,0) N X,Y,DIC,DA "RTN","EDPMAIL",21,0) S DIC="^EDP(230,"_LOG_",8,",DIC(0)="LZ",DA(1)=LOG,X=+ORIFN "RTN","EDPMAIL",22,0) S DIC("DR")=".02///"_$$VAL("pkg")_";.03///N;.05///"_$$VAL("release") "RTN","EDPMAIL",23,0) S:$$VAL("stat") DIC("DR")=DIC("DR")_";.04///1" "RTN","EDPMAIL",24,0) D FILE^DICN "RTN","EDPMAIL",25,0) Q "RTN","EDPMAIL",26,0) UPD ; update order "RTN","EDPMAIL",27,0) Q:'LOG Q:'ORIFN Q:'$L($$VAL("sts")) "RTN","EDPMAIL",28,0) N IEN S IEN=$$FIND Q:IEN<1 "RTN","EDPMAIL",29,0) I $D(^EDP(230,LOG,8,+IEN,0)) S $P(^(0),U,3)=$$VAL("sts") "RTN","EDPMAIL",30,0) Q "RTN","EDPMAIL",31,0) DEL ; delete order "RTN","EDPMAIL",32,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",33,0) N DIK,DA "RTN","EDPMAIL",34,0) S DA=$$FIND Q:DA<1 "RTN","EDPMAIL",35,0) S DIK="^EDP(230,"_LOG_",8,",DA(1)=LOG "RTN","EDPMAIL",36,0) D ^DIK "RTN","EDPMAIL",37,0) Q "RTN","EDPMAIL",38,0) VER ; verify order "RTN","EDPMAIL",39,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",40,0) N IEN S IEN=$$FIND Q:IEN<1 "RTN","EDPMAIL",41,0) I $P($G(^EDP(230,LOG,8,IEN,0)),U,3)'="C" S $P(^(0),U,3)="A" "RTN","EDPMAIL",42,0) Q "RTN","EDPMAIL",43,0) COMP ; complete order "RTN","EDPMAIL",44,0) Q:'LOG Q:'ORIFN "RTN","EDPMAIL",45,0) N IEN S IEN=$$FIND Q:IEN<1 "RTN","EDPMAIL",46,0) S $P(^(0),U,3)="C" "RTN","EDPMAIL",47,0) Q "RTN","EDPMAIL",48,0) ; "RTN","EDPMAIL",49,0) FIND() ; -- return ien of ORIFN in multiple "RTN","EDPMAIL",50,0) N Y S Y=+$O(^EDP(230,LOG,8,"B",+ORIFN,0)) "RTN","EDPMAIL",51,0) Q Y "RTN","EDPMAIL",52,0) ; "RTN","EDPMAIL",53,0) VAL(X) ; -- return parameter value or null if undefined "RTN","EDPMAIL",54,0) Q $G(PARAM(X)) "RTN","EDPMAIL",55,0) ; "RTN","EDPMAIL",56,0) CHKIN ; check in a patient "RTN","EDPMAIL",57,0) Q:'$$VAL("dfn") Q:'$$VAL("ssn") Q:'$L($$VAL("ptNm")) Q:'$L($$VAL("site")) "RTN","EDPMAIL",58,0) N NEWPT "RTN","EDPMAIL",59,0) S NEWPT="dfn="_$$VAL("dfn")_$C(9)_"name="_$$VAL("ptNm")_$C(9)_"dob="_$$VAL("dob")_$C(9)_"ssn="_$$VAL("ssn") "RTN","EDPMAIL",60,0) N AREA "RTN","EDPMAIL",61,0) S AREA=$O(^EDPB(231.9,"C",$$VAL("site"),0)) Q:'AREA "RTN","EDPMAIL",62,0) N EDPXML,EDPSITE "RTN","EDPMAIL",63,0) S EDPUSER=DUZ,EDPSITE=$$STA^XUAF4(DUZ(2)) "RTN","EDPMAIL",64,0) D ADD^EDPLOGA(NEWPT,AREA,$$VAL("time"),0) "RTN","EDPMAIL",65,0) Q "RTN","EDPQAR") 0^42^B2509873 "RTN","EDPQAR",1,0) EDPQAR ;SLC/KCM - Log Area Information "RTN","EDPQAR",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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) S X("emptyIEN")=+$O(^EDPB(233.1,"B","edp.reserved.novalue",0)) "RTN","EDPQAR",14,0) S X("errorIEN")=+$O(^EDPB(233.1,"B","edp.disposition.error",0)) "RTN","EDPQAR",15,0) S X("evalIEN")=+$O(^EDPB(233.1,"B","edp.disposition.nec",0)) "RTN","EDPQAR",16,0) S X("leftIEN")=+$O(^EDPB(233.1,"B","edp.disposition.left",0)) "RTN","EDPQAR",17,0) D XML^EDPX($$XMLA^EDPX("params",.X)) "RTN","EDPQAR",18,0) Q "RTN","EDPQAR",19,0) DFLTAREA ; return the default area for a site "RTN","EDPQAR",20,0) N X,DFLT "RTN","EDPQAR",21,0) S DFLT=$O(^EDPB(231.9,"C",EDPSITE,0)) "RTN","EDPQAR",22,0) I 'DFLT D ADDAREA S DFLT=$O(^EDPB(231.9,"C",EDPSITE,0)) "RTN","EDPQAR",23,0) S X("area")=DFLT "RTN","EDPQAR",24,0) I X("area") S X("areaNm")=$P(^EDPB(231.9,X("area"),0),U) "RTN","EDPQAR",25,0) D XML^EDPX($$XMLA^EDPX("user",.X)) "RTN","EDPQAR",26,0) Q "RTN","EDPQAR",27,0) ADDAREA ; add area if none is defined for this site "RTN","EDPQAR",28,0) N FDA,FDAIEN,DIERR,ERR "RTN","EDPQAR",29,0) S FDA(231.9,"+1,",.01)="Emergency Department" "RTN","EDPQAR",30,0) S FDA(231.9,"+1,",.02)=EDPSITE "RTN","EDPQAR",31,0) D UPDATE^DIE("","FDA","FDAIEN","ERR") "RTN","EDPQAR",32,0) Q:$D(DIERR) "RTN","EDPQAR",33,0) ; "RTN","EDPQAR",34,0) N AREA S AREA=FDAIEN(1) "RTN","EDPQAR",35,0) D RESET^EDPBRS(AREA) "RTN","EDPQAR",36,0) Q "RTN","EDPQDB") 0^43^B27455627 "RTN","EDPQDB",1,0) EDPQDB ;SLC/KCM - Display Active Log Entries "RTN","EDPQDB",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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=$$NOW^XLFDT "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) . Q:$P(^EDPB(231.8,BED,0),U,4) ; inactive bed "RTN","EDPQDB",20,0) . S BEDS(SEQ,BED)="",BEDS("B",BED,SEQ)="" "RTN","EDPQDB",21,0) ; "RTN","EDPQDB",22,0) ; Insert the active log entries into the correct sequence for the beds "RTN","EDPQDB",23,0) S BED=0 F S BED=$O(^EDP(230,"AL",EDPSITE,AREA,BED)) Q:'BED D "RTN","EDPQDB",24,0) . S LOG=0 F S LOG=$O(^EDP(230,"AL",EDPSITE,AREA,BED,LOG)) Q:'LOG D "RTN","EDPQDB",25,0) . . I '$D(BEDS("B",BED)) S BEDS(99999,BED)="",BEDS("B",BED,99999)="" "RTN","EDPQDB",26,0) . . S SEQ=$O(BEDS("B",BED,0)) "RTN","EDPQDB",27,0) . . S ACU=$P($G(^EDP(230,LOG,3)),U,3) S:'ACU ACU=99 "RTN","EDPQDB",28,0) . . S BEDS(SEQ,BED,ACU,LOG)="" "RTN","EDPQDB",29,0) ; "RTN","EDPQDB",30,0) ; Loop thru the sequence of beds to create display board rows "RTN","EDPQDB",31,0) D BLDDUP^EDPQLP(.DUP,AREA) "RTN","EDPQDB",32,0) S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D "RTN","EDPQDB",33,0) . S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D "RTN","EDPQDB",34,0) . . I $L(BOARD),($P(^EDPB(231.8,BED,0),U,11)'=BOARD) Q "RTN","EDPQDB",35,0) . . S DWHEN=$P(^EDPB(231.8,BED,0),U,7) "RTN","EDPQDB",36,0) . . ; never display DWHEN=2 "RTN","EDPQDB",37,0) . . Q:DWHEN=2 "RTN","EDPQDB",38,0) . . ; always display DWHEN=1 "RTN","EDPQDB",39,0) . . I ($D(BEDS(SEQ,BED))<10)&(DWHEN=1) D EMPTY(BED) Q "RTN","EDPQDB",40,0) . . ; display if occupied DWHEN=0 "RTN","EDPQDB",41,0) . . S ACU=0 F S ACU=$O(BEDS(SEQ,BED,ACU)) Q:'ACU D "RTN","EDPQDB",42,0) . . . S LOG=0 F S LOG=$O(BEDS(SEQ,BED,ACU,LOG)) Q:'LOG D OCCUPIED(LOG,.DUP) "RTN","EDPQDB",43,0) ; "RTN","EDPQDB",44,0) D XML^EDPX("") "RTN","EDPQDB",45,0) Q "RTN","EDPQDB",46,0) EMPTY(BED) ; add row if unoccupied be should show "RTN","EDPQDB",47,0) N ROW "RTN","EDPQDB",48,0) S ROW("bed")=BED "RTN","EDPQDB",49,0) S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6) "RTN","EDPQDB",50,0) D XML^EDPX($$XMLA^EDPX("row",.ROW)) "RTN","EDPQDB",51,0) Q "RTN","EDPQDB",52,0) OCCUPIED(LOG,DUP) ; add log entry row "RTN","EDPQDB",53,0) N X0,X1,X3,ROW "RTN","EDPQDB",54,0) S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)) "RTN","EDPQDB",55,0) S ROW("id")=LOG "RTN","EDPQDB",56,0) S ROW("bed")=BED "RTN","EDPQDB",57,0) S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6) "RTN","EDPQDB",58,0) S ROW("ptNm")=$P($P(X0,U,4),",") "RTN","EDPQDB",59,0) S ROW("last4")=$P(X0,U,11) "RTN","EDPQDB",60,0) S ROW("complaint")=$P(X1,U,1) "RTN","EDPQDB",61,0) S ROW("comment")=$P(X3,U,8) "RTN","EDPQDB",62,0) S ROW("md")=$P(X3,U,5) "RTN","EDPQDB",63,0) S ROW("mdNm")=$$INITIAL($P(X3,U,5)) "RTN","EDPQDB",64,0) S ROW("rn")=$P(X3,U,6) "RTN","EDPQDB",65,0) S ROW("rnNm")=$$INITIAL($P(X3,U,6)) "RTN","EDPQDB",66,0) S ROW("res")=$P(X3,U,7) "RTN","EDPQDB",67,0) S ROW("resNm")=$$INITIAL($P(X3,U,7)) "RTN","EDPQDB",68,0) S ROW("status")=$P(X3,U,2) "RTN","EDPQDB",69,0) S ROW("statusNm")=$$CAB($P(X3,U,2)) "RTN","EDPQDB",70,0) S ROW("acuity")=$P(X3,U,3) "RTN","EDPQDB",71,0) S ROW("acuityNm")=$$CAB($P(X3,U,3)) "RTN","EDPQDB",72,0) S ROW("emins")=$$MIN($P(X0,U,8)) "RTN","EDPQDB",73,0) S ROW("lmins")=$$LMIN(LOG) "RTN","EDPQDB",74,0) S ROW("similar")=$$SIM^EDPQLP(ROW("ptNm"),ROW("last4"),.DUP) "RTN","EDPQDB",75,0) ; "RTN","EDPQDB",76,0) N STS D ORDSTS(LOG,.STS) "RTN","EDPQDB",77,0) S ROW("lab")=STS("LP")_"/"_STS("LC") ; lab pending / lab complete "RTN","EDPQDB",78,0) S ROW("labUrg")=$S(STS("LS"):2,STS("LP"):1,1:0) ; any STAT labs? "RTN","EDPQDB",79,0) S ROW("rad")=STS("RP")_"/"_STS("RC") ; img pending / img complete "RTN","EDPQDB",80,0) S ROW("radUrg")=$S(STS("RS"):2,STS("RP"):1,1:0) ; any STAT imgs? "RTN","EDPQDB",81,0) S ROW("ordNew")=STS("ON") ; number of new orders "RTN","EDPQDB",82,0) S ROW("minLab")=STS("LO") ; oldest pending/active lab "RTN","EDPQDB",83,0) S ROW("minRad")=STS("RO") ; oldest pending/active img "RTN","EDPQDB",84,0) S ROW("minVer")=STS("OO") ; oldest "new" order "RTN","EDPQDB",85,0) D XML^EDPX($$XMLA^EDPX("row",.ROW)) "RTN","EDPQDB",86,0) Q "RTN","EDPQDB",87,0) INITIAL(LOCID) ; Return initials "RTN","EDPQDB",88,0) Q:'LOCID "" "RTN","EDPQDB",89,0) Q $P(^VA(200,LOCID,0),U,2) "RTN","EDPQDB",90,0) ;N IEN S IEN=$O(^EDPB(231.7,"AD",EDPSITE,AREA,LOCID,0)) "RTN","EDPQDB",91,0) ;Q:IEN $P(^EDPB(231.7,IEN,0),U,7) "RTN","EDPQDB",92,0) ;Q "" "RTN","EDPQDB",93,0) ; "RTN","EDPQDB",94,0) CAB(IEN) ; Return code abbreviation "RTN","EDPQDB",95,0) Q:IEN $P(^EDPB(233.1,IEN,0),U,3) "RTN","EDPQDB",96,0) Q "" "RTN","EDPQDB",97,0) MIN(START) ; Return elapse time "RTN","EDPQDB",98,0) I 'START Q "" "RTN","EDPQDB",99,0) Q $$FMDIFF^XLFDT(EDPTIME,START,2)\60 "RTN","EDPQDB",100,0) ; "RTN","EDPQDB",101,0) LMIN(LOG) ; Return time at location "RTN","EDPQDB",102,0) N IEN,TS,TM S TM=0 "RTN","EDPQDB",103,0) S TS=0 F S TS=$O(^EDP(230.1,"ADR",LOG,TS)) Q:'TS D Q:TM "RTN","EDPQDB",104,0) . S IEN=0 F S IEN=$O(^EDP(230.1,"ADR",LOG,TS,IEN)) Q:'IEN D Q:TM "RTN","EDPQDB",105,0) . . I +$P($G(^EDP(230.1,IEN,3)),U,4) S TM=$P($G(^EDP(230.1,IEN,0)),U,2) "RTN","EDPQDB",106,0) I TM Q $$FMDIFF^XLFDT(EDPTIME,TM,2)\60 "RTN","EDPQDB",107,0) Q 0 "RTN","EDPQDB",108,0) ; "RTN","EDPQDB",109,0) ORDSTS(LOG,STS) ; compute statuses of orders "RTN","EDPQDB",110,0) N IEN,X0 "RTN","EDPQDB",111,0) S STS("OO")=9999999,STS("ON")=0 ; oldest order, new orders "RTN","EDPQDB",112,0) S STS("LP")=0,STS("LO")=9999999,STS("LS")=0,STS("LC")=0 "RTN","EDPQDB",113,0) S STS("RP")=0,STS("RO")=9999999,STS("RS")=0,STS("RC")=0 "RTN","EDPQDB",114,0) S IEN=0 F S IEN=$O(^EDP(230,LOG,8,IEN)) Q:'IEN D "RTN","EDPQDB",115,0) . S X0=^EDP(230,LOG,8,IEN,0) "RTN","EDPQDB",116,0) . I ($P(X0,U,3)="N")!($P(X0,U,3)="A") D "RTN","EDPQDB",117,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) "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^45^B19401035 "RTN","EDPQLE",1,0) EDPQLE ;SLC/KCM - Retrieve Log Entry "RTN","EDPQLE",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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=$$NOW^XLFDT "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("dfn")=$P(X0,U,6) "RTN","EDPQLE",22,0) S X("ssn")=$S(X("dfn"):$P(^DPT(X("dfn"),0),U,9),1:"") "RTN","EDPQLE",23,0) S X("dob")=$$DOB(X("dfn")) "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) I $P($G(^EDPB(231.9,AREA,1)),U,2) D "RTN","EDPQLE",45,0) . D DIAGPCE($P(X0,U,12)) "RTN","EDPQLE",46,0) E D "RTN","EDPQLE",47,0) . D DIAGFREE(LOG) "RTN","EDPQLE",48,0) ; "RTN","EDPQLE",49,0) I X("dfn") D PRF^EDPFPTC(X("dfn")) ; patient record flags "RTN","EDPQLE",50,0) ; "RTN","EDPQLE",51,0) D XML^EDPX("") "RTN","EDPQLE",52,0) Q "RTN","EDPQLE",53,0) DIAGPCE(EDPVISIT) ; add PCE diagnoses "RTN","EDPQLE",54,0) Q:'EDPVISIT "RTN","EDPQLE",55,0) N I,X,CODE "RTN","EDPQLE",56,0) K ^TMP("PXKENC",$J) "RTN","EDPQLE",57,0) D ENCEVENT^PXAPI(EDPVISIT) "RTN","EDPQLE",58,0) S I=0 F S I=$O(^TMP("PXKENC",$J,EDPVISIT,"POV",I)) Q:'I D "RTN","EDPQLE",59,0) . K X S X=^TMP("PXKENC",$J,EDPVISIT,"POV",I,0) "RTN","EDPQLE",60,0) . S X("type")="POV" "RTN","EDPQLE",61,0) . S CODE=$P(X,U) S:CODE CODE=$P(^ICD9(CODE,0),U) "RTN","EDPQLE",62,0) . S X("code")=$P(^ICD9($P(X,U),0),U) "RTN","EDPQLE",63,0) . S X("label")=^AUTNPOV($P(X,U,4),0) "RTN","EDPQLE",64,0) . S X("primary")=($P(X,U,12)="P") "RTN","EDPQLE",65,0) . D XML^EDPX($$XMLA^EDPX("diagnosis",.X)) "RTN","EDPQLE",66,0) S I=0 F S I=$O(^TMP("PXKENC",$J,EDPVISIT,"CPT",I)) Q:'I D "RTN","EDPQLE",67,0) . K X S X=^TMP("PXKENC",$J,EDPVISIT,"CPT",I,0) "RTN","EDPQLE",68,0) . S X("type")="CPT" "RTN","EDPQLE",69,0) . S CODE=$O(^ICPT("B",$P(X,U),0)) S:CODE CODE=$P(^ICPT(CODE,0),U) "RTN","EDPQLE",70,0) . S X("code")=CODE "RTN","EDPQLE",71,0) . S X("label")=^AUTNPOV($P(X,U,4),0) "RTN","EDPQLE",72,0) . S X("quantity")=$P(X,U,16) "RTN","EDPQLE",73,0) . D XML^EDPX($$XMLA^EDPX("proc",.X)) "RTN","EDPQLE",74,0) Q "RTN","EDPQLE",75,0) DIAGFREE(LOG) ; add free text diagnoses "RTN","EDPQLE",76,0) N DIAG,CODE,LABEL,X4 "RTN","EDPQLE",77,0) S DIAG=0 F S DIAG=$O(^EDP(230,LOG,4,DIAG)) Q:'DIAG D "RTN","EDPQLE",78,0) . S X4=^EDP(230,LOG,4,DIAG,0),X4("code")=$P(X4,U,2),X4("label")=$P(X4,U,1) "RTN","EDPQLE",79,0) . D XML^EDPX($$XMLA^EDPX("diagnosis",.X4)) "RTN","EDPQLE",80,0) Q "RTN","EDPQLE",81,0) DOB(DFN) ; Return date of birth (external) "RTN","EDPQLE",82,0) I 'DFN Q "" "RTN","EDPQLE",83,0) N VA,VADM,X,Y "RTN","EDPQLE",84,0) D DEM^VADPT "RTN","EDPQLE",85,0) Q $P(VADM(3),U,2)_" Age "_VADM(4) "RTN","EDPQLE",86,0) ; "RTN","EDPQLE",87,0) BEDS ; add a list of available room/beds for this area "RTN","EDPQLE",88,0) D XML^EDPX("") "RTN","EDPQLE",89,0) N BED,X0 "RTN","EDPQLE",90,0) S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D "RTN","EDPQLE",91,0) . S X0=^EDPB(231.8,BED,0) "RTN","EDPQLE",92,0) . ; QUIT if inactive bed "RTN","EDPQLE",93,0) . I $P(X0,U,4) Q "RTN","EDPQLE",94,0) . ; QUIT if occupied, unless own bed or multi-assign "RTN","EDPQLE",95,0) . I $D(^EDP(230,"AL",EDPSITE,AREA,BED)),((BED'=CURBED)&'$P(X0,U,9)) Q "RTN","EDPQLE",96,0) . ; "RTN","EDPQLE",97,0) . S X("data")=BED "RTN","EDPQLE",98,0) . S X("label")=$P(X0,U,6)_" ("_$P(X0,U)_")" "RTN","EDPQLE",99,0) . D XML^EDPX($$XMLA^EDPX("bed",.X)) "RTN","EDPQLE",100,0) D XML^EDPX("") "RTN","EDPQLE",101,0) Q "RTN","EDPQLE",102,0) PERSONS ; add the internal/external values for persons "RTN","EDPQLE",103,0) N ROLE,NAME,LOCID,IEN,X "RTN","EDPQLE",104,0) D XML^EDPX("") "RTN","EDPQLE",105,0) F ROLE="provider","nurse","resident" S LOCID=$G(PERSON(ROLE)) D "RTN","EDPQLE",106,0) . Q:'LOCID "RTN","EDPQLE",107,0) . ; S IEN=$O(^EDPB(231.7,"AD",EDPSITE,AREA,LOCID,0)) --NtoL "RTN","EDPQLE",108,0) . ; Q:'IEN --NtoL "RTN","EDPQLE",109,0) . S NAME=$P(^VA(200,LOCID,0),U) "RTN","EDPQLE",110,0) . S X("data")=LOCID,X("label")=NAME "RTN","EDPQLE",111,0) . D XML^EDPX($$XMLA^EDPX(ROLE,.X)) "RTN","EDPQLE",112,0) D XML^EDPX("") "RTN","EDPQLE",113,0) Q "RTN","EDPQLE",114,0) REQ(VAL) ; return the fields required to close this entry "RTN","EDPQLE",115,0) ; called from LOG, AREA is assumed to be defined "RTN","EDPQLE",116,0) N NEED,PARAM "RTN","EDPQLE",117,0) S PARAM=$G(^EDPB(231.9,AREA,1)),NEED="" "RTN","EDPQLE",118,0) I $P(PARAM,U,1) S $P(NEED,",",1)="diag" "RTN","EDPQLE",119,0) I $P(PARAM,U,3) S $P(NEED,",",2)="disp" "RTN","EDPQLE",120,0) I $$DLYREQ,$$NOTOBS,$$EXCEED S $P(NEED,",",3)="delay" "RTN","EDPQLE",121,0) Q NEED "RTN","EDPQLE",122,0) ; "RTN","EDPQLE",123,0) DLYREQ() ; return true if delay params set to required "RTN","EDPQLE",124,0) ; called from REQ, PARAM is assumed to be defined "RTN","EDPQLE",125,0) Q $P(PARAM,U,4)&$P(PARAM,U,5) "RTN","EDPQLE",126,0) ; "RTN","EDPQLE",127,0) NOTOBS() ; return true if not in observation status "RTN","EDPQLE",128,0) ; called from REQ, VAL is assumed to be defined "RTN","EDPQLE",129,0) N STS S STS=+$G(VAL("status")) "RTN","EDPQLE",130,0) Q:'STS 1 "RTN","EDPQLE",131,0) Q:$P(^EDPB(233.1,STS,0),U,5)["O" 0 "RTN","EDPQLE",132,0) Q 1 "RTN","EDPQLE",133,0) ; "RTN","EDPQLE",134,0) EXCEED() ; return true if delay time exceeded "RTN","EDPQLE",135,0) ; called from REQ, VAL and PARAM are assumed to be defined "RTN","EDPQLE",136,0) N IN S IN=$G(VAL("inTS")) "RTN","EDPQLE",137,0) N MAX S MAX=$P(PARAM,U,5) "RTN","EDPQLE",138,0) Q ($$FMDIFF^XLFDT(EDPTIME,IN,2)\60)>MAX "RTN","EDPQLE1") 0^46^B4668105 "RTN","EDPQLE1",1,0) EDPQLE1 ;SLC/KCM - Retrive Log Entry - Supporting Info "RTN","EDPQLE1",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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,PER "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),PER=$P(X0,U) "RTN","EDPQLE1",23,0) . I '$$ACTIVE^XUSER(PER) Q "RTN","EDPQLE1",24,0) . I ("PR"[ROLE),'$$PROVIDER^XUSER(PER) Q "RTN","EDPQLE1",25,0) . D XML^EDPX($$XMLS^EDPX(LABEL,PER,$P(^VA(200,PER,0),U))) "RTN","EDPQLE1",26,0) D XML^EDPX("") "RTN","EDPQLE1",27,0) Q "RTN","EDPQLE1",28,0) CODES(LABEL,SETNM) ; build nodes for set of codes "RTN","EDPQLE1",29,0) D XML^EDPX("<"_LABEL_"List>") "RTN","EDPQLE1",30,0) I "^arrival^acuity^status^disposition^delay^"[(U_LABEL_U) D "RTN","EDPQLE1",31,0) . N NOVAL S NOVAL=+$O(^EDPB(233.1,"B","edp.reserved.novalue",0)) "RTN","EDPQLE1",32,0) . D XML^EDPX($$XMLS^EDPX(LABEL,NOVAL," ")) ; non-selected value "RTN","EDPQLE1",33,0) ; "RTN","EDPQLE1",34,0) I $D(^EDPB(233.2,"B",EDPSITE_"."_SETNM)) S SETNM=EDPSITE_"."_SETNM I 1 "RTN","EDPQLE1",35,0) E S SETNM="edp."_SETNM "RTN","EDPQLE1",36,0) ; "RTN","EDPQLE1",37,0) N SET,SEQ,I,X0,IEN,SHOW "RTN","EDPQLE1",38,0) S SET=$O(^EDPB(233.2,"B",SETNM,0)) "RTN","EDPQLE1",39,0) S SEQ=0 F S SEQ=$O(^EDPB(233.2,SET,1,"B",SEQ)) Q:'SEQ D "RTN","EDPQLE1",40,0) . S I=0 F S I=$O(^EDPB(233.2,SET,1,"B",SEQ,I)) Q:'I D "RTN","EDPQLE1",41,0) . . S X0=^EDPB(233.2,SET,1,I,0) "RTN","EDPQLE1",42,0) . . Q:$P(X0,U,3) ; inactive "RTN","EDPQLE1",43,0) . . S IEN=$P(X0,U,2) "RTN","EDPQLE1",44,0) . . S SHOW=$P(X0,U,4) "RTN","EDPQLE1",45,0) . . I SHOW="" S SHOW=$P(^EDPB(233.1,IEN,0),U,2) "RTN","EDPQLE1",46,0) . . D XML^EDPX($$XMLS^EDPX(LABEL,IEN,SHOW)) "RTN","EDPQLE1",47,0) ; "RTN","EDPQLE1",48,0) D XML^EDPX("") "RTN","EDPQLE1",49,0) Q "RTN","EDPQLP") 0^47^B5911520 "RTN","EDPQLP",1,0) EDPQLP ;SLC/KCM - Log Entry Patients "RTN","EDPQLP",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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,DFN "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),LAST4=$P(X0,U,11),DFN=$P(X0,U,6) "RTN","EDPQLP",16,0) . S SSN="" I DFN S SSN=$P(^DPT(DFN,0),U,9) "RTN","EDPQLP",17,0) . S BED=$P($G(^EDP(230,IEN,3)),U,4) "RTN","EDPQLP",18,0) . S SEQ=0 "RTN","EDPQLP",19,0) . I BED S SEQ=$P($G(^EDPB(231.8,BED,0)),U,5) "RTN","EDPQLP",20,0) . I 'SEQ S SEQ=999999 "RTN","EDPQLP",21,0) . I BED S BED=$P(^EDPB(231.8,BED,0),U,6) "RTN","EDPQLP",22,0) . S LST(SEQ,IEN)=NAME_U_SSN_U_LAST4_U_BED_U_$$SIM(NAME,LAST4,.DUP) "RTN","EDPQLP",23,0) ; "RTN","EDPQLP",24,0) D XML^EDPX("") "RTN","EDPQLP",25,0) S SEQ=0 F S SEQ=$O(LST(SEQ)) Q:'SEQ D "RTN","EDPQLP",26,0) . S IEN=0 F S IEN=$O(LST(SEQ,IEN)) Q:'IEN D "RTN","EDPQLP",27,0) . . S X("id")=IEN "RTN","EDPQLP",28,0) . . S X("seq")=SEQ "RTN","EDPQLP",29,0) . . S X("name")=$P(LST(SEQ,IEN),U) "RTN","EDPQLP",30,0) . . S X("ssn")=$P(LST(SEQ,IEN),U,2) "RTN","EDPQLP",31,0) . . S X("last4")=$P(LST(SEQ,IEN),U,3) "RTN","EDPQLP",32,0) . . S X("bed")=$P(LST(SEQ,IEN),U,4) "RTN","EDPQLP",33,0) . . S X("same")=$P(LST(SEQ,IEN),U,5) "RTN","EDPQLP",34,0) . . D XML^EDPX($$XMLA^EDPX("log",.X)) "RTN","EDPQLP",35,0) D XML^EDPX("") "RTN","EDPQLP",36,0) Q "RTN","EDPQLP",37,0) BLDDUP(DUP,AREA) ; Build duplicate name/last4 counters "RTN","EDPQLP",38,0) ; called from GET^EDPQLP, GET^EDPQDB -- expect EDPSITE "RTN","EDPQLP",39,0) N X,IEN,CNT "RTN","EDPQLP",40,0) S X="" F S X=$O(^EDP(230,"ADUP",EDPSITE,AREA,X)) Q:X="" D "RTN","EDPQLP",41,0) . S IEN=0,CNT=0 "RTN","EDPQLP",42,0) . F S IEN=$O(^EDP(230,"ADUP",EDPSITE,AREA,X,IEN)) Q:'IEN S CNT=CNT+1 "RTN","EDPQLP",43,0) . S DUP(X)=CNT "RTN","EDPQLP",44,0) Q "RTN","EDPQLP",45,0) SIM(NAME,LAST4,DUP) ; Return true if similar patient name/last4 "RTN","EDPQLP",46,0) I $L(LAST4),$G(DUP(LAST4))>1 Q 1 "RTN","EDPQLP",47,0) I $L(NAME),$G(DUP($P(NAME,",")))>1 Q 1 "RTN","EDPQLP",48,0) Q 0 "RTN","EDPQLP",49,0) ; "RTN","EDPQLP",50,0) CLOSED(AREA,PARTIAL) ; find matches on name "RTN","EDPQLP",51,0) S PARTIAL=$$UP^XLFSTR(PARTIAL) "RTN","EDPQLP",52,0) Q:PARTIAL="" "RTN","EDPQLP",53,0) ; "RTN","EDPQLP",54,0) N IEN,NAME,X "RTN","EDPQLP",55,0) S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,PARTIAL),-1) "RTN","EDPQLP",56,0) F S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,NAME)) Q:$E(NAME,1,$L(PARTIAL))'=PARTIAL Q:NAME="" D "RTN","EDPQLP",57,0) . S IEN=0 F S IEN=$O(^EDP(230,"PN",EDPSITE,AREA,NAME,IEN)) Q:'IEN D "RTN","EDPQLP",58,0) . . S X("id")=IEN,X("name")=NAME,X("inTS")=$P(^EDP(230,IEN,0),U,8) "RTN","EDPQLP",59,0) . . D XML^EDPX($$XMLA^EDPX("visit",.X)) "RTN","EDPQLP",60,0) Q "RTN","EDPRPT") 0^10^B7993997 "RTN","EDPRPT",1,0) EDPRPT ;SLC/MKB - Reports "RTN","EDPRPT",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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) Q $$NOW^XLFDT "RTN","EDPRPT",36,0) ; "RTN","EDPRPT",37,0) PROV(MD) ; add list of assigned providers to XML "RTN","EDPRPT",38,0) N I,X0,X "RTN","EDPRPT",39,0) D XML^EDPX("") "RTN","EDPRPT",40,0) S I=0 F S I=$O(MD(I)) Q:I<1 D "RTN","EDPRPT",41,0) . S X0=$G(^VA(200,I,0)),X="" "RTN","EDPRPT",42,0) . D XML^EDPX(X) "RTN","EDPRPT",43,0) D XML^EDPX("") "RTN","EDPRPT",44,0) Q "RTN","EDPRPT",45,0) ; "RTN","EDPRPT",46,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT",47,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,3) ;code "RTN","EDPRPT",48,0) Q "" "RTN","EDPRPT",49,0) ; "RTN","EDPRPT",50,0) EPERS(IEN) ; Return external value for a Person (file 200) "RTN","EDPRPT",51,0) Q:IEN $P($G(^VA(200,IEN,0)),U) "RTN","EDPRPT",52,0) Q "" "RTN","EDPRPT",53,0) ; "RTN","EDPRPT",54,0) EDATE(FMDT) ; Return external value for a Date/Time "RTN","EDPRPT",55,0) Q:FMDT $TR($$FMTE^XLFDT(FMDT,"2M"),"@"," ") ;MM/DD/YY HH:MM "RTN","EDPRPT",56,0) Q "" "RTN","EDPRPT",57,0) ; "RTN","EDPRPT",58,0) ETIME(MINS) ; Return #minutes as HH:MM "RTN","EDPRPT",59,0) N H,M,Y "RTN","EDPRPT",60,0) S H=MINS\60,M=MINS#60 "RTN","EDPRPT",61,0) S Y=H_":"_$S($L(M)=1:"0"_M,1:M) "RTN","EDPRPT",62,0) Q Y "RTN","EDPRPT",63,0) ; "RTN","EDPRPT",64,0) ASSIGNED(LOG,PCE) ; Return time PieCE was first assigned "RTN","EDPRPT",65,0) N D,I,Y S Y="" "RTN","EDPRPT",66,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",67,0) Q Y "RTN","EDPRPT",68,0) ; "RTN","EDPRPT",69,0) NWBED(LOG) ; Return 1st time non-wait bed was assigned "RTN","EDPRPT",70,0) N D,I,X,Y,BED S Y="" "RTN","EDPRPT",71,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",72,0) . S BED=+$P($G(^EDP(230.1,I,3)),U,4) "RTN","EDPRPT",73,0) . S X=$P($G(^EDPB(231.8,BED,0)),U,9) ;allow multiple assignments? "RTN","EDPRPT",74,0) . I +X=0!(X="false") S Y=D Q "RTN","EDPRPT",75,0) Q Y "RTN","EDPRPT",76,0) ; "RTN","EDPRPT",77,0) ADMIT(LOG) ; Return 1st time admitting disposition was assigned "RTN","EDPRPT",78,0) N D,I,X0,X,Y S Y="" "RTN","EDPRPT",79,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",80,0) . S X0=$G(^EDP(230.1,I,0)) "RTN","EDPRPT",81,0) . I $P(X0,U,11),$P($G(^EDPB(233.1,+$P(X0,U,11),0)),U,5)["A" S Y=D "RTN","EDPRPT",82,0) Q Y "RTN","EDPRPT1") 0^11^B33201845 "RTN","EDPRPT1",1,0) EDPRPT1 ;SLC/MKB - Activity Report "RTN","EDPRPT1",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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=$$ADMIT^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,X 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 X="" F S X=$O(^EDPB(233.1,"AB","disposition",X)) Q:X="" D "RTN","EDPRPT1",109,0) . S 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^12^B18747692 "RTN","EDPRPT10",1,0) EDPRPT10 ;SLC/MKB - Admissions Report "RTN","EDPRPT10",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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:DISP="" 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=$$ADMIT^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 I,DISP "RTN","EDPRPT10",85,0) ;F D="VA","T","ICU","OBS","ALL" D "RTN","EDPRPT10",86,0) S DISP="" F S DISP=$O(^EDPB(233.1,"AB","disposition",DISP)) Q:DISP="" D "RTN","EDPRPT10",87,0) . Q:'$$VADMIT^EDPRPT2(DISP) "RTN","EDPRPT10",88,0) . S CNT(DISP)=0 "RTN","EDPRPT10",89,0) . F I="elapsed","triage","wait","admDec","admDel" S MIN(DISP,I)=0 "RTN","EDPRPT10",90,0) S CNT("ALL")=0 "RTN","EDPRPT10",91,0) F I="elapsed","triage","wait","admDec","admDel" S MIN("ALL",I)=0 "RTN","EDPRPT10",92,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT10",93,0) Q "RTN","EDPRPT10",94,0) ; "RTN","EDPRPT10",95,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT10",96,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT10",97,0) Q "" "RTN","EDPRPT11") 0^13^B8284389 "RTN","EDPRPT11",1,0) EDPRPT11 ;SLC/MKB - Patient Intake Report "RTN","EDPRPT11",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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^14^B15693212 "RTN","EDPRPT2",1,0) EDPRPT2 ;SLC/MKB - Delay Report "RTN","EDPRPT2",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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=$$VADMIT(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=$$ADMIT^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) D:'$G(CSV) XML^EDPX("") "RTN","EDPRPT2",52,0) Q "RTN","EDPRPT2",53,0) ; "RTN","EDPRPT2",54,0) D4 ; return counts and averages "RTN","EDPRPT2",55,0) D XML^EDPX("") "RTN","EDPRPT2",56,0) S X="" "RTN","EDPRPT2",57,0) D XML^EDPX(X) "RTN","EDPRPT2",58,0) S X="" "RTN","EDPRPT2",59,0) D XML^EDPX(X) "RTN","EDPRPT2",60,0) S X="" "RTN","EDPRPT2",62,0) D XML^EDPX(X) "RTN","EDPRPT2",63,0) D XML^EDPX("") "RTN","EDPRPT2",64,0) Q "RTN","EDPRPT2",65,0) ; "RTN","EDPRPT2",66,0) INIT ; Initialize counters and sums "RTN","EDPRPT2",67,0) N I S (CNT,MIN)=0 "RTN","EDPRPT2",68,0) F I="DEC","VA","VA6","VADEL6","6+","23+" S CNT(I)=0 "RTN","EDPRPT2",69,0) F I="DEC","VA","VADEC","VADEL" S MIN(I)=0 "RTN","EDPRPT2",70,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT2",71,0) Q "RTN","EDPRPT2",72,0) ; "RTN","EDPRPT2",73,0) ECODE(IEN) ; Return external value for a Code "RTN","EDPRPT2",74,0) Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name "RTN","EDPRPT2",75,0) Q "" "RTN","EDPRPT2",76,0) ; "RTN","EDPRPT2",77,0) VADMIT(X) ; -- Return 1 or 0, if disposition indicates a VA admission "RTN","EDPRPT2",78,0) I $G(X)="" Q 0 "RTN","EDPRPT2",79,0) N I,Y "RTN","EDPRPT2",80,0) S I=+$O(^EDPB(233.1,"AB","disposition",X,0)) "RTN","EDPRPT2",81,0) S Y=$S($P($G(^EDPB(233.1,I,0)),U,5)["V":1,1:0) "RTN","EDPRPT2",82,0) Q Y "RTN","EDPRPT3") 0^15^B8551745 "RTN","EDPRPT3",1,0) EDPRPT3 ;SLC/MKB - Missed Opportunity Report "RTN","EDPRPT3",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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,I,CNT,ROW,NOW "RTN","EDPRPT3",7,0) D INIT ;set counters to 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"_TAB_"Adm Del"_TAB_"Delay" "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:'$$MISSEDOP(DISP) "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=$$ADMIT^EDPRPT(LOG) "RTN","EDPRPT3",29,0) . S ROW("admDec")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0) "RTN","EDPRPT3",30,0) . S ROW("admDel")=$S(X:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0) "RTN","EDPRPT3",31,0) . S ROW("delayReason")=$$ECODE^EDPRPT2(+$P(X1,U,5)) "RTN","EDPRPT3",32,0) . I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q "RTN","EDPRPT3",33,0) . S X=ROW("id") "RTN","EDPRPT3",34,0) . F I="inTS","complaint","md","acuity","elapsed","triage","wait","disposition","admDec","admDel","delayReason" S X=X_$C(9)_$G(ROW(I)) "RTN","EDPRPT3",35,0) . D ADD^EDPCSV(X) "RTN","EDPRPT3",36,0) D:'$G(CSV) XML^EDPX("") "RTN","EDPRPT3",37,0) ; "RTN","EDPRPT3",38,0) ; return totals, as XML or CSV "RTN","EDPRPT3",39,0) I '$G(CSV) S X=$$XMLA^EDPX("totals",.CNT) D XML^EDPX(X) Q "RTN","EDPRPT3",40,0) N TAB S TAB=$C(9) "RTN","EDPRPT3",41,0) S I="" F S I=$O(CNT(I)) Q:I="" D "RTN","EDPRPT3",42,0) . D BLANK^EDPCSV "RTN","EDPRPT3",43,0) . S X=TAB_TAB_TAB_TAB_"Total "_CNT(I,0)_": "_CNT(I) "RTN","EDPRPT3",44,0) . D ADD^EDPCSV(X) "RTN","EDPRPT3",45,0) Q "RTN","EDPRPT3",46,0) ; "RTN","EDPRPT3",47,0) INIT ; -- initialize counters "RTN","EDPRPT3",48,0) N I,X,X2 S CNT=0 "RTN","EDPRPT3",49,0) S X="" F S X=$O(^EDPB(233.1,"AB","disposition",X)) Q:X="" S I=+$O(^(X,0)) D "RTN","EDPRPT3",50,0) . S X2=$P($G(^EDPB(233.1,I,0)),U,2) "RTN","EDPRPT3",51,0) . I $$MISSEDOP(X) S CNT(X)=0,CNT(X,0)=X2 "RTN","EDPRPT3",52,0) Q "RTN","EDPRPT3",53,0) ; "RTN","EDPRPT3",54,0) MISSEDOP(X) ; -- Return 1 or 0, if disposition indicates a missed opportunity "RTN","EDPRPT3",55,0) I $G(X)="" Q 0 "RTN","EDPRPT3",56,0) N I,Y "RTN","EDPRPT3",57,0) S I=+$O(^EDPB(233.1,"AB","disposition",X,0)) "RTN","EDPRPT3",58,0) S Y=$S($P($G(^EDPB(233.1,I,0)),U,5)["M":1,1:0) "RTN","EDPRPT3",59,0) Q Y "RTN","EDPRPT4") 0^16^B21886528 "RTN","EDPRPT4",1,0) EDPRPT4 ;SLC/MKB - Delay Summary Report "RTN","EDPRPT4",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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,VADM,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)),VADM=$$VADMIT^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=$$ADMIT^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 VADM 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:VADM 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=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^17^B33868084 "RTN","EDPRPT5",1,0) EDPRPT5 ;SLC/MKB - Shift Report "RTN","EDPRPT5",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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=$$ADMIT^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"!(DISP="NVA") OTH(S)=OTH(S)+1 "RTN","EDPRPT5",26,0) .. S:DISP="D" DIE(S)=DIE(S)+1 "RTN","EDPRPT5",27,0) .. S:$$MISSEDOP^EDPRPT3(DISP) 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,$$VADMIT^EDPRPT2(DISP) 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:'$D(CNT(MD)) 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^19^B22243761 "RTN","EDPRPT7",1,0) EDPRPT7 ;SLC/MKB - Exposure Report "RTN","EDPRPT7",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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=0 F S I=$O(RLIST(IEN,I)) Q:I<1 I '$P(RLIST(IEN,I),U,4) 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 TIME,I,X K LIST "RTN","EDPRPT7",75,0) S TIME=0 ;IN-1 ?? "RTN","EDPRPT7",76,0) F S TIME=$O(^EDP(230,"ATI",EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D "RTN","EDPRPT7",77,0) . S I=0 F S I=$O(^EDP(230,"ATI",EDPSITE,TIME,I)) Q:I<1 D "RTN","EDPRPT7",78,0) .. S X=$P($G(^EDP(230,I,0)),U,9) Q:XMAX 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 TIME,I,X K LIST "RTN","EDPRPT7C",66,0) S TIME=0 ;IN-1 ?? "RTN","EDPRPT7C",67,0) F S TIME=$O(^EDP(230,"ATI",EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D "RTN","EDPRPT7C",68,0) . S I=0 F S I=$O(^EDP(230,"ATI",EDPSITE,TIME,I)) Q:I<1 D "RTN","EDPRPT7C",69,0) .. S X=$P($G(^EDP(230,I,0)),U,9) Q:XEND 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)) "RTN","EDPRPT8",15,0) . S CNT=CNT+1,CNT(ACU)=CNT(ACU)+1 "RTN","EDPRPT8",16,0) . ; all admissions "RTN","EDPRPT8",17,0) . S (ADMDEC,ADMDEL)=0 "RTN","EDPRPT8",18,0) . S X=$$ADMIT^EDPRPT(LOG) I X D ;decision to admit "RTN","EDPRPT8",19,0) .. S ADM=ADM+1,ADM(ACU)=ADM(ACU)+1 "RTN","EDPRPT8",20,0) .. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60 "RTN","EDPRPT8",21,0) .. S:ADMDEC MIN("DEC")=MIN("DEC")+ADMDEC,MIN("DEC",ACU)=MIN("DEC",ACU)+ADMDEC "RTN","EDPRPT8",22,0) .. S OUT=$P(X0,U,9) S:OUT="" OUT=NOW "RTN","EDPRPT8",23,0) .. S ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60 "RTN","EDPRPT8",24,0) . I $$VADMIT^EDPRPT2(DISP) D ;VA admissions "RTN","EDPRPT8",25,0) .. S VA=VA+1,VA(ACU)=VA(ACU)+1 "RTN","EDPRPT8",26,0) .. S MIN("VADEC")=MIN("VADEC")+ADMDEC "RTN","EDPRPT8",27,0) .. S MIN("VADEC",ACU)=MIN("VADEC",ACU)+ADMDEC "RTN","EDPRPT8",28,0) .. S MIN("VADEL")=MIN("VADEL")+ADMDEL "RTN","EDPRPT8",29,0) .. S MIN("VADEL",ACU)=MIN("VADEL",ACU)+ADMDEL "RTN","EDPRPT8",30,0) A1 ; return counts and averages "RTN","EDPRPT8",31,0) S I="" F S I=$O(ADM(I)) Q:I="" D ;avg #min admit dec by acuity "RTN","EDPRPT8",32,0) . S MIN("DEC",I)=$S(ADM(I):$$ETIME(MIN("DEC",I)\ADM(I)),1:0) "RTN","EDPRPT8",33,0) . S MIN("VADEC",I)=$S(VA(I):$$ETIME(MIN("VADEC",I)\VA(I)),1:0) "RTN","EDPRPT8",34,0) . S MIN("VADEL",I)=$S(VA(I):$$ETIME(MIN("VADEL",I)\VA(I)),1:0) "RTN","EDPRPT8",35,0) S CNT("total")=CNT,ADM("total")=ADM,VA("total")=VA "RTN","EDPRPT8",36,0) S CNT("type")="Number of Patients",ADM("type")="Number Admitted",VA("type")="Number VA Admitted" "RTN","EDPRPT8",37,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",38,0) S MIN("DEC","total")=$S(ADM:$$ETIME(MIN("DEC")\ADM),1:0) "RTN","EDPRPT8",39,0) S MIN("VADEC","total")=$S(VA:$$ETIME(MIN("VADEC")\VA),1:0) "RTN","EDPRPT8",40,0) S MIN("VADEL","total")=$S(VA:$$ETIME(MIN("VADEL")\VA),1:0) "RTN","EDPRPT8",41,0) ; as CSV "RTN","EDPRPT8",42,0) I $G(CSV) D Q "RTN","EDPRPT8",43,0) . N TAB S TAB=$C(9) "RTN","EDPRPT8",44,0) . S X="Acuity->"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total/Average" "RTN","EDPRPT8",45,0) . D ADD^EDPCSV(X) "RTN","EDPRPT8",46,0) . D ROW("Number of Patients",.CNT) "RTN","EDPRPT8",47,0) . D ROW("Number Admitted",.ADM) "RTN","EDPRPT8",48,0) . D ROW("Number VA Admitted",.VA) "RTN","EDPRPT8",49,0) . M ROW=MIN("DEC") D ROW("Avg All Admit Dec Time",.ROW) K ROW "RTN","EDPRPT8",50,0) . M ROW=MIN("VADEC") D ROW("Avg VA Admit Dec Time",.ROW) K ROW "RTN","EDPRPT8",51,0) . M ROW=MIN("VADEL") D ROW("Avg VA Admit Delay Time",.ROW) K ROW "RTN","EDPRPT8",52,0) ; or as XML "RTN","EDPRPT8",53,0) D XML^EDPX("") "RTN","EDPRPT8",54,0) S X=$$XMLA^EDPX("row",.CNT) D XML^EDPX(X) "RTN","EDPRPT8",55,0) S X=$$XMLA^EDPX("row",.ADM) D XML^EDPX(X) "RTN","EDPRPT8",56,0) S X=$$XMLA^EDPX("row",.VA) D XML^EDPX(X) "RTN","EDPRPT8",57,0) M ROW=MIN("DEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW "RTN","EDPRPT8",58,0) M ROW=MIN("VADEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW "RTN","EDPRPT8",59,0) M ROW=MIN("VADEL") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW "RTN","EDPRPT8",60,0) D XML^EDPX("") "RTN","EDPRPT8",61,0) Q "RTN","EDPRPT8",62,0) ; "RTN","EDPRPT8",63,0) ROW(NAME,LIST) ; add line "RTN","EDPRPT8",64,0) N I S X=NAME "RTN","EDPRPT8",65,0) F I="none","one","two","three","four","five","total" S X=X_TAB_LIST(I) "RTN","EDPRPT8",66,0) D ADD^EDPCSV(X) "RTN","EDPRPT8",67,0) Q "RTN","EDPRPT8",68,0) ; "RTN","EDPRPT8",69,0) INIT ; Initialize acuity counters "RTN","EDPRPT8",70,0) N X S (CNT,ADM,VA)=0 "RTN","EDPRPT8",71,0) F X="none","one","two","three","four","five" D "RTN","EDPRPT8",72,0) . S (CNT(X),ADM(X),VA(X),MIN("DEC",X),MIN("VADEC",X),MIN("VADEL",X))=0 "RTN","EDPRPT8",73,0) F X="DEC","VADEC","VADEL" S MIN(X)=0 "RTN","EDPRPT8",74,0) S NOW=$$NOW^EDPRPT "RTN","EDPRPT8",75,0) Q "RTN","EDPRPT8",76,0) ; "RTN","EDPRPT8",77,0) ECODE(IEN) ; Return external value for an Acuity code "RTN","EDPRPT8",78,0) N X0,X,Y S X0=$G(^EDPB(233.1,+IEN,0)) "RTN","EDPRPT8",79,0) S X=$P(X0,U,3) S:X<1 X=$P(X0,U,4) ;code or nat'l code "RTN","EDPRPT8",80,0) S Y=$S(X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"none") "RTN","EDPRPT8",81,0) Q Y "RTN","EDPRPT8",82,0) ; "RTN","EDPRPT8",83,0) ETIME(MINS) ; Return #minutes as HH:MM "RTN","EDPRPT8",84,0) N H,M,Y "RTN","EDPRPT8",85,0) S H=MINS\60,M=MINS#60 "RTN","EDPRPT8",86,0) S Y=$E("0"_H,1,2)_":"_$E("0"_M,1,2) "RTN","EDPRPT8",87,0) Q Y "RTN","EDPRPT9") 0^22^B1592058 "RTN","EDPRPT9",1,0) EDPRPT9 ;SLC/MKB - Patient Xref Report "RTN","EDPRPT9",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "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^9^B8367733 "RTN","EDPX",1,0) EDPX ;SLC/KCM - Common Utilities "RTN","EDPX",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPX",3,0) ; "RTN","EDPX",4,0) ESC(X) ; Escape for XML transmission "RTN","EDPX",5,0) ; Q $ZCONVERT(X,"O","HTML") ; uncomment for fastest performance on Cache "RTN","EDPX",6,0) ; "RTN","EDPX",7,0) N I,Y,QOT S QOT="""" "RTN","EDPX",8,0) S Y=$P(X,"&") F I=2:1:$L(X,"&") S Y=Y_"&"_$P(X,"&",I) "RTN","EDPX",9,0) S X=Y,Y=$P(X,"<") F I=2:1:$L(X,"<") S Y=Y_"<"_$P(X,"<",I) "RTN","EDPX",10,0) S X=Y,Y=$P(X,">") F I=2:1:$L(X,">") S Y=Y_">"_$P(X,">",I) "RTN","EDPX",11,0) S X=Y,Y=$P(X,"'") F I=2:1:$L(X,"'") S Y=Y_"'"_$P(X,"'",I) "RTN","EDPX",12,0) S X=Y,Y=$P(X,QOT) F I=2:1:$L(X,QOT) S Y=Y_"""_$P(X,QOT,I) "RTN","EDPX",13,0) Q Y "RTN","EDPX",14,0) ; "RTN","EDPX",15,0) UES(X) ; Unescape XML "RTN","EDPX",16,0) Q X ; java side is unescaping this already "RTN","EDPX",17,0) ; Q $ZCONVERT(X,"I","HTML") "RTN","EDPX",18,0) ; "RTN","EDPX",19,0) UESREQ(REQ) ; Unescape HTTP post "RTN","EDPX",20,0) N I,X "RTN","EDPX",21,0) S X="" F S X=$O(REQ(X)) Q:X="" D "RTN","EDPX",22,0) . S I=0 F S I=$O(REQ(X,I)) Q:'I D "RTN","EDPX",23,0) . . S REQ(X,I)=$$UES(REQ(X,I)) "RTN","EDPX",24,0) Q "RTN","EDPX",25,0) VAL(X,R) ; Returns parameter value or null "RTN","EDPX",26,0) ; HTTP passes HTML-escaped values in an array as REC(param,1) "RTN","EDPX",27,0) Q $G(R(X,1)) "RTN","EDPX",28,0) ; "RTN","EDPX",29,0) NVPARSE(LST,IN) ; Parses tab delimited name-value pairs into array "RTN","EDPX",30,0) N I,X,TAB,NM,VAL "RTN","EDPX",31,0) S TAB=$C(9) "RTN","EDPX",32,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",33,0) Q "RTN","EDPX",34,0) XMLS(TAG,DATA,LBL) ; Return XML node as "RTN","EDPX",35,0) Q "<"_TAG_" data="""_$$ESC(DATA)_""" label="""_$$ESC(LBL)_""" />" "RTN","EDPX",36,0) ; "RTN","EDPX",37,0) XMLA(TAG,ATT,END) ; Return XML node as "RTN","EDPX",38,0) N NODE S NODE="<"_TAG_" " "RTN","EDPX",39,0) N X "RTN","EDPX",40,0) S X="" F S X=$O(ATT(X)) Q:X="" I $L(ATT(X)) S NODE=NODE_X_"="""_$$ESC(ATT(X))_""" " "RTN","EDPX",41,0) S NODE=NODE_$G(END,"/")_">" "RTN","EDPX",42,0) Q NODE "RTN","EDPX",43,0) ; "RTN","EDPX",44,0) XMLE(SRC) ; Append list to XML array as elements "RTN","EDPX",45,0) N X,NODE "RTN","EDPX",46,0) S X="" F S X=$O(SRC(X)) Q:X="" D "RTN","EDPX",47,0) . S NODE="<"_X_">"_$$ESC(SRC(X))_"" "RTN","EDPX",48,0) . D XML(NODE) "RTN","EDPX",49,0) Q "RTN","EDPX",50,0) XML(X) ; Add a line of XML to be returned "RTN","EDPX",51,0) S EDPXML=$G(EDPXML)+1 "RTN","EDPX",52,0) S EDPXML(EDPXML)=X "RTN","EDPX",53,0) Q "RTN","EDPX",54,0) CODE(X) ; Return internal value for a code "RTN","EDPX",55,0) Q $O(^EDPB(233.1,"B",X,0)) "RTN","EDPX",56,0) ; "RTN","EDPX",57,0) MSG(MSG) ; Write out error message "RTN","EDPX",58,0) I MSG=1 S X="some error" "RTN","EDPX",59,0) I MSG=2300001 S X="Station Number is missing" "RTN","EDPX",60,0) I MSG=2300002 S X="Patient is already active in log" "RTN","EDPX",61,0) I MSG=2300003 S X="Unable to create lock for new record" "RTN","EDPX",62,0) I MSG=2300004 S X="Error creating new record" "RTN","EDPX",63,0) I MSG=2300005 S X="Error creating sub-record" "RTN","EDPX",64,0) I MSG=2300006 S X="Missing log record" "RTN","EDPX",65,0) I MSG=2300007 S X="Missing log IEN" "RTN","EDPX",66,0) I MSG=2300008 S X="Error updating record" "RTN","EDPX",67,0) I MSG=2300009 S X="Error updating sub-record" "RTN","EDPX",68,0) I MSG=2300010 S X="Command missing or not recognized" "RTN","EDPX",69,0) I MSG=2300011 S X="Unknown report type" "RTN","EDPX",70,0) I MSG=2300012 S X="Missing or invalid date range" "RTN","EDPX",71,0) I MSG=2300013 S X="Shift times not defined for this site" "RTN","EDPX",72,0) I MSG=2300014 S X="Name missing" "RTN","EDPX",73,0) Q $$ESC^EDPX(X) "RTN","EDPYCHK") 0^^B1074868 "RTN","EDPYCHK",1,0) EDPYCHK ;SLC/KCM - Environmental Check for facility install "RTN","EDPYCHK",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPYCHK",3,0) ;This routine will check to see if the user is in a production account "RTN","EDPYCHK",4,0) ;if they are then the user will not be allowed to install this "RTN","EDPYCHK",5,0) ;patch/build/bundle "RTN","EDPYCHK",6,0) ; "RTN","EDPYCHK",7,0) I $$PROD^XUPROD D "RTN","EDPYCHK",8,0) .W !,"You are attempting to install this software into your production account." "RTN","EDPYCHK",9,0) .W !,"At this time, this software is not ready for a production install." "RTN","EDPYCHK",10,0) .W !!,"Please verify the account you're attempting to install into." "RTN","EDPYCHK",11,0) .W !!,"INSTALLATION ABORTED!" "RTN","EDPYCHK",12,0) .S XPDABORT=1 "RTN","EDPYCHK",13,0) Q "RTN","EDPYPRE") 0^^B240740 "RTN","EDPYPRE",1,0) EDPYPRE ;SLC/KCM - Pre-init for facility install "RTN","EDPYPRE",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPYPRE",3,0) ; "RTN","EDPYPRE",4,0) D FIXT5 "RTN","EDPYPRE",5,0) Q "RTN","EDPYPRE",6,0) ; "RTN","EDPYPRE",7,0) FIXT5 ; convert the timezone offset to visit string "RTN","EDPYPRE",8,0) ; (change occurred between T5 and T6) "RTN","EDPYPRE",9,0) N LOG,X0 "RTN","EDPYPRE",10,0) S LOG=0 F S LOG=$O(^EDP(230,LOG)) Q:'LOG D "RTN","EDPYPRE",11,0) . S X0=^EDP(230,LOG,0) "RTN","EDPYPRE",12,0) . I $P(X0,U,12)="0" S $P(^EDP(230,LOG,0),U,12)="" "RTN","EDPYPRE",13,0) Q "RTN","EDPYPRE",14,0) ;. To convert VSTR to VISIT "RTN","EDPYPRE",15,0) ;. I $L($P(X0,U,12),";")=3 D "RTN","EDPYPRE",16,0) ;.. N VSTR,VISIT,DFN,VISITIEN,I "RTN","EDPYPRE",17,0) ;.. S VSTR=$P(X0,U,12),DFN=$P(X0,U,6) "RTN","EDPYPRE",18,0) ;.. Q:'DFN "RTN","EDPYPRE",19,0) ;.. K ^TMP("PXKENC",$J) "RTN","EDPYPRE",20,0) ;.. S VISIT=+$$GETENC^PXAPI(DFN,$P(VSTR,";",2),$P(VSTR,";")) "RTN","EDPYPRE",21,0) ;.. I VISIT<0 S $P(^EDP(230,LOG,0),U,12)="" Q "RTN","EDPYPRE",22,0) ;.. S VISITIEN="" "RTN","EDPYPRE",23,0) ;.. F I=1:1:$L(VISIT,U) I $P(^TMP("PXKENC",$J,$P(VISIT,U,I),"VST",$P(VISIT,U,I),0),U,6)=DUZ(2) S VISITIEN=$P(VISIT,U,I) Q "RTN","EDPYPRE",24,0) ;.. S $P(^EDP(230,LOG,0),U,12)=VISITIEN "RTN","EDPYPRE",25,0) Q "RTN","EDPYPST") 0^^B793527 "RTN","EDPYPST",1,0) EDPYPST ;SLC/KCM - Post-init for facility install "RTN","EDPYPST",2,0) ;;1.0;EMERGENCY DEPARTMENT;;Dec 31, 2007;Build 26 "RTN","EDPYPST",3,0) ; "RTN","EDPYPST",4,0) D PROXY,CONVERT "RTN","EDPYPST",5,0) Q "RTN","EDPYPST",6,0) ; "RTN","EDPYPST",7,0) PROXY ; Create proxy user "RTN","EDPYPST",8,0) Q:$O(^VA(200,"B","EDPTRACKING,PROXY",0)) "RTN","EDPYPST",9,0) N X "RTN","EDPYPST",10,0) S X=$$CREATE^XUSAP("EDPTRACKING,PROXY","","EDPS BOARD CONTEXT") "RTN","EDPYPST",11,0) Q "RTN","EDPYPST",12,0) ; "RTN","EDPYPST",13,0) CONVERT ; set ^XTMP for tracking conversion "RTN","EDPYPST",14,0) I $D(^DIZ(172006,0)),'$D(^XTMP("EDP-CONV")) D "RTN","EDPYPST",15,0) . S ^XTMP("EDP-CONV",0)=$$FMADD^XLFDT(DT,365)_U_DT_"^Copy ED data to EDIS files" "RTN","EDPYPST",16,0) . S ^XTMP("EDP-CONV","X")="0^0^0" "RTN","EDPYPST",17,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") 3080318 "^DD",230,230,0,"IX","AVISIT",230,.12) "^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") 3080305 "^DD",230,230,.06,0) PATIENT ID^P2'^DPT(^0;6^Q "^DD",230,230,.06,3) "^DD",230,230,.06,"DT") 3080305 "^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,9) ^ "^DD",230,230,.07,"DT") 3080229 "^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) VISIT^P9000010'^AUPNVSIT(^0;12^Q "^DD",230,230,.12,1,0) ^.1 "^DD",230,230,.12,1,1,0) 230^AVISIT^MUMPS "^DD",230,230,.12,1,1,1) D ADD^AUPNVSIT "^DD",230,230,.12,1,1,2) D SUB^AUPNVSIT "^DD",230,230,.12,1,1,"%D",0) ^^2^2^3080318^ "^DD",230,230,.12,1,1,"%D",1,0) This increments and decrements the dependency counter in the VISIT file "^DD",230,230,.12,1,1,"%D",2,0) (9000010). "^DD",230,230,.12,1,1,"DT") 3080318 "^DD",230,230,.12,3) This is the visit pointer "^DD",230,230,.12,21,0) ^^2^2^3080318^ "^DD",230,230,.12,21,1,0) This points to the VISIT associated with this emergency department "^DD",230,230,.12,21,2,0) encounter. "^DD",230,230,.12,"DT") 3080318 "^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^^0 "^DD",230,230,3.2,"DT") 3080305 "^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^P200'^VA(200,^3;5^Q "^DD",230,230,3.5,3) "^DD",230,230,3.5,"DT") 3080305 "^DD",230,230,3.6,0) NURSE ASSIGNED^P200'^VA(200,^3;6^Q "^DD",230,230,3.6,3) "^DD",230,230,3.6,"DT") 3080305 "^DD",230,230,3.7,0) RESIDENT ASSIGNED^P200'^VA(200,^3;7^Q "^DD",230,230,3.7,3) "^DD",230,230,3.7,"DT") 3080305 "^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") 3080305 "^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") 3080305 "^DD",230.1,230.1,.06,0) PATIENT ID^P2'^DPT(^0;6^Q "^DD",230.1,230.1,.06,3) "^DD",230.1,230.1,.06,"DT") 3080305 "^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^P200'^VA(200,^3;5^Q "^DD",230.1,230.1,3.5,3) "^DD",230.1,230.1,3.5,"DT") 3080305 "^DD",230.1,230.1,3.6,0) NURSE ASSIGNED^P200'^VA(200,^3;6^Q "^DD",230.1,230.1,3.6,3) "^DD",230.1,230.1,3.6,"DT") 3080305 "^DD",230.1,230.1,3.7,0) RESIDENT ASSIGNED^P200'^VA(200,^3;7^Q "^DD",230.1,230.1,3.7,3) "^DD",230.1,230.1,3.7,"DT") 3080305 "^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") 3080305 "^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) PERSON^RP200'^VA(200,^0;1^Q "^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) "^DD",231.7,231.7,.01,"DT") 3080305 "^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") 3080305 "^DD",231.7,231.7,.03,0) AREA^P231.9'^EDPB(231.9,^0;3^Q "^DD",231.7,231.7,.03,"DT") 3080305 "^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") 3080305 "^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") 3080305 "^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,.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.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,21,0) ^^7^7^3080321^ "^DD",233.1,233.1,.05,21,1,0) The flags are used to further classify a specific code. "^DD",233.1,233.1,.05,21,2,0) The possible flags are: "^DD",233.1,233.1,.05,21,3,0) "^DD",233.1,233.1,.05,21,4,0) M: Missed Opportunity "^DD",233.1,233.1,.05,21,5,0) A: Admission "^DD",233.1,233.1,.05,21,6,0) VA: VA Admission "^DD",233.1,233.1,.05,21,7,0) O: Observation "^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**