16347 lines
466 KiB
Genshi
16347 lines
466 KiB
Genshi
KIDS Distribution saved on Sep 02, 2010@13:17:32
|
|
EDP1_0 RELEASED
|
|
**KIDS**:EMERGENCY DEPARTMENT 1.0^
|
|
|
|
**INSTALL NAME**
|
|
EMERGENCY DEPARTMENT 1.0
|
|
"BLD",6763,0)
|
|
EMERGENCY DEPARTMENT 1.0^EMERGENCY DEPARTMENT^0^3100902^y
|
|
"BLD",6763,1,0)
|
|
^^4^4^3081118^
|
|
"BLD",6763,1,1,0)
|
|
This is the initial installation of the Emergency Department Information
|
|
"BLD",6763,1,2,0)
|
|
System (EDIS). This is the module that handles tracking of a patient
|
|
"BLD",6763,1,3,0)
|
|
through an emergency department visit. The user interface for this
|
|
"BLD",6763,1,4,0)
|
|
application is a web application.
|
|
"BLD",6763,4,0)
|
|
^9.64PA^233.2^7
|
|
"BLD",6763,4,230,0)
|
|
230
|
|
"BLD",6763,4,230,222)
|
|
y^y^f^^^^n
|
|
"BLD",6763,4,230.1,0)
|
|
230.1
|
|
"BLD",6763,4,230.1,222)
|
|
y^y^f^^^^n
|
|
"BLD",6763,4,231.7,0)
|
|
231.7
|
|
"BLD",6763,4,231.7,222)
|
|
y^y^f^^^^n
|
|
"BLD",6763,4,231.8,0)
|
|
231.8
|
|
"BLD",6763,4,231.8,222)
|
|
y^y^f^^^^n
|
|
"BLD",6763,4,231.9,0)
|
|
231.9
|
|
"BLD",6763,4,231.9,222)
|
|
y^y^f^^^^n
|
|
"BLD",6763,4,233.1,0)
|
|
233.1
|
|
"BLD",6763,4,233.1,222)
|
|
y^y^f^^y^^y^r^n
|
|
"BLD",6763,4,233.1,224)
|
|
I $E(^(0),1,4)="edp."
|
|
"BLD",6763,4,233.2,0)
|
|
233.2
|
|
"BLD",6763,4,233.2,222)
|
|
y^y^f^^y^^y^r^n
|
|
"BLD",6763,4,233.2,224)
|
|
I $E(^(0),1,4)="edp."
|
|
"BLD",6763,4,"B",230,230)
|
|
|
|
"BLD",6763,4,"B",230.1,230.1)
|
|
|
|
"BLD",6763,4,"B",231.7,231.7)
|
|
|
|
"BLD",6763,4,"B",231.8,231.8)
|
|
|
|
"BLD",6763,4,"B",231.9,231.9)
|
|
|
|
"BLD",6763,4,"B",233.1,233.1)
|
|
|
|
"BLD",6763,4,"B",233.2,233.2)
|
|
|
|
"BLD",6763,6.3)
|
|
74
|
|
"BLD",6763,"ABPKG")
|
|
n
|
|
"BLD",6763,"INI")
|
|
EDPYPRE
|
|
"BLD",6763,"INIT")
|
|
EDPYPST
|
|
"BLD",6763,"KRN",0)
|
|
^9.67PA^8989.52^19
|
|
"BLD",6763,"KRN",.4,0)
|
|
.4
|
|
"BLD",6763,"KRN",.401,0)
|
|
.401
|
|
"BLD",6763,"KRN",.402,0)
|
|
.402
|
|
"BLD",6763,"KRN",.403,0)
|
|
.403
|
|
"BLD",6763,"KRN",.5,0)
|
|
.5
|
|
"BLD",6763,"KRN",.84,0)
|
|
.84
|
|
"BLD",6763,"KRN",3.6,0)
|
|
3.6
|
|
"BLD",6763,"KRN",3.8,0)
|
|
3.8
|
|
"BLD",6763,"KRN",9.2,0)
|
|
9.2
|
|
"BLD",6763,"KRN",9.8,0)
|
|
9.8
|
|
"BLD",6763,"KRN",9.8,"NM",0)
|
|
^9.68A^57^53
|
|
"BLD",6763,"KRN",9.8,"NM",1,0)
|
|
EDPFAA^^0^B5372812
|
|
"BLD",6763,"KRN",9.8,"NM",2,0)
|
|
EDPFLEX^^0^B1745474
|
|
"BLD",6763,"KRN",9.8,"NM",3,0)
|
|
EDPFMON^^0^B27211876
|
|
"BLD",6763,"KRN",9.8,"NM",5,0)
|
|
EDPFPER^^0^B3427509
|
|
"BLD",6763,"KRN",9.8,"NM",6,0)
|
|
EDPFPTL^^0^B4915038
|
|
"BLD",6763,"KRN",9.8,"NM",9,0)
|
|
EDPX^^0^B9797287
|
|
"BLD",6763,"KRN",9.8,"NM",10,0)
|
|
EDPRPT^^0^B17619722
|
|
"BLD",6763,"KRN",9.8,"NM",11,0)
|
|
EDPRPT1^^0^B33605254
|
|
"BLD",6763,"KRN",9.8,"NM",12,0)
|
|
EDPRPT10^^0^B19172294
|
|
"BLD",6763,"KRN",9.8,"NM",13,0)
|
|
EDPRPT11^^0^B8054102
|
|
"BLD",6763,"KRN",9.8,"NM",14,0)
|
|
EDPRPT2^^0^B15843773
|
|
"BLD",6763,"KRN",9.8,"NM",15,0)
|
|
EDPRPT3^^0^B8721424
|
|
"BLD",6763,"KRN",9.8,"NM",16,0)
|
|
EDPRPT4^^0^B24084771
|
|
"BLD",6763,"KRN",9.8,"NM",17,0)
|
|
EDPRPT5^^0^B35383693
|
|
"BLD",6763,"KRN",9.8,"NM",18,0)
|
|
EDPRPT6^^0^B9613057
|
|
"BLD",6763,"KRN",9.8,"NM",19,0)
|
|
EDPRPT7^^0^B19582712
|
|
"BLD",6763,"KRN",9.8,"NM",20,0)
|
|
EDPRPT7C^^0^B19611509
|
|
"BLD",6763,"KRN",9.8,"NM",21,0)
|
|
EDPRPT8^^0^B14454195
|
|
"BLD",6763,"KRN",9.8,"NM",22,0)
|
|
EDPRPT9^^0^B1592058
|
|
"BLD",6763,"KRN",9.8,"NM",23,0)
|
|
EDPFMOVE^^0^B43728958
|
|
"BLD",6763,"KRN",9.8,"NM",24,0)
|
|
EDPCONV^^0^B47887788
|
|
"BLD",6763,"KRN",9.8,"NM",25,0)
|
|
EDPBCF^^0^B25096927
|
|
"BLD",6763,"KRN",9.8,"NM",26,0)
|
|
EDPBCM^^0^B17076528
|
|
"BLD",6763,"KRN",9.8,"NM",27,0)
|
|
EDPBPM^^0^B6216911
|
|
"BLD",6763,"KRN",9.8,"NM",28,0)
|
|
EDPBRM^^0^B24385375
|
|
"BLD",6763,"KRN",9.8,"NM",29,0)
|
|
EDPBRS^^0^B19077772
|
|
"BLD",6763,"KRN",9.8,"NM",30,0)
|
|
EDPBSL^^0^B20029785
|
|
"BLD",6763,"KRN",9.8,"NM",31,0)
|
|
EDPBST^^0^B8664749
|
|
"BLD",6763,"KRN",9.8,"NM",32,0)
|
|
EDPCBRD^^0^B4350223
|
|
"BLD",6763,"KRN",9.8,"NM",34,0)
|
|
EDPCTRL^^0^B33410398
|
|
"BLD",6763,"KRN",9.8,"NM",35,0)
|
|
EDPDD^^0^B1560959
|
|
"BLD",6763,"KRN",9.8,"NM",36,0)
|
|
EDPFPTC^^0^B14885802
|
|
"BLD",6763,"KRN",9.8,"NM",37,0)
|
|
EDPLOG^^0^B42149061
|
|
"BLD",6763,"KRN",9.8,"NM",38,0)
|
|
EDPLOG1^^0^B2583250
|
|
"BLD",6763,"KRN",9.8,"NM",39,0)
|
|
EDPLOGA^^0^B10789313
|
|
"BLD",6763,"KRN",9.8,"NM",40,0)
|
|
EDPLOGH^^0^B9457380
|
|
"BLD",6763,"KRN",9.8,"NM",41,0)
|
|
EDPMAIL^^0^B7335309
|
|
"BLD",6763,"KRN",9.8,"NM",42,0)
|
|
EDPQAR^^0^B6639632
|
|
"BLD",6763,"KRN",9.8,"NM",43,0)
|
|
EDPQDB^^0^B37231235
|
|
"BLD",6763,"KRN",9.8,"NM",44,0)
|
|
EDPQDBS^^0^B3113182
|
|
"BLD",6763,"KRN",9.8,"NM",45,0)
|
|
EDPQLE^^0^B40300302
|
|
"BLD",6763,"KRN",9.8,"NM",46,0)
|
|
EDPQLE1^^0^B9736825
|
|
"BLD",6763,"KRN",9.8,"NM",47,0)
|
|
EDPQLP^^0^B12368052
|
|
"BLD",6763,"KRN",9.8,"NM",48,0)
|
|
EDPCSV^^0^B906612
|
|
"BLD",6763,"KRN",9.8,"NM",49,0)
|
|
EDPLPCE^^0^B32802123
|
|
"BLD",6763,"KRN",9.8,"NM",50,0)
|
|
EDPRPT12^^0^B7797789
|
|
"BLD",6763,"KRN",9.8,"NM",51,0)
|
|
EDPRPTBV^^0^B21129991
|
|
"BLD",6763,"KRN",9.8,"NM",52,0)
|
|
EDPCONV1^^0^B10237522
|
|
"BLD",6763,"KRN",9.8,"NM",53,0)
|
|
EDPCDBG^^0^B4038807
|
|
"BLD",6763,"KRN",9.8,"NM",54,0)
|
|
EDPQPCE^^0^B2442064
|
|
"BLD",6763,"KRN",9.8,"NM",55,0)
|
|
EDPBLK^^0^B7330093
|
|
"BLD",6763,"KRN",9.8,"NM",56,0)
|
|
EDPBDL^^0^B11063047
|
|
"BLD",6763,"KRN",9.8,"NM",57,0)
|
|
EDPBKS^^0^B15371728
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBCF",25)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBCM",26)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBDL",56)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBKS",57)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBLK",55)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBPM",27)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBRM",28)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBRS",29)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBSL",30)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPBST",31)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPCBRD",32)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPCDBG",53)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPCONV",24)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPCONV1",52)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPCSV",48)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPCTRL",34)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPDD",35)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPFAA",1)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPFLEX",2)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPFMON",3)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPFMOVE",23)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPFPER",5)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPFPTC",36)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPFPTL",6)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPLOG",37)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPLOG1",38)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPLOGA",39)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPLOGH",40)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPLPCE",49)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPMAIL",41)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPQAR",42)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPQDB",43)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPQDBS",44)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPQLE",45)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPQLE1",46)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPQLP",47)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPQPCE",54)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT",10)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT1",11)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT10",12)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT11",13)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT12",50)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT2",14)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT3",15)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT4",16)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT5",17)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT6",18)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT7",19)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT7C",20)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT8",21)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPT9",22)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPRPTBV",51)
|
|
|
|
"BLD",6763,"KRN",9.8,"NM","B","EDPX",9)
|
|
|
|
"BLD",6763,"KRN",19,0)
|
|
19
|
|
"BLD",6763,"KRN",19,"NM",0)
|
|
^9.68A^18^17
|
|
"BLD",6763,"KRN",19,"NM",1,0)
|
|
EDPF TRACKING MENU ALL^^0
|
|
"BLD",6763,"KRN",19,"NM",2,0)
|
|
EDPF TRACKING MENU CLINICIAN^^0
|
|
"BLD",6763,"KRN",19,"NM",3,0)
|
|
EDPF TRACKING MENU SIGNIN^^0
|
|
"BLD",6763,"KRN",19,"NM",4,0)
|
|
EDPF TRACKING MENU TRIAGE^^0
|
|
"BLD",6763,"KRN",19,"NM",5,0)
|
|
EDPF TRACKING SYSTEM^^0
|
|
"BLD",6763,"KRN",19,"NM",6,0)
|
|
EDPF TRACKING VIEW BOARD^^0
|
|
"BLD",6763,"KRN",19,"NM",7,0)
|
|
EDPF TRACKING VIEW CONFIGURE^^0
|
|
"BLD",6763,"KRN",19,"NM",8,0)
|
|
EDPF TRACKING VIEW DISPOSITION^^0
|
|
"BLD",6763,"KRN",19,"NM",9,0)
|
|
EDPF TRACKING VIEW EDIT CLOSED^^0
|
|
"BLD",6763,"KRN",19,"NM",10,0)
|
|
EDPF TRACKING VIEW REPORTS^^0
|
|
"BLD",6763,"KRN",19,"NM",11,0)
|
|
EDPF TRACKING VIEW SIGNIN^^0
|
|
"BLD",6763,"KRN",19,"NM",12,0)
|
|
EDPF TRACKING VIEW STAFF^^0
|
|
"BLD",6763,"KRN",19,"NM",13,0)
|
|
EDPF TRACKING VIEW TRIAGE^^0
|
|
"BLD",6763,"KRN",19,"NM",14,0)
|
|
EDPF TRACKING VIEW UPDATE^^0
|
|
"BLD",6763,"KRN",19,"NM",16,0)
|
|
EDP CONVERSION^^0
|
|
"BLD",6763,"KRN",19,"NM",17,0)
|
|
EDPS BOARD CONTEXT^^0
|
|
"BLD",6763,"KRN",19,"NM",18,0)
|
|
EDPF BIGBOARD KIOSKS^^0
|
|
"BLD",6763,"KRN",19,"NM","B","EDP CONVERSION",16)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF BIGBOARD KIOSKS",18)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING MENU ALL",1)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING MENU CLINICIAN",2)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING MENU SIGNIN",3)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING MENU TRIAGE",4)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING SYSTEM",5)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING VIEW BOARD",6)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING VIEW CONFIGURE",7)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING VIEW DISPOSITION",8)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING VIEW EDIT CLOSED",9)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING VIEW REPORTS",10)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING VIEW SIGNIN",11)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING VIEW STAFF",12)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING VIEW TRIAGE",13)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPF TRACKING VIEW UPDATE",14)
|
|
|
|
"BLD",6763,"KRN",19,"NM","B","EDPS BOARD CONTEXT",17)
|
|
|
|
"BLD",6763,"KRN",19.1,0)
|
|
19.1
|
|
"BLD",6763,"KRN",19.1,"NM",0)
|
|
^9.68A^4^4
|
|
"BLD",6763,"KRN",19.1,"NM",1,0)
|
|
EDPR EXPORT^^0
|
|
"BLD",6763,"KRN",19.1,"NM",2,0)
|
|
EDPR PROVIDER^^0
|
|
"BLD",6763,"KRN",19.1,"NM",3,0)
|
|
EDPR XREF^^0
|
|
"BLD",6763,"KRN",19.1,"NM",4,0)
|
|
EDPF KIOSKS^^0
|
|
"BLD",6763,"KRN",19.1,"NM","B","EDPF KIOSKS",4)
|
|
|
|
"BLD",6763,"KRN",19.1,"NM","B","EDPR EXPORT",1)
|
|
|
|
"BLD",6763,"KRN",19.1,"NM","B","EDPR PROVIDER",2)
|
|
|
|
"BLD",6763,"KRN",19.1,"NM","B","EDPR XREF",3)
|
|
|
|
"BLD",6763,"KRN",101,0)
|
|
101
|
|
"BLD",6763,"KRN",101,"NM",0)
|
|
^9.68A^25^25
|
|
"BLD",6763,"KRN",101,"NM",1,0)
|
|
EDP CHECK-IN^^0
|
|
"BLD",6763,"KRN",101,"NM",2,0)
|
|
EDP MONITOR^^0
|
|
"BLD",6763,"KRN",101,"NM",3,0)
|
|
FH EVSEND OR^^2
|
|
"BLD",6763,"KRN",101,"NM",4,0)
|
|
GMRC EVSEND OR^^2
|
|
"BLD",6763,"KRN",101,"NM",5,0)
|
|
LR7O CH EVSEND OR^^2
|
|
"BLD",6763,"KRN",101,"NM",6,0)
|
|
OR EVSEND ORG^^2
|
|
"BLD",6763,"KRN",101,"NM",7,0)
|
|
PS EVSEND OR^^2
|
|
"BLD",6763,"KRN",101,"NM",8,0)
|
|
RA EVSEND OR^^2
|
|
"BLD",6763,"KRN",101,"NM",9,0)
|
|
SDAM APPOINTMENT EVENTS^^2
|
|
"BLD",6763,"KRN",101,"NM",10,0)
|
|
EDP OR MONITOR^^0
|
|
"BLD",6763,"KRN",101,"NM",11,0)
|
|
OR EVSEND FH^^2
|
|
"BLD",6763,"KRN",101,"NM",12,0)
|
|
OR EVSEND GMRC^^2
|
|
"BLD",6763,"KRN",101,"NM",13,0)
|
|
OR EVSEND LRCH^^2
|
|
"BLD",6763,"KRN",101,"NM",14,0)
|
|
OR EVSEND PS^^2
|
|
"BLD",6763,"KRN",101,"NM",15,0)
|
|
OR EVSEND RA^^2
|
|
"BLD",6763,"KRN",101,"NM",16,0)
|
|
EDP NEW PATIENT^^0
|
|
"BLD",6763,"KRN",101,"NM",17,0)
|
|
EDPF ADD BOARD^^0
|
|
"BLD",6763,"KRN",101,"NM",18,0)
|
|
EDPF BIGBOARD MENU^^0
|
|
"BLD",6763,"KRN",101,"NM",19,0)
|
|
EDPF BLANK 1^^0
|
|
"BLD",6763,"KRN",101,"NM",20,0)
|
|
EDPF BLANK 2^^0
|
|
"BLD",6763,"KRN",101,"NM",21,0)
|
|
EDPF BLANK 3^^0
|
|
"BLD",6763,"KRN",101,"NM",22,0)
|
|
EDPF CHANGE BOARD^^0
|
|
"BLD",6763,"KRN",101,"NM",23,0)
|
|
EDPF QUIT^^0
|
|
"BLD",6763,"KRN",101,"NM",24,0)
|
|
EDPF REMOVE BOARD^^0
|
|
"BLD",6763,"KRN",101,"NM",25,0)
|
|
EDPF SELECT DIVISION^^0
|
|
"BLD",6763,"KRN",101,"NM","B","EDP CHECK-IN",1)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDP MONITOR",2)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDP NEW PATIENT",16)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDP OR MONITOR",10)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDPF ADD BOARD",17)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDPF BIGBOARD MENU",18)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDPF BLANK 1",19)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDPF BLANK 2",20)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDPF BLANK 3",21)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDPF CHANGE BOARD",22)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDPF QUIT",23)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDPF REMOVE BOARD",24)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","EDPF SELECT DIVISION",25)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","FH EVSEND OR",3)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","GMRC EVSEND OR",4)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","LR7O CH EVSEND OR",5)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","OR EVSEND FH",11)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","OR EVSEND GMRC",12)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","OR EVSEND LRCH",13)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","OR EVSEND ORG",6)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","OR EVSEND PS",14)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","OR EVSEND RA",15)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","PS EVSEND OR",7)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","RA EVSEND OR",8)
|
|
|
|
"BLD",6763,"KRN",101,"NM","B","SDAM APPOINTMENT EVENTS",9)
|
|
|
|
"BLD",6763,"KRN",409.61,0)
|
|
409.61
|
|
"BLD",6763,"KRN",409.61,"NM",0)
|
|
^9.68A^1^1
|
|
"BLD",6763,"KRN",409.61,"NM",1,0)
|
|
EDPF BIGBOARD KIOSKS^^0
|
|
"BLD",6763,"KRN",409.61,"NM","B","EDPF BIGBOARD KIOSKS",1)
|
|
|
|
"BLD",6763,"KRN",771,0)
|
|
771
|
|
"BLD",6763,"KRN",870,0)
|
|
870
|
|
"BLD",6763,"KRN",8989.51,0)
|
|
8989.51
|
|
"BLD",6763,"KRN",8989.51,"NM",0)
|
|
^9.68A^6^6
|
|
"BLD",6763,"KRN",8989.51,"NM",1,0)
|
|
EDPF LOCATION^^0
|
|
"BLD",6763,"KRN",8989.51,"NM",2,0)
|
|
EDPF SCREEN SIZES^^0
|
|
"BLD",6763,"KRN",8989.51,"NM",3,0)
|
|
EDPF NURSE STAFF SCREEN^^0
|
|
"BLD",6763,"KRN",8989.51,"NM",4,0)
|
|
EDPF DEBUG START TIME^^0
|
|
"BLD",6763,"KRN",8989.51,"NM",5,0)
|
|
EDPF SCHEDULING TRIGGER^^0
|
|
"BLD",6763,"KRN",8989.51,"NM",6,0)
|
|
EDPF BIGBOARD KIOSKS^^0
|
|
"BLD",6763,"KRN",8989.51,"NM","B","EDPF BIGBOARD KIOSKS",6)
|
|
|
|
"BLD",6763,"KRN",8989.51,"NM","B","EDPF DEBUG START TIME",4)
|
|
|
|
"BLD",6763,"KRN",8989.51,"NM","B","EDPF LOCATION",1)
|
|
|
|
"BLD",6763,"KRN",8989.51,"NM","B","EDPF NURSE STAFF SCREEN",3)
|
|
|
|
"BLD",6763,"KRN",8989.51,"NM","B","EDPF SCHEDULING TRIGGER",5)
|
|
|
|
"BLD",6763,"KRN",8989.51,"NM","B","EDPF SCREEN SIZES",2)
|
|
|
|
"BLD",6763,"KRN",8989.52,0)
|
|
8989.52
|
|
"BLD",6763,"KRN",8994,0)
|
|
8994
|
|
"BLD",6763,"KRN",8994,"NM",0)
|
|
^9.68A^2^2
|
|
"BLD",6763,"KRN",8994,"NM",1,0)
|
|
EDPCBRD RPC^^0
|
|
"BLD",6763,"KRN",8994,"NM",2,0)
|
|
EDPCTRL RPC^^0
|
|
"BLD",6763,"KRN",8994,"NM","B","EDPCBRD RPC",1)
|
|
|
|
"BLD",6763,"KRN",8994,"NM","B","EDPCTRL RPC",2)
|
|
|
|
"BLD",6763,"KRN","B",.4,.4)
|
|
|
|
"BLD",6763,"KRN","B",.401,.401)
|
|
|
|
"BLD",6763,"KRN","B",.402,.402)
|
|
|
|
"BLD",6763,"KRN","B",.403,.403)
|
|
|
|
"BLD",6763,"KRN","B",.5,.5)
|
|
|
|
"BLD",6763,"KRN","B",.84,.84)
|
|
|
|
"BLD",6763,"KRN","B",3.6,3.6)
|
|
|
|
"BLD",6763,"KRN","B",3.8,3.8)
|
|
|
|
"BLD",6763,"KRN","B",9.2,9.2)
|
|
|
|
"BLD",6763,"KRN","B",9.8,9.8)
|
|
|
|
"BLD",6763,"KRN","B",19,19)
|
|
|
|
"BLD",6763,"KRN","B",19.1,19.1)
|
|
|
|
"BLD",6763,"KRN","B",101,101)
|
|
|
|
"BLD",6763,"KRN","B",409.61,409.61)
|
|
|
|
"BLD",6763,"KRN","B",771,771)
|
|
|
|
"BLD",6763,"KRN","B",870,870)
|
|
|
|
"BLD",6763,"KRN","B",8989.51,8989.51)
|
|
|
|
"BLD",6763,"KRN","B",8989.52,8989.52)
|
|
|
|
"BLD",6763,"KRN","B",8994,8994)
|
|
|
|
"BLD",6763,"PRE")
|
|
|
|
"BLD",6763,"QUES",0)
|
|
^9.62^^
|
|
"BLD",6763,"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,6,0)
|
|
edp.source.nhcu-onsite^On-Site Nursing Home
|
|
"DATA",233.1,6,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,6,2,1,0)
|
|
Transfer from on-site nursing home.
|
|
"DATA",233.1,7,0)
|
|
edp.disposition.error^Patient Name Entered in Error^ERR
|
|
"DATA",233.1,8,0)
|
|
edp.status.admitted^Admitted^Admit^^A
|
|
"DATA",233.1,8,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,8,2,1,0)
|
|
Patient admitted, still in ED.
|
|
"DATA",233.1,9,0)
|
|
edp.status.edobs^ED Observation Unit^EDObs^^AO
|
|
"DATA",233.1,9,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,9,2,1,0)
|
|
Observation patient under care of the ED.
|
|
"DATA",233.1,15,0)
|
|
edp.delay.inptbed^Obtain Inpatient Bed^13k
|
|
"DATA",233.1,15,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,15,2,1,0)
|
|
Delay from time admit order written to Bed Control or House Supervisor
|
|
"DATA",233.1,15,2,2,0)
|
|
assigns pt to a (eg. ICU pt waiting on ICU bed to open up).
|
|
"DATA",233.1,16,0)
|
|
edp.delay.overcrowd^Overcrowding of ED^13a
|
|
"DATA",233.1,16,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,16,2,1,0)
|
|
Delay for an ED bed to become available, includes hallway beds, or beds
|
|
"DATA",233.1,16,2,2,0)
|
|
unavailable due to staffing issues. No beds available for inbound
|
|
"DATA",233.1,16,2,3,0)
|
|
ambulances, including hallway beds.
|
|
"DATA",233.1,17,0)
|
|
edp.delay.admiteval^Admitting Physician Evaluation^13c
|
|
"DATA",233.1,17,2,0)
|
|
^^4^4^3080606^
|
|
"DATA",233.1,17,2,1,0)
|
|
Delay related to admitting doctor's evaluation and confirmation of
|
|
"DATA",233.1,17,2,2,0)
|
|
disposition. Starts when physician sees patient and ends when H&P done,
|
|
"DATA",233.1,17,2,3,0)
|
|
ancillary studies necessary to dispo pt done & resulted, pt ready to be
|
|
"DATA",233.1,17,2,4,0)
|
|
dispositioned.
|
|
"DATA",233.1,18,0)
|
|
edp.delay.admitdispo^Admit Physician Writing Dispo^13h
|
|
"DATA",233.1,18,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,18,2,1,0)
|
|
Delay due to failure of the physician to Orders write the admit/discharge
|
|
"DATA",233.1,18,2,2,0)
|
|
order. Includes time from pt ready for dispo to order written to
|
|
"DATA",233.1,18,2,3,0)
|
|
admit/discharge.
|
|
"DATA",233.1,19,0)
|
|
edp.delay.admitobs^Patient Admitted to Observation^OBS
|
|
"DATA",233.1,19,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,19,2,1,0)
|
|
Delay because of pt being admitted to Obs. Includes time from pt ready
|
|
"DATA",233.1,19,2,2,0)
|
|
for dispo to time order written to admit patient to 23 hours ED/floor obs.
|
|
"DATA",233.1,20,0)
|
|
edp.delay.stafflimit^ED Staff Limits^13b
|
|
"DATA",233.1,20,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,20,2,1,0)
|
|
Delay in processing pt (seeing or accomplishing orders) timely due to
|
|
"DATA",233.1,20,2,2,0)
|
|
lack of staff. From time order written to time order accomplished (eg.
|
|
"DATA",233.1,20,2,3,0)
|
|
splint ankle).
|
|
"DATA",233.1,21,0)
|
|
edp.delay.interfacility^Interfacility Transfer^13m
|
|
"DATA",233.1,21,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,21,2,1,0)
|
|
Delay caused by inability to transfer patient to another facility in a
|
|
"DATA",233.1,21,2,2,0)
|
|
timely manner.
|
|
"DATA",233.1,22,0)
|
|
edp.delay.ambulance^Obtain Ambulance Services^13n
|
|
"DATA",233.1,22,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,22,2,1,0)
|
|
Delay from ambulance request to arrival.
|
|
"DATA",233.1,23,0)
|
|
edp.delay.imageresult^Obtain Imaging Results^13g
|
|
"DATA",233.1,23,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,23,2,1,0)
|
|
Delay from time study done to time study resulted.
|
|
"DATA",233.1,24,0)
|
|
edp.delay.imagestudy^Obtain Imaging Studies^13f
|
|
"DATA",233.1,24,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,24,2,1,0)
|
|
Delay from time study ordered to time study is done and available for
|
|
"DATA",233.1,24,2,2,0)
|
|
interpretation.
|
|
"DATA",233.1,25,0)
|
|
edp.delay.pharm^Obtain Drugs/Pharmacology^13j
|
|
"DATA",233.1,25,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,25,2,1,0)
|
|
Delay caused by inability to get ordered drugs from Pharmacy. Includes
|
|
"DATA",233.1,25,2,2,0)
|
|
delay from time meds ordered to meds received.
|
|
"DATA",233.1,26,0)
|
|
edp.delay.labresult^Obtain Lab Results^13e
|
|
"DATA",233.1,26,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,26,2,1,0)
|
|
Delay due to lack of timely turn around for labs ordered. Includes time
|
|
"DATA",233.1,26,2,2,0)
|
|
from labsdrawn/obtained to labs resulted.
|
|
"DATA",233.1,27,0)
|
|
edp.delay.labstudy^Obtain Lab Studies^13d
|
|
"DATA",233.1,27,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,27,2,1,0)
|
|
Delay caused by inability to get labs drawn in a timely fashion.Time from
|
|
"DATA",233.1,27,2,2,0)
|
|
lab order to lab draw.
|
|
"DATA",233.1,28,0)
|
|
edp.delay.supplies^Obtain Medical Supplies^13i
|
|
"DATA",233.1,28,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,28,2,1,0)
|
|
Delay caused by inability to get medical supplies in a timely fashion.
|
|
"DATA",233.1,28,2,2,0)
|
|
Includes time from order (or need identified) to receipt of supplies (eg.
|
|
"DATA",233.1,28,2,3,0)
|
|
splints, crutches, c-line kits).
|
|
"DATA",233.1,29,0)
|
|
edp.delay.surgery^Arrange Emergency Surgery^13l
|
|
"DATA",233.1,29,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,29,2,1,0)
|
|
Delay in getting pt needing surgery to the OR.
|
|
"DATA",233.1,30,0)
|
|
edp.delay.home^Patient Transport Home^13p
|
|
"DATA",233.1,30,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,30,2,1,0)
|
|
Delays caused by inability to find transportation for discharged patient
|
|
"DATA",233.1,30,2,2,0)
|
|
or delays in identified patient transportation arriving at the EDTime
|
|
"DATA",233.1,30,2,3,0)
|
|
from pt ready for discharge to pt out of ED.
|
|
"DATA",233.1,31,0)
|
|
edp.delay.transport^Patient Transport Other^13o
|
|
"DATA",233.1,31,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,31,2,1,0)
|
|
Same as above for destinations other than home.
|
|
"DATA",233.1,35,0)
|
|
edp.disposition.home^Home^H
|
|
"DATA",233.1,35,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,35,2,1,0)
|
|
Patient discharge to his/her previous living arrangement.
|
|
"DATA",233.1,36,0)
|
|
edp.disposition.admitva^Admitted to VA Ward^VA^^VA
|
|
"DATA",233.1,36,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,36,2,1,0)
|
|
Patient admitted to an inpatient location, not including ICU/Tele/Psych.
|
|
"DATA",233.1,37,0)
|
|
edp.disposition.left^Left Without Being Treated/Seen^L^^M
|
|
"DATA",233.1,37,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,37,2,1,0)
|
|
Patient leaves the ED before being treated. Not AMA, as no form signed.
|
|
"DATA",233.1,38,0)
|
|
edp.disposition.xferva^Transferred to VA Facility^O^^A
|
|
"DATA",233.1,38,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,38,2,1,0)
|
|
Patient is discharged from the ED and sent to another VA facility.
|
|
"DATA",233.1,39,0)
|
|
edp.disposition.ama^AMA^AMA^^M
|
|
"DATA",233.1,39,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,39,2,1,0)
|
|
Patient left against medical advice; form signed; patient may or may not
|
|
"DATA",233.1,39,2,2,0)
|
|
have been evaluated medically.
|
|
"DATA",233.1,40,0)
|
|
edp.disposition.clinic^Sent to Urgent Care Clinic^CL
|
|
"DATA",233.1,40,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,40,2,1,0)
|
|
Patient discharged from the ED and referred to another evaluation clinic
|
|
"DATA",233.1,40,2,2,0)
|
|
at the same site. Some degree of triage is necessary to make this
|
|
"DATA",233.1,40,2,3,0)
|
|
judgement.
|
|
"DATA",233.1,41,0)
|
|
edp.disposition.deceased^Deceased^D
|
|
"DATA",233.1,41,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,41,2,1,0)
|
|
Dead
|
|
"DATA",233.1,42,0)
|
|
edp.disposition.telemetry^Admitted to Telemetry^T^^VA
|
|
"DATA",233.1,42,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,42,2,1,0)
|
|
Patient admitted to an inpatient telemetry unit.
|
|
"DATA",233.1,43,0)
|
|
edp.disposition.icu^Admitted to ICU^ICU^^VA
|
|
"DATA",233.1,43,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,43,2,1,0)
|
|
Patient admitted to an inpatient critical care unit.
|
|
"DATA",233.1,44,0)
|
|
edp.disposition.nec^Sent to Nurse Eval / Drop-In Clinic^NEC
|
|
"DATA",233.1,44,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,44,2,1,0)
|
|
Patient discharged from the ED and referred to another evaluation clinic
|
|
"DATA",233.1,44,2,2,0)
|
|
at the same site. Some degree of triage is necessary to make this
|
|
"DATA",233.1,44,2,3,0)
|
|
judgement.
|
|
"DATA",233.1,45,0)
|
|
edp.disposition.eloped^Eloped^E^^M
|
|
"DATA",233.1,45,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,45,2,1,0)
|
|
Patient left the ED and disposition unknown; patient may have been seen
|
|
"DATA",233.1,45,2,2,0)
|
|
and evaluated by nurse/doc.
|
|
"DATA",233.1,46,0)
|
|
edp.reserved.novalue^
|
|
"DATA",233.1,53,0)
|
|
edp.source.clinic-onsite^On-Site Clinic
|
|
"DATA",233.1,53,2,0)
|
|
^^2^2^3080605^
|
|
"DATA",233.1,53,2,1,0)
|
|
Sent by on-site doc, NP, PA, or nurse or other care provider for
|
|
"DATA",233.1,53,2,2,0)
|
|
evaluation
|
|
"DATA",233.1,54,0)
|
|
edp.source.clinic-offsite^VA Clinic, Off-Site
|
|
"DATA",233.1,54,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,54,2,1,0)
|
|
Sent by off-site clinic, e.g., CBOC
|
|
"DATA",233.1,55,0)
|
|
edp.source.nhci^NHCI
|
|
"DATA",233.1,57,0)
|
|
edp.disposition.xfernon^Transferred to Non-VA Facility^NVA
|
|
"DATA",233.1,57,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,57,2,1,0)
|
|
Patient is discharge from the ED and sent to another non-VA facility.
|
|
"DATA",233.1,58,0)
|
|
edp.disposition.psych^Admitted to Psychiatry^PSY^^VA
|
|
"DATA",233.1,58,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,58,2,1,0)
|
|
Patient admitted to an inpatient psychiatric unit.
|
|
"DATA",233.1,59,0)
|
|
edp.delay.consult^Obtain Consultant^CSLT
|
|
"DATA",233.1,59,2,0)
|
|
^^2^2^3080606^
|
|
"DATA",233.1,59,2,1,0)
|
|
Delay caused by lack of completion of a consult ordered. Includes time
|
|
"DATA",233.1,59,2,2,0)
|
|
elapsed from consult requested to consult obtained.
|
|
"DATA",233.1,64,0)
|
|
edp.source.non-referred^Self-Referred
|
|
"DATA",233.1,64,2,0)
|
|
^233.12^2^2^3081003^^
|
|
"DATA",233.1,64,2,1,0)
|
|
From outside community without referral no matter what mode of
|
|
"DATA",233.1,64,2,2,0)
|
|
transportation.
|
|
"DATA",233.1,65,0)
|
|
edp.source.nhcu-offsite^VA Nursing Home, Off-Site
|
|
"DATA",233.1,65,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,65,2,1,0)
|
|
Transfer from off-site nursing home.
|
|
"DATA",233.1,66,0)
|
|
edp.source.clinic-nonva^Non-VA Clinic/Office
|
|
"DATA",233.1,66,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,66,2,1,0)
|
|
Sent by a non-VA clinic, primary care or other providers.
|
|
"DATA",233.1,67,0)
|
|
edp.source.nhcu-nonva^Non-VA Nursing Home
|
|
"DATA",233.1,67,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,67,2,1,0)
|
|
Sent from a non-VA nursing home.
|
|
"DATA",233.1,68,0)
|
|
edp.source.other^Transfer, Other
|
|
"DATA",233.1,68,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,68,2,1,0)
|
|
Other transfers, like VA ED-to-ED transfer for specific subspecialty care.
|
|
"DATA",233.1,69,0)
|
|
edp.status.enroute^En Route/Prearrival
|
|
"DATA",233.1,69,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,69,2,1,0)
|
|
En-route to the ED.
|
|
"DATA",233.1,70,0)
|
|
edp.status.waiting^Awaiting Triage
|
|
"DATA",233.1,70,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,70,2,1,0)
|
|
At the ED, awaiting triage.
|
|
"DATA",233.1,71,0)
|
|
edp.status.edpatient^ED Patient
|
|
"DATA",233.1,71,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,71,2,1,0)
|
|
ED patient, after triage.
|
|
"DATA",233.1,72,0)
|
|
edp.status.boarding^ED Boarding [Hold]
|
|
"DATA",233.1,72,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,72,2,1,0)
|
|
Admitted and designated as a Holder (extended time in ED).
|
|
"DATA",233.1,73,0)
|
|
edp.status.discharged^Discharged
|
|
"DATA",233.1,73,2,0)
|
|
^^1^1^3080605^
|
|
"DATA",233.1,73,2,1,0)
|
|
Discharged, still in ED.
|
|
"DATA",233.1,74,0)
|
|
edp.delay.edtobed^ED to Hospital Bed
|
|
"DATA",233.1,74,2,0)
|
|
^233.12^2^2^3080606^^
|
|
"DATA",233.1,74,2,1,0)
|
|
Delay from time hospital bed assigned to pt transported from
|
|
"DATA",233.1,74,2,2,0)
|
|
ED(eg.waiting on escort).
|
|
"DATA",233.1,75,0)
|
|
edp.delay.physicianlimit^ED Physician Limits
|
|
"DATA",233.1,75,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,75,2,1,0)
|
|
Delay caused by physicians seeing patients. Includes elapsed time from pt
|
|
"DATA",233.1,75,2,2,0)
|
|
placed in bed to pt seen by provider(eg. five chest pains arrive in 10
|
|
"DATA",233.1,75,2,3,0)
|
|
minutes).
|
|
"DATA",233.1,76,0)
|
|
edp.delay.oncall^On-call Staff
|
|
"DATA",233.1,76,2,0)
|
|
^^1^1^3080606^
|
|
"DATA",233.1,76,2,1,0)
|
|
Delays caused by inability to contact on-call staff.
|
|
"DATA",233.1,77,0)
|
|
edp.delay.acceptphysician^Obtain Accepting Physician
|
|
"DATA",233.1,77,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,77,2,1,0)
|
|
Delay caused by inability to find an accepting physician to admit
|
|
"DATA",233.1,77,2,2,0)
|
|
patient.Includes elapsed time to obtain accepting physician after need
|
|
"DATA",233.1,77,2,3,0)
|
|
for pt admission determined.
|
|
"DATA",233.1,78,0)
|
|
edp.delay.escort^Obtain Escort
|
|
"DATA",233.1,78,2,0)
|
|
^^3^3^3080606^
|
|
"DATA",233.1,78,2,1,0)
|
|
Delay in getting escort to transport pt. Includes elapsed time from time
|
|
"DATA",233.1,78,2,2,0)
|
|
escort called to time escort arrives to transport patient to inpatient
|
|
"DATA",233.1,78,2,3,0)
|
|
unit, clinic, or radiology.
|
|
"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^11^7
|
|
"DATA",233.2,3,1,1,0)
|
|
10^69
|
|
"DATA",233.2,3,1,2,0)
|
|
20^70
|
|
"DATA",233.2,3,1,7,0)
|
|
30^71
|
|
"DATA",233.2,3,1,8,0)
|
|
40^8
|
|
"DATA",233.2,3,1,9,0)
|
|
50^72
|
|
"DATA",233.2,3,1,10,0)
|
|
60^9
|
|
"DATA",233.2,3,1,11,0)
|
|
70^73
|
|
"DATA",233.2,4,0)
|
|
edp.delay
|
|
"DATA",233.2,4,1,0)
|
|
^233.21A^23^23
|
|
"DATA",233.2,4,1,1,0)
|
|
10^15
|
|
"DATA",233.2,4,1,2,0)
|
|
20^74
|
|
"DATA",233.2,4,1,3,0)
|
|
30^16
|
|
"DATA",233.2,4,1,4,0)
|
|
40^17
|
|
"DATA",233.2,4,1,5,0)
|
|
50^18
|
|
"DATA",233.2,4,1,6,0)
|
|
60^19
|
|
"DATA",233.2,4,1,7,0)
|
|
70^20
|
|
"DATA",233.2,4,1,8,0)
|
|
80^75
|
|
"DATA",233.2,4,1,9,0)
|
|
90^21
|
|
"DATA",233.2,4,1,10,0)
|
|
100^22
|
|
"DATA",233.2,4,1,11,0)
|
|
110^23
|
|
"DATA",233.2,4,1,12,0)
|
|
120^24
|
|
"DATA",233.2,4,1,13,0)
|
|
130^25
|
|
"DATA",233.2,4,1,14,0)
|
|
140^26
|
|
"DATA",233.2,4,1,15,0)
|
|
150^27
|
|
"DATA",233.2,4,1,16,0)
|
|
160^28
|
|
"DATA",233.2,4,1,17,0)
|
|
170^29
|
|
"DATA",233.2,4,1,18,0)
|
|
180^59
|
|
"DATA",233.2,4,1,19,0)
|
|
190^76
|
|
"DATA",233.2,4,1,20,0)
|
|
200^30
|
|
"DATA",233.2,4,1,21,0)
|
|
210^31
|
|
"DATA",233.2,4,1,22,0)
|
|
220^77
|
|
"DATA",233.2,4,1,23,0)
|
|
230^78
|
|
"DATA",233.2,5,0)
|
|
edp.arrival
|
|
"DATA",233.2,5,1,0)
|
|
^233.21A^8^8
|
|
"DATA",233.2,5,1,1,0)
|
|
10^64
|
|
"DATA",233.2,5,1,2,0)
|
|
20^53
|
|
"DATA",233.2,5,1,3,0)
|
|
30^6
|
|
"DATA",233.2,5,1,4,0)
|
|
40^54
|
|
"DATA",233.2,5,1,5,0)
|
|
50^65
|
|
"DATA",233.2,5,1,6,0)
|
|
60^66
|
|
"DATA",233.2,5,1,7,0)
|
|
70^67
|
|
"DATA",233.2,5,1,8,0)
|
|
80^68
|
|
"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^7
|
|
"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.93)
|
|
0
|
|
"FIA",231.9,231.94)
|
|
0
|
|
"FIA",231.9,231.941)
|
|
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.enroute
|
|
"FRV1",233.2,"3,1,1,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"3,1,10,0",2)
|
|
edp.status.edobs
|
|
"FRV1",233.2,"3,1,10,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"3,1,11,0",2)
|
|
edp.status.discharged
|
|
"FRV1",233.2,"3,1,11,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"3,1,2,0",2)
|
|
edp.status.waiting
|
|
"FRV1",233.2,"3,1,2,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"3,1,7,0",2)
|
|
edp.status.edpatient
|
|
"FRV1",233.2,"3,1,7,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"3,1,8,0",2)
|
|
edp.status.admitted
|
|
"FRV1",233.2,"3,1,8,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"3,1,9,0",2)
|
|
edp.status.boarding
|
|
"FRV1",233.2,"3,1,9,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.ambulance
|
|
"FRV1",233.2,"4,1,10,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,11,0",2)
|
|
edp.delay.imageresult
|
|
"FRV1",233.2,"4,1,11,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,12,0",2)
|
|
edp.delay.imagestudy
|
|
"FRV1",233.2,"4,1,12,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,13,0",2)
|
|
edp.delay.pharm
|
|
"FRV1",233.2,"4,1,13,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,14,0",2)
|
|
edp.delay.labresult
|
|
"FRV1",233.2,"4,1,14,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,15,0",2)
|
|
edp.delay.labstudy
|
|
"FRV1",233.2,"4,1,15,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,16,0",2)
|
|
edp.delay.supplies
|
|
"FRV1",233.2,"4,1,16,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,17,0",2)
|
|
edp.delay.surgery
|
|
"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,19,0",2)
|
|
edp.delay.oncall
|
|
"FRV1",233.2,"4,1,19,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,2,0",2)
|
|
edp.delay.edtobed
|
|
"FRV1",233.2,"4,1,2,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,20,0",2)
|
|
edp.delay.home
|
|
"FRV1",233.2,"4,1,20,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,21,0",2)
|
|
edp.delay.transport
|
|
"FRV1",233.2,"4,1,21,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,22,0",2)
|
|
edp.delay.acceptphysician
|
|
"FRV1",233.2,"4,1,22,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,23,0",2)
|
|
edp.delay.escort
|
|
"FRV1",233.2,"4,1,23,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,3,0",2)
|
|
edp.delay.overcrowd
|
|
"FRV1",233.2,"4,1,3,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,4,0",2)
|
|
edp.delay.admiteval
|
|
"FRV1",233.2,"4,1,4,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,5,0",2)
|
|
edp.delay.admitdispo
|
|
"FRV1",233.2,"4,1,5,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,6,0",2)
|
|
edp.delay.admitobs
|
|
"FRV1",233.2,"4,1,6,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,7,0",2)
|
|
edp.delay.stafflimit
|
|
"FRV1",233.2,"4,1,7,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,8,0",2)
|
|
edp.delay.physicianlimit
|
|
"FRV1",233.2,"4,1,8,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"4,1,9,0",2)
|
|
edp.delay.interfacility
|
|
"FRV1",233.2,"4,1,9,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"5,1,1,0",2)
|
|
edp.source.non-referred
|
|
"FRV1",233.2,"5,1,1,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"5,1,2,0",2)
|
|
edp.source.clinic-onsite
|
|
"FRV1",233.2,"5,1,2,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"5,1,3,0",2)
|
|
edp.source.nhcu-onsite
|
|
"FRV1",233.2,"5,1,3,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"5,1,4,0",2)
|
|
edp.source.clinic-offsite
|
|
"FRV1",233.2,"5,1,4,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"5,1,5,0",2)
|
|
edp.source.nhcu-offsite
|
|
"FRV1",233.2,"5,1,5,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"5,1,6,0",2)
|
|
edp.source.clinic-nonva
|
|
"FRV1",233.2,"5,1,6,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"5,1,7,0",2)
|
|
edp.source.nhcu-nonva
|
|
"FRV1",233.2,"5,1,7,0",2,"F")
|
|
;EDPB(233.1,
|
|
"FRV1",233.2,"5,1,8,0",2)
|
|
edp.source.other
|
|
"FRV1",233.2,"5,1,8,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,0)
|
|
^^1^1^3080912^
|
|
"IX",230,230,"AC",.1,1,0)
|
|
List the patients that are currently active on the display board.
|
|
"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,2,0)
|
|
2^F^230^.03^30^2^F
|
|
"IX",230,230,"AC",11.1,3,0)
|
|
3^F^230^.07^2^^F
|
|
"IX",230,230,"ADUP1",0)
|
|
230^ADUP1^SITE,AREA,LASTNAME,IEN for active patients^MU^^R^IR^I^230^^^^^S
|
|
"IX",230,230,"ADUP1",.1,0)
|
|
^^3^3^3081003^
|
|
"IX",230,230,"ADUP1",.1,1,0)
|
|
This contributes the last name to the ADUP xref, which helps in
|
|
"IX",230,230,"ADUP1",.1,2,0)
|
|
identifying patients with similar names or similar brief identifiers.
|
|
"IX",230,230,"ADUP1",.1,3,0)
|
|
Only active (not closed) entries are in the cross reference.
|
|
"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,0)
|
|
^^3^3^3081003^
|
|
"IX",230,230,"ADUP2",.1,1,0)
|
|
This contributes the last initial / last 4 to the ADUP xref, which helps
|
|
"IX",230,230,"ADUP2",.1,2,0)
|
|
in identifying patients with similar names or similar brief identifiers.
|
|
"IX",230,230,"ADUP2",.1,3,0)
|
|
Only active (not closed) entries are in the cross reference.
|
|
"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,2,0)
|
|
2^F^230^.03^^2^F
|
|
"IX",230,230,"ADUP2",11.1,3,0)
|
|
3^F^230^.11^^3^F
|
|
"IX",230,230,"ADUP2",11.1,4,0)
|
|
4^F^230^.07^^^F
|
|
"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,0)
|
|
^^1^1^3080912^
|
|
"IX",230,230,"AL",.1,1,0)
|
|
Allows checking for beds / areas that are currently occupied.
|
|
"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,2,0)
|
|
2^F^230^.03^^2^F
|
|
"IX",230,230,"AL",11.1,3,0)
|
|
3^F^230^3.4^^3^F
|
|
"IX",230,230,"AL",11.1,4,0)
|
|
4^F^230^.07^^^F
|
|
"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,0)
|
|
^^8^8^3081003^
|
|
"IX",230,230,"AN",.1,1,0)
|
|
Allows for checking to see if the patient is already active in the case
|
|
"IX",230,230,"AN",.1,2,0)
|
|
where the patient does not have a DFN (i.e., humanitarian). It is
|
|
"IX",230,230,"AN",.1,3,0)
|
|
referenced when adding a new patient to the board.
|
|
"IX",230,230,"AN",.1,4,0)
|
|
|
|
"IX",230,230,"AN",.1,5,0)
|
|
The AN cross reference contains the full name. It differs from the ADUP
|
|
"IX",230,230,"AN",.1,6,0)
|
|
cross reference in that the ADUP cross reference contains specific
|
|
"IX",230,230,"AN",.1,7,0)
|
|
attributes that are to be monitored (such as last name & last initial /
|
|
"IX",230,230,"AN",.1,8,0)
|
|
last 4) for special indication on the display board.
|
|
"IX",230,230,"AN",1)
|
|
S ^EDP(230,"AN",X(1),X(2),X(3),DA)=""
|
|
"IX",230,230,"AN",1.4)
|
|
S X='X2(4)
|
|
"IX",230,230,"AN",2)
|
|
K ^EDP(230,"AN",X(1),X(2),X(3),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^^1^F
|
|
"IX",230,230,"AN",11.1,2,0)
|
|
2^F^230^.03^^2^F
|
|
"IX",230,230,"AN",11.1,3,0)
|
|
3^F^230^.04^^3^F
|
|
"IX",230,230,"AN",11.1,4,0)
|
|
4^F^230^.07^^^F
|
|
"IX",230,230,"AO",0)
|
|
230^AO^ORDER,IEN for all patients^R^^F^IR^W^230.08^^^^^S
|
|
"IX",230,230,"AO",.1,0)
|
|
^^2^2^3080912^
|
|
"IX",230,230,"AO",.1,1,0)
|
|
This is used to locate orders when they need to be updated from the event
|
|
"IX",230,230,"AO",.1,2,0)
|
|
monitor.
|
|
"IX",230,230,"AO",1)
|
|
S ^EDP(230,"AO",$E(X,1,30),DA(1),DA)=""
|
|
"IX",230,230,"AO",2)
|
|
K ^EDP(230,"AO",$E(X,1,30),DA(1),DA)
|
|
"IX",230,230,"AO",2.5)
|
|
K ^EDP(230,"AO")
|
|
"IX",230,230,"AO",11.1,0)
|
|
^.114IA^1^1
|
|
"IX",230,230,"AO",11.1,1,0)
|
|
1^F^230.08^.01^30^1^F
|
|
"IX",230,230,"AP",0)
|
|
230^AP^SITE,AREA,DFN,IEN for active patients at site (not closed)^R^^R^IR^I^230^^^^^S
|
|
"IX",230,230,"AP",.1,0)
|
|
^^3^3^3081004^
|
|
"IX",230,230,"AP",.1,1,0)
|
|
Allows testing of duplicate patient entry when selecting patients to add
|
|
"IX",230,230,"AP",.1,2,0)
|
|
to the display board in the case where the patient has a DFN. The cross
|
|
"IX",230,230,"AP",.1,3,0)
|
|
reference is set only for entries that are active (not closed).
|
|
"IX",230,230,"AP",1)
|
|
S ^EDP(230,"AP",X(1),X(2),X(3),DA)=""
|
|
"IX",230,230,"AP",1.4)
|
|
S X='X2(4)
|
|
"IX",230,230,"AP",2)
|
|
K ^EDP(230,"AP",X(1),X(2),X(3),DA)
|
|
"IX",230,230,"AP",2.5)
|
|
K ^EDP(230,"AP")
|
|
"IX",230,230,"AP",11.1,0)
|
|
^.114IA^5^4
|
|
"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^.03^^2^F
|
|
"IX",230,230,"AP",11.1,3,3)
|
|
|
|
"IX",230,230,"AP",11.1,4,0)
|
|
3^F^230^.06^^3^F
|
|
"IX",230,230,"AP",11.1,4,3)
|
|
|
|
"IX",230,230,"AP",11.1,5,0)
|
|
4^F^230^.07^^^F
|
|
"IX",230,230,"AP",11.1,5,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,0)
|
|
^^2^2^3080912^
|
|
"IX",230,230,"APA",.1,1,0)
|
|
Used by the event monitors to identify a patient that is actively being
|
|
"IX",230,230,"APA",.1,2,0)
|
|
tracked through a visit (regardless of area).
|
|
"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,2,0)
|
|
2^F^230^.07^^^F
|
|
"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,0)
|
|
^^3^3^3081004^
|
|
"IX",230,230,"AS",.1,1,0)
|
|
Allows for checking to see if the patient is already on the display board
|
|
"IX",230,230,"AS",.1,2,0)
|
|
in the case where there is no DFN and a social security number is used to
|
|
"IX",230,230,"AS",.1,3,0)
|
|
identify the patient.
|
|
"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,2,0)
|
|
2^F^230^.03^^2^F
|
|
"IX",230,230,"AS",11.1,3,0)
|
|
3^F^230^.05^^3^F
|
|
"IX",230,230,"AS",11.1,4,0)
|
|
4^F^230^.07^^^F
|
|
"IX",230,230,"ATI",0)
|
|
230^ATI^SITE,TIME IN for reports^MU^^R^IR^I^230^^^^^S
|
|
"IX",230,230,"ATI",.1,0)
|
|
^^1^1^3080912^
|
|
"IX",230,230,"ATI",.1,1,0)
|
|
Used for reports to get a range of visits within a time range.
|
|
"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,0)
|
|
^^2^2^3080912^
|
|
"IX",230,230,"ATO",.1,1,0)
|
|
Used for reports to get a range of visits that were closed within a time
|
|
"IX",230,230,"ATO",.1,2,0)
|
|
range.
|
|
"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,2,0)
|
|
2^F^230^.09^^2^F
|
|
"IX",230,230,"PDFN",0)
|
|
230^PDFN^SITE,AREA,DFN,IEN for all patients^R^^R^IR^I^230^^^^^LS
|
|
"IX",230,230,"PDFN",.1,0)
|
|
^^4^4^3081222^
|
|
"IX",230,230,"PDFN",.1,1,0)
|
|
Indexes all entries by patient DFN. When special lookups are done
|
|
"IX",230,230,"PDFN",.1,2,0)
|
|
against the patient file (by SSN, for example), a DFN is returned. This
|
|
"IX",230,230,"PDFN",.1,3,0)
|
|
index allows finding the visits for the DFN. This index contains all
|
|
"IX",230,230,"PDFN",.1,4,0)
|
|
visits (closed or active) where a DFN has been assigned.
|
|
"IX",230,230,"PDFN",1)
|
|
S ^EDP(230,"PDFN",X(1),X(2),X(3),DA)=""
|
|
"IX",230,230,"PDFN",2)
|
|
K ^EDP(230,"PDFN",X(1),X(2),X(3),DA)
|
|
"IX",230,230,"PDFN",2.5)
|
|
K ^EDP(230,"PDFN")
|
|
"IX",230,230,"PDFN",11.1,0)
|
|
^.114IA^3^3
|
|
"IX",230,230,"PDFN",11.1,1,0)
|
|
1^F^230^.02^^1^F
|
|
"IX",230,230,"PDFN",11.1,1,3)
|
|
|
|
"IX",230,230,"PDFN",11.1,2,0)
|
|
2^F^230^.03^^2^F
|
|
"IX",230,230,"PDFN",11.1,2,3)
|
|
|
|
"IX",230,230,"PDFN",11.1,3,0)
|
|
3^F^230^.06^^3^F
|
|
"IX",230,230,"PDFN",11.1,3,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,0)
|
|
^^5^5^3081003^
|
|
"IX",230,230,"PN",.1,1,0)
|
|
Indexes all patient names. This is for selecting patients when a visit
|
|
"IX",230,230,"PN",.1,2,0)
|
|
(closed or otherwise) needs to be corrected. Since some of the visits
|
|
"IX",230,230,"PN",.1,3,0)
|
|
may be patients without DFN's, this index allows them to be included in
|
|
"IX",230,230,"PN",.1,4,0)
|
|
the selection. All visits (with and without DFN's) are included in the
|
|
"IX",230,230,"PN",.1,5,0)
|
|
index.
|
|
"IX",230,230,"PN",1)
|
|
S ^EDP(230,"PN",X(1),X(2),X(3),DA)=""
|
|
"IX",230,230,"PN",2)
|
|
K ^EDP(230,"PN",X(1),X(2),X(3),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,2,0)
|
|
2^F^230^.03^^2^F
|
|
"IX",230,230,"PN",11.1,3,0)
|
|
3^F^230^.04^^3^F
|
|
"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,0)
|
|
^^6^6^3081004^
|
|
"IX",230.1,230.1,"ADF",.1,1,0)
|
|
This cross reference provides, for a single emergency department log
|
|
"IX",230.1,230.1,"ADF",.1,2,0)
|
|
record (entry in the ED LOG file) a forward chronological list of updates
|
|
"IX",230.1,230.1,"ADF",.1,3,0)
|
|
to the record.
|
|
"IX",230.1,230.1,"ADF",.1,4,0)
|
|
|
|
"IX",230.1,230.1,"ADF",.1,5,0)
|
|
The storage transform S X=+X ensures that numeric collation is used for
|
|
"IX",230.1,230.1,"ADF",.1,6,0)
|
|
all entries in the cross reference.
|
|
"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,2,0)
|
|
2^F^230.1^.02^^2^F
|
|
"IX",230.1,230.1,"ADF",11.1,2,2)
|
|
S X=+X
|
|
"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,0)
|
|
^^8^8^3081004^
|
|
"IX",230.1,230.1,"ADR",.1,1,0)
|
|
This cross reference provides, for a single emergency department log
|
|
"IX",230.1,230.1,"ADR",.1,2,0)
|
|
record (entry in the ED LOG file) a reverse chronological list of updates
|
|
"IX",230.1,230.1,"ADR",.1,3,0)
|
|
to the record.
|
|
"IX",230.1,230.1,"ADR",.1,4,0)
|
|
|
|
"IX",230.1,230.1,"ADR",.1,5,0)
|
|
Since the display board is refreshed frequently, this cross reference
|
|
"IX",230.1,230.1,"ADR",.1,6,0)
|
|
helps that happen as fast as possible. It allows forward $O to be used
|
|
"IX",230.1,230.1,"ADR",.1,7,0)
|
|
to search back in time. This is a much faster operation than reverse $O
|
|
"IX",230.1,230.1,"ADR",.1,8,0)
|
|
on most M systems.
|
|
"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,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,"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,0)
|
|
^^6^6^3081005^
|
|
"IX",231.7,231.7,"AC",.1,1,0)
|
|
This cross reference supports constructing a list of currently active
|
|
"IX",231.7,231.7,"AC",.1,2,0)
|
|
staff for a particular role.
|
|
"IX",231.7,231.7,"AC",.1,3,0)
|
|
|
|
"IX",231.7,231.7,"AC",.1,4,0)
|
|
For this record level cross reference, the kill logic should always be
|
|
"IX",231.7,231.7,"AC",.1,5,0)
|
|
executed when any value changes. The set logic is then executed
|
|
"IX",231.7,231.7,"AC",.1,6,0)
|
|
conditionally, allowing the cross reference to hold only active values.
|
|
"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,2,0)
|
|
2^F^231.7^.03^^2^F
|
|
"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,4,0)
|
|
4^F^231.7^.04^^^F
|
|
"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,0)
|
|
^^4^4^3081005^
|
|
"IX",231.7,231.7,"AD",.1,1,0)
|
|
This cross reference allows searching the file for an entry matching a
|
|
"IX",231.7,231.7,"AD",.1,2,0)
|
|
particular DUZ (say, to look up a color map). Since a person may work as
|
|
"IX",231.7,231.7,"AD",.1,3,0)
|
|
staff in multiple areas, this cross reference allows finding the staff
|
|
"IX",231.7,231.7,"AD",.1,4,0)
|
|
record that applies to the person's activity in a specific area.
|
|
"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,0)
|
|
^^2^2^3080915^
|
|
"IX",231.8,231.8,"AC",.1,1,0)
|
|
Allows looking for a room with a specific abbreviation, such as AMBU or
|
|
"IX",231.8,231.8,"AC",.1,2,0)
|
|
WAIT (when setting baseline parameters for example).
|
|
"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,2,0)
|
|
2^F^231.8^.03^^2^F
|
|
"IX",231.8,231.8,"AC",11.1,3,0)
|
|
3^F^231.8^.06^^3^F
|
|
"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,0)
|
|
^^2^2^3080915^
|
|
"IX",231.8,231.8,"C",.1,1,0)
|
|
Allows collecting all of the rooms for a specific area within a division
|
|
"IX",231.8,231.8,"C",.1,2,0)
|
|
(station number).
|
|
"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,2,0)
|
|
2^F^231.8^.03^^2^F
|
|
"IX",233.1,233.1,"AB",0)
|
|
233.1^AB^NAME (without prefix), ABBREVIATION^R^^R^IR^I^233.1^^^^^S
|
|
"IX",233.1,233.1,"AB",.1,0)
|
|
^^3^3^3081010^
|
|
"IX",233.1,233.1,"AB",.1,1,0)
|
|
This allows finding all the abbreviations for a name without regard to
|
|
"IX",233.1,233.1,"AB",.1,2,0)
|
|
the site prefix. (The prefix is "edp." when nationally exported, "nnn."
|
|
"IX",233.1,233.1,"AB",.1,3,0)
|
|
for locally defined, where nnn is the station number.)
|
|
"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,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,"AC",0)
|
|
233.1^AC^NAME (without prefix), DISPLAY NAME^R^^R^IR^I^233.1^^^^^S
|
|
"IX",233.1,233.1,"AC",.1,0)
|
|
^^3^3^3081010^
|
|
"IX",233.1,233.1,"AC",.1,1,0)
|
|
This allows finding all the display names for a name without regard to the
|
|
"IX",233.1,233.1,"AC",.1,2,0)
|
|
site prefix. (The prefix is "edp." when nationally exported, "nnn." for
|
|
"IX",233.1,233.1,"AC",.1,3,0)
|
|
locally defined, where nnn is the station number.)
|
|
"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,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)
|
|
"KRN",19,13496,-1)
|
|
0^5
|
|
"KRN",19,13496,0)
|
|
EDPF TRACKING SYSTEM^EDIS version 1.0^^B^^^^^^^^KERNEL
|
|
"KRN",19,13496,1,0)
|
|
^19.06^1^1^3080423^^^^
|
|
"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^8
|
|
"KRN",19,13496,"RPC",7,0)
|
|
EDPCTRL RPC
|
|
"KRN",19,13496,"RPC",8,0)
|
|
EDPCBRD RPC
|
|
"KRN",19,13496,"U")
|
|
EDIS VERSION 1.0
|
|
"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)
|
|
61970,67192
|
|
"KRN",19,13497,99.1)
|
|
61236,65283
|
|
"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)
|
|
61970,67192
|
|
"KRN",19,13498,99.1)
|
|
61129,51343
|
|
"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)
|
|
61970,67192
|
|
"KRN",19,13499,99.1)
|
|
61130,49249
|
|
"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)
|
|
61970,67192
|
|
"KRN",19,13500,99.1)
|
|
61129,60766
|
|
"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)
|
|
61970,67192
|
|
"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)
|
|
61970,67192
|
|
"KRN",19,13502,99.1)
|
|
61619,57151
|
|
"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)
|
|
61970,67192
|
|
"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)
|
|
61970,67192
|
|
"KRN",19,13504,99.1)
|
|
61236,65283
|
|
"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)
|
|
61970,67192
|
|
"KRN",19,13505,99.1)
|
|
61236,65283
|
|
"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)
|
|
61619,57148
|
|
"KRN",19,13506,99.1)
|
|
61619,57151
|
|
"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)
|
|
61619,57148
|
|
"KRN",19,13508,99.1)
|
|
61619,57151
|
|
"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)
|
|
61619,57148
|
|
"KRN",19,13509,99.1)
|
|
61619,57151
|
|
"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)
|
|
61619,57148
|
|
"KRN",19,13510,99.1)
|
|
61619,57151
|
|
"KRN",19,13510,"U")
|
|
CLINICIAN TRACKING VIEWS
|
|
"KRN",19,13511,-1)
|
|
0^17
|
|
"KRN",19,13511,0)
|
|
EDPS BOARD CONTEXT^ED Tracking Board Context^^B^^^^^^^^
|
|
"KRN",19,13511,"RPC",0)
|
|
^19.05P^1^1
|
|
"KRN",19,13511,"RPC",1,0)
|
|
EDPCBRD RPC
|
|
"KRN",19,13511,"U")
|
|
ED TRACKING BOARD CONTEXT
|
|
"KRN",19,13512,-1)
|
|
0^16
|
|
"KRN",19,13512,0)
|
|
EDP CONVERSION^Convert local ER data to EDIS files^^R^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",19,13512,1,0)
|
|
^^6^6^3080305^
|
|
"KRN",19,13512,1,1,0)
|
|
This option allows a site to trigger the conversion of its local data in
|
|
"KRN",19,13512,1,2,0)
|
|
^DIZ(1720xx) files to the new Emergency Department Information System
|
|
"KRN",19,13512,1,3,0)
|
|
files. Local configuration data will be transferred first, followed by
|
|
"KRN",19,13512,1,4,0)
|
|
all currently open visits; a task will also be queued to copy closed
|
|
"KRN",19,13512,1,5,0)
|
|
visits as well, to permit the reporting features to continue functioning
|
|
"KRN",19,13512,1,6,0)
|
|
normally.
|
|
"KRN",19,13512,25)
|
|
EDPFMOVE
|
|
"KRN",19,13512,"U")
|
|
CONVERT LOCAL ER DATA TO EDIS
|
|
"KRN",19,13514,-1)
|
|
0^18
|
|
"KRN",19,13514,0)
|
|
EDPF BIGBOARD KIOSKS^Display Board Kiosks^^A^^EDPF KIOSKS^^^^^^EMERGENCY DEPARTMENT^^1
|
|
"KRN",19,13514,1,0)
|
|
^^2^2^3090224^
|
|
"KRN",19,13514,1,1,0)
|
|
This option allows editing the EDPF BIGBOARD KIOSKS parameter; editing
|
|
"KRN",19,13514,1,2,0)
|
|
these values via the XPAR utilities is prohibited.
|
|
"KRN",19,13514,20)
|
|
D EN^EDPBKS
|
|
"KRN",19,13514,"U")
|
|
DISPLAY BOARD KIOSKS
|
|
"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",19.1,597,-1)
|
|
0^4
|
|
"KRN",19.1,597,0)
|
|
EDPF KIOSKS
|
|
"KRN",19.1,597,1,0)
|
|
^19.11^2^2^3090817^^
|
|
"KRN",19.1,597,1,1,0)
|
|
This key grants access to access to the EDPF BIGBOARD KIOSKS option to
|
|
"KRN",19.1,597,1,2,0)
|
|
edit the values for the parameter of the same name.
|
|
"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^^^
|
|
"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,3529,-1)
|
|
2^15
|
|
"KRN",101,3529,0)
|
|
OR EVSEND RA^OE/RR => RAD/NM MESSAGE EVENT^^X^10000000179^^^^^^^
|
|
"KRN",101,3529,10,0)
|
|
^101.01PA^3^3
|
|
"KRN",101,3529,10,3,0)
|
|
5602^^^
|
|
"KRN",101,3529,10,3,"^")
|
|
EDP OR MONITOR
|
|
"KRN",101,3530,-1)
|
|
2^13
|
|
"KRN",101,3530,0)
|
|
OR EVSEND LRCH^OE/RR => LAB MESSAGE EVENT^^X^10000000179^^^^^^^
|
|
"KRN",101,3530,10,0)
|
|
^101.01PA^3^3
|
|
"KRN",101,3530,10,3,0)
|
|
5602^^^
|
|
"KRN",101,3530,10,3,"^")
|
|
EDP OR MONITOR
|
|
"KRN",101,3535,-1)
|
|
2^11
|
|
"KRN",101,3535,0)
|
|
OR EVSEND FH^OE/RR => DIET MESSAGE EVENT^^X^10000000179^^^^^^^
|
|
"KRN",101,3535,10,0)
|
|
^101.01PA^3^3
|
|
"KRN",101,3535,10,3,0)
|
|
5602^^^
|
|
"KRN",101,3535,10,3,"^")
|
|
EDP OR 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,3537,-1)
|
|
2^14
|
|
"KRN",101,3537,0)
|
|
OR EVSEND PS^OE/RR => PHARMACY MESSAGE EVENT^^X^10000000179^^^^^^^
|
|
"KRN",101,3537,10,0)
|
|
^101.01PA^3^3
|
|
"KRN",101,3537,10,3,0)
|
|
5602^^^
|
|
"KRN",101,3537,10,3,"^")
|
|
EDP OR MONITOR
|
|
"KRN",101,3539,-1)
|
|
2^12
|
|
"KRN",101,3539,0)
|
|
OR EVSEND GMRC^OE/RR => CONSULTS MESSAGE EVENT^^X^10000000179^^^^^^^
|
|
"KRN",101,3539,10,0)
|
|
^101.01PA^4^4
|
|
"KRN",101,3539,10,4,0)
|
|
5602^^^
|
|
"KRN",101,3539,10,4,"^")
|
|
EDP OR 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)
|
|
^^4^4^3080612^
|
|
"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; it 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)
|
|
61619,57148
|
|
"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)
|
|
61619,57148
|
|
"KRN",101,5602,-1)
|
|
0^10
|
|
"KRN",101,5602,0)
|
|
EDP OR MONITOR^Monitor order messages for EDP Log^^A^^^^^^^^
|
|
"KRN",101,5602,1,0)
|
|
^^3^3^3080612^
|
|
"KRN",101,5602,1,1,0)
|
|
This protocol monitors ordering events for the Emergency Department
|
|
"KRN",101,5602,1,2,0)
|
|
tracking board. It is placed on the OR EVSEND * protocols to look for
|
|
"KRN",101,5602,1,3,0)
|
|
order numbers assigned to new orders placed from the ancillary packages.
|
|
"KRN",101,5602,20)
|
|
D ENOR^EDPFMON(.XQORMSG)
|
|
"KRN",101,5602,99)
|
|
61619,57148
|
|
"KRN",101,5603,-1)
|
|
0^16
|
|
"KRN",101,5603,0)
|
|
EDP NEW PATIENT^New EDIS Patient Event^^X^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5603,1,0)
|
|
^^13^13^3090126^
|
|
"KRN",101,5603,1,1,0)
|
|
This extended action protocol will be processed when a new patient is
|
|
"KRN",101,5603,1,2,0)
|
|
added to the EDIS Patient Board. Items added to this event may look for:
|
|
"KRN",101,5603,1,3,0)
|
|
|
|
"KRN",101,5603,1,4,0)
|
|
EDPDATA = ED Log ien ^ DFN ^ Time In ^ Hospital Location ien
|
|
"KRN",101,5603,1,5,0)
|
|
|
|
"KRN",101,5603,1,6,0)
|
|
To support some devices that previously monitored SDAM APPOINTMENT EVENTS,
|
|
"KRN",101,5603,1,7,0)
|
|
the following variables will also be defined:
|
|
"KRN",101,5603,1,8,0)
|
|
|
|
"KRN",101,5603,1,9,0)
|
|
DFN = Patient file #2 ien
|
|
"KRN",101,5603,1,10,0)
|
|
SDT = Time In
|
|
"KRN",101,5603,1,11,0)
|
|
SDCL = Hospital Location file #44 ien
|
|
"KRN",101,5603,1,12,0)
|
|
SDATA = ^DFN ^ SDT ^ SDCL
|
|
"KRN",101,5603,1,13,0)
|
|
SDAMEVT = 1 (unscheduled new visit)
|
|
"KRN",101,5603,10,0)
|
|
^101.01PA
|
|
"KRN",101,5603,99)
|
|
61619,57148
|
|
"KRN",101,5604,-1)
|
|
0^17
|
|
"KRN",101,5604,0)
|
|
EDPF ADD BOARD^Add^^A^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5604,1,0)
|
|
^^1^1^3090224^
|
|
"KRN",101,5604,1,1,0)
|
|
This action adds a display board.
|
|
"KRN",101,5604,20)
|
|
D ADD^EDPBKS
|
|
"KRN",101,5604,99)
|
|
61619,57148
|
|
"KRN",101,5605,-1)
|
|
0^24
|
|
"KRN",101,5605,0)
|
|
EDPF REMOVE BOARD^Remove^^A^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5605,1,0)
|
|
^^1^1^3090224^
|
|
"KRN",101,5605,1,1,0)
|
|
This action removes a display board.
|
|
"KRN",101,5605,20)
|
|
D REM^EDPBKS
|
|
"KRN",101,5605,99)
|
|
61619,57148
|
|
"KRN",101,5606,-1)
|
|
0^22
|
|
"KRN",101,5606,0)
|
|
EDPF CHANGE BOARD^Change^^A^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5606,1,0)
|
|
^^1^1^3090224^
|
|
"KRN",101,5606,1,1,0)
|
|
This action can change a computer name or display board.
|
|
"KRN",101,5606,20)
|
|
D CHG^EDPBKS
|
|
"KRN",101,5606,99)
|
|
61619,57148
|
|
"KRN",101,5607,-1)
|
|
0^25
|
|
"KRN",101,5607,0)
|
|
EDPF SELECT DIVISION^Select Division^^A^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5607,1,0)
|
|
^^1^1^3090224^
|
|
"KRN",101,5607,1,1,0)
|
|
This action allows the editor to switch to values for another division.
|
|
"KRN",101,5607,20)
|
|
D NEWDIV^EDPBKS
|
|
"KRN",101,5607,99)
|
|
61619,57148
|
|
"KRN",101,5608,-1)
|
|
0^18
|
|
"KRN",101,5608,0)
|
|
EDPF BIGBOARD MENU^Board Kiosk parameter edit menu^^M^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5608,1,0)
|
|
^101.06^2^2^3090224^^
|
|
"KRN",101,5608,1,1,0)
|
|
This is the menu of actions for the EDPF BIGBOARD KIOSK list template,
|
|
"KRN",101,5608,1,2,0)
|
|
which allows editing of the parameter of the same name.
|
|
"KRN",101,5608,4)
|
|
26
|
|
"KRN",101,5608,10,0)
|
|
^101.01PA^8^8
|
|
"KRN",101,5608,10,1,0)
|
|
5604^^11^
|
|
"KRN",101,5608,10,1,"^")
|
|
EDPF ADD BOARD
|
|
"KRN",101,5608,10,2,0)
|
|
5605^^12^
|
|
"KRN",101,5608,10,2,"^")
|
|
EDPF REMOVE BOARD
|
|
"KRN",101,5608,10,3,0)
|
|
5606^^21^
|
|
"KRN",101,5608,10,3,"^")
|
|
EDPF CHANGE BOARD
|
|
"KRN",101,5608,10,4,0)
|
|
5607^^31^
|
|
"KRN",101,5608,10,4,"^")
|
|
EDPF SELECT DIVISION
|
|
"KRN",101,5608,10,5,0)
|
|
5612^^32^
|
|
"KRN",101,5608,10,5,"^")
|
|
EDPF QUIT
|
|
"KRN",101,5608,10,6,0)
|
|
5609^^22^
|
|
"KRN",101,5608,10,6,"^")
|
|
EDPF BLANK 1
|
|
"KRN",101,5608,10,7,0)
|
|
5610^^13^
|
|
"KRN",101,5608,10,7,"^")
|
|
EDPF BLANK 2
|
|
"KRN",101,5608,10,8,0)
|
|
5611^^23^
|
|
"KRN",101,5608,10,8,"^")
|
|
EDPF BLANK 3
|
|
"KRN",101,5608,26)
|
|
D SHOW^VALM
|
|
"KRN",101,5608,28)
|
|
Select action:
|
|
"KRN",101,5608,99)
|
|
61619,57148
|
|
"KRN",101,5609,-1)
|
|
0^19
|
|
"KRN",101,5609,0)
|
|
EDPF BLANK 1^ ^^A^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5609,1,0)
|
|
^101.06^2^2^3090305^^^^
|
|
"KRN",101,5609,1,1,0)
|
|
Displays a blank line; used for whitespace on menus. (Item text is 3
|
|
"KRN",101,5609,1,2,0)
|
|
spaces.)
|
|
"KRN",101,5609,2,0)
|
|
^101.02A^1^1
|
|
"KRN",101,5609,2,1,0)
|
|
BLANK
|
|
"KRN",101,5609,2,"B","BLANK",1)
|
|
|
|
"KRN",101,5609,99)
|
|
61619,57148
|
|
"KRN",101,5610,-1)
|
|
0^20
|
|
"KRN",101,5610,0)
|
|
EDPF BLANK 2^ ^^A^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5610,1,0)
|
|
^101.06^2^2^3090305^^^^
|
|
"KRN",101,5610,1,1,0)
|
|
Displays a blank line; used for whitespace on menus. (Item text is 3
|
|
"KRN",101,5610,1,2,0)
|
|
spaces.)
|
|
"KRN",101,5610,2,0)
|
|
^101.02A^1^1
|
|
"KRN",101,5610,2,1,0)
|
|
BLANK
|
|
"KRN",101,5610,2,"B","BLANK",1)
|
|
|
|
"KRN",101,5610,99)
|
|
61619,57148
|
|
"KRN",101,5611,-1)
|
|
0^21
|
|
"KRN",101,5611,0)
|
|
EDPF BLANK 3^ ^^A^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5611,1,0)
|
|
^101.06^2^2^3090305^^^^
|
|
"KRN",101,5611,1,1,0)
|
|
Displays a blank line; used for whitespace on menus. (Item text is 3
|
|
"KRN",101,5611,1,2,0)
|
|
spaces.)
|
|
"KRN",101,5611,2,0)
|
|
^101.02A^1^1
|
|
"KRN",101,5611,2,1,0)
|
|
BLANK
|
|
"KRN",101,5611,2,"B","BLANK",1)
|
|
|
|
"KRN",101,5611,99)
|
|
61619,57148
|
|
"KRN",101,5612,-1)
|
|
0^23
|
|
"KRN",101,5612,0)
|
|
EDPF QUIT^Quit^^A^^^^^^^^EMERGENCY DEPARTMENT
|
|
"KRN",101,5612,1,0)
|
|
^^1^1^3090305^
|
|
"KRN",101,5612,1,1,0)
|
|
This action exits the list template.
|
|
"KRN",101,5612,2,0)
|
|
^101.02A^1^1
|
|
"KRN",101,5612,2,1,0)
|
|
QUIT
|
|
"KRN",101,5612,2,"B","QUIT",1)
|
|
|
|
"KRN",101,5612,20)
|
|
Q
|
|
"KRN",101,5612,99)
|
|
61619,57148
|
|
"KRN",409.61,733,-1)
|
|
0^1
|
|
"KRN",409.61,733,0)
|
|
EDPF BIGBOARD KIOSKS^1^^80^5^19^0^1^^EDPF BIGBOARD MENU^EDPF BIGBOARD KIOSKS^1^^0
|
|
"KRN",409.61,733,1)
|
|
^VALM HIDDEN ACTIONS
|
|
"KRN",409.61,733,"ARRAY")
|
|
EDPB
|
|
"KRN",409.61,733,"COL",0)
|
|
^409.621^2^2
|
|
"KRN",409.61,733,"COL",1,0)
|
|
NAME^5^40^Computer Name
|
|
"KRN",409.61,733,"COL",2,0)
|
|
VALUE^45^30^Display Board
|
|
"KRN",409.61,733,"COL","B","NAME",1)
|
|
|
|
"KRN",409.61,733,"COL","B","VALUE",2)
|
|
|
|
"KRN",409.61,733,"FNL")
|
|
D EXIT^EDPBKS
|
|
"KRN",409.61,733,"HDR")
|
|
D HDR^EDPBKS
|
|
"KRN",409.61,733,"HLP")
|
|
D HELP^EDPBKS
|
|
"KRN",409.61,733,"INIT")
|
|
D INIT^EDPBKS
|
|
"KRN",8989.5,12668,0)
|
|
562;DIC(9.4,^EDPF SCREEN SIZES^10
|
|
"KRN",8989.5,12668,1)
|
|
640x480
|
|
"KRN",8989.5,12669,0)
|
|
562;DIC(9.4,^EDPF SCREEN SIZES^20
|
|
"KRN",8989.5,12669,1)
|
|
800x600
|
|
"KRN",8989.5,12670,0)
|
|
562;DIC(9.4,^EDPF SCREEN SIZES^30
|
|
"KRN",8989.5,12670,1)
|
|
1024x768
|
|
"KRN",8989.5,12671,0)
|
|
562;DIC(9.4,^EDPF SCREEN SIZES^50
|
|
"KRN",8989.5,12671,1)
|
|
1280x1024
|
|
"KRN",8989.5,12672,0)
|
|
562;DIC(9.4,^EDPF SCREEN SIZES^40
|
|
"KRN",8989.5,12672,1)
|
|
1280x800
|
|
"KRN",8989.5,12673,0)
|
|
562;DIC(9.4,^EDPF NURSE STAFF SCREEN^1
|
|
"KRN",8989.5,12673,1)
|
|
3
|
|
"KRN",8989.5,12675,0)
|
|
562;DIC(9.4,^EDPF SCHEDULING TRIGGER^1
|
|
"KRN",8989.5,12675,1)
|
|
4
|
|
"KRN",8989.51,510,-1)
|
|
0^1
|
|
"KRN",8989.51,510,0)
|
|
EDPF LOCATION^Location(s) for Emergency Department^1^Time Range (ex. 0800-1200) or Sequence^Emergency Department Location
|
|
"KRN",8989.51,510,1)
|
|
P^44^Enter a HOSPITAL LOCATION used by the Emergency Department.
|
|
"KRN",8989.51,510,3)
|
|
I $P(^(0),U,3)'="W"
|
|
"KRN",8989.51,510,6)
|
|
F^^Enter a time range (like 0800-1200) or a sequential number.
|
|
"KRN",8989.51,510,7)
|
|
I '((X?1.3N)!(X?4N1"-"4N)) K X
|
|
"KRN",8989.51,510,20,0)
|
|
^^18^18^3080506^
|
|
"KRN",8989.51,510,20,1,0)
|
|
This parameter lists the entry or entries from the Hospital Location
|
|
"KRN",8989.51,510,20,2,0)
|
|
file (#44) that are used by the Emergency Department. If there are
|
|
"KRN",8989.51,510,20,3,0)
|
|
multiple Hospital Location file entries for the Emergency Department
|
|
"KRN",8989.51,510,20,4,0)
|
|
there are two choices when prompted for "Time Range or Sequence":
|
|
"KRN",8989.51,510,20,5,0)
|
|
|
|
"KRN",8989.51,510,20,6,0)
|
|
Time Range allows you to map Hospital Location entries by time of day.
|
|
"KRN",8989.51,510,20,7,0)
|
|
When creating an encounter in PCE, EDIS will match the Hospital Location
|
|
"KRN",8989.51,510,20,8,0)
|
|
based on the current time of day. You may enter the time range in
|
|
"KRN",8989.51,510,20,9,0)
|
|
military time. For example, 0800-1600 or 1800-2400 would be two possible
|
|
"KRN",8989.51,510,20,10,0)
|
|
time range entries.
|
|
"KRN",8989.51,510,20,11,0)
|
|
|
|
"KRN",8989.51,510,20,12,0)
|
|
Sequence allows you to map Hospital Location entries in a preferred
|
|
"KRN",8989.51,510,20,13,0)
|
|
order. When creating an encounter in PCE, EDIS will use the entry with
|
|
"KRN",8989.51,510,20,14,0)
|
|
the lowest sequence number to create the visit.
|
|
"KRN",8989.51,510,20,15,0)
|
|
|
|
"KRN",8989.51,510,20,16,0)
|
|
When creating the encounter by using the scheduling package to check-in,
|
|
"KRN",8989.51,510,20,17,0)
|
|
any matches to the list (whether time range or sequence based) will cause
|
|
"KRN",8989.51,510,20,18,0)
|
|
the checked-in patient to be added to the display board.
|
|
"KRN",8989.51,510,30,0)
|
|
^8989.513I^2^1
|
|
"KRN",8989.51,510,30,2,0)
|
|
2^4
|
|
"KRN",8989.51,512,-1)
|
|
0^2
|
|
"KRN",8989.51,512,0)
|
|
EDPF SCREEN SIZES^Available Screen Sizes^1^Sequence^Screen Size (WIDTHxHEIGHT)
|
|
"KRN",8989.51,512,1)
|
|
F^^Enter the width by height of the screen size (640x480, for example).
|
|
"KRN",8989.51,512,2)
|
|
S X=$TR(X,"X","x") I '(X?1.5N1"x"1.5N) K X
|
|
"KRN",8989.51,512,6)
|
|
N^1:999^Enter a number, 1-999 as the sequence for this screen size.
|
|
"KRN",8989.51,512,20,0)
|
|
^8989.512^3^3^3080502^^
|
|
"KRN",8989.51,512,20,1,0)
|
|
This list contains the screen sizes that are selectable for the EDIS
|
|
"KRN",8989.51,512,20,2,0)
|
|
display board. It generally lists the sizes of LCD or Plasma screens
|
|
"KRN",8989.51,512,20,3,0)
|
|
that may be used for the large display.
|
|
"KRN",8989.51,512,30,0)
|
|
^8989.513I^3^3
|
|
"KRN",8989.51,512,30,1,0)
|
|
10^9.4
|
|
"KRN",8989.51,512,30,2,0)
|
|
7^4.2
|
|
"KRN",8989.51,512,30,3,0)
|
|
5^4
|
|
"KRN",8989.51,513,-1)
|
|
0^3
|
|
"KRN",8989.51,513,0)
|
|
EDPF NURSE STAFF SCREEN^Nursing Staff Screen for EDIS^0^^Allow Persons
|
|
"KRN",8989.51,513,1)
|
|
S^0:Active in NURS STAFF (210);1:Hold ORELSE Key;2:Hold PSJ RNURSE Key;3:All Persons (No Screen)^Enter the type of screen that should be applied to the NEW PERSON file.
|
|
"KRN",8989.51,513,20,0)
|
|
^^9^9^3090602^
|
|
"KRN",8989.51,513,20,1,0)
|
|
This allows a site to select which type of filtering, or screening, that
|
|
"KRN",8989.51,513,20,2,0)
|
|
should be applied to the New Person file (200) when selecting nurses in
|
|
"KRN",8989.51,513,20,3,0)
|
|
EDIS. The default is to allow all entries in the NEW PERSON file. The
|
|
"KRN",8989.51,513,20,4,0)
|
|
options are:
|
|
"KRN",8989.51,513,20,5,0)
|
|
|
|
"KRN",8989.51,513,20,6,0)
|
|
0: Allow only persons present and active in the NURS STAFF file (210).
|
|
"KRN",8989.51,513,20,7,0)
|
|
1: Allow only persons holding the ORELSE key.
|
|
"KRN",8989.51,513,20,8,0)
|
|
2: Allow only persons holding the PSJ RNURSE key.
|
|
"KRN",8989.51,513,20,9,0)
|
|
3: Allow selection from all entries in the NEW PERSON file (200).
|
|
"KRN",8989.51,513,30,0)
|
|
^8989.513I^3^3
|
|
"KRN",8989.51,513,30,1,0)
|
|
10^9.4
|
|
"KRN",8989.51,513,30,2,0)
|
|
5^4.2
|
|
"KRN",8989.51,513,30,3,0)
|
|
3^4
|
|
"KRN",8989.51,514,-1)
|
|
0^4
|
|
"KRN",8989.51,514,0)
|
|
EDPF DEBUG START TIME^Debug Log Timestamp^0^^Start Time ($H Format)
|
|
"KRN",8989.51,514,1)
|
|
F^7:11^Enter the start time for 30 minutes of logging in $H format.
|
|
"KRN",8989.51,514,2)
|
|
K:X'?1.5N1","1.5N X
|
|
"KRN",8989.51,514,20,0)
|
|
^^2^2^3080910^
|
|
"KRN",8989.51,514,20,1,0)
|
|
This sets a $H timestamp to signal that EDIS RPC's should be logged for
|
|
"KRN",8989.51,514,20,2,0)
|
|
the 30 minutes following the timestamp.
|
|
"KRN",8989.51,514,30,0)
|
|
^8989.513I^1^1
|
|
"KRN",8989.51,514,30,1,0)
|
|
10^4.2
|
|
"KRN",8989.51,515,-1)
|
|
0^5
|
|
"KRN",8989.51,515,0)
|
|
EDPF SCHEDULING TRIGGER^Scheduling Trigger for EDIS^0^^Trigger Addition to Board On
|
|
"KRN",8989.51,515,1)
|
|
S^1:Make Appointment;4:Check-in;D:Disable^Enter which scheduling event should add the patient to the board or Disable.
|
|
"KRN",8989.51,515,20,0)
|
|
^^8^8^3090911^
|
|
"KRN",8989.51,515,20,1,0)
|
|
This allows a site to select which scheduling event should trigger an
|
|
"KRN",8989.51,515,20,2,0)
|
|
automatic addition of the patient to the board.
|
|
"KRN",8989.51,515,20,3,0)
|
|
|
|
"KRN",8989.51,515,20,4,0)
|
|
1: Patient will be added to the board when an appointment is made
|
|
"KRN",8989.51,515,20,5,0)
|
|
4: Patient will be added to the board when checked-in
|
|
"KRN",8989.51,515,20,6,0)
|
|
|
|
"KRN",8989.51,515,20,7,0)
|
|
D: Disable automatic adding of the patient to the board via appointment
|
|
"KRN",8989.51,515,20,8,0)
|
|
management
|
|
"KRN",8989.51,515,30,0)
|
|
^8989.513I^3^3
|
|
"KRN",8989.51,515,30,1,0)
|
|
10^9.4
|
|
"KRN",8989.51,515,30,2,0)
|
|
5^4.2
|
|
"KRN",8989.51,515,30,3,0)
|
|
3^4
|
|
"KRN",8989.51,516,-1)
|
|
0^6
|
|
"KRN",8989.51,516,0)
|
|
EDPF BIGBOARD KIOSKS^Display Board Kiosk^1^Computer Name^Display Board Name^
|
|
"KRN",8989.51,516,1)
|
|
F^^Enter the name of the display board for this kiosk.
|
|
"KRN",8989.51,516,2)
|
|
|
|
"KRN",8989.51,516,6)
|
|
F^^Use the EDPF BIGBOARD KIOSKS option to edit this parameter!
|
|
"KRN",8989.51,516,7)
|
|
K:'$G(EDPSITE) X
|
|
"KRN",8989.51,516,20,0)
|
|
^8989.512^3^3^3090224^^^^
|
|
"KRN",8989.51,516,20,1,0)
|
|
This parameter maps fully qualified computer names to the display board
|
|
"KRN",8989.51,516,20,2,0)
|
|
that they should show. Values must be added or changed via the option
|
|
"KRN",8989.51,516,20,3,0)
|
|
EDPF BIGBOARD KIOSKS.
|
|
"KRN",8989.51,516,30,0)
|
|
^8989.513I^1^1
|
|
"KRN",8989.51,516,30,1,0)
|
|
2^4
|
|
"KRN",8994,2518,-1)
|
|
0^2
|
|
"KRN",8994,2518,0)
|
|
EDPCTRL RPC^RPC^EDPCTRL^2^R^^^^1^^0
|
|
"KRN",8994,2518,1,0)
|
|
^^5^5^3080307^
|
|
"KRN",8994,2518,1,1,0)
|
|
This RPC acts as the "front controller" for the EDIS Tracking Application.
|
|
"KRN",8994,2518,1,2,0)
|
|
It accepts requests that are initially passed into a web server. The RPC
|
|
"KRN",8994,2518,1,3,0)
|
|
uses the parameters that are passed in to determine which command to
|
|
"KRN",8994,2518,1,4,0)
|
|
execute. The returned data is formatted as XML. The XML structure varies
|
|
"KRN",8994,2518,1,5,0)
|
|
based a what data were requested.
|
|
"KRN",8994,2518,2,0)
|
|
^8994.02A^1^1
|
|
"KRN",8994,2518,2,1,0)
|
|
PARAMS^2^^1^1
|
|
"KRN",8994,2518,2,1,1,0)
|
|
^^2^2^3080307^
|
|
"KRN",8994,2518,2,1,1,1,0)
|
|
This is a list of parameters that were passed to the Java middle tier via
|
|
"KRN",8994,2518,2,1,1,2,0)
|
|
an HTTP Post message.
|
|
"KRN",8994,2518,2,"B","PARAMS",1)
|
|
|
|
"KRN",8994,2518,2,"B","REQ",1)
|
|
|
|
"KRN",8994,2518,2,"PARAMSEQ",1,1)
|
|
|
|
"KRN",8994,2518,3,0)
|
|
^^1^1^3080307^
|
|
"KRN",8994,2518,3,1,0)
|
|
The return results are formatted as an XML document.
|
|
"KRN",8994,2519,-1)
|
|
0^1
|
|
"KRN",8994,2519,0)
|
|
EDPCBRD RPC^RPC^EDPCBRD^2^R^^^^^^1
|
|
"KRN",8994,2519,1,0)
|
|
^^8^8^3080307^
|
|
"KRN",8994,2519,1,1,0)
|
|
This RPC acts as the "front controller" for the EDIS Display Board. It
|
|
"KRN",8994,2519,1,2,0)
|
|
accepts requests that are initially passed into a web server. The RPC
|
|
"KRN",8994,2519,1,3,0)
|
|
uses the parameters that are passed in to determine which command to
|
|
"KRN",8994,2519,1,4,0)
|
|
execute. The returned data is formatted as XML. The XML structure
|
|
"KRN",8994,2519,1,5,0)
|
|
varies based a what data were requested.
|
|
"KRN",8994,2519,1,6,0)
|
|
|
|
"KRN",8994,2519,1,7,0)
|
|
Since the Display Board runs in a "kiosk" mode, this RPC allows proxy
|
|
"KRN",8994,2519,1,8,0)
|
|
user access.
|
|
"KRN",8994,2519,2,0)
|
|
^8994.02A^2^2
|
|
"KRN",8994,2519,2,1,0)
|
|
SESS^1^^1^1
|
|
"KRN",8994,2519,2,1,1,0)
|
|
^^3^3^3080307^
|
|
"KRN",8994,2519,2,1,1,1,0)
|
|
This identifies the user and site that are passed in from the Java middle
|
|
"KRN",8994,2519,2,1,1,2,0)
|
|
tier. In cases when the display board is running with a proxy user (in
|
|
"KRN",8994,2519,2,1,1,3,0)
|
|
kiosk mode), the SSL configuration will determine the user and site.
|
|
"KRN",8994,2519,2,2,0)
|
|
PARAMS^2^^^2
|
|
"KRN",8994,2519,2,2,1,0)
|
|
^^2^2^3080307^
|
|
"KRN",8994,2519,2,2,1,1,0)
|
|
This is a list of parameters that were passed to the Java middle tier via
|
|
"KRN",8994,2519,2,2,1,2,0)
|
|
an HTTP Post message.
|
|
"KRN",8994,2519,2,"B","PARAMS",2)
|
|
|
|
"KRN",8994,2519,2,"B","SESS",1)
|
|
|
|
"KRN",8994,2519,2,"PARAMSEQ",1,1)
|
|
|
|
"KRN",8994,2519,2,"PARAMSEQ",2,2)
|
|
|
|
"KRN",8994,2519,3,0)
|
|
^^1^1^3080307^
|
|
"KRN",8994,2519,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",17,409.61)
|
|
409.61;17;1;;;;;;;LMDEL^XPDIA1
|
|
"ORD",17,409.61,0)
|
|
LIST TEMPLATE
|
|
"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^3100902^3090915^10000000179
|
|
"PKG",562,22,1,1,0)
|
|
^^4^4^3100902
|
|
"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
|
|
"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")
|
|
55
|
|
"RTN","EDPBCF")
|
|
0^25^B25096927
|
|
"RTN","EDPBCF",1,0)
|
|
EDPBCF ;SLC/KCM - Display Board Configuration
|
|
"RTN","EDPBCF",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPBCF",3,0)
|
|
;
|
|
"RTN","EDPBCF",4,0)
|
|
LOAD(AREA) ; Load General Configuration for an Area
|
|
"RTN","EDPBCF",5,0)
|
|
N I,NODE
|
|
"RTN","EDPBCF",6,0)
|
|
;
|
|
"RTN","EDPBCF",7,0)
|
|
D XML^EDPX("<colorMaps>")
|
|
"RTN","EDPBCF",8,0)
|
|
D COLORS^EDPBCM
|
|
"RTN","EDPBCF",9,0)
|
|
D XML^EDPX("</colorMaps>")
|
|
"RTN","EDPBCF",10,0)
|
|
D LOAD^EDPBCM(AREA) ; load the color spec
|
|
"RTN","EDPBCF",11,0)
|
|
;
|
|
"RTN","EDPBCF",12,0)
|
|
D LOAD^EDPBRM(AREA) ; load rooms/beds
|
|
"RTN","EDPBCF",13,0)
|
|
D DFLTRM^EDPBRM(AREA) ; load multi rooms
|
|
"RTN","EDPBCF",14,0)
|
|
;
|
|
"RTN","EDPBCF",15,0)
|
|
D LOAD^EDPBPM(AREA) ; load parameters
|
|
"RTN","EDPBCF",16,0)
|
|
;
|
|
"RTN","EDPBCF",17,0)
|
|
D XML^EDPX("<columnList>") ; load available columns
|
|
"RTN","EDPBCF",18,0)
|
|
F I=1:1 S NODE=$P($T(COLUMNS+I),";",3,99) Q:$E(NODE,1,5)="zzzzz" D
|
|
"RTN","EDPBCF",19,0)
|
|
. N X
|
|
"RTN","EDPBCF",20,0)
|
|
. S X("label")=$P(NODE,U)
|
|
"RTN","EDPBCF",21,0)
|
|
. S X("att")=$P(NODE,U,2)
|
|
"RTN","EDPBCF",22,0)
|
|
. S X("header")=$P(NODE,U,3)
|
|
"RTN","EDPBCF",23,0)
|
|
. S X("width")=50
|
|
"RTN","EDPBCF",24,0)
|
|
. D XML^EDPX($$XMLA^EDPX("col",.X))
|
|
"RTN","EDPBCF",25,0)
|
|
D XML^EDPX("</columnList>")
|
|
"RTN","EDPBCF",26,0)
|
|
;
|
|
"RTN","EDPBCF",27,0)
|
|
D CHOICES^EDPBRM ; load 'display when' choices
|
|
"RTN","EDPBCF",28,0)
|
|
;
|
|
"RTN","EDPBCF",29,0)
|
|
N EDPSCRNS D GETLST^XPAR(.EDPSCRNS,"ALL","EDPF SCREEN SIZES","I")
|
|
"RTN","EDPBCF",30,0)
|
|
D XML^EDPX("<screenSizes>")
|
|
"RTN","EDPBCF",31,0)
|
|
S I=0 F S I=$O(EDPSCRNS(I)) Q:'I D
|
|
"RTN","EDPBCF",32,0)
|
|
. S EDPSCRNS(I)=$TR(EDPSCRNS(I),"X","x")
|
|
"RTN","EDPBCF",33,0)
|
|
. N X
|
|
"RTN","EDPBCF",34,0)
|
|
. S X("label")=EDPSCRNS(I)
|
|
"RTN","EDPBCF",35,0)
|
|
. S X("width")=$P(EDPSCRNS(I),"x")
|
|
"RTN","EDPBCF",36,0)
|
|
. S X("height")=$P(EDPSCRNS(I),"x",2)
|
|
"RTN","EDPBCF",37,0)
|
|
. D XML^EDPX($$XMLA^EDPX("size",.X))
|
|
"RTN","EDPBCF",38,0)
|
|
D XML^EDPX("</screenSizes>")
|
|
"RTN","EDPBCF",39,0)
|
|
Q
|
|
"RTN","EDPBCF",40,0)
|
|
LOADBRD(AREA,IEN) ; Load Named Board Spec
|
|
"RTN","EDPBCF",41,0)
|
|
N I,X,TOKEN
|
|
"RTN","EDPBCF",42,0)
|
|
S:'IEN IEN=$O(^EDPB(231.9,AREA,4,0)) Q:'IEN
|
|
"RTN","EDPBCF",43,0)
|
|
;
|
|
"RTN","EDPBCF",44,0)
|
|
D READL^EDPBLK(AREA,"board",.TOKEN) ; read lock the board config
|
|
"RTN","EDPBCF",45,0)
|
|
D XML^EDPX("<boardToken>"_TOKEN_"</boardToken>")
|
|
"RTN","EDPBCF",46,0)
|
|
D BRDLST(AREA)
|
|
"RTN","EDPBCF",47,0)
|
|
S X("boardID")=IEN,X("boardName")=$P(^EDPB(231.9,AREA,4,IEN,0),U)
|
|
"RTN","EDPBCF",48,0)
|
|
D XML^EDPX($$XMLA^EDPX("spec",.X,""))
|
|
"RTN","EDPBCF",49,0)
|
|
S I=0 F S I=$O(^EDPB(231.9,AREA,4,IEN,1,I)) Q:'I D
|
|
"RTN","EDPBCF",50,0)
|
|
. D XML^EDPX(^EDPB(231.9,AREA,4,IEN,1,I,0))
|
|
"RTN","EDPBCF",51,0)
|
|
D XML^EDPX("</spec>")
|
|
"RTN","EDPBCF",52,0)
|
|
D READU^EDPBLK(AREA,"board",.TOKEN) ; read unlock the board config
|
|
"RTN","EDPBCF",53,0)
|
|
Q
|
|
"RTN","EDPBCF",54,0)
|
|
BRDLST(AREA) ; List of boards
|
|
"RTN","EDPBCF",55,0)
|
|
N I,X
|
|
"RTN","EDPBCF",56,0)
|
|
D XML^EDPX("<boards>")
|
|
"RTN","EDPBCF",57,0)
|
|
S I=0 F S I=$O(^EDPB(231.9,AREA,4,I)) Q:'I D
|
|
"RTN","EDPBCF",58,0)
|
|
. S X=$P(^EDPB(231.9,AREA,4,I,0),U)
|
|
"RTN","EDPBCF",59,0)
|
|
. D XML^EDPX($$XMLS^EDPX("board",I,X))
|
|
"RTN","EDPBCF",60,0)
|
|
D XML^EDPX("</boards>")
|
|
"RTN","EDPBCF",61,0)
|
|
Q
|
|
"RTN","EDPBCF",62,0)
|
|
SAVEBRD(REQ) ; Save Configuration
|
|
"RTN","EDPBCF",63,0)
|
|
N X,AREA,DFLTNM
|
|
"RTN","EDPBCF",64,0)
|
|
S X="col-",AREA=$G(REQ("area",1)),DFLTNM="Main (default)"
|
|
"RTN","EDPBCF",65,0)
|
|
I 'AREA D SAVERR^EDPX("fail","Missing area") Q
|
|
"RTN","EDPBCF",66,0)
|
|
;
|
|
"RTN","EDPBCF",67,0)
|
|
N NAME,IEN,WP,MSG
|
|
"RTN","EDPBCF",68,0)
|
|
S NAME=$G(REQ("boardName",1)),IEN=+$G(REQ("boardID",1))
|
|
"RTN","EDPBCF",69,0)
|
|
I (IEN>0),($P(^EDPB(231.9,AREA,4,IEN,0),U)=DFLTNM),(NAME'=DFLTNM) D Q
|
|
"RTN","EDPBCF",70,0)
|
|
. D SAVERR^EDPX("fail","Default name may not be changed.")
|
|
"RTN","EDPBCF",71,0)
|
|
I NAME="" D Q
|
|
"RTN","EDPBCF",72,0)
|
|
. D SAVERR^EDPX("fail","Missing name")
|
|
"RTN","EDPBCF",73,0)
|
|
I (IEN=0),$O(^EDPB(231.9,AREA,4,"B",NAME,0)) D Q
|
|
"RTN","EDPBCF",74,0)
|
|
. D SAVERR^EDPX("fail","Board name must be unique")
|
|
"RTN","EDPBCF",75,0)
|
|
;
|
|
"RTN","EDPBCF",76,0)
|
|
; save XML spec as word processing
|
|
"RTN","EDPBCF",77,0)
|
|
N TOKEN,LOCKERR
|
|
"RTN","EDPBCF",78,0)
|
|
S TOKEN=$G(REQ("boardToken",1))
|
|
"RTN","EDPBCF",79,0)
|
|
D SAVEL^EDPBLK(AREA,"board",.TOKEN,.LOCKERR) ; save board config -- LOCK
|
|
"RTN","EDPBCF",80,0)
|
|
I $L(LOCKERR) D SAVERR^EDPX("collide",LOCKERR),LOADBRD(AREA,IEN) Q
|
|
"RTN","EDPBCF",81,0)
|
|
;
|
|
"RTN","EDPBCF",82,0)
|
|
F S X=$O(REQ(X)) Q:$E(X,1,4)'="col-" S WP(+$P(X,"-",2))=REQ(X,1)
|
|
"RTN","EDPBCF",83,0)
|
|
D UPDBRD(AREA,.IEN,NAME,.WP,.MSG)
|
|
"RTN","EDPBCF",84,0)
|
|
D SAVEU^EDPBLK(AREA,"board",.TOKEN) ; save board config -- UNLOCK
|
|
"RTN","EDPBCF",85,0)
|
|
;
|
|
"RTN","EDPBCF",86,0)
|
|
I $L(MSG) D SAVERR^EDPX("fail",MSG) Q
|
|
"RTN","EDPBCF",87,0)
|
|
D UPDLAST(AREA) ; update last config save date
|
|
"RTN","EDPBCF",88,0)
|
|
;
|
|
"RTN","EDPBCF",89,0)
|
|
D XML^EDPX("<save status='ok' boardID='"_+IEN_"' />")
|
|
"RTN","EDPBCF",90,0)
|
|
D LOADBRD(AREA,+IEN)
|
|
"RTN","EDPBCF",91,0)
|
|
Q
|
|
"RTN","EDPBCF",92,0)
|
|
UPDLAST(AREA) ; update last config save date
|
|
"RTN","EDPBCF",93,0)
|
|
N FDA,FDAIEN,DIERR
|
|
"RTN","EDPBCF",94,0)
|
|
S FDA(231.9,AREA_",",.03)=$$NOW^XLFDT
|
|
"RTN","EDPBCF",95,0)
|
|
D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPBCF",96,0)
|
|
D CLEAN^DILF
|
|
"RTN","EDPBCF",97,0)
|
|
Q
|
|
"RTN","EDPBCF",98,0)
|
|
UPDBRD(AREA,EDPIEN,NAME,SPEC,MSG) ; Add/Update a Spec
|
|
"RTN","EDPBCF",99,0)
|
|
S MSG=""
|
|
"RTN","EDPBCF",100,0)
|
|
S:'EDPIEN EDPIEN="+1" S EDPIEN=EDPIEN_","_AREA_","
|
|
"RTN","EDPBCF",101,0)
|
|
;
|
|
"RTN","EDPBCF",102,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPBCF",103,0)
|
|
S FDA(231.94,EDPIEN,.01)=NAME
|
|
"RTN","EDPBCF",104,0)
|
|
I $E(EDPIEN,1,2)="+1" D
|
|
"RTN","EDPBCF",105,0)
|
|
. D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPBCF",106,0)
|
|
E D
|
|
"RTN","EDPBCF",107,0)
|
|
. D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPBCF",108,0)
|
|
I $D(DIERR) S MSG="save board name failed: "_$G(EDPIEN)
|
|
"RTN","EDPBCF",109,0)
|
|
I '$D(DIERR) D
|
|
"RTN","EDPBCF",110,0)
|
|
. I $E(EDPIEN,1,2)="+1" S EDPIEN=+FDAIEN(1)_","_AREA_","
|
|
"RTN","EDPBCF",111,0)
|
|
. D WP^DIE(231.94,EDPIEN,1,"","SPEC")
|
|
"RTN","EDPBCF",112,0)
|
|
. I $D(DIERR) S MSG="save board spec failed: "_$G(EDPIEN)
|
|
"RTN","EDPBCF",113,0)
|
|
D CLEAN^DILF
|
|
"RTN","EDPBCF",114,0)
|
|
Q
|
|
"RTN","EDPBCF",115,0)
|
|
COLUMNS ;; Available Columns
|
|
"RTN","EDPBCF",116,0)
|
|
;;Room / Bed^@bedNm^Room
|
|
"RTN","EDPBCF",117,0)
|
|
;;Patient Name^@ptNm^Patient
|
|
"RTN","EDPBCF",118,0)
|
|
;;Patient X9999^@last4^Patient
|
|
"RTN","EDPBCF",119,0)
|
|
;;Visit Created^@visit^Visit
|
|
"RTN","EDPBCF",120,0)
|
|
;;Clinic^@clinicNm^Clinic
|
|
"RTN","EDPBCF",121,0)
|
|
;;Complaint^@complaint^Complaint
|
|
"RTN","EDPBCF",122,0)
|
|
;;Comment^@comment^Comment
|
|
"RTN","EDPBCF",123,0)
|
|
;;Provider Initials^@mdNm^Prv
|
|
"RTN","EDPBCF",124,0)
|
|
;;Resident Initials^@resNm^Res
|
|
"RTN","EDPBCF",125,0)
|
|
;;Nurse Initials^@rnNm^RN
|
|
"RTN","EDPBCF",126,0)
|
|
;;Acuity^@acuityNm^Acuity
|
|
"RTN","EDPBCF",127,0)
|
|
;;Status^@statusNm^Status
|
|
"RTN","EDPBCF",128,0)
|
|
;;Lab Active/Complete^@lab^L
|
|
"RTN","EDPBCF",129,0)
|
|
;;Imaging Active/Complete^@rad^I
|
|
"RTN","EDPBCF",130,0)
|
|
;;New (Unverified) Orders^@ordNew^New
|
|
"RTN","EDPBCF",131,0)
|
|
;;Total Minutes^@emins^E Mins
|
|
"RTN","EDPBCF",132,0)
|
|
;;Minutes at Location^@lmins^Mins
|
|
"RTN","EDPBCF",133,0)
|
|
;;zzzzz
|
|
"RTN","EDPBCM")
|
|
0^26^B17076528
|
|
"RTN","EDPBCM",1,0)
|
|
EDPBCM ;SLC/KCM - Available color maps
|
|
"RTN","EDPBCM",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPBCM",3,0)
|
|
;
|
|
"RTN","EDPBCM",4,0)
|
|
LOAD(AREA) ; Load Color Spec
|
|
"RTN","EDPBCM",5,0)
|
|
N I,TOKEN
|
|
"RTN","EDPBCM",6,0)
|
|
;
|
|
"RTN","EDPBCM",7,0)
|
|
D READL^EDPBLK(AREA,"color",.TOKEN) ; read color config -- LOCK
|
|
"RTN","EDPBCM",8,0)
|
|
D XML^EDPX("<colorToken>"_TOKEN_"</colorToken>")
|
|
"RTN","EDPBCM",9,0)
|
|
D XML^EDPX("<colorSpec>")
|
|
"RTN","EDPBCM",10,0)
|
|
S I=0 F S I=$O(^EDPB(231.9,AREA,3,I)) Q:'I D
|
|
"RTN","EDPBCM",11,0)
|
|
. D XML^EDPX(^EDPB(231.9,AREA,3,I,0))
|
|
"RTN","EDPBCM",12,0)
|
|
D XML^EDPX("</colorSpec>")
|
|
"RTN","EDPBCM",13,0)
|
|
D READU^EDPBLK(AREA,"color",.TOKEN) ; read color config -- UNLOCK
|
|
"RTN","EDPBCM",14,0)
|
|
Q
|
|
"RTN","EDPBCM",15,0)
|
|
SAVE(REQ) ; Save Configuration
|
|
"RTN","EDPBCM",16,0)
|
|
N X,WP,AREA,TOKEN,LOCKERR
|
|
"RTN","EDPBCM",17,0)
|
|
S X="xml-",AREA=$G(REQ("area",1))
|
|
"RTN","EDPBCM",18,0)
|
|
I 'AREA D SAVERR^EDPX("fail","Missing area") Q
|
|
"RTN","EDPBCM",19,0)
|
|
;
|
|
"RTN","EDPBCM",20,0)
|
|
S TOKEN=$G(REQ("colorToken",1))
|
|
"RTN","EDPBCM",21,0)
|
|
D SAVEL^EDPBLK(AREA,"color",.TOKEN,.LOCKERR) ; save color config -- LOCK
|
|
"RTN","EDPBCM",22,0)
|
|
I $L(LOCKERR) D SAVERR^EDPX("collide",LOCKERR),LOAD(AREA) Q
|
|
"RTN","EDPBCM",23,0)
|
|
;
|
|
"RTN","EDPBCM",24,0)
|
|
F S X=$O(REQ(X)) Q:$E(X,1,4)'="xml-" S WP(+$P(X,"-",2))=REQ(X,1)
|
|
"RTN","EDPBCM",25,0)
|
|
D WP^DIE(231.9,AREA_",",3,"","WP")
|
|
"RTN","EDPBCM",26,0)
|
|
D SAVEU^EDPBLK(AREA,"color",.TOKEN) ; save color config -- UNLOCK
|
|
"RTN","EDPBCM",27,0)
|
|
;
|
|
"RTN","EDPBCM",28,0)
|
|
I $D(DIERR) D SAVERR^EDPX("fail","save failed") Q
|
|
"RTN","EDPBCM",29,0)
|
|
D XML^EDPX("<save status='ok' />")
|
|
"RTN","EDPBCM",30,0)
|
|
D LOAD(AREA) ; return updated list of colors
|
|
"RTN","EDPBCM",31,0)
|
|
D UPDLAST^EDPBCF(AREA) ; update last config date
|
|
"RTN","EDPBCM",32,0)
|
|
Q
|
|
"RTN","EDPBCM",33,0)
|
|
COLORS ;; Available Color Maps
|
|
"RTN","EDPBCM",34,0)
|
|
D ENMAP("none"," ","none") ; for no selection
|
|
"RTN","EDPBCM",35,0)
|
|
;
|
|
"RTN","EDPBCM",36,0)
|
|
D ENMAP("stsAcuity","Status / Acuity","val")
|
|
"RTN","EDPBCM",37,0)
|
|
D CODES("status"),CODES("acuity"),EXMAP
|
|
"RTN","EDPBCM",38,0)
|
|
;
|
|
"RTN","EDPBCM",39,0)
|
|
D ENMAP("status","Status","val")
|
|
"RTN","EDPBCM",40,0)
|
|
D CODES("status"),EXMAP
|
|
"RTN","EDPBCM",41,0)
|
|
;
|
|
"RTN","EDPBCM",42,0)
|
|
D ENMAP("acuity","Acuity","val")
|
|
"RTN","EDPBCM",43,0)
|
|
D CODES("acuity"),EXMAP
|
|
"RTN","EDPBCM",44,0)
|
|
;
|
|
"RTN","EDPBCM",45,0)
|
|
D ENMAP("bed","Room / Bed","bed")
|
|
"RTN","EDPBCM",46,0)
|
|
D ENMAP("md","Provider","staff")
|
|
"RTN","EDPBCM",47,0)
|
|
D ENMAP("res","Resident","staff")
|
|
"RTN","EDPBCM",48,0)
|
|
D ENMAP("rn","Nurse","staff")
|
|
"RTN","EDPBCM",49,0)
|
|
;
|
|
"RTN","EDPBCM",50,0)
|
|
D ENMAP("labUrg","Urgency - Lab","val")
|
|
"RTN","EDPBCM",51,0)
|
|
D URG("labUrg"),EXMAP
|
|
"RTN","EDPBCM",52,0)
|
|
;D ENMAP("medUrg","Urgency - Medications","val")
|
|
"RTN","EDPBCM",53,0)
|
|
;D URG("medUrg"),EXMAP
|
|
"RTN","EDPBCM",54,0)
|
|
D ENMAP("radUrg","Urgency - Radiology","val")
|
|
"RTN","EDPBCM",55,0)
|
|
D URG("radUrg"),EXMAP
|
|
"RTN","EDPBCM",56,0)
|
|
;
|
|
"RTN","EDPBCM",57,0)
|
|
D ENMAP("emins","Total Elapsed Minutes","rng")
|
|
"RTN","EDPBCM",58,0)
|
|
D ENMAP("lmins","Minutes at Location","rng")
|
|
"RTN","EDPBCM",59,0)
|
|
D ENMAP("minLab","Minutes for Lab Order","rng")
|
|
"RTN","EDPBCM",60,0)
|
|
;D ENMAP("minMed","Minutes for Medication Order","rng")
|
|
"RTN","EDPBCM",61,0)
|
|
D ENMAP("minRad","Minutes for Imaging Order","rng")
|
|
"RTN","EDPBCM",62,0)
|
|
D ENMAP("minVer","Minutes for Unverified Order","rng")
|
|
"RTN","EDPBCM",63,0)
|
|
Q
|
|
"RTN","EDPBCM",64,0)
|
|
ENMAP(ID,NM,TYP) ; create element for colormap
|
|
"RTN","EDPBCM",65,0)
|
|
N X,END
|
|
"RTN","EDPBCM",66,0)
|
|
S END="/" S:TYP="val" END=""
|
|
"RTN","EDPBCM",67,0)
|
|
S X("id")=ID
|
|
"RTN","EDPBCM",68,0)
|
|
S X("nm")=NM
|
|
"RTN","EDPBCM",69,0)
|
|
S X("type")=TYP
|
|
"RTN","EDPBCM",70,0)
|
|
D XML^EDPX($$XMLA^EDPX("colors",.X,END))
|
|
"RTN","EDPBCM",71,0)
|
|
Q
|
|
"RTN","EDPBCM",72,0)
|
|
EXMAP ; create closing tag
|
|
"RTN","EDPBCM",73,0)
|
|
D XML^EDPX("</colors>")
|
|
"RTN","EDPBCM",74,0)
|
|
Q
|
|
"RTN","EDPBCM",75,0)
|
|
CODES(NM) ; create map elements for a set of codes
|
|
"RTN","EDPBCM",76,0)
|
|
N CODESET,IEN
|
|
"RTN","EDPBCM",77,0)
|
|
S CODESET=EDPSTA_"."_NM
|
|
"RTN","EDPBCM",78,0)
|
|
I '$D(^EDPB(233.2,"B",CODESET)) S CODESET="edp."_NM
|
|
"RTN","EDPBCM",79,0)
|
|
S IEN=$O(^EDPB(233.2,"B",CODESET,0))
|
|
"RTN","EDPBCM",80,0)
|
|
Q:'IEN
|
|
"RTN","EDPBCM",81,0)
|
|
;
|
|
"RTN","EDPBCM",82,0)
|
|
N SEQ,CODE,DA
|
|
"RTN","EDPBCM",83,0)
|
|
S SEQ=0 F S SEQ=$O(^EDPB(233.2,IEN,1,"B",SEQ)) Q:'SEQ D
|
|
"RTN","EDPBCM",84,0)
|
|
. S DA=0 F S DA=$O(^EDPB(233.2,IEN,1,"B",SEQ,DA)) Q:'DA D
|
|
"RTN","EDPBCM",85,0)
|
|
. . S CODE=$P(^EDPB(233.2,IEN,1,DA,0),U,2)
|
|
"RTN","EDPBCM",86,0)
|
|
. . Q:'CODE
|
|
"RTN","EDPBCM",87,0)
|
|
. . D MAP(NM,CODE,$P(^EDPB(233.1,CODE,0),U,2))
|
|
"RTN","EDPBCM",88,0)
|
|
Q
|
|
"RTN","EDPBCM",89,0)
|
|
URG(ATT) ; create map elements for standard urgencies
|
|
"RTN","EDPBCM",90,0)
|
|
D MAP(ATT,0,"No Orders")
|
|
"RTN","EDPBCM",91,0)
|
|
D MAP(ATT,1,"Active Orders")
|
|
"RTN","EDPBCM",92,0)
|
|
D MAP(ATT,2,"STAT Orders")
|
|
"RTN","EDPBCM",93,0)
|
|
Q
|
|
"RTN","EDPBCM",94,0)
|
|
MAP(ATT,VAL,NM) ; create a single map element
|
|
"RTN","EDPBCM",95,0)
|
|
N X
|
|
"RTN","EDPBCM",96,0)
|
|
S X("att")="@"_ATT
|
|
"RTN","EDPBCM",97,0)
|
|
S X("val")=VAL
|
|
"RTN","EDPBCM",98,0)
|
|
S X("nm")=NM
|
|
"RTN","EDPBCM",99,0)
|
|
S X("clr")=0
|
|
"RTN","EDPBCM",100,0)
|
|
D XML^EDPX($$XMLA^EDPX("map",.X))
|
|
"RTN","EDPBCM",101,0)
|
|
Q
|
|
"RTN","EDPBCM",102,0)
|
|
LIST ; Build selection list for color maps -- OBSOLETE?
|
|
"RTN","EDPBCM",103,0)
|
|
N I,X
|
|
"RTN","EDPBCM",104,0)
|
|
F I=1:1 S X=$P($T(MAPLST+I),";",3,99) Q:$E(X,1,5)="zzzzz" D
|
|
"RTN","EDPBCM",105,0)
|
|
. S X("data")=$P(X,U,1),X("label")=$P(X,U,2)
|
|
"RTN","EDPBCM",106,0)
|
|
. D XML^EDPX($$XMLA^EDPX("colors",.X))
|
|
"RTN","EDPBCM",107,0)
|
|
Q
|
|
"RTN","EDPBCM",108,0)
|
|
MAPLST ; list of available color maps
|
|
"RTN","EDPBCM",109,0)
|
|
;;^ ^
|
|
"RTN","EDPBCM",110,0)
|
|
;;stsAcuity^Status / Acuity
|
|
"RTN","EDPBCM",111,0)
|
|
;;status^Status
|
|
"RTN","EDPBCM",112,0)
|
|
;;acuity^Acuity
|
|
"RTN","EDPBCM",113,0)
|
|
;;bed^Room / Bed
|
|
"RTN","EDPBCM",114,0)
|
|
;;staff^Staff
|
|
"RTN","EDPBCM",115,0)
|
|
;;labUrg^Urgency - Lab
|
|
"RTN","EDPBCM",116,0)
|
|
;;radUrg^Urgency - Imaging
|
|
"RTN","EDPBCM",117,0)
|
|
;;emins^Total Minutes
|
|
"RTN","EDPBCM",118,0)
|
|
;;lmins^Minutes at Location
|
|
"RTN","EDPBCM",119,0)
|
|
;;minLab^Minutes for Lab Order
|
|
"RTN","EDPBCM",120,0)
|
|
;;minRad^Minutes for Imaging Order
|
|
"RTN","EDPBCM",121,0)
|
|
;;minVer^Minutes for Unverified Order
|
|
"RTN","EDPBCM",122,0)
|
|
;;zzzzz
|
|
"RTN","EDPBDL")
|
|
0^56^B11063047
|
|
"RTN","EDPBDL",1,0)
|
|
EDPBDL ;SLC/KCM - Delete/Inactivate Config Entries
|
|
"RTN","EDPBDL",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPBDL",3,0)
|
|
;
|
|
"RTN","EDPBDL",4,0)
|
|
BED ; Delete Room/Area entries
|
|
"RTN","EDPBDL",5,0)
|
|
N AREA,IEN
|
|
"RTN","EDPBDL",6,0)
|
|
D SETAREA(.AREA) Q:'AREA
|
|
"RTN","EDPBDL",7,0)
|
|
W !,"EDIS Delete Room-Bed Tool",!
|
|
"RTN","EDPBDL",8,0)
|
|
W !,"This will delete or inactivate an entry from the TRACKING ROOM-BED file."
|
|
"RTN","EDPBDL",9,0)
|
|
W !,"This may take time, as it must search for usage of the Room-Bed entry."
|
|
"RTN","EDPBDL",10,0)
|
|
W !,"If the entry has been referenced, it will be inactivated."
|
|
"RTN","EDPBDL",11,0)
|
|
W !,"Otherwise the entry will be deleted.",!
|
|
"RTN","EDPBDL",12,0)
|
|
F S IEN=$$LKBED(AREA) Q:'IEN D DELBED(IEN)
|
|
"RTN","EDPBDL",13,0)
|
|
Q
|
|
"RTN","EDPBDL",14,0)
|
|
LKBED(AREA) ; Lookup a bed
|
|
"RTN","EDPBDL",15,0)
|
|
N DIC,X,Y,DTOUT,DUOUT
|
|
"RTN","EDPBDL",16,0)
|
|
S DIC="^EDPB(231.8,",DIC(0)="AEMQ"
|
|
"RTN","EDPBDL",17,0)
|
|
S DIC("S")="I ($P(^(0),U,2)=DUZ(2)),($P(^(0),U,3)=AREA)"
|
|
"RTN","EDPBDL",18,0)
|
|
D ^DIC
|
|
"RTN","EDPBDL",19,0)
|
|
Q:+Y>0 +Y
|
|
"RTN","EDPBDL",20,0)
|
|
Q ""
|
|
"RTN","EDPBDL",21,0)
|
|
;
|
|
"RTN","EDPBDL",22,0)
|
|
DELBED(IEN) ; Delete bed if nothing references it, otherwise inactivate
|
|
"RTN","EDPBDL",23,0)
|
|
N NM,DA,DIE,DR,DIK,DTOUT,DUOUT
|
|
"RTN","EDPBDL",24,0)
|
|
S NM=$P($G(^EDPB(231.8,IEN,0)),U)
|
|
"RTN","EDPBDL",25,0)
|
|
I $$BEDUSED(IEN) D
|
|
"RTN","EDPBDL",26,0)
|
|
. S DA=IEN,DR=".01///Z"_NM_";.04///1",DIE="^EDPB(231.8,"
|
|
"RTN","EDPBDL",27,0)
|
|
. D ^DIE W !,NM," inactivated and renamed 'Z"_NM_"'.",!
|
|
"RTN","EDPBDL",28,0)
|
|
E D
|
|
"RTN","EDPBDL",29,0)
|
|
. S DA=IEN,DIK="^EDPB(231.8," D ^DIK
|
|
"RTN","EDPBDL",30,0)
|
|
. W !,$S($D(^EDPB(231.8,DA,0)):" not",1:"")_" deleted.",!
|
|
"RTN","EDPBDL",31,0)
|
|
Q
|
|
"RTN","EDPBDL",32,0)
|
|
BEDUSED(IEN) ; Return true if log entry references bed
|
|
"RTN","EDPBDL",33,0)
|
|
W !,"Searching for usages of ",$P(^EDPB(231.8,IEN,0),U)
|
|
"RTN","EDPBDL",34,0)
|
|
N I,FOUND,COUNT
|
|
"RTN","EDPBDL",35,0)
|
|
S I=0,FOUND=0,COUNT=0
|
|
"RTN","EDPBDL",36,0)
|
|
F S I=$O(^EDP(230.1,I)) Q:'I D Q:FOUND
|
|
"RTN","EDPBDL",37,0)
|
|
. I $P($G(^EDP(230.1,I,3)),U,4)=IEN W "...found" S FOUND=1
|
|
"RTN","EDPBDL",38,0)
|
|
. S COUNT=COUNT+1 I COUNT#100=0 W "."
|
|
"RTN","EDPBDL",39,0)
|
|
Q FOUND
|
|
"RTN","EDPBDL",40,0)
|
|
BOARD ; Delete Board entries
|
|
"RTN","EDPBDL",41,0)
|
|
Q
|
|
"RTN","EDPBDL",42,0)
|
|
CODE ; Delete Selection entries
|
|
"RTN","EDPBDL",43,0)
|
|
N AREA,SET
|
|
"RTN","EDPBDL",44,0)
|
|
D SETAREA(.AREA) Q:'AREA
|
|
"RTN","EDPBDL",45,0)
|
|
W !,"EDIS Delete Selection Tool",!
|
|
"RTN","EDPBDL",46,0)
|
|
W !,"This will delete a locally defined selection from"
|
|
"RTN","EDPBDL",47,0)
|
|
W !,"an EDIS selection list.",!
|
|
"RTN","EDPBDL",48,0)
|
|
S SET=$$LKSEL(AREA) Q:'SET
|
|
"RTN","EDPBDL",49,0)
|
|
;
|
|
"RTN","EDPBDL",50,0)
|
|
N DIC,X,Y,X0,NM,DTOUT,DUOUT
|
|
"RTN","EDPBDL",51,0)
|
|
S DIC="^EDPB(233.2,"_SET_",1,",DIC(0)="AEMQ"
|
|
"RTN","EDPBDL",52,0)
|
|
S DIC("W")="W $P(^(0),U,4)"
|
|
"RTN","EDPBDL",53,0)
|
|
D ^DIC
|
|
"RTN","EDPBDL",54,0)
|
|
Q:Y<1
|
|
"RTN","EDPBDL",55,0)
|
|
S X0=^EDPB(233.2,SET,1,+Y,0),NM=$P(^EDPB(233.1,+$P(X0,U,2),0),U)
|
|
"RTN","EDPBDL",56,0)
|
|
I $E(NM,1,3)="edp" W !,"Cannot delete nationally defined item." Q
|
|
"RTN","EDPBDL",57,0)
|
|
D DELCODE(SET,+Y)
|
|
"RTN","EDPBDL",58,0)
|
|
Q
|
|
"RTN","EDPBDL",59,0)
|
|
LKSEL(AREA) ; Choose selection list for deletion
|
|
"RTN","EDPBDL",60,0)
|
|
N DIR,X,Y,DTOUT,DUOUT,DIRUT
|
|
"RTN","EDPBDL",61,0)
|
|
S DIR(0)="SABO^1:Status;2:Disposition;3:Delay Reason;4:Source"
|
|
"RTN","EDPBDL",62,0)
|
|
S DIR("A")="Selection List (1/2/3/4):"
|
|
"RTN","EDPBDL",63,0)
|
|
S DIR("A",1)="Choose the list you with to delete from -"
|
|
"RTN","EDPBDL",64,0)
|
|
S DIR("A",2)="1: Status",DIR("A",3)="2: Disposition"
|
|
"RTN","EDPBDL",65,0)
|
|
S DIR("A",4)="3: Delay Reason",DIR("A",5)="4: Source"
|
|
"RTN","EDPBDL",66,0)
|
|
D ^DIR
|
|
"RTN","EDPBDL",67,0)
|
|
Q:'Y ""
|
|
"RTN","EDPBDL",68,0)
|
|
;
|
|
"RTN","EDPBDL",69,0)
|
|
N SETNM,IEN
|
|
"RTN","EDPBDL",70,0)
|
|
S SETNM=$S(1:".status",2:".disposition",3:".delay",4:".arrival",1:"")
|
|
"RTN","EDPBDL",71,0)
|
|
Q:SETNM="" ""
|
|
"RTN","EDPBDL",72,0)
|
|
S SETNM=$$STA^XUAF4(DUZ(2))_SETNM
|
|
"RTN","EDPBDL",73,0)
|
|
S IEN=$O(^EDPB(233.2,"B",SETNM,0))
|
|
"RTN","EDPBDL",74,0)
|
|
I 'IEN W !,"No locally defined selections found." Q ""
|
|
"RTN","EDPBDL",75,0)
|
|
Q IEN
|
|
"RTN","EDPBDL",76,0)
|
|
;
|
|
"RTN","EDPBDL",77,0)
|
|
DELCODE(SET,DA) ; Delete from inside selection multiple
|
|
"RTN","EDPBDL",78,0)
|
|
N DIK
|
|
"RTN","EDPBDL",79,0)
|
|
W !,$P(^EDPB(233.2,SET,1,DA,0),U,4)
|
|
"RTN","EDPBDL",80,0)
|
|
S DIK="^EDPB(233.2,"_SET_",1,",DA(1)=SET D ^DIK
|
|
"RTN","EDPBDL",81,0)
|
|
W " ",$S($D(^EDPB(233.2,SET,1,DA,0)):" not",1:"")," deleted",!
|
|
"RTN","EDPBDL",82,0)
|
|
Q
|
|
"RTN","EDPBDL",83,0)
|
|
;
|
|
"RTN","EDPBDL",84,0)
|
|
SETAREA(AREA) ; Set to default area for institution in DUZ(2)
|
|
"RTN","EDPBDL",85,0)
|
|
S AREA=$O(^EDPB(231.9,"C",DUZ(2),0))
|
|
"RTN","EDPBDL",86,0)
|
|
I 'AREA W !,"No tracking area is configured."
|
|
"RTN","EDPBDL",87,0)
|
|
Q
|
|
"RTN","EDPBKS")
|
|
0^57^B15371728
|
|
"RTN","EDPBKS",1,0)
|
|
EDPBKS ;SLC/MKB -- EDPF BIGBOARD KIOSKS list template
|
|
"RTN","EDPBKS",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPBKS",3,0)
|
|
;
|
|
"RTN","EDPBKS",4,0)
|
|
EN ; -- main entry point
|
|
"RTN","EDPBKS",5,0)
|
|
S EDPSITE=$$DIV Q:EDPSITE<1
|
|
"RTN","EDPBKS",6,0)
|
|
D EN^VALM("EDPF BIGBOARD KIOSKS")
|
|
"RTN","EDPBKS",7,0)
|
|
Q
|
|
"RTN","EDPBKS",8,0)
|
|
;
|
|
"RTN","EDPBKS",9,0)
|
|
HDR ; -- header code
|
|
"RTN","EDPBKS",10,0)
|
|
N X S X=$$NS^XUAF4(EDPSITE)
|
|
"RTN","EDPBKS",11,0)
|
|
S VALMHDR(1)="Division: "_$P(X,U)_" ("_$P(X,U,2)_")"
|
|
"RTN","EDPBKS",12,0)
|
|
Q
|
|
"RTN","EDPBKS",13,0)
|
|
;
|
|
"RTN","EDPBKS",14,0)
|
|
INIT ; -- init variables and list array EDPB
|
|
"RTN","EDPBKS",15,0)
|
|
N EDPX,I,X K EDPB
|
|
"RTN","EDPBKS",16,0)
|
|
D GETLST^XPAR(.EDPX,"DIV.`"_EDPSITE,"EDPF BIGBOARD KIOSKS")
|
|
"RTN","EDPBKS",17,0)
|
|
S VALMCNT=EDPX I EDPX F I=1:1:EDPX D
|
|
"RTN","EDPBKS",18,0)
|
|
. S X=EDPX(I),EDPB("IDX",I)=X
|
|
"RTN","EDPBKS",19,0)
|
|
. N X1,X2 S X1=$P(X,U),X2=$P(X,U,2)
|
|
"RTN","EDPBKS",20,0)
|
|
. S:$L(X1)>37 X1=$E(X1,1,37)_"..." S:$L(X2)>27 X2=$E(X2,1,27)_"..."
|
|
"RTN","EDPBKS",21,0)
|
|
. S EDPB(I,0)=$$LJ^XLFSTR(I,4)_$$LJ^XLFSTR(X1,40)_X2
|
|
"RTN","EDPBKS",22,0)
|
|
Q
|
|
"RTN","EDPBKS",23,0)
|
|
;
|
|
"RTN","EDPBKS",24,0)
|
|
HELP ; -- help code
|
|
"RTN","EDPBKS",25,0)
|
|
S X="?" D DISP^XQORM1 W !!
|
|
"RTN","EDPBKS",26,0)
|
|
Q
|
|
"RTN","EDPBKS",27,0)
|
|
;
|
|
"RTN","EDPBKS",28,0)
|
|
EXIT ; -- exit code
|
|
"RTN","EDPBKS",29,0)
|
|
K EDPSITE
|
|
"RTN","EDPBKS",30,0)
|
|
Q
|
|
"RTN","EDPBKS",31,0)
|
|
;
|
|
"RTN","EDPBKS",32,0)
|
|
DIV() ; -- select division
|
|
"RTN","EDPBKS",33,0)
|
|
N X,Y,DIC
|
|
"RTN","EDPBKS",34,0)
|
|
S DIC=4,DIC(0)="AEQM"
|
|
"RTN","EDPBKS",35,0)
|
|
; DIC("S")= only local divisions ??
|
|
"RTN","EDPBKS",36,0)
|
|
D ^DIC S Y=$S(Y<1:"",1:+Y)
|
|
"RTN","EDPBKS",37,0)
|
|
Q Y
|
|
"RTN","EDPBKS",38,0)
|
|
;
|
|
"RTN","EDPBKS",39,0)
|
|
ENTER(NAME,DEFAULT) ; -- prompt for NAME
|
|
"RTN","EDPBKS",40,0)
|
|
N X,Y,DIR,DTOUT,DUOUT
|
|
"RTN","EDPBKS",41,0)
|
|
S DIR(0)="FAO",DIR("A")=NAME_": " S:$L($G(DEFAULT)) DIR("B")=DEFAULT
|
|
"RTN","EDPBKS",42,0)
|
|
I $E(NAME)="C" S DIR("?")="Enter a fully specified computer name; this will be saved in lowercase."
|
|
"RTN","EDPBKS",43,0)
|
|
E S DIR("?")="Enter the name of the board to be displayed on this computer; this value is case-sensitive."
|
|
"RTN","EDPBKS",44,0)
|
|
D ^DIR I $G(DTOUT)!$G(DUOUT) S Y=""
|
|
"RTN","EDPBKS",45,0)
|
|
Q Y
|
|
"RTN","EDPBKS",46,0)
|
|
;
|
|
"RTN","EDPBKS",47,0)
|
|
SELECT() ; -- select item from list by number
|
|
"RTN","EDPBKS",48,0)
|
|
N X,Y,DIR,DTOUT,DUOUT
|
|
"RTN","EDPBKS",49,0)
|
|
S DIR(0)="NAO^1:"_VALMCNT,DIR("A")="Select computer/board: "
|
|
"RTN","EDPBKS",50,0)
|
|
D ^DIR
|
|
"RTN","EDPBKS",51,0)
|
|
Q Y
|
|
"RTN","EDPBKS",52,0)
|
|
;
|
|
"RTN","EDPBKS",53,0)
|
|
SURE(NAME) ; -- are you sure?
|
|
"RTN","EDPBKS",54,0)
|
|
N X,Y,DIR,DTOUT,DUOUT W !
|
|
"RTN","EDPBKS",55,0)
|
|
S DIR("A",1)="Deletions are done immediately!"
|
|
"RTN","EDPBKS",56,0)
|
|
S DIR(0)="YA",DIR("A")="Are you sure"_$S($L($G(NAME)):" you want to remove "_NAME,1:"")_"? "
|
|
"RTN","EDPBKS",57,0)
|
|
D ^DIR
|
|
"RTN","EDPBKS",58,0)
|
|
Q Y
|
|
"RTN","EDPBKS",59,0)
|
|
;
|
|
"RTN","EDPBKS",60,0)
|
|
; -- EDPF BIGBOARD MENU actions --
|
|
"RTN","EDPBKS",61,0)
|
|
;
|
|
"RTN","EDPBKS",62,0)
|
|
NEWDIV ; -- select new division
|
|
"RTN","EDPBKS",63,0)
|
|
N X D FULL^VALM1 S VALMBCK="R"
|
|
"RTN","EDPBKS",64,0)
|
|
S X=$$DIV I X,X'=EDPSITE D
|
|
"RTN","EDPBKS",65,0)
|
|
. W !,"Rebuilding list ..." H 1
|
|
"RTN","EDPBKS",66,0)
|
|
. S EDPSITE=X D INIT
|
|
"RTN","EDPBKS",67,0)
|
|
. K VALMHDR
|
|
"RTN","EDPBKS",68,0)
|
|
Q
|
|
"RTN","EDPBKS",69,0)
|
|
;
|
|
"RTN","EDPBKS",70,0)
|
|
ADD ; -- add a computer/board
|
|
"RTN","EDPBKS",71,0)
|
|
N INST,VAL,DONE,EDPERR,MORE
|
|
"RTN","EDPBKS",72,0)
|
|
D FULL^VALM1 S VALMBCK="R" W !
|
|
"RTN","EDPBKS",73,0)
|
|
S (DONE,MORE)=0 F D Q:DONE
|
|
"RTN","EDPBKS",74,0)
|
|
. S INST=$$ENTER("Computer Name") I '$L(INST) S DONE=1 Q
|
|
"RTN","EDPBKS",75,0)
|
|
. S INST=$$LOW^XLFSTR(INST) ;enforce lowercase
|
|
"RTN","EDPBKS",76,0)
|
|
. S VAL=$$ENTER("Display Board") I '$L(VAL) S DONE=1 Q
|
|
"RTN","EDPBKS",77,0)
|
|
. D ADD^XPAR("DIV.`"_EDPSITE,"EDPF BIGBOARD KIOSKS",INST,VAL,.EDPERR)
|
|
"RTN","EDPBKS",78,0)
|
|
. I EDPERR W !,$P(EDPERR,U,2),! H 2 Q
|
|
"RTN","EDPBKS",79,0)
|
|
. S MORE=1 W !
|
|
"RTN","EDPBKS",80,0)
|
|
D:MORE INIT
|
|
"RTN","EDPBKS",81,0)
|
|
Q
|
|
"RTN","EDPBKS",82,0)
|
|
;
|
|
"RTN","EDPBKS",83,0)
|
|
REM ; -- remove a computer/board
|
|
"RTN","EDPBKS",84,0)
|
|
N NUM,INST,EDPERR S VALMBCK=""
|
|
"RTN","EDPBKS",85,0)
|
|
S NUM=$$SELECT Q:NUM<1
|
|
"RTN","EDPBKS",86,0)
|
|
S INST=$P($G(EDPB("IDX",NUM)),U)
|
|
"RTN","EDPBKS",87,0)
|
|
I '$L(INST) W !,"Invalid selection" H 1 Q
|
|
"RTN","EDPBKS",88,0)
|
|
Q:'$$SURE(INST)
|
|
"RTN","EDPBKS",89,0)
|
|
D DEL^XPAR("DIV.`"_EDPSITE,"EDPF BIGBOARD KIOSKS",INST,.EDPERR)
|
|
"RTN","EDPBKS",90,0)
|
|
I EDPERR W !,$P(EDPERR,U,2) H 2 Q
|
|
"RTN","EDPBKS",91,0)
|
|
W !,"Board removed." H 1
|
|
"RTN","EDPBKS",92,0)
|
|
D INIT S VALMBCK="R"
|
|
"RTN","EDPBKS",93,0)
|
|
Q
|
|
"RTN","EDPBKS",94,0)
|
|
;
|
|
"RTN","EDPBKS",95,0)
|
|
CHG ; -- change a computer or board name
|
|
"RTN","EDPBKS",96,0)
|
|
N NUM,OLD,INST,VAL,EDPERR S VALMBCK=""
|
|
"RTN","EDPBKS",97,0)
|
|
S NUM=$$SELECT Q:NUM<1
|
|
"RTN","EDPBKS",98,0)
|
|
S OLD=$G(EDPB("IDX",NUM)),VALMBCK="R"
|
|
"RTN","EDPBKS",99,0)
|
|
S INST=$$ENTER("Computer Name",$P(OLD,U)) Q:'$L(INST)
|
|
"RTN","EDPBKS",100,0)
|
|
S INST=$$LOW^XLFSTR(INST) ;enforce lowercase
|
|
"RTN","EDPBKS",101,0)
|
|
S VAL=$$ENTER("Display Board",$P(OLD,U,2)) Q:'$L(VAL)
|
|
"RTN","EDPBKS",102,0)
|
|
I OLD=(INST_U_VAL) Q ;no change
|
|
"RTN","EDPBKS",103,0)
|
|
I INST'=$P(OLD,U) D Q:EDPERR
|
|
"RTN","EDPBKS",104,0)
|
|
. D REP^XPAR("DIV.`"_EDPSITE,"EDPF BIGBOARD KIOSKS",$P(OLD,U),INST,.EDPERR)
|
|
"RTN","EDPBKS",105,0)
|
|
. I EDPERR W !,$P(EDPERR,U,2) H 2
|
|
"RTN","EDPBKS",106,0)
|
|
I VAL'=$P(OLD,U,2) D
|
|
"RTN","EDPBKS",107,0)
|
|
. D CHG^XPAR("DIV.`"_EDPSITE,"EDPF BIGBOARD KIOSKS",INST,VAL,.EDPERR)
|
|
"RTN","EDPBKS",108,0)
|
|
. I EDPERR W !,$P(EDPERR,U,2) H 2 Q
|
|
"RTN","EDPBKS",109,0)
|
|
D INIT
|
|
"RTN","EDPBKS",110,0)
|
|
Q
|
|
"RTN","EDPBLK")
|
|
0^55^B7330093
|
|
"RTN","EDPBLK",1,0)
|
|
EDPBLK ;SLC/KCM - Handle locking for configuration
|
|
"RTN","EDPBLK",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPBLK",3,0)
|
|
;
|
|
"RTN","EDPBLK",4,0)
|
|
READL(AREA,PART,TOKEN) ; lock for reading
|
|
"RTN","EDPBLK",5,0)
|
|
N DAY,SEQ
|
|
"RTN","EDPBLK",6,0)
|
|
S DAY=$$INITLOCK
|
|
"RTN","EDPBLK",7,0)
|
|
L +^XTMP("EDP-LOCK-"_DAY,AREA,PART):10 E Q ""
|
|
"RTN","EDPBLK",8,0)
|
|
S SEQ=+$G(^XTMP("EDP-LOCK-"_DAY,AREA,PART,"READ"))+1
|
|
"RTN","EDPBLK",9,0)
|
|
S ^XTMP("EDP-LOCK-"_DAY,AREA,PART,"READ")=SEQ
|
|
"RTN","EDPBLK",10,0)
|
|
S TOKEN=DAY_"-"_SEQ
|
|
"RTN","EDPBLK",11,0)
|
|
Q
|
|
"RTN","EDPBLK",12,0)
|
|
READU(AREA,PART,TOKEN) ; unlock for reading
|
|
"RTN","EDPBLK",13,0)
|
|
Q:$G(TOKEN)=""
|
|
"RTN","EDPBLK",14,0)
|
|
L -^XTMP("EDP-LOCK-"_$P(TOKEN,"-"),AREA,PART)
|
|
"RTN","EDPBLK",15,0)
|
|
Q
|
|
"RTN","EDPBLK",16,0)
|
|
INITLOCK() ; returns lock table id, initializing new table if necessary
|
|
"RTN","EDPBLK",17,0)
|
|
S DAY=+$H
|
|
"RTN","EDPBLK",18,0)
|
|
I '$D(^XTMP("EDP-LOCK-"_DAY,0)) D
|
|
"RTN","EDPBLK",19,0)
|
|
. S ^XTMP("EDP-LOCK-"_DAY,0)=$$FMADD^XLFDT(DT,2)_U_DT_U_"ED Locks"
|
|
"RTN","EDPBLK",20,0)
|
|
. N X S X=DAY-3 ; delete any older than 3 days
|
|
"RTN","EDPBLK",21,0)
|
|
. F S X=$O(^XTMP("EDP-LOCK-"_X),-1) Q:$E(X,1,8)'="EDP-LOCK" D
|
|
"RTN","EDPBLK",22,0)
|
|
. . S X=$P(X,"-",3)
|
|
"RTN","EDPBLK",23,0)
|
|
. . K ^XTMP("EDP-LOCK-"_X)
|
|
"RTN","EDPBLK",24,0)
|
|
Q DAY
|
|
"RTN","EDPBLK",25,0)
|
|
;
|
|
"RTN","EDPBLK",26,0)
|
|
SAVEL(AREA,PART,TOKEN,ERR) ; lock for saving configuration
|
|
"RTN","EDPBLK",27,0)
|
|
; ERR is return, empty if successful, message if lock fails
|
|
"RTN","EDPBLK",28,0)
|
|
; TOKEN is returned with save token, contains read token initially
|
|
"RTN","EDPBLK",29,0)
|
|
S ERR=""
|
|
"RTN","EDPBLK",30,0)
|
|
I '$L(TOKEN) S ERR="Unable to update with empty token" Q
|
|
"RTN","EDPBLK",31,0)
|
|
;
|
|
"RTN","EDPBLK",32,0)
|
|
; extract from token the time of the GET
|
|
"RTN","EDPBLK",33,0)
|
|
N GDAY,GSEQ
|
|
"RTN","EDPBLK",34,0)
|
|
S GDAY=$P(TOKEN,"-"),GSEQ=$P(TOKEN,"-",2)
|
|
"RTN","EDPBLK",35,0)
|
|
;
|
|
"RTN","EDPBLK",36,0)
|
|
; lock out all reads during the update
|
|
"RTN","EDPBLK",37,0)
|
|
N DAY
|
|
"RTN","EDPBLK",38,0)
|
|
S DAY=$$INITLOCK
|
|
"RTN","EDPBLK",39,0)
|
|
L +^XTMP("EDP-LOCK-"_DAY,AREA,PART):10 E S ERR="Unable to obtain lock" Q
|
|
"RTN","EDPBLK",40,0)
|
|
;
|
|
"RTN","EDPBLK",41,0)
|
|
; look backwards for interfering updates since GET
|
|
"RTN","EDPBLK",42,0)
|
|
N COLLIDE,SEQ,X,Y
|
|
"RTN","EDPBLK",43,0)
|
|
S COLLIDE="",X="EDP-LOCK-?"
|
|
"RTN","EDPBLK",44,0)
|
|
F S X=$O(^XTMP(X),-1) Q:$E(X,1,8)'="EDP-LOCK" Q:$P(X,"-",3)<GDAY D
|
|
"RTN","EDPBLK",45,0)
|
|
. S Y=$O(^XTMP(X,AREA,PART,"SAVE"," "),-1) Q:'Y ; no puts
|
|
"RTN","EDPBLK",46,0)
|
|
. I (GDAY=$P(X,"-",3)),(Y<GSEQ) Q ; put earlier than get token
|
|
"RTN","EDPBLK",47,0)
|
|
. S COLLIDE=^XTMP(X,AREA,PART,"SAVE",Y)
|
|
"RTN","EDPBLK",48,0)
|
|
;
|
|
"RTN","EDPBLK",49,0)
|
|
I COLLIDE D
|
|
"RTN","EDPBLK",50,0)
|
|
. L -^XTMP("EDP-LOCK-"_DAY,AREA,PART)
|
|
"RTN","EDPBLK",51,0)
|
|
. I COLLIDE=TOKEN S ERR="These changes have already been saved." Q
|
|
"RTN","EDPBLK",52,0)
|
|
. S ERR="Only one person should edit the configuration at a time. "
|
|
"RTN","EDPBLK",53,0)
|
|
. S ERR=ERR_"The configuration has been modified since you began. "
|
|
"RTN","EDPBLK",54,0)
|
|
. S ERR=ERR_"You will need to re-enter the changes you have made."
|
|
"RTN","EDPBLK",55,0)
|
|
E D
|
|
"RTN","EDPBLK",56,0)
|
|
. S SEQ=+$G(^XTMP("EDP-LOCK-"_DAY,AREA,PART,"READ"))+1
|
|
"RTN","EDPBLK",57,0)
|
|
. S ^XTMP("EDP-LOCK-"_DAY,AREA,PART,"READ")=SEQ
|
|
"RTN","EDPBLK",58,0)
|
|
. S ^XTMP("EDP-LOCK-"_DAY,AREA,PART,"SAVE",SEQ)=TOKEN
|
|
"RTN","EDPBLK",59,0)
|
|
. S TOKEN=DAY_"-"_SEQ
|
|
"RTN","EDPBLK",60,0)
|
|
;
|
|
"RTN","EDPBLK",61,0)
|
|
; return & do the actual update now, unlocking afterwards
|
|
"RTN","EDPBLK",62,0)
|
|
Q
|
|
"RTN","EDPBLK",63,0)
|
|
SAVEU(AREA,PART,TOKEN) ; Unlock for saving
|
|
"RTN","EDPBLK",64,0)
|
|
L -^XTMP("EDP-LOCK-"_$P(TOKEN,"-"),AREA,PART)
|
|
"RTN","EDPBLK",65,0)
|
|
Q
|
|
"RTN","EDPBPM")
|
|
0^27^B6216911
|
|
"RTN","EDPBPM",1,0)
|
|
EDPBPM ;SLC/KCM - Parameters for Tracking Area
|
|
"RTN","EDPBPM",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPBPM",3,0)
|
|
;
|
|
"RTN","EDPBPM",4,0)
|
|
LOAD(AREA) ; load parameters for area
|
|
"RTN","EDPBPM",5,0)
|
|
N X,X1,TOKEN
|
|
"RTN","EDPBPM",6,0)
|
|
D READL^EDPBLK(AREA,"param",.TOKEN) ; read param config -- LOCK
|
|
"RTN","EDPBPM",7,0)
|
|
D XML^EDPX("<paramToken>"_TOKEN_"</paramToken>")
|
|
"RTN","EDPBPM",8,0)
|
|
S X1=$G(^EDPB(231.9,AREA,1))
|
|
"RTN","EDPBPM",9,0)
|
|
S X("reqDiag")=+$P(X1,U,1)
|
|
"RTN","EDPBPM",10,0)
|
|
S X("codedDiag")=+$P(X1,U,2)
|
|
"RTN","EDPBPM",11,0)
|
|
S X("reqDisp")=+$P(X1,U,3)
|
|
"RTN","EDPBPM",12,0)
|
|
S X("reqDelay")=+$P(X1,U,4)
|
|
"RTN","EDPBPM",13,0)
|
|
S X("minDelay")=+$P(X1,U,5)
|
|
"RTN","EDPBPM",14,0)
|
|
S X("shiftOne")=$P(X1,U,6)
|
|
"RTN","EDPBPM",15,0)
|
|
S X("shiftLen")=$P(X1,U,7)
|
|
"RTN","EDPBPM",16,0)
|
|
S X("residents")=$P(X1,U,8)
|
|
"RTN","EDPBPM",17,0)
|
|
S X("clinics")=$P(X1,U,9)
|
|
"RTN","EDPBPM",18,0)
|
|
S X("ambulance")=$P(X1,U,11)
|
|
"RTN","EDPBPM",19,0)
|
|
S X("dfltroom")=$P(X1,U,12)
|
|
"RTN","EDPBPM",20,0)
|
|
D XML^EDPX($$XMLA^EDPX("params",.X))
|
|
"RTN","EDPBPM",21,0)
|
|
D READU^EDPBLK(AREA,"param",.TOKEN) ; read param config -- UNLOCK
|
|
"RTN","EDPBPM",22,0)
|
|
Q
|
|
"RTN","EDPBPM",23,0)
|
|
SAVE(AREA,PARAM) ; save updated parameters
|
|
"RTN","EDPBPM",24,0)
|
|
I '$D(^EDPB(231.9,AREA,0)) D SAVERR^EDPX("fail","Area not set up") Q
|
|
"RTN","EDPBPM",25,0)
|
|
;
|
|
"RTN","EDPBPM",26,0)
|
|
N TOKEN,LOCKERR
|
|
"RTN","EDPBPM",27,0)
|
|
S TOKEN=$G(REQ("paramToken",1))
|
|
"RTN","EDPBPM",28,0)
|
|
D SAVEL^EDPBLK(AREA,"param",.TOKEN,.LOCKERR) ; save param config -- LOCK
|
|
"RTN","EDPBPM",29,0)
|
|
I $L(LOCKERR) D SAVERR^EDPX("collide",LOCKERR),LOAD(AREA) Q
|
|
"RTN","EDPBPM",30,0)
|
|
;
|
|
"RTN","EDPBPM",31,0)
|
|
N FLD D NVPARSE^EDPX(.FLD,PARAM)
|
|
"RTN","EDPBPM",32,0)
|
|
N FDA,FDAIEN,DIERR
|
|
"RTN","EDPBPM",33,0)
|
|
S AREA=AREA_","
|
|
"RTN","EDPBPM",34,0)
|
|
I FLD("ambulance")=-1 S FLD("ambulance")="@"
|
|
"RTN","EDPBPM",35,0)
|
|
I FLD("dfltroom")=-1 S FLD("dfltroom")="@"
|
|
"RTN","EDPBPM",36,0)
|
|
S FDA(231.9,AREA,1.1)=FLD("reqDiag")
|
|
"RTN","EDPBPM",37,0)
|
|
S FDA(231.9,AREA,1.2)=FLD("codedDiag")
|
|
"RTN","EDPBPM",38,0)
|
|
S FDA(231.9,AREA,1.3)=FLD("reqDisp")
|
|
"RTN","EDPBPM",39,0)
|
|
S FDA(231.9,AREA,1.4)=FLD("reqDelay")
|
|
"RTN","EDPBPM",40,0)
|
|
S FDA(231.9,AREA,1.5)=FLD("minDelay")
|
|
"RTN","EDPBPM",41,0)
|
|
S FDA(231.9,AREA,1.6)=FLD("shiftOne")
|
|
"RTN","EDPBPM",42,0)
|
|
S FDA(231.9,AREA,1.7)=FLD("shiftLen")
|
|
"RTN","EDPBPM",43,0)
|
|
S FDA(231.9,AREA,1.8)=FLD("residents")
|
|
"RTN","EDPBPM",44,0)
|
|
S FDA(231.9,AREA,1.9)=FLD("clinics")
|
|
"RTN","EDPBPM",45,0)
|
|
S FDA(231.9,AREA,1.11)=FLD("ambulance")
|
|
"RTN","EDPBPM",46,0)
|
|
S FDA(231.9,AREA,1.12)=FLD("dfltroom")
|
|
"RTN","EDPBPM",47,0)
|
|
D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPBPM",48,0)
|
|
D SAVEU^EDPBLK(+AREA,"param",.TOKEN) ; save param config -- UNLOCK
|
|
"RTN","EDPBPM",49,0)
|
|
;
|
|
"RTN","EDPBPM",50,0)
|
|
I $D(DIERR) D SAVERR^EDPX("fail",$G(ERR("DIERR",1,"TEXT",1))) Q
|
|
"RTN","EDPBPM",51,0)
|
|
D XML^EDPX("<save status='ok' />")
|
|
"RTN","EDPBPM",52,0)
|
|
D LOAD(+AREA)
|
|
"RTN","EDPBPM",53,0)
|
|
Q
|
|
"RTN","EDPBPM",54,0)
|
|
TZSAVE(AREA,TZDIFF) ; save time zone difference in minutes
|
|
"RTN","EDPBPM",55,0)
|
|
N FDA,FDAIEN,DIERR
|
|
"RTN","EDPBPM",56,0)
|
|
S AREA=AREA_","
|
|
"RTN","EDPBPM",57,0)
|
|
S FDA(231.9,AREA,.03)=TZDIFF
|
|
"RTN","EDPBPM",58,0)
|
|
D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPBPM",59,0)
|
|
Q
|
|
"RTN","EDPBRM")
|
|
0^28^B24385375
|
|
"RTN","EDPBRM",1,0)
|
|
EDPBRM ;SLC/KCM - Room/Bed Configuration
|
|
"RTN","EDPBRM",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,TOKEN
|
|
"RTN","EDPBRM",6,0)
|
|
;
|
|
"RTN","EDPBRM",7,0)
|
|
D READL^EDPBLK(AREA,"bed",.TOKEN) ; read bed config -- LOCK
|
|
"RTN","EDPBRM",8,0)
|
|
D XML^EDPX("<bedToken>"_TOKEN_"</bedToken>")
|
|
"RTN","EDPBRM",9,0)
|
|
;
|
|
"RTN","EDPBRM",10,0)
|
|
; Get a list of all the beds in sequence for this area
|
|
"RTN","EDPBRM",11,0)
|
|
S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
|
|
"RTN","EDPBRM",12,0)
|
|
. S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999
|
|
"RTN","EDPBRM",13,0)
|
|
. S BEDS(SEQ,BED)=""
|
|
"RTN","EDPBRM",14,0)
|
|
;
|
|
"RTN","EDPBRM",15,0)
|
|
; Build the XML for each bed in sequence
|
|
"RTN","EDPBRM",16,0)
|
|
D XML^EDPX("<beds>")
|
|
"RTN","EDPBRM",17,0)
|
|
S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D
|
|
"RTN","EDPBRM",18,0)
|
|
. S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D
|
|
"RTN","EDPBRM",19,0)
|
|
. . S X0=^EDPB(231.8,BED,0)
|
|
"RTN","EDPBRM",20,0)
|
|
. . N X
|
|
"RTN","EDPBRM",21,0)
|
|
. . S X("id")=BED
|
|
"RTN","EDPBRM",22,0)
|
|
. . S X("name")=$P(X0,U)
|
|
"RTN","EDPBRM",23,0)
|
|
. . S X("site")=$P(X0,U,2)
|
|
"RTN","EDPBRM",24,0)
|
|
. . S X("area")=$P(X0,U,3)
|
|
"RTN","EDPBRM",25,0)
|
|
. . S X("inactive")=$P(X0,U,4)
|
|
"RTN","EDPBRM",26,0)
|
|
. . S X("seq")=$P(X0,U,5)
|
|
"RTN","EDPBRM",27,0)
|
|
. . S X("display")=$P(X0,U,6)
|
|
"RTN","EDPBRM",28,0)
|
|
. . S X("when")=$P(X0,U,7)
|
|
"RTN","EDPBRM",29,0)
|
|
. . S X("status")=$P(X0,U,8)
|
|
"RTN","EDPBRM",30,0)
|
|
. . S X("category")=$P(X0,U,9)
|
|
"RTN","EDPBRM",31,0)
|
|
. . S X("shared")=$P(X0,U,10)
|
|
"RTN","EDPBRM",32,0)
|
|
. . S X("board")=$P(X0,U,11)
|
|
"RTN","EDPBRM",33,0)
|
|
. . S X("color")=$P(X0,U,12)
|
|
"RTN","EDPBRM",34,0)
|
|
. . D XML^EDPX($$XMLA^EDPX("bed",.X))
|
|
"RTN","EDPBRM",35,0)
|
|
D XML^EDPX("</beds>")
|
|
"RTN","EDPBRM",36,0)
|
|
;
|
|
"RTN","EDPBRM",37,0)
|
|
D READU^EDPBLK(AREA,"bed",.TOKEN) ; read bed config -- UNLOCK
|
|
"RTN","EDPBRM",38,0)
|
|
Q
|
|
"RTN","EDPBRM",39,0)
|
|
SAVE(REQ,AREA) ; Save the updated bed list
|
|
"RTN","EDPBRM",40,0)
|
|
; loop thru the records and update where changed
|
|
"RTN","EDPBRM",41,0)
|
|
N X,BED,ERR,TOKEN,LOCKERR
|
|
"RTN","EDPBRM",42,0)
|
|
;
|
|
"RTN","EDPBRM",43,0)
|
|
S TOKEN=$G(REQ("bedToken",1))
|
|
"RTN","EDPBRM",44,0)
|
|
D SAVEL^EDPBLK(AREA,"bed",.TOKEN,.LOCKERR) ; save bed config -- LOCK
|
|
"RTN","EDPBRM",45,0)
|
|
I $L(LOCKERR) D SAVERR^EDPX("collide",LOCKERR),LOAD(AREA),DFLTRM(AREA) Q
|
|
"RTN","EDPBRM",46,0)
|
|
;
|
|
"RTN","EDPBRM",47,0)
|
|
S X="bed-",ERR=""
|
|
"RTN","EDPBRM",48,0)
|
|
F S X=$O(REQ(X)) Q:$E(X,1,4)'="bed-" D
|
|
"RTN","EDPBRM",49,0)
|
|
. K BED S BED=""
|
|
"RTN","EDPBRM",50,0)
|
|
. D NVPARSE^EDPX(.BED,REQ(X,1))
|
|
"RTN","EDPBRM",51,0)
|
|
. S BED("name")=$$TRIM^XLFSTR(BED("name"))
|
|
"RTN","EDPBRM",52,0)
|
|
. I '$L(BED("name")) S ERR=ERR_"Name may not be blank. " Q
|
|
"RTN","EDPBRM",53,0)
|
|
. I BED("changed") D UPD(.BED,.ERR)
|
|
"RTN","EDPBRM",54,0)
|
|
D SAVEU^EDPBLK(AREA,"bed",.TOKEN) ; save bed config -- UNLOCK
|
|
"RTN","EDPBRM",55,0)
|
|
;
|
|
"RTN","EDPBRM",56,0)
|
|
I $L(ERR) D SAVERR^EDPX("fail",ERR) Q
|
|
"RTN","EDPBRM",57,0)
|
|
D XML^EDPX("<save status='ok' />")
|
|
"RTN","EDPBRM",58,0)
|
|
D LOAD(AREA) ; return updated list of beds
|
|
"RTN","EDPBRM",59,0)
|
|
D DFLTRM(AREA) ; return new default lists of beds
|
|
"RTN","EDPBRM",60,0)
|
|
Q
|
|
"RTN","EDPBRM",61,0)
|
|
UPD(FLD,ERRMSG) ; Add/Update Record
|
|
"RTN","EDPBRM",62,0)
|
|
N EDPIEN
|
|
"RTN","EDPBRM",63,0)
|
|
S EDPIEN=FLD("id")_","
|
|
"RTN","EDPBRM",64,0)
|
|
I FLD("id")=0 S EDPIEN="+1,"
|
|
"RTN","EDPBRM",65,0)
|
|
;
|
|
"RTN","EDPBRM",66,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPBRM",67,0)
|
|
S FDA(231.8,EDPIEN,.01)=FLD("name")
|
|
"RTN","EDPBRM",68,0)
|
|
S FDA(231.8,EDPIEN,.02)=EDPSITE
|
|
"RTN","EDPBRM",69,0)
|
|
S FDA(231.8,EDPIEN,.03)=FLD("area")
|
|
"RTN","EDPBRM",70,0)
|
|
S FDA(231.8,EDPIEN,.04)=FLD("inactive")
|
|
"RTN","EDPBRM",71,0)
|
|
S FDA(231.8,EDPIEN,.05)=FLD("seq")
|
|
"RTN","EDPBRM",72,0)
|
|
S FDA(231.8,EDPIEN,.06)=FLD("display")
|
|
"RTN","EDPBRM",73,0)
|
|
S FDA(231.8,EDPIEN,.07)=FLD("when")
|
|
"RTN","EDPBRM",74,0)
|
|
S FDA(231.8,EDPIEN,.08)=FLD("status")
|
|
"RTN","EDPBRM",75,0)
|
|
S FDA(231.8,EDPIEN,.09)=FLD("category")
|
|
"RTN","EDPBRM",76,0)
|
|
S FDA(231.8,EDPIEN,.1)=FLD("shared")
|
|
"RTN","EDPBRM",77,0)
|
|
S FDA(231.8,EDPIEN,.11)=FLD("board")
|
|
"RTN","EDPBRM",78,0)
|
|
S FDA(231.8,EDPIEN,.12)=FLD("color")
|
|
"RTN","EDPBRM",79,0)
|
|
I EDPIEN="+1," D
|
|
"RTN","EDPBRM",80,0)
|
|
. D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPBRM",81,0)
|
|
. I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. "
|
|
"RTN","EDPBRM",82,0)
|
|
E D
|
|
"RTN","EDPBRM",83,0)
|
|
. D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPBRM",84,0)
|
|
. I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. "
|
|
"RTN","EDPBRM",85,0)
|
|
D CLEAN^DILF
|
|
"RTN","EDPBRM",86,0)
|
|
Q
|
|
"RTN","EDPBRM",87,0)
|
|
DFLTRM(AREA) ; Load the multi-areas
|
|
"RTN","EDPBRM",88,0)
|
|
N BED,X,X0,ALPHA
|
|
"RTN","EDPBRM",89,0)
|
|
D XML^EDPX("<defaultRoomList>")
|
|
"RTN","EDPBRM",90,0)
|
|
D XML^EDPX($$XMLS^EDPX("item",-1,"(None Selected)")) ;non-selected (-1 will delete)
|
|
"RTN","EDPBRM",91,0)
|
|
S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
|
|
"RTN","EDPBRM",92,0)
|
|
. S X0=^EDPB(231.8,BED,0)
|
|
"RTN","EDPBRM",93,0)
|
|
. I $P(X0,U,4) Q ; inactive
|
|
"RTN","EDPBRM",94,0)
|
|
. I ($P(X0,U,9)=1)!($P(X0,U,9)=2) S ALPHA($P(X0,U)_" ("_$P(X0,U,6)_")")=BED
|
|
"RTN","EDPBRM",95,0)
|
|
S X="" F S X=$O(ALPHA(X)) Q:X="" D XML^EDPX($$XMLS^EDPX("item",ALPHA(X),X))
|
|
"RTN","EDPBRM",96,0)
|
|
D XML^EDPX("</defaultRoomList>")
|
|
"RTN","EDPBRM",97,0)
|
|
Q
|
|
"RTN","EDPBRM",98,0)
|
|
CHOICES ; Load the choice lists
|
|
"RTN","EDPBRM",99,0)
|
|
N I,X
|
|
"RTN","EDPBRM",100,0)
|
|
F I=1:1 S X=$P($T(WHEN+I),";",3,99) Q:X="ZZZZZ" D XML^EDPX(X)
|
|
"RTN","EDPBRM",101,0)
|
|
F I=1:1 S X=$P($T(CATS+I),";",3,99) Q:X="ZZZZZ" D XML^EDPX(X)
|
|
"RTN","EDPBRM",102,0)
|
|
D CODES^EDPQLE1("status","status")
|
|
"RTN","EDPBRM",103,0)
|
|
Q
|
|
"RTN","EDPBRM",104,0)
|
|
WHEN ; Display When Choices
|
|
"RTN","EDPBRM",105,0)
|
|
;;<displayWhen>
|
|
"RTN","EDPBRM",106,0)
|
|
;;<when label="Occupied" data="0" />
|
|
"RTN","EDPBRM",107,0)
|
|
;;<when label="Always" data="1" />
|
|
"RTN","EDPBRM",108,0)
|
|
;;<when label="Never" data="2" />
|
|
"RTN","EDPBRM",109,0)
|
|
;;</displayWhen>
|
|
"RTN","EDPBRM",110,0)
|
|
;;ZZZZZ
|
|
"RTN","EDPBRM",111,0)
|
|
CATS ; Category Choices
|
|
"RTN","EDPBRM",112,0)
|
|
;;<roomCategories>
|
|
"RTN","EDPBRM",113,0)
|
|
;;<item abbr="Single Pt" data="0" label="Single Pt (one patient assigned)" />
|
|
"RTN","EDPBRM",114,0)
|
|
;;<item abbr="Multiple Pt" data="1" label="Multiple Pt (multiple patients assigned)" />
|
|
"RTN","EDPBRM",115,0)
|
|
;;<item abbr="Waiting Area" data="2" label="Waiting Area (multiple patients assigned)" />
|
|
"RTN","EDPBRM",116,0)
|
|
;;<item abbr="Single Non-ED" data="3" label="Single Non-ED (one patient assigned, outside of ED)" />
|
|
"RTN","EDPBRM",117,0)
|
|
;;<item abbr="Multiple Non-ED" data="4" label="Multiple Non-ED (multiple patients assigned, outside of ED)" />
|
|
"RTN","EDPBRM",118,0)
|
|
;;</roomCategories>
|
|
"RTN","EDPBRM",119,0)
|
|
;;ZZZZZ
|
|
"RTN","EDPBRS")
|
|
0^29^B19077772
|
|
"RTN","EDPBRS",1,0)
|
|
EDPBRS ;SLC/KCM - Reset Board Configuration
|
|
"RTN","EDPBRS",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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)
|
|
S ^EDPB(231.9,AREA,231)=$H
|
|
"RTN","EDPBRS",7,0)
|
|
Q
|
|
"RTN","EDPBRS",8,0)
|
|
SPEC(AREA) ; Set up default board spec
|
|
"RTN","EDPBRS",9,0)
|
|
; assumes site, area passed in
|
|
"RTN","EDPBRS",10,0)
|
|
N I,X,WP,MSG
|
|
"RTN","EDPBRS",11,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",12,0)
|
|
D UPDBRD^EDPBCF(AREA,0,"Main (default)",.WP,.MSG)
|
|
"RTN","EDPBRS",13,0)
|
|
Q
|
|
"RTN","EDPBRS",14,0)
|
|
BRDXML ; XML for the board spec
|
|
"RTN","EDPBRS",15,0)
|
|
;;<row color="stsAcuity"/>
|
|
"RTN","EDPBRS",16,0)
|
|
;;<displayProperties fontSize="10" displayWidth="1024" displayLabel="1024x768" scrollDelay="7" />
|
|
"RTN","EDPBRS",17,0)
|
|
;;<col att="@bedNm" header="Room" color="" width="48" label="Room / Bed"/>
|
|
"RTN","EDPBRS",18,0)
|
|
;;<col att="@last4" header="Patient" color="" width="58" label="Patient X9999"/>
|
|
"RTN","EDPBRS",19,0)
|
|
;;<col att="@complaint" header="Complaint" color="" width="406" label="Complaint"/>
|
|
"RTN","EDPBRS",20,0)
|
|
;;<col att="@mdNm" header="Prv" color="" width="51" label="Provider Initials"/>
|
|
"RTN","EDPBRS",21,0)
|
|
;;<col att="@resNm" header="Res" color="" width="51" label="Resident Initials"/>
|
|
"RTN","EDPBRS",22,0)
|
|
;;<col att="@rnNm" header="RN" color="" width="51" label="Nurse Initials"/>
|
|
"RTN","EDPBRS",23,0)
|
|
;;<col att="@acuityNm" header="Acuity" color="" width="51" label="Acuity"/>
|
|
"RTN","EDPBRS",24,0)
|
|
;;<col att="@emins" header="E Mins" color="" width="51" label="Total Minutes"/>
|
|
"RTN","EDPBRS",25,0)
|
|
;;<col att="@lab" header="L" color="labUrg" width="51" label="Lab Active/Complete"/>
|
|
"RTN","EDPBRS",26,0)
|
|
;;<col att="@rad" header="I" color="radUrg" width="61" label="Imaging Active/Complete"/>
|
|
"RTN","EDPBRS",27,0)
|
|
;;zzzzz
|
|
"RTN","EDPBRS",28,0)
|
|
;;
|
|
"RTN","EDPBRS",29,0)
|
|
COLOR(AREA) ; Set up default colors
|
|
"RTN","EDPBRS",30,0)
|
|
N I,X,WP
|
|
"RTN","EDPBRS",31,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",32,0)
|
|
D WP^DIE(231.9,AREA_",",3,"","WP")
|
|
"RTN","EDPBRS",33,0)
|
|
I $D(DIERR) W !,"spec update failed"
|
|
"RTN","EDPBRS",34,0)
|
|
D CLEAN^DILF
|
|
"RTN","EDPBRS",35,0)
|
|
Q
|
|
"RTN","EDPBRS",36,0)
|
|
CLRXML ; XML for the color spec
|
|
"RTN","EDPBRS",37,0)
|
|
;;<colors id="stsAcuity" type="val" >
|
|
"RTN","EDPBRS",38,0)
|
|
;;<map att="@status" clr="1,0xffffff,0x808000" val="8" />
|
|
"RTN","EDPBRS",39,0)
|
|
;;<map att="@status" clr="0" val="9" />
|
|
"RTN","EDPBRS",40,0)
|
|
;;<map att="@status" clr="0" val="10" />
|
|
"RTN","EDPBRS",41,0)
|
|
;;<map att="@status" clr="0" val="11" />
|
|
"RTN","EDPBRS",42,0)
|
|
;;<map att="@status" clr="1,0xffffff,0x800000" val="12" />
|
|
"RTN","EDPBRS",43,0)
|
|
;;<map att="@status" clr="1,0x000000,0xfffbf0" val="13" />
|
|
"RTN","EDPBRS",44,0)
|
|
;;<map att="@status" clr="1,0xff0000,0xc0dcc0" val="14" />
|
|
"RTN","EDPBRS",45,0)
|
|
;;<map att="@acuity" clr="1,0x000000,0xff0000" val="1" />
|
|
"RTN","EDPBRS",46,0)
|
|
;;<map att="@acuity" clr="1,0xffffff,0x0000ff" val="2" />
|
|
"RTN","EDPBRS",47,0)
|
|
;;<map att="@acuity" clr="1,0x000000,0xff00ff" val="3" />
|
|
"RTN","EDPBRS",48,0)
|
|
;;<map att="@acuity" clr="1,0x000000,0x00ff00" val="4" />
|
|
"RTN","EDPBRS",49,0)
|
|
;;<map att="@acuity" clr="0" nm="5" val="5" />
|
|
"RTN","EDPBRS",50,0)
|
|
;;</colors>
|
|
"RTN","EDPBRS",51,0)
|
|
;;<colors id="labUrg" nm="Urgency - Lab" type="val" >
|
|
"RTN","EDPBRS",52,0)
|
|
;;<map att="@labUrg" clr="1,0x000000,0x00ff00" val="0" />
|
|
"RTN","EDPBRS",53,0)
|
|
;;<map att="@labUrg" clr="1,0x000000,0xffff00" val="1" />
|
|
"RTN","EDPBRS",54,0)
|
|
;;<map att="@labUrg" clr="1,0x000000,0xff0000" val="2" />
|
|
"RTN","EDPBRS",55,0)
|
|
;;</colors>
|
|
"RTN","EDPBRS",56,0)
|
|
;;<colors id="radUrg" nm="Urgency - Radiology" type="val" >
|
|
"RTN","EDPBRS",57,0)
|
|
;;<map att="@radUrg" clr="1,0x000000,0x00ff00" val="0" />
|
|
"RTN","EDPBRS",58,0)
|
|
;;<map att="@radUrg" clr="1,0x000000,0xffff00" val="1" />
|
|
"RTN","EDPBRS",59,0)
|
|
;;<map att="@radUrg" clr="1,0x000000,0xff0000" val="2" />
|
|
"RTN","EDPBRS",60,0)
|
|
;;</colors>
|
|
"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)
|
|
D CLEAN^DILF
|
|
"RTN","EDPBRS",76,0)
|
|
Q
|
|
"RTN","EDPBRS",77,0)
|
|
ROOMLST ; Name^Display Name^Seq^When^Category
|
|
"RTN","EDPBRS",78,0)
|
|
;;Waiting^WAIT^1^0^2
|
|
"RTN","EDPBRS",79,0)
|
|
;;Ambulance^AMBU^5^0^1
|
|
"RTN","EDPBRS",80,0)
|
|
;;Hallway^HALL^10^0^1
|
|
"RTN","EDPBRS",81,0)
|
|
;;General Radiology^RAD^110^0^1
|
|
"RTN","EDPBRS",82,0)
|
|
;;CT^CT^120^0^1
|
|
"RTN","EDPBRS",83,0)
|
|
;;MRI^MRI^130^0^1
|
|
"RTN","EDPBRS",84,0)
|
|
;;Cardiac Cath^CATH^140^0^1
|
|
"RTN","EDPBRS",85,0)
|
|
;;Cardiac Stress Test^STEST^150^0^1
|
|
"RTN","EDPBRS",86,0)
|
|
;;Dialysis^DIAL^160^0^1
|
|
"RTN","EDPBRS",87,0)
|
|
;;Subspecialty Clinic^SCLIN^170^0^1
|
|
"RTN","EDPBRS",88,0)
|
|
;;zzzzz
|
|
"RTN","EDPBRS",89,0)
|
|
PARAMS(AREA) ; baseline parameters
|
|
"RTN","EDPBRS",90,0)
|
|
N FDA,DIERR
|
|
"RTN","EDPBRS",91,0)
|
|
S AREA=AREA_","
|
|
"RTN","EDPBRS",92,0)
|
|
S FDA(231.9,AREA,1.1)=1
|
|
"RTN","EDPBRS",93,0)
|
|
S FDA(231.9,AREA,1.2)=1
|
|
"RTN","EDPBRS",94,0)
|
|
S FDA(231.9,AREA,1.3)=1
|
|
"RTN","EDPBRS",95,0)
|
|
S FDA(231.9,AREA,1.4)=1
|
|
"RTN","EDPBRS",96,0)
|
|
S FDA(231.9,AREA,1.5)=300
|
|
"RTN","EDPBRS",97,0)
|
|
S FDA(231.9,AREA,1.6)=420
|
|
"RTN","EDPBRS",98,0)
|
|
S FDA(231.9,AREA,1.7)=480
|
|
"RTN","EDPBRS",99,0)
|
|
S FDA(231.9,AREA,1.8)=1
|
|
"RTN","EDPBRS",100,0)
|
|
S FDA(231.9,AREA,1.11)=$O(^EDPB(231.8,"AC",EDPSITE,+AREA,"AMBU",0))
|
|
"RTN","EDPBRS",101,0)
|
|
S FDA(231.9,AREA,1.12)=$O(^EDPB(231.8,"AC",EDPSITE,+AREA,"WAIT",0))
|
|
"RTN","EDPBRS",102,0)
|
|
D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPBRS",103,0)
|
|
D CLEAN^DILF
|
|
"RTN","EDPBRS",104,0)
|
|
Q
|
|
"RTN","EDPBSL")
|
|
0^30^B20029785
|
|
"RTN","EDPBSL",1,0)
|
|
EDPBSL ;SLC/KCM - Selection List Configuration
|
|
"RTN","EDPBSL",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPBSL",3,0)
|
|
;
|
|
"RTN","EDPBSL",4,0)
|
|
LOAD(AREA) ; Load selection lists for area
|
|
"RTN","EDPBSL",5,0)
|
|
N TOKEN
|
|
"RTN","EDPBSL",6,0)
|
|
D READL^EDPBLK(AREA,"selection",.TOKEN) ; read selection config -- LOCK
|
|
"RTN","EDPBSL",7,0)
|
|
D XML^EDPX("<selectionToken>"_TOKEN_"</selectionToken>")
|
|
"RTN","EDPBSL",8,0)
|
|
;D LIST("acuity","Acuity")
|
|
"RTN","EDPBSL",9,0)
|
|
D LIST("status","Status")
|
|
"RTN","EDPBSL",10,0)
|
|
D LIST("arrival","Source")
|
|
"RTN","EDPBSL",11,0)
|
|
D LIST("disposition","Disposition")
|
|
"RTN","EDPBSL",12,0)
|
|
D LIST("delay","Delay Reason")
|
|
"RTN","EDPBSL",13,0)
|
|
D READU^EDPBLK(AREA,"selection",.TOKEN) ; read selection config -- UNLOCK
|
|
"RTN","EDPBSL",14,0)
|
|
Q
|
|
"RTN","EDPBSL",15,0)
|
|
LIST(NM,TITLE) ; build XML for selection list
|
|
"RTN","EDPBSL",16,0)
|
|
N SETNM S SETNM=EDPSTA_"."_NM
|
|
"RTN","EDPBSL",17,0)
|
|
I '$D(^EDPB(233.2,"B",SETNM)) S SETNM="edp."_NM
|
|
"RTN","EDPBSL",18,0)
|
|
D XML^EDPX("<"_NM_" title='"_TITLE_"'>")
|
|
"RTN","EDPBSL",19,0)
|
|
N IEN,SEQ,DA,X0
|
|
"RTN","EDPBSL",20,0)
|
|
S IEN=$O(^EDPB(233.2,"B",SETNM,0))
|
|
"RTN","EDPBSL",21,0)
|
|
S SEQ=0 F S SEQ=$O(^EDPB(233.2,IEN,1,"B",SEQ)) Q:'SEQ D
|
|
"RTN","EDPBSL",22,0)
|
|
. S DA=0 F S DA=$O(^EDPB(233.2,IEN,1,"B",SEQ,DA)) Q:'DA D
|
|
"RTN","EDPBSL",23,0)
|
|
. . S X0=^EDPB(233.2,IEN,1,DA,0)
|
|
"RTN","EDPBSL",24,0)
|
|
. . N X
|
|
"RTN","EDPBSL",25,0)
|
|
. . S X("seq")=SEQ
|
|
"RTN","EDPBSL",26,0)
|
|
. . S X("id")=$P(X0,U,2)
|
|
"RTN","EDPBSL",27,0)
|
|
. . S X("inact")=$P(X0,U,3)
|
|
"RTN","EDPBSL",28,0)
|
|
. . S X("show")=$P(X0,U,4)
|
|
"RTN","EDPBSL",29,0)
|
|
. . S X("abbr")=$P(X0,U,5)
|
|
"RTN","EDPBSL",30,0)
|
|
. . ; switch to entry in 233.1 now
|
|
"RTN","EDPBSL",31,0)
|
|
. . S X0=^EDPB(233.1,X("id"),0)
|
|
"RTN","EDPBSL",32,0)
|
|
. . I X("show")="" S X("show")=$P(X0,U,2)
|
|
"RTN","EDPBSL",33,0)
|
|
. . I X("abbr")="" S X("abbr")=$P(X0,U,3)
|
|
"RTN","EDPBSL",34,0)
|
|
. . S X("flag")=$P(X0,U,5)
|
|
"RTN","EDPBSL",35,0)
|
|
. . S X("natl")=$S($E(X0,1,3)="edp":$P(X0,U,2),1:"(local)")
|
|
"RTN","EDPBSL",36,0)
|
|
. . D XML^EDPX($$XMLA^EDPX("code",.X))
|
|
"RTN","EDPBSL",37,0)
|
|
D XML^EDPX("</"_NM_">")
|
|
"RTN","EDPBSL",38,0)
|
|
Q
|
|
"RTN","EDPBSL",39,0)
|
|
SAVE(EDPAREA,REQ) ; save the selection changes
|
|
"RTN","EDPBSL",40,0)
|
|
N CTYP,SET,SETNM,CODE,X,EDPERR,TOKEN,LOCKERR
|
|
"RTN","EDPBSL",41,0)
|
|
;
|
|
"RTN","EDPBSL",42,0)
|
|
S TOKEN=$G(REQ("selectionToken",1))
|
|
"RTN","EDPBSL",43,0)
|
|
D SAVEL^EDPBLK(EDPAREA,"selection",.TOKEN,.LOCKERR) ; save selection config -- LOCK
|
|
"RTN","EDPBSL",44,0)
|
|
I $L(LOCKERR) D SAVERR^EDPX("collide",LOCKERR),LOAD(EDPAREA) Q
|
|
"RTN","EDPBSL",45,0)
|
|
;
|
|
"RTN","EDPBSL",46,0)
|
|
S EDPERR=""
|
|
"RTN","EDPBSL",47,0)
|
|
F CTYP="status","disposition","delay","arrival" D
|
|
"RTN","EDPBSL",48,0)
|
|
. I $E($O(REQ(CTYP)),1,$L(CTYP))'=CTYP Q
|
|
"RTN","EDPBSL",49,0)
|
|
. S SETNM=EDPSTA_"."_CTYP,SET=$O(^EDPB(233.2,"B",SETNM,0))
|
|
"RTN","EDPBSL",50,0)
|
|
. I 'SET D NEWSET(SETNM) S SET=$O(^EDPB(233.2,"B",SETNM,0))
|
|
"RTN","EDPBSL",51,0)
|
|
. D CLEARSET(SET)
|
|
"RTN","EDPBSL",52,0)
|
|
. S X=CTYP F S X=$O(REQ(X)) Q:$E(X,1,$L(CTYP))'=CTYP D
|
|
"RTN","EDPBSL",53,0)
|
|
. . K CODE S CODE="" D NVPARSE^EDPX(.CODE,REQ(X,1))
|
|
"RTN","EDPBSL",54,0)
|
|
. . ; I CODE("id")>0 D UPDCODE(CTYP,.CODE) -- want to keep codes matched to nat'l --KCM
|
|
"RTN","EDPBSL",55,0)
|
|
. . I CODE("id")<1 D ADDCODE(CTYP,.CODE)
|
|
"RTN","EDPBSL",56,0)
|
|
. . D ADD2SET(SET,.CODE)
|
|
"RTN","EDPBSL",57,0)
|
|
D SAVEU^EDPBLK(EDPAREA,"selection",.TOKEN) ; save selection config -- UNLOCK
|
|
"RTN","EDPBSL",58,0)
|
|
;
|
|
"RTN","EDPBSL",59,0)
|
|
I $L(EDPERR) D SAVERR^EDPX("fail",EDPERR) Q
|
|
"RTN","EDPBSL",60,0)
|
|
D XML^EDPX("<save status='ok' />")
|
|
"RTN","EDPBSL",61,0)
|
|
D LOAD(EDPAREA)
|
|
"RTN","EDPBSL",62,0)
|
|
S ^EDPB(231.9,EDPAREA,231)=$H ; update choices timestamp
|
|
"RTN","EDPBSL",63,0)
|
|
Q
|
|
"RTN","EDPBSL",64,0)
|
|
NEWSET(SETNM) ; Create a new code set for a site
|
|
"RTN","EDPBSL",65,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPBSL",66,0)
|
|
S FDA(233.2,"+1,",.01)=SETNM
|
|
"RTN","EDPBSL",67,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPBSL",68,0)
|
|
I $D(DIERR) S EDPERR=EDPERR_"new code set failed;"
|
|
"RTN","EDPBSL",69,0)
|
|
Q
|
|
"RTN","EDPBSL",70,0)
|
|
CLEARSET(SET) ; Clear the CODES mulitple
|
|
"RTN","EDPBSL",71,0)
|
|
I '$O(^EDPB(233.2,SET,1,0)) Q ; no child nodes
|
|
"RTN","EDPBSL",72,0)
|
|
N DA,DIK S DA=0,DA(1)=SET,DIK="^EDPB(233.2,"_DA(1)_",1,"
|
|
"RTN","EDPBSL",73,0)
|
|
F S DA=$O(^EDPB(233.2,SET,1,DA)) Q:'DA D ^DIK
|
|
"RTN","EDPBSL",74,0)
|
|
Q
|
|
"RTN","EDPBSL",75,0)
|
|
UPDCODE(CTYP,X) ; Update an existing code in the TRACKING CODE file
|
|
"RTN","EDPBSL",76,0)
|
|
Q:+$G(X("id"))'>0
|
|
"RTN","EDPBSL",77,0)
|
|
N OLD,DIFF,I
|
|
"RTN","EDPBSL",78,0)
|
|
S OLD=$G(^EDPB(233.1,+$G(X("id")),0)),DIFF=0
|
|
"RTN","EDPBSL",79,0)
|
|
F I="2^show","3^abbr","5^flag" I $P(OLD,U,+I)'=$G(X($P(I,U,2))) S DIFF=1 Q
|
|
"RTN","EDPBSL",80,0)
|
|
Q:'DIFF ;no change
|
|
"RTN","EDPBSL",81,0)
|
|
I $E(OLD,1,4)="edp." S X("id")=0 D ADDCODE(CTYP,.X) Q
|
|
"RTN","EDPBSL",82,0)
|
|
; update local code
|
|
"RTN","EDPBSL",83,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPBSL",84,0)
|
|
S FDAIEN=+X("id")_","
|
|
"RTN","EDPBSL",85,0)
|
|
S FDA(233.1,FDAIEN,.02)=X("show")
|
|
"RTN","EDPBSL",86,0)
|
|
S FDA(233.1,FDAIEN,.03)=X("abbr")
|
|
"RTN","EDPBSL",87,0)
|
|
S FDA(233.1,FDAIEN,.05)=X("flag")
|
|
"RTN","EDPBSL",88,0)
|
|
D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPBSL",89,0)
|
|
I $D(DIERR) S EDPERR=EDPERR_"update code "_NAME_"failed;"
|
|
"RTN","EDPBSL",90,0)
|
|
S X("nm")=$P(OLD,U)
|
|
"RTN","EDPBSL",91,0)
|
|
Q
|
|
"RTN","EDPBSL",92,0)
|
|
ADDCODE(CTYP,X) ; Add a new code to the TRACKING CODE file
|
|
"RTN","EDPBSL",93,0)
|
|
Q:X("id")'=0
|
|
"RTN","EDPBSL",94,0)
|
|
N NAME,DNAME,I
|
|
"RTN","EDPBSL",95,0)
|
|
S NAME=EDPSTA_"."_CTYP_"."_$TR(X("show")," ","")
|
|
"RTN","EDPBSL",96,0)
|
|
I $O(^EDPB(233.1,"B",NAME,0)) D
|
|
"RTN","EDPBSL",97,0)
|
|
. F I=1:1:99 Q:'$O(^EDPB(233.1,"B",NAME_I,0))
|
|
"RTN","EDPBSL",98,0)
|
|
. S NAME=NAME_I
|
|
"RTN","EDPBSL",99,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPBSL",100,0)
|
|
S FDA(233.1,"+1,",.01)=NAME
|
|
"RTN","EDPBSL",101,0)
|
|
S FDA(233.1,"+1,",.02)=X("show")
|
|
"RTN","EDPBSL",102,0)
|
|
S FDA(233.1,"+1,",.03)=X("abbr")
|
|
"RTN","EDPBSL",103,0)
|
|
S FDA(233.1,"+1,",.05)=X("flag")
|
|
"RTN","EDPBSL",104,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPBSL",105,0)
|
|
I $D(DIERR) S EDPERR=EDPERR_"add code "_NAME_"failed;"
|
|
"RTN","EDPBSL",106,0)
|
|
S X("id")=FDAIEN(1),X("nm")=NAME
|
|
"RTN","EDPBSL",107,0)
|
|
Q
|
|
"RTN","EDPBSL",108,0)
|
|
ADD2SET(SET,X) ; Add a new code to the CODES multiple
|
|
"RTN","EDPBSL",109,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPBSL",110,0)
|
|
S FDA(233.21,"+1,"_SET_",",.01)=X("seq")
|
|
"RTN","EDPBSL",111,0)
|
|
S FDA(233.21,"+1,"_SET_",",.02)=X("id")
|
|
"RTN","EDPBSL",112,0)
|
|
S FDA(233.21,"+1,"_SET_",",.03)=X("inact")
|
|
"RTN","EDPBSL",113,0)
|
|
S FDA(233.21,"+1,"_SET_",",.04)=X("show")
|
|
"RTN","EDPBSL",114,0)
|
|
S FDA(233.21,"+1,"_SET_",",.05)=X("abbr")
|
|
"RTN","EDPBSL",115,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPBSL",116,0)
|
|
I $D(DIERR) S EDPERR=EDPERR_"add to set "_X("show")_" failed;"
|
|
"RTN","EDPBSL",117,0)
|
|
Q
|
|
"RTN","EDPBST")
|
|
0^31^B8664749
|
|
"RTN","EDPBST",1,0)
|
|
EDPBST ;SLC/KCM - Staff Configuration
|
|
"RTN","EDPBST",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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)
|
|
N TOKEN
|
|
"RTN","EDPBST",8,0)
|
|
D READL^EDPBLK(AREA,"staff",.TOKEN) ; read staff config -- LOCK
|
|
"RTN","EDPBST",9,0)
|
|
D XML^EDPX("<staffToken>"_TOKEN_"</staffToken>")
|
|
"RTN","EDPBST",10,0)
|
|
D XML^EDPX("<providers>"),ACTIVE(AREA,"P"),XML^EDPX("</providers>")
|
|
"RTN","EDPBST",11,0)
|
|
D XML^EDPX("<residents>"),ACTIVE(AREA,"R"),XML^EDPX("</residents>")
|
|
"RTN","EDPBST",12,0)
|
|
D XML^EDPX("<nurses>"),ACTIVE(AREA,"N"),XML^EDPX("</nurses>")
|
|
"RTN","EDPBST",13,0)
|
|
D READU^EDPBLK(AREA,"staff",.TOKEN) ; read staff config -- UNLOCK
|
|
"RTN","EDPBST",14,0)
|
|
Q
|
|
"RTN","EDPBST",15,0)
|
|
ACTIVE(AREA,ROLE) ; build list of active for a role
|
|
"RTN","EDPBST",16,0)
|
|
N IEN,X0,X,EDPNURS
|
|
"RTN","EDPBST",17,0)
|
|
I ROLE="N" S EDPNURS=$$GET^XPAR("ALL","EDPF NURSE STAFF SCREEN")
|
|
"RTN","EDPBST",18,0)
|
|
S IEN=0 F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
|
|
"RTN","EDPBST",19,0)
|
|
. S X0=^EDPB(231.7,IEN,0)
|
|
"RTN","EDPBST",20,0)
|
|
. I '$$ALLOW^EDPFPER(+X0,ROLE) Q
|
|
"RTN","EDPBST",21,0)
|
|
. S X("duz")=$P(X0,U)
|
|
"RTN","EDPBST",22,0)
|
|
. S X("nm")=$P(^VA(200,X("duz"),0),U)
|
|
"RTN","EDPBST",23,0)
|
|
. S X("role")=$P(X0,U,6)
|
|
"RTN","EDPBST",24,0)
|
|
. S X("itl")=$P(^VA(200,X("duz"),0),U,2)
|
|
"RTN","EDPBST",25,0)
|
|
. S X("clr")=$P(X0,U,8)
|
|
"RTN","EDPBST",26,0)
|
|
. D XML^EDPX($$XMLA^EDPX("staff",.X))
|
|
"RTN","EDPBST",27,0)
|
|
Q
|
|
"RTN","EDPBST",28,0)
|
|
SAVE(REQ) ; save updated staff members
|
|
"RTN","EDPBST",29,0)
|
|
N X,STAFF,ERR,EDPAREA,TOKEN,LOCKERR
|
|
"RTN","EDPBST",30,0)
|
|
S EDPAREA=$G(REQ("area",1))
|
|
"RTN","EDPBST",31,0)
|
|
I EDPAREA="" D SAVERR^EDPX("fail","Missing Area") Q
|
|
"RTN","EDPBST",32,0)
|
|
;
|
|
"RTN","EDPBST",33,0)
|
|
S TOKEN=$G(REQ("staffToken",1))
|
|
"RTN","EDPBST",34,0)
|
|
D SAVEL^EDPBLK(EDPAREA,"staff",.TOKEN,.LOCKERR) ; save staff config -- LOCK
|
|
"RTN","EDPBST",35,0)
|
|
I $L(LOCKERR) D SAVERR^EDPX("collide",LOCKERR),LOAD(EDPAREA) Q
|
|
"RTN","EDPBST",36,0)
|
|
;
|
|
"RTN","EDPBST",37,0)
|
|
S X="staff-",ERR=""
|
|
"RTN","EDPBST",38,0)
|
|
F S X=$O(REQ(X)) Q:$E(X,1,6)'="staff-" D
|
|
"RTN","EDPBST",39,0)
|
|
. K STAFF S STAFF=""
|
|
"RTN","EDPBST",40,0)
|
|
. D NVPARSE^EDPX(.STAFF,REQ(X,1))
|
|
"RTN","EDPBST",41,0)
|
|
. I STAFF("chg") D UPD(.STAFF,.ERR)
|
|
"RTN","EDPBST",42,0)
|
|
D SAVEU^EDPBLK(EDPAREA,"staff",.TOKEN) ; save staff config -- UNLOCK
|
|
"RTN","EDPBST",43,0)
|
|
;
|
|
"RTN","EDPBST",44,0)
|
|
I $L(ERR) D SAVERR^EDPX("fail",ERR) Q
|
|
"RTN","EDPBST",45,0)
|
|
D XML^EDPX("<save status='ok' />")
|
|
"RTN","EDPBST",46,0)
|
|
D LOAD(EDPAREA)
|
|
"RTN","EDPBST",47,0)
|
|
S ^EDPB(231.9,EDPAREA,231)=$H ; update choices timestamp
|
|
"RTN","EDPBST",48,0)
|
|
Q
|
|
"RTN","EDPBST",49,0)
|
|
UPD(FLD,ERRMSG) ; Add/Update Record (expects EDPAREA, EDPSITE to be defined)
|
|
"RTN","EDPBST",50,0)
|
|
N EDPIEN
|
|
"RTN","EDPBST",51,0)
|
|
S EDPIEN=$O(^EDPB(231.7,"AD",EDPSITE,EDPAREA,+FLD("duz"),0))_","
|
|
"RTN","EDPBST",52,0)
|
|
I 'EDPIEN,FLD("inact") Q ; don't add inactive selection
|
|
"RTN","EDPBST",53,0)
|
|
I 'EDPIEN S EDPIEN="+1,"
|
|
"RTN","EDPBST",54,0)
|
|
;
|
|
"RTN","EDPBST",55,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPBST",56,0)
|
|
S FDA(231.7,EDPIEN,.01)=FLD("duz")
|
|
"RTN","EDPBST",57,0)
|
|
S FDA(231.7,EDPIEN,.02)=EDPSITE
|
|
"RTN","EDPBST",58,0)
|
|
S FDA(231.7,EDPIEN,.03)=EDPAREA
|
|
"RTN","EDPBST",59,0)
|
|
S FDA(231.7,EDPIEN,.04)=FLD("inact")
|
|
"RTN","EDPBST",60,0)
|
|
S FDA(231.7,EDPIEN,.06)=FLD("role")
|
|
"RTN","EDPBST",61,0)
|
|
;S FDA(231.7,EDPIEN,.07)=FLD("itl") --NtoL
|
|
"RTN","EDPBST",62,0)
|
|
S FDA(231.7,EDPIEN,.08)=FLD("clr")
|
|
"RTN","EDPBST",63,0)
|
|
I EDPIEN="+1," D
|
|
"RTN","EDPBST",64,0)
|
|
. D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPBST",65,0)
|
|
. I $D(DIERR) S ERRMSG=ERRMSG_"Adding "_FLD("name")_" failed. "
|
|
"RTN","EDPBST",66,0)
|
|
E D
|
|
"RTN","EDPBST",67,0)
|
|
. D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPBST",68,0)
|
|
. I $D(DIERR) S ERRMSG=ERRMSG_"Updating "_FLD("name")_" failed. "
|
|
"RTN","EDPBST",69,0)
|
|
Q
|
|
"RTN","EDPCBRD")
|
|
0^32^B4350223
|
|
"RTN","EDPCBRD",1,0)
|
|
EDPCBRD ;SLC/KCM - Controller for ED Tracking Board
|
|
"RTN","EDPCBRD",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,EDPDBUG
|
|
"RTN","EDPCBRD",6,0)
|
|
K EDPXML
|
|
"RTN","EDPCBRD",7,0)
|
|
S EDPUSER=$P($G(SESS),U),EDPSTA=$P($G(SESS),U,2),EDPSITE=$$IEN^XUAF4(EDPSTA)
|
|
"RTN","EDPCBRD",8,0)
|
|
S X="" F S X=$O(PARAMS(X)) Q:X="" S REQ(X,1)=PARAMS(X)
|
|
"RTN","EDPCBRD",9,0)
|
|
S EDPDBUG=$$DEBUG^EDPCDBG("board")
|
|
"RTN","EDPCBRD",10,0)
|
|
I EDPDBUG D PUTREQ^EDPCDBG(EDPDBUG,.PARAMS)
|
|
"RTN","EDPCBRD",11,0)
|
|
;
|
|
"RTN","EDPCBRD",12,0)
|
|
COMMON ; Come here for both CSP and RPC Mode
|
|
"RTN","EDPCBRD",13,0)
|
|
;
|
|
"RTN","EDPCBRD",14,0)
|
|
N EDPFAIL,CMD
|
|
"RTN","EDPCBRD",15,0)
|
|
S CMD=$G(REQ("command",1))
|
|
"RTN","EDPCBRD",16,0)
|
|
I $L($G(REQ("machine",1))) D G:$D(EDPXML)>0 OUT ; exit on error
|
|
"RTN","EDPCBRD",17,0)
|
|
. N BRD
|
|
"RTN","EDPCBRD",18,0)
|
|
. S REQ("machine",1)=$$LOW^XLFSTR(REQ("machine",1))
|
|
"RTN","EDPCBRD",19,0)
|
|
. S BRD=$$GET^XPAR(EDPSITE_";DIC(4,","EDPF BIGBOARD KIOSKS",REQ("machine",1),"I")
|
|
"RTN","EDPCBRD",20,0)
|
|
. I '$L(BRD) D XML^EDPX("<error>Computer name not found.</error>") Q
|
|
"RTN","EDPCBRD",21,0)
|
|
. S REQ("board",1)=BRD
|
|
"RTN","EDPCBRD",22,0)
|
|
;
|
|
"RTN","EDPCBRD",23,0)
|
|
; switch on command
|
|
"RTN","EDPCBRD",24,0)
|
|
;
|
|
"RTN","EDPCBRD",25,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCBRD",26,0)
|
|
;
|
|
"RTN","EDPCBRD",27,0)
|
|
; initTracking
|
|
"RTN","EDPCBRD",28,0)
|
|
; return <user area="" areaNm="" />...
|
|
"RTN","EDPCBRD",29,0)
|
|
I CMD="initTracking" D DFLTAREA^EDPQAR($$VAL("area")) G OUT
|
|
"RTN","EDPCBRD",30,0)
|
|
;
|
|
"RTN","EDPCBRD",31,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCBRD",32,0)
|
|
;
|
|
"RTN","EDPCBRD",33,0)
|
|
; initDisplayBoard
|
|
"RTN","EDPCBRD",34,0)
|
|
; return <spec>
|
|
"RTN","EDPCBRD",35,0)
|
|
; <color><map />...</color>...
|
|
"RTN","EDPCBRD",36,0)
|
|
; <rows><row />...</rows>
|
|
"RTN","EDPCBRD",37,0)
|
|
I CMD="initDisplayBoard" D G OUT
|
|
"RTN","EDPCBRD",38,0)
|
|
. D GET^EDPQDBS($$VAL("area"),$$VAL("board"))
|
|
"RTN","EDPCBRD",39,0)
|
|
. D GET^EDPQDB($$VAL("area"),$$VAL("board"),-1)
|
|
"RTN","EDPCBRD",40,0)
|
|
;
|
|
"RTN","EDPCBRD",41,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCBRD",42,0)
|
|
;
|
|
"RTN","EDPCBRD",43,0)
|
|
; refreshDisplayBoard
|
|
"RTN","EDPCBRD",44,0)
|
|
; return <rows><row />...</rows>
|
|
"RTN","EDPCBRD",45,0)
|
|
I CMD="refreshDisplayBoard" D G OUT
|
|
"RTN","EDPCBRD",46,0)
|
|
. D GET^EDPQDB($$VAL("area"),$$VAL("board"),$$VAL("last"))
|
|
"RTN","EDPCBRD",47,0)
|
|
;
|
|
"RTN","EDPCBRD",48,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCBRD",49,0)
|
|
; else
|
|
"RTN","EDPCBRD",50,0)
|
|
D XML^EDPX("<error msg='"_$$MSG^EDPX(2300010)_"' />")
|
|
"RTN","EDPCBRD",51,0)
|
|
; end switch
|
|
"RTN","EDPCBRD",52,0)
|
|
;
|
|
"RTN","EDPCBRD",53,0)
|
|
OUT ; output the XML
|
|
"RTN","EDPCBRD",54,0)
|
|
I EDPDBUG D PUTXML^EDPCDBG(EDPDBUG,.EDPXML)
|
|
"RTN","EDPCBRD",55,0)
|
|
I $L($G(EDPHTTP)) D ; if in CSP mode
|
|
"RTN","EDPCBRD",56,0)
|
|
. U EDPHTTP
|
|
"RTN","EDPCBRD",57,0)
|
|
. W "<results>",!
|
|
"RTN","EDPCBRD",58,0)
|
|
. N I S I=0 F S I=$O(EDPXML(I)) Q:'I W EDPXML(I),!
|
|
"RTN","EDPCBRD",59,0)
|
|
. W "</results>",!
|
|
"RTN","EDPCBRD",60,0)
|
|
END Q
|
|
"RTN","EDPCBRD",61,0)
|
|
;
|
|
"RTN","EDPCBRD",62,0)
|
|
VAL(X) ; return value from request
|
|
"RTN","EDPCBRD",63,0)
|
|
Q $G(REQ(X,1))
|
|
"RTN","EDPCDBG")
|
|
0^53^B4038807
|
|
"RTN","EDPCDBG",1,0)
|
|
EDPCDBG ;SLC/KCM - Debugging for Controller
|
|
"RTN","EDPCDBG",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPCDBG",3,0)
|
|
;
|
|
"RTN","EDPCDBG",4,0)
|
|
DEBUG(SWFID) ; return TRUE if debugging
|
|
"RTN","EDPCDBG",5,0)
|
|
N CTS,DTS,DIF
|
|
"RTN","EDPCDBG",6,0)
|
|
S CTS=$H,DTS=$$GET^XPAR("SYS","EDPF DEBUG START TIME",1,"I")
|
|
"RTN","EDPCDBG",7,0)
|
|
Q:'DTS 0 ;no debug param
|
|
"RTN","EDPCDBG",8,0)
|
|
Q:($P(CTS,",")'=$P(DTS,",")) 0 ;not the same day
|
|
"RTN","EDPCDBG",9,0)
|
|
S DIF=$P(CTS,",",2)-$P(DTS,",",2)
|
|
"RTN","EDPCDBG",10,0)
|
|
I DIF<0 Q 0 ;future debug time
|
|
"RTN","EDPCDBG",11,0)
|
|
I DIF<1800 Q $$NEXTSEQ(SWFID) ;TRUE, within 30 minutes of start
|
|
"RTN","EDPCDBG",12,0)
|
|
Q 0
|
|
"RTN","EDPCDBG",13,0)
|
|
;
|
|
"RTN","EDPCDBG",14,0)
|
|
NEXTSEQ(LOGID) ; return sequence for this session as EDPF-DEBUG-LOG-swfid^sequence
|
|
"RTN","EDPCDBG",15,0)
|
|
S:'$L(LOGID) LOGID="init"
|
|
"RTN","EDPCDBG",16,0)
|
|
I '$D(^XTMP("EDP-DEBUG-LOG",0)) S ^XTMP("EDP-DEBUG-LOG",0)=$$FMADD^XLFDT(DT,1)_U_DT_U_"ED debug log"
|
|
"RTN","EDPCDBG",17,0)
|
|
L +^XTMP("EDP-DEBUG-LOG",LOGID,"SEQ"):2 E Q 0
|
|
"RTN","EDPCDBG",18,0)
|
|
S ^XTMP("EDP-DEBUG-LOG",LOGID,"SEQ")=+$G(^XTMP("EDP-DEBUG-LOG",LOGID,"SEQ"))+1
|
|
"RTN","EDPCDBG",19,0)
|
|
L -^XTMP("EDP-DEBUG-LOG",LOGID,"SEQ")
|
|
"RTN","EDPCDBG",20,0)
|
|
Q ^XTMP("EDP-DEBUG-LOG",LOGID,"SEQ")_U_LOGID
|
|
"RTN","EDPCDBG",21,0)
|
|
;
|
|
"RTN","EDPCDBG",22,0)
|
|
PUTREQ(SEQ,REQ) ; save the request at this sequence number
|
|
"RTN","EDPCDBG",23,0)
|
|
M ^XTMP("EDP-DEBUG-LOG",$P(SEQ,U,2),+SEQ,"REQ")=REQ
|
|
"RTN","EDPCDBG",24,0)
|
|
Q
|
|
"RTN","EDPCDBG",25,0)
|
|
PUTXML(SEQ,XML) ; save the XML result at this sequence number
|
|
"RTN","EDPCDBG",26,0)
|
|
M ^XTMP("EDP-DEBUG-LOG",$P(SEQ,U,2),+SEQ,"XML")=XML
|
|
"RTN","EDPCDBG",27,0)
|
|
Q
|
|
"RTN","EDPCDBG",28,0)
|
|
;
|
|
"RTN","EDPCDBG",29,0)
|
|
SETON ; turn on debugging for EDIS
|
|
"RTN","EDPCDBG",30,0)
|
|
N DIR,X,Y
|
|
"RTN","EDPCDBG",31,0)
|
|
W !,"Enable EDIS Debugging Log"
|
|
"RTN","EDPCDBG",32,0)
|
|
W !,"Logging will occur for 30 minutes after start time."
|
|
"RTN","EDPCDBG",33,0)
|
|
W !,"Log is stored in ^XTMP(""EDP-DEBUG-LOG"")",!
|
|
"RTN","EDPCDBG",34,0)
|
|
S DIR(0)="DO^::EFR"
|
|
"RTN","EDPCDBG",35,0)
|
|
S DIR("A")="Logging Start Time"
|
|
"RTN","EDPCDBG",36,0)
|
|
S DIR("B")="NOW"
|
|
"RTN","EDPCDBG",37,0)
|
|
D ^DIR
|
|
"RTN","EDPCDBG",38,0)
|
|
Q:'Y
|
|
"RTN","EDPCDBG",39,0)
|
|
K ^XTMP("EDP-DEBUG-LOG")
|
|
"RTN","EDPCDBG",40,0)
|
|
D EN^XPAR("SYS","EDPF DEBUG START TIME",1,$$FMTH^XLFDT(Y))
|
|
"RTN","EDPCDBG",41,0)
|
|
Q
|
|
"RTN","EDPCDBG",42,0)
|
|
SETOFF ; turn off debugging for EDIS
|
|
"RTN","EDPCDBG",43,0)
|
|
W !,"EDIS Debugging Log Stopped"
|
|
"RTN","EDPCDBG",44,0)
|
|
D DEL^XPAR("SYS","EDPF DEBUG START TIME",1)
|
|
"RTN","EDPCDBG",45,0)
|
|
Q
|
|
"RTN","EDPCONV")
|
|
0^24^B47887788
|
|
"RTN","EDPCONV",1,0)
|
|
EDPCONV ;SLC/MKB - Process incoming mail to convert local ED Visits
|
|
"RTN","EDPCONV",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPCONV",3,0)
|
|
;
|
|
"RTN","EDPCONV",4,0)
|
|
AREA(DIV) ; -- Return #231.9 ien for DIVision (#4 ien)
|
|
"RTN","EDPCONV",5,0)
|
|
Q +$O(^EDPB(231.9,"C",DIV,0))
|
|
"RTN","EDPCONV",6,0)
|
|
;
|
|
"RTN","EDPCONV",7,0)
|
|
VST(OLD) ; -- Copy OLD(node) ER visit entry into ^EDP(230)
|
|
"RTN","EDPCONV",8,0)
|
|
N X,I,EDPY,EDPSITE,EDPDIFF,EDPAREA,EDPSTA,EDPLOG,EDPI,PNM,SSN
|
|
"RTN","EDPCONV",9,0)
|
|
S EDPSITE=$G(OLD("SITE")),X=$G(OLD("TZ")),EDPDIFF=0 ;$$TZONE(X)
|
|
"RTN","EDPCONV",10,0)
|
|
S EDPAREA=$$AREA(EDPSITE) Q:EDPAREA<1
|
|
"RTN","EDPCONV",11,0)
|
|
S EDPSTA=$$STA^XUAF4(EDPSITE) ;station number
|
|
"RTN","EDPCONV",12,0)
|
|
F I=0,1,2,3,4,6,9 S OLD(I)=$G(OLD(I)) ;defined
|
|
"RTN","EDPCONV",13,0)
|
|
S X=$P(OLD(0),U,5),EDPY=$$NEW(230,X) Q:EDPY<1
|
|
"RTN","EDPCONV",14,0)
|
|
S PNM=$P(OLD(0),U),SSN=$P(OLD(0),U,3) ;patient name, ssn
|
|
"RTN","EDPCONV",15,0)
|
|
S EDPLOG(0)=X_U_EDPSITE_U_EDPAREA_U_PNM_U_SSN_U_$P(OLD(6),U,2)_U_$G(OLD("CLOSED"))_U_$P(OLD(4),U,4,5)_U_$$ARR($P(OLD(0),U,6))_U_$$PID(PNM,SSN) ;_U_EDPDIFF
|
|
"RTN","EDPCONV",16,0)
|
|
S X=$P(OLD(9),U,3) S:'X X=$P(OLD(6),U,3) ;disposition
|
|
"RTN","EDPCONV",17,0)
|
|
S EDPLOG(1)=$P(OLD(1),U)_U_$$DISP(X)_U_$P(OLD(9),U,2)_U_$P(OLD(9),U)_U_$$DEL($P(OLD(4),U,7))
|
|
"RTN","EDPCONV",18,0)
|
|
S X=$P(OLD(2),U) S:$L(X) EDPLOG(2)=X
|
|
"RTN","EDPCONV",19,0)
|
|
S EDPLOG(3)=U_$$STS($P(OLD(0),U,4))_U_$$ACU($P(OLD(4),U,3))_U_$$LOC($P(OLD(3),U,2))_U_$P(OLD(4),U)_U_$P(OLD(4),U,2)_U_$P(OLD(4),U,6)_U_$P(OLD(6),U)
|
|
"RTN","EDPCONV",20,0)
|
|
I $D(OLD(8)) M EDPLOG(4)=OLD(8) S $P(EDPLOG(4,0),U,2)="230.04A"
|
|
"RTN","EDPCONV",21,0)
|
|
; Save/Xref log entry
|
|
"RTN","EDPCONV",22,0)
|
|
M ^EDP(230,EDPY)=EDPLOG
|
|
"RTN","EDPCONV",23,0)
|
|
D XREF(230,EDPY)
|
|
"RTN","EDPCONV",24,0)
|
|
;
|
|
"RTN","EDPCONV",25,0)
|
|
; Set History from Movement nodes
|
|
"RTN","EDPCONV",26,0)
|
|
S EDPI="MVT" F S EDPI=$O(OLD(EDPI)) Q:EDPI'?1"MVT"1.N D HIST(EDPI,EDPY)
|
|
"RTN","EDPCONV",27,0)
|
|
;
|
|
"RTN","EDPCONV",28,0)
|
|
; Create Orders list for active visits
|
|
"RTN","EDPCONV",29,0)
|
|
I '$G(OLD("CLOSED")) S X=EDPLOG(0) D ORDERS(EDPY,X)
|
|
"RTN","EDPCONV",30,0)
|
|
;
|
|
"RTN","EDPCONV",31,0)
|
|
S OLD(230)=EDPY ;return new ien
|
|
"RTN","EDPCONV",32,0)
|
|
Q
|
|
"RTN","EDPCONV",33,0)
|
|
;
|
|
"RTN","EDPCONV",34,0)
|
|
HIST(MVTI,LOG) ; -- Copy OLD(MVTI) into ^EDP(230.1)
|
|
"RTN","EDPCONV",35,0)
|
|
N EDPY,MVT,ACT
|
|
"RTN","EDPCONV",36,0)
|
|
S EDPY=$$NEW(230.1,LOG) Q:EDPY<1
|
|
"RTN","EDPCONV",37,0)
|
|
S MVT=OLD(MVTI)
|
|
"RTN","EDPCONV",38,0)
|
|
S ACT(0)=LOG_U_$P(MVT,U,2)_U_U_$P($G(^EDP(230,LOG,0)),U,4,6)
|
|
"RTN","EDPCONV",39,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",40,0)
|
|
; Save/Xref history
|
|
"RTN","EDPCONV",41,0)
|
|
M ^EDP(230.1,EDPY)=ACT
|
|
"RTN","EDPCONV",42,0)
|
|
D XREF(230.1,EDPY)
|
|
"RTN","EDPCONV",43,0)
|
|
Q
|
|
"RTN","EDPCONV",44,0)
|
|
;
|
|
"RTN","EDPCONV",45,0)
|
|
NEW(FILE,X) ; -- Return ien of new entry in FILE
|
|
"RTN","EDPCONV",46,0)
|
|
N DO,DIC,DA,Y
|
|
"RTN","EDPCONV",47,0)
|
|
S DIC="^EDP("_FILE_",",DIC(0)="LF" D FILE^DICN
|
|
"RTN","EDPCONV",48,0)
|
|
Q +Y
|
|
"RTN","EDPCONV",49,0)
|
|
;
|
|
"RTN","EDPCONV",50,0)
|
|
XREF(FILE,DA) ; -- Set all xrefs for DA in FILE
|
|
"RTN","EDPCONV",51,0)
|
|
N DIK
|
|
"RTN","EDPCONV",52,0)
|
|
S DIK="^EDP("_FILE_"," D IX1^DIK
|
|
"RTN","EDPCONV",53,0)
|
|
Q
|
|
"RTN","EDPCONV",54,0)
|
|
;
|
|
"RTN","EDPCONV",55,0)
|
|
PID(NM,ID) ; -- Return brief id (L0000) for patient
|
|
"RTN","EDPCONV",56,0)
|
|
N Y S Y=$E(NM)_$E(ID,6,9)
|
|
"RTN","EDPCONV",57,0)
|
|
Q Y
|
|
"RTN","EDPCONV",58,0)
|
|
;
|
|
"RTN","EDPCONV",59,0)
|
|
TZONE(X) ; -- Return #minutes local offset for time zone
|
|
"RTN","EDPCONV",60,0)
|
|
N Y S Y=$E(X)_(60*$E(X,2,3)+$E(X,4,5))
|
|
"RTN","EDPCONV",61,0)
|
|
Q Y
|
|
"RTN","EDPCONV",62,0)
|
|
;
|
|
"RTN","EDPCONV",63,0)
|
|
ACU(X) ; -- Return[/add] #233.1 ien for Acuity X
|
|
"RTN","EDPCONV",64,0)
|
|
I $G(X)="" Q ""
|
|
"RTN","EDPCONV",65,0)
|
|
N Y,NODE S NODE=$G(OLD("ACU"_+X)) Q:NODE="" $$NOVALUE
|
|
"RTN","EDPCONV",66,0)
|
|
S X=$P(NODE,U,2),Y=""
|
|
"RTN","EDPCONV",67,0)
|
|
S:$L(X) Y=+$O(^EDPB(233.1,"AB","acuity",X,0)) Q:Y Y
|
|
"RTN","EDPCONV",68,0)
|
|
; add local item
|
|
"RTN","EDPCONV",69,0)
|
|
N FDA,FDAIEN,DIERR,ERR,NM
|
|
"RTN","EDPCONV",70,0)
|
|
S NM=$P(NODE,U),NM=$S(NM["-":$P(NM,"-",2),1:NM)
|
|
"RTN","EDPCONV",71,0)
|
|
S FDA(233.1,"+1,",.01)=EDPSTA_".acuity."_$$LOW^XLFSTR(NM)
|
|
"RTN","EDPCONV",72,0)
|
|
S FDA(233.1,"+1,",.02)=X
|
|
"RTN","EDPCONV",73,0)
|
|
S FDA(233.1,"+1,",.03)=X
|
|
"RTN","EDPCONV",74,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPCONV",75,0)
|
|
S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"")
|
|
"RTN","EDPCONV",76,0)
|
|
Q Y
|
|
"RTN","EDPCONV",77,0)
|
|
;
|
|
"RTN","EDPCONV",78,0)
|
|
STS(X) ; -- Return[/add] #233.1 ien for Status X
|
|
"RTN","EDPCONV",79,0)
|
|
I $G(X)="" Q ""
|
|
"RTN","EDPCONV",80,0)
|
|
N Y,NODE
|
|
"RTN","EDPCONV",81,0)
|
|
S NODE=$G(OLD("STS"_+X)),Y="" Q:NODE="" $$NOVALUE
|
|
"RTN","EDPCONV",82,0)
|
|
S X=$P(NODE,U,1) S:$L(X) Y=+$O(^EDPB(233.1,"AC","status",X,0)) Q:Y Y
|
|
"RTN","EDPCONV",83,0)
|
|
S X=$P(NODE,U,4) S:$L(X) Y=+$O(^EDPB(233.1,"AB","status",X,0)) Q:Y Y
|
|
"RTN","EDPCONV",84,0)
|
|
; add local item
|
|
"RTN","EDPCONV",85,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPCONV",86,0)
|
|
S FDA(233.1,"+1,",.01)=EDPSTA_".status."_$$LOW^XLFSTR(X)
|
|
"RTN","EDPCONV",87,0)
|
|
S FDA(233.1,"+1,",.02)=$P(NODE,U) ;text
|
|
"RTN","EDPCONV",88,0)
|
|
S FDA(233.1,"+1,",.03)=X ;display/abbreviation
|
|
"RTN","EDPCONV",89,0)
|
|
S:$P(NODE,U,6)="Y" FDA(233.1,"+1,",.05)="A" ;admission flag
|
|
"RTN","EDPCONV",90,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPCONV",91,0)
|
|
S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"")
|
|
"RTN","EDPCONV",92,0)
|
|
Q Y
|
|
"RTN","EDPCONV",93,0)
|
|
;
|
|
"RTN","EDPCONV",94,0)
|
|
DEL(X) ; -- Return[/add] #233.1 ien for Delay Reason X
|
|
"RTN","EDPCONV",95,0)
|
|
I $G(X)="" Q ""
|
|
"RTN","EDPCONV",96,0)
|
|
N Y,NODE
|
|
"RTN","EDPCONV",97,0)
|
|
S NODE=$G(OLD("DEL"_+X)),Y="" Q:NODE="" $$NOVALUE
|
|
"RTN","EDPCONV",98,0)
|
|
S X=$P(NODE,U,1) S:$L(X) Y=+$O(^EDPB(233.1,"AC","delay",X,0)) Q:Y Y
|
|
"RTN","EDPCONV",99,0)
|
|
S X=$P(NODE,U,3) S:$L(X) Y=+$O(^EDPB(233.1,"AB","delay",X,0)) Q:Y Y
|
|
"RTN","EDPCONV",100,0)
|
|
; add local item
|
|
"RTN","EDPCONV",101,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPCONV",102,0)
|
|
S FDA(233.1,"+1,",.01)=EDPSTA_".delay."_$$LOW^XLFSTR(X)
|
|
"RTN","EDPCONV",103,0)
|
|
S FDA(233.1,"+1,",.02)=$P(NODE,U) ;name
|
|
"RTN","EDPCONV",104,0)
|
|
S FDA(233.1,"+1,",.03)=$P(NODE,U,3) ;abbreviation
|
|
"RTN","EDPCONV",105,0)
|
|
S FDA(233.1,"+1,",.05)=$P(NODE,U,5) ;report flag
|
|
"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)
|
|
ARR(X) ; -- Return[/add] #233.1 ien for Arrival Mode X
|
|
"RTN","EDPCONV",111,0)
|
|
I $G(X)="" Q ""
|
|
"RTN","EDPCONV",112,0)
|
|
N Y,NODE
|
|
"RTN","EDPCONV",113,0)
|
|
S NODE=$G(OLD("ARR"_+X)),Y="" Q:NODE="" $$NOVALUE
|
|
"RTN","EDPCONV",114,0)
|
|
S X=$P($P(NODE,U)," ") S:$L(X) Y=+$O(^EDPB(233.1,"AC","source",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)=EDPSTA_".source."_$$LOW^XLFSTR(X)
|
|
"RTN","EDPCONV",118,0)
|
|
S FDA(233.1,"+1,",.02)=X
|
|
"RTN","EDPCONV",119,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPCONV",120,0)
|
|
S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"")
|
|
"RTN","EDPCONV",121,0)
|
|
Q Y
|
|
"RTN","EDPCONV",122,0)
|
|
;
|
|
"RTN","EDPCONV",123,0)
|
|
DISP(X) ; -- Return[/add] #233.1 ien for Disposition code X
|
|
"RTN","EDPCONV",124,0)
|
|
I $G(X)="" Q ""
|
|
"RTN","EDPCONV",125,0)
|
|
N Y,NODE
|
|
"RTN","EDPCONV",126,0)
|
|
S NODE=$G(OLD("DIS"_X)),Y="" Q:NODE="" $$NOVALUE
|
|
"RTN","EDPCONV",127,0)
|
|
S:X X=$P(NODE,U,5) ;ien -> abbreviation
|
|
"RTN","EDPCONV",128,0)
|
|
I $L(X) S Y=+$O(^EDPB(233.1,"AB","disposition",X,0)) Q:Y Y
|
|
"RTN","EDPCONV",129,0)
|
|
E S X=$P(NODE,U) S:$L(X) Y=+$O(^EDPB(233.1,"AC","disposition",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 X=$P($P(NODE,U)," ") ;1st word, for name
|
|
"RTN","EDPCONV",133,0)
|
|
S FDA(233.1,"+1,",.01)=EDPSTA_".disposition."_$$LOW^XLFSTR(X)
|
|
"RTN","EDPCONV",134,0)
|
|
S FDA(233.1,"+1,",.02)=$P(NODE,U) ;Display Name
|
|
"RTN","EDPCONV",135,0)
|
|
S FDA(233.1,"+1,",.03)=$P(NODE,U,5) ;Abbreviation
|
|
"RTN","EDPCONV",136,0)
|
|
S:$P(NODE,U,7) FDA(233.1,"+1,",.05)="M" ;Missed Opportunity
|
|
"RTN","EDPCONV",137,0)
|
|
S:$P(NODE,U,6) FDA(233.1,"+1,",.05)="A" ;Admission
|
|
"RTN","EDPCONV",138,0)
|
|
S:$P(NODE,U,8) FDA(233.1,"+1,",.05)="VA" ;VA Admission
|
|
"RTN","EDPCONV",139,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPCONV",140,0)
|
|
S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"")
|
|
"RTN","EDPCONV",141,0)
|
|
Q Y
|
|
"RTN","EDPCONV",142,0)
|
|
;
|
|
"RTN","EDPCONV",143,0)
|
|
LOC(X) ; -- Return[/add] #231.8 ien for Location X
|
|
"RTN","EDPCONV",144,0)
|
|
I $G(X)="" Q ""
|
|
"RTN","EDPCONV",145,0)
|
|
N Y,NODE
|
|
"RTN","EDPCONV",146,0)
|
|
S NODE=$G(OLD("LOC"_+X)) S:NODE="" NODE="UNKNOWN^UNK^^0^^^0"
|
|
"RTN","EDPCONV",147,0)
|
|
S X=$P(NODE,U,2),Y=""
|
|
"RTN","EDPCONV",148,0)
|
|
S:$L(X) Y=+$O(^EDPB(231.8,"AC",EDPSITE,EDPAREA,X,0)) Q:Y Y
|
|
"RTN","EDPCONV",149,0)
|
|
; add local item
|
|
"RTN","EDPCONV",150,0)
|
|
N FDA,FDAIEN,DIERR,ERR,X
|
|
"RTN","EDPCONV",151,0)
|
|
S FDA(231.8,"+1,",.01)=$TR($P(NODE,U),"-") ;Name
|
|
"RTN","EDPCONV",152,0)
|
|
S FDA(231.8,"+1,",.02)=EDPSTA ;Station#
|
|
"RTN","EDPCONV",153,0)
|
|
S FDA(231.8,"+1,",.03)=EDPAREA ;Area ien
|
|
"RTN","EDPCONV",154,0)
|
|
S FDA(231.8,"+1,",.04)='$P(NODE,U,4) ;Inactive
|
|
"RTN","EDPCONV",155,0)
|
|
S FDA(231.8,"+1,",.05)=$P(NODE,U,6) ;Sequence
|
|
"RTN","EDPCONV",156,0)
|
|
S FDA(231.8,"+1,",.06)=$P(NODE,U,2) ;Display Name
|
|
"RTN","EDPCONV",157,0)
|
|
S X=$P(NODE,U,7),X=$S(X=2:0,X=0:2,1:1)
|
|
"RTN","EDPCONV",158,0)
|
|
S FDA(231.8,"+1,",.07)=X ;Display When
|
|
"RTN","EDPCONV",159,0)
|
|
S FDA(231.8,"+1,",.08)=$$STS($P(NODE,U,8)) ;Default Status ien
|
|
"RTN","EDPCONV",160,0)
|
|
S FDA(231.8,"+1,",.1)=$P(NODE,U,9) ;Shared Name [Room]
|
|
"RTN","EDPCONV",161,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPCONV",162,0)
|
|
S Y=$S('$D(DIERR):+$G(FDAIEN(1)),1:"")
|
|
"RTN","EDPCONV",163,0)
|
|
LCQ ;exit
|
|
"RTN","EDPCONV",164,0)
|
|
Q Y
|
|
"RTN","EDPCONV",165,0)
|
|
;
|
|
"RTN","EDPCONV",166,0)
|
|
NOVALUE() Q $O(^EDPB(233.1,"B","edp.reserved.novalue",0))
|
|
"RTN","EDPCONV",167,0)
|
|
;
|
|
"RTN","EDPCONV",168,0)
|
|
ORDERS(LOG,NODE) ; -- build Orders multiple
|
|
"RTN","EDPCONV",169,0)
|
|
N ORLIST,DFN,IN,OUT,ORI,ORIFN,STS,REL,PKG,X,Y,DIC,DA
|
|
"RTN","EDPCONV",170,0)
|
|
S DFN=+$P(NODE,U,6) Q:DFN<1
|
|
"RTN","EDPCONV",171,0)
|
|
S IN=$P(NODE,U,8) Q:IN<1 Q:IN<$$FMADD^XLFDT(DT,-1) ;old
|
|
"RTN","EDPCONV",172,0)
|
|
S OUT=$P(NODE,U,9) S:OUT<1 OUT=$$NOW^XLFDT
|
|
"RTN","EDPCONV",173,0)
|
|
K ^TMP("ORR",$J) D EN^ORQ1(DFN_";DPT(",,1,,IN,OUT) S ORI=0
|
|
"RTN","EDPCONV",174,0)
|
|
F S ORI=$O(^TMP("ORR",$J,ORLIST,ORI)) Q:ORI<1 S ORIFN=+$G(^(ORI)) D
|
|
"RTN","EDPCONV",175,0)
|
|
. Q:$O(^EDP(230,LOG,8,"B",ORIFN,0))
|
|
"RTN","EDPCONV",176,0)
|
|
. S X=$$GET1^DIQ(100,ORIFN_",",5,"I") Q:(X=10)!(X=11) ;unreleased
|
|
"RTN","EDPCONV",177,0)
|
|
. S STS=$S("^1^2^7^12^13^14^"[(U_X_U):"C","^3^6^9^15^"[(U_X_U):"A",1:"N")
|
|
"RTN","EDPCONV",178,0)
|
|
. S REL=$$GET1^DIQ(100.008,"1,"_ORIFN_",",16,"I")
|
|
"RTN","EDPCONV",179,0)
|
|
. S X=$$GET1^DIQ(100,ORIFN_",","12:1")
|
|
"RTN","EDPCONV",180,0)
|
|
. S PKG=$S($E(X,1,2)="LR":"L",$E(X,1,2)="PS":"M",$E(X,1,2)="RA":"R",X="GMRC":"C",1:"A")
|
|
"RTN","EDPCONV",181,0)
|
|
. ; add to subfile
|
|
"RTN","EDPCONV",182,0)
|
|
. K X,Y,DIC,DA
|
|
"RTN","EDPCONV",183,0)
|
|
. S DIC="^EDP(230,"_LOG_",8,",DIC(0)="LZ",DA(1)=LOG,X=+ORIFN
|
|
"RTN","EDPCONV",184,0)
|
|
. S DIC("DR")=".02///"_PKG_";.03///"_STS_";.05///"_REL
|
|
"RTN","EDPCONV",185,0)
|
|
. ;S:$$VAL("stat") DIC("DR")=DIC("DR")_";.04///1"
|
|
"RTN","EDPCONV",186,0)
|
|
. D FILE^DICN
|
|
"RTN","EDPCONV",187,0)
|
|
K ^TMP("ORR",$J,ORLIST)
|
|
"RTN","EDPCONV",188,0)
|
|
Q
|
|
"RTN","EDPCONV1")
|
|
0^52^B10237522
|
|
"RTN","EDPCONV1",1,0)
|
|
EDPCONV1 ;SLC/MKB - Convert local ED configuration
|
|
"RTN","EDPCONV1",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPCONV1",3,0)
|
|
;
|
|
"RTN","EDPCONV1",4,0)
|
|
CONFIG(OLD) ; -- Save local OLD(NODE) configuration into ^EDPB(231.9)
|
|
"RTN","EDPCONV1",5,0)
|
|
N EDPSITE,TZDIFF,EDPAREA,X,X2,X3,X5,Y,NODE
|
|
"RTN","EDPCONV1",6,0)
|
|
S EDPSITE=$G(OLD("SITE")),X=$G(OLD("TZ")),TZDIFF=0 ;$$TZONE(X)
|
|
"RTN","EDPCONV1",7,0)
|
|
S EDPAREA=+$O(^EDPB(231.9,"C",EDPSITE,0)) Q:EDPAREA<1
|
|
"RTN","EDPCONV1",8,0)
|
|
S X2=$G(OLD(2)),X3=$G(OLD(3)),X5=$G(OLD(5))
|
|
"RTN","EDPCONV1",9,0)
|
|
; update entry
|
|
"RTN","EDPCONV1",10,0)
|
|
S:$L(TZDIFF) $P(^EDPB(231.9,EDPAREA,0),U,3)=TZDIFF
|
|
"RTN","EDPCONV1",11,0)
|
|
S NODE=$G(^EDPB(231.9,EDPAREA,1))
|
|
"RTN","EDPCONV1",12,0)
|
|
S X=$P(X5,U,1) S:$L(X) $P(NODE,U,1)=X ;Dx Reqd
|
|
"RTN","EDPCONV1",13,0)
|
|
S X=$P(X5,U,4) S:$L(X) $P(NODE,U,3)=X ;Disp Reqd
|
|
"RTN","EDPCONV1",14,0)
|
|
S X=$P(X5,U,5) S:$L(X) $P(NODE,U,4)=X ;Delay Reqd
|
|
"RTN","EDPCONV1",15,0)
|
|
S X=$P(X5,U,6) S:$L(X) $P(NODE,U,5)=X ;Delay Minutes
|
|
"RTN","EDPCONV1",16,0)
|
|
S X=$P(X2,U,4) I $L(X) D
|
|
"RTN","EDPCONV1",17,0)
|
|
. S Y=(+$P(X,":")*60)+$P(X,":",2) ;HH:MM -> minutes since Midnight
|
|
"RTN","EDPCONV1",18,0)
|
|
. S $P(NODE,U,6)=Y ;First Shift Start
|
|
"RTN","EDPCONV1",19,0)
|
|
S X=$P(X2,U,5) I X D
|
|
"RTN","EDPCONV1",20,0)
|
|
. S Y=X*60 ;hours -> minutes
|
|
"RTN","EDPCONV1",21,0)
|
|
. S $P(NODE,U,7)=Y ;Shift Duration
|
|
"RTN","EDPCONV1",22,0)
|
|
S ^EDPB(231.9,EDPAREA,1)=NODE
|
|
"RTN","EDPCONV1",23,0)
|
|
C1 ; Color Spec
|
|
"RTN","EDPCONV1",24,0)
|
|
N CSPEC,N,I,BACK,FONT
|
|
"RTN","EDPCONV1",25,0)
|
|
S CSPEC(1,0)="<colors id=""stsAcuity"" type=""val"" >",N=1
|
|
"RTN","EDPCONV1",26,0)
|
|
S I="STS" F S I=$O(OLD(I)) Q:I'?1"STS"1.N D
|
|
"RTN","EDPCONV1",27,0)
|
|
. S NODE=$G(OLD(I)),FONT=$P(NODE,U,2),BACK=$P(NODE,U,3)
|
|
"RTN","EDPCONV1",28,0)
|
|
. S X="<map att=""@status"" clr=""",Y=$$STS^EDPCONV(+$P(I,"STS",2))
|
|
"RTN","EDPCONV1",29,0)
|
|
. I '$L(FONT)!'$L(BACK) S X=X_"0"" val="""_Y_""" />"
|
|
"RTN","EDPCONV1",30,0)
|
|
. E S X=X_"1,"_$$CLR(BACK)_","_$$CLR(FONT)_""" val="""_Y_""" />"
|
|
"RTN","EDPCONV1",31,0)
|
|
. S N=N+1,CSPEC(N,0)=X
|
|
"RTN","EDPCONV1",32,0)
|
|
S I="ACU" F S I=$O(OLD(I)) Q:I'?1"ACU"1.N D
|
|
"RTN","EDPCONV1",33,0)
|
|
. S NODE=$G(OLD(I)),FONT=$$CLR($P(NODE,U,3)),BACK=$$CLR($P(NODE,U,4))
|
|
"RTN","EDPCONV1",34,0)
|
|
. S X="<map att=""@acuity"" clr=""",Y=$$ACU^EDPCONV(+$P(I,"ACU",2))
|
|
"RTN","EDPCONV1",35,0)
|
|
. I '$L(FONT)!'$L(BACK) S X=X_"0"" val="""_Y_""" />"
|
|
"RTN","EDPCONV1",36,0)
|
|
. E S X=X_"1,"_BACK_","_FONT_""" val="""_Y_""" />"
|
|
"RTN","EDPCONV1",37,0)
|
|
. S N=N+1,CSPEC(N,0)=X
|
|
"RTN","EDPCONV1",38,0)
|
|
S N=N+1,CSPEC(N,0)="</colors>"
|
|
"RTN","EDPCONV1",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","EDPCONV1",40,0)
|
|
S CSPEC(0)="^^"_N_U_N_U_DT
|
|
"RTN","EDPCONV1",41,0)
|
|
K ^EDPB(231.9,EDPAREA,3) M ^(3)=CSPEC
|
|
"RTN","EDPCONV1",42,0)
|
|
Q
|
|
"RTN","EDPCONV1",43,0)
|
|
;
|
|
"RTN","EDPCONV1",44,0)
|
|
CLR(X) ; -- Return code for color X
|
|
"RTN","EDPCONV1",45,0)
|
|
I X="CLRED" Q "0xff0000"
|
|
"RTN","EDPCONV1",46,0)
|
|
I X="CLBLUE" Q "0x0000ff"
|
|
"RTN","EDPCONV1",47,0)
|
|
I X="CLGREEN" Q "0x00ff00"
|
|
"RTN","EDPCONV1",48,0)
|
|
I X="CLYELLOW" Q "0xffff00"
|
|
"RTN","EDPCONV1",49,0)
|
|
I X="CLWHITE" Q "0xffffff"
|
|
"RTN","EDPCONV1",50,0)
|
|
I X="CLBLACK" Q "0x000000"
|
|
"RTN","EDPCONV1",51,0)
|
|
I X="CLNAVY" Q "0x000088"
|
|
"RTN","EDPCONV1",52,0)
|
|
I X="CLFUCHSIA" Q "0xff00ff"
|
|
"RTN","EDPCONV1",53,0)
|
|
I X="CLMONEYGREEN" Q "0xc0dcc0"
|
|
"RTN","EDPCONV1",54,0)
|
|
I X="CLSKYBLUE" Q "0xa6caf0"
|
|
"RTN","EDPCONV1",55,0)
|
|
I X="CLCREAM" Q "0xfffbf0"
|
|
"RTN","EDPCONV1",56,0)
|
|
I X="CLMAROON" Q "0x880000"
|
|
"RTN","EDPCONV1",57,0)
|
|
I X="CLTEAL" Q "0x008888"
|
|
"RTN","EDPCONV1",58,0)
|
|
I X="CLOLIVE" Q "0x888800"
|
|
"RTN","EDPCONV1",59,0)
|
|
Q ""
|
|
"RTN","EDPCONV1",60,0)
|
|
;
|
|
"RTN","EDPCONV1",61,0)
|
|
ORDCLR ; -- default color scheme for order urgencies
|
|
"RTN","EDPCONV1",62,0)
|
|
;;<colors id="labUrg" nm="Urgency - Lab" type="val" >
|
|
"RTN","EDPCONV1",63,0)
|
|
;;<map att="@labUrg" clr="1,0x000000,0x00ff00" val="0" />
|
|
"RTN","EDPCONV1",64,0)
|
|
;;<map att="@labUrg" clr="1,0x000000,0xffff00" val="1" />
|
|
"RTN","EDPCONV1",65,0)
|
|
;;<map att="@labUrg" clr="1,0x000000,0xff0000" val="2" />
|
|
"RTN","EDPCONV1",66,0)
|
|
;;</colors>
|
|
"RTN","EDPCONV1",67,0)
|
|
;;<colors id="radUrg" nm="Urgency - Radiology" type="val" >
|
|
"RTN","EDPCONV1",68,0)
|
|
;;<map att="@radUrg" clr="1,0x000000,0x00ff00" val="0" />
|
|
"RTN","EDPCONV1",69,0)
|
|
;;<map att="@radUrg" clr="1,0x000000,0xffff00" val="1" />
|
|
"RTN","EDPCONV1",70,0)
|
|
;;<map att="@radUrg" clr="1,0x000000,0xff0000" val="2" />
|
|
"RTN","EDPCONV1",71,0)
|
|
;;</colors>
|
|
"RTN","EDPCONV1",72,0)
|
|
;;ZZZZ
|
|
"RTN","EDPCONV1",73,0)
|
|
Q
|
|
"RTN","EDPCSV")
|
|
0^48^B906612
|
|
"RTN","EDPCSV",1,0)
|
|
EDPCSV ;SLC/MKB - CSV format utilities
|
|
"RTN","EDPCSV",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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 "<results>",!
|
|
"RTN","EDPCSV",17,0)
|
|
S I=0 F S I=$O(EDPCSV(I)) Q:'I W EDPCSV(I),!
|
|
"RTN","EDPCSV",18,0)
|
|
;W "</results>",!
|
|
"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^B33410398
|
|
"RTN","EDPCTRL",1,0)
|
|
EDPCTRL ;SLC/KCM - Controller for ED Tracking
|
|
"RTN","EDPCTRL",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,EDPDBUG
|
|
"RTN","EDPCTRL",6,0)
|
|
K EDPXML
|
|
"RTN","EDPCTRL",7,0)
|
|
S EDPUSER=DUZ,EDPSITE=DUZ(2),EDPSTA=$$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)
|
|
S EDPDBUG=$$DEBUG^EDPCDBG($G(PARAMS("swfID")))
|
|
"RTN","EDPCTRL",10,0)
|
|
I EDPDBUG D PUTREQ^EDPCDBG(EDPDBUG,.PARAMS)
|
|
"RTN","EDPCTRL",11,0)
|
|
;
|
|
"RTN","EDPCTRL",12,0)
|
|
COMMON ; Come here for both CSP and RPC Mode
|
|
"RTN","EDPCTRL",13,0)
|
|
;
|
|
"RTN","EDPCTRL",14,0)
|
|
N EDPFAIL,CMD
|
|
"RTN","EDPCTRL",15,0)
|
|
S CMD=$G(REQ("command",1))
|
|
"RTN","EDPCTRL",16,0)
|
|
;
|
|
"RTN","EDPCTRL",17,0)
|
|
; switch on command
|
|
"RTN","EDPCTRL",18,0)
|
|
;
|
|
"RTN","EDPCTRL",19,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",20,0)
|
|
;
|
|
"RTN","EDPCTRL",21,0)
|
|
; initUser
|
|
"RTN","EDPCTRL",22,0)
|
|
; return <user />
|
|
"RTN","EDPCTRL",23,0)
|
|
; <view />...
|
|
"RTN","EDPCTRL",24,0)
|
|
I CMD="initUser" D G OUT
|
|
"RTN","EDPCTRL",25,0)
|
|
. D SESS^EDPFAA,VIEWS^EDPFAA
|
|
"RTN","EDPCTRL",26,0)
|
|
;
|
|
"RTN","EDPCTRL",27,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",28,0)
|
|
;
|
|
"RTN","EDPCTRL",29,0)
|
|
; matchPatients
|
|
"RTN","EDPCTRL",30,0)
|
|
; return <ptlk />...<ptlk />
|
|
"RTN","EDPCTRL",31,0)
|
|
I CMD="matchPatients" D G OUT
|
|
"RTN","EDPCTRL",32,0)
|
|
. D MATCH^EDPFPTL($$VAL("partial"))
|
|
"RTN","EDPCTRL",33,0)
|
|
;
|
|
"RTN","EDPCTRL",34,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",35,0)
|
|
;
|
|
"RTN","EDPCTRL",36,0)
|
|
; getPatientChecks
|
|
"RTN","EDPCTRL",37,0)
|
|
; return <checks />
|
|
"RTN","EDPCTRL",38,0)
|
|
; <similar />
|
|
"RTN","EDPCTRL",39,0)
|
|
; <warning> </warning>
|
|
"RTN","EDPCTRL",40,0)
|
|
; <patientRecordFlags><flag> <text> </text></flag>...</patientRecordFlags>
|
|
"RTN","EDPCTRL",41,0)
|
|
I CMD="getPatientChecks" D G OUT
|
|
"RTN","EDPCTRL",42,0)
|
|
. D CHK^EDPFPTC($$VAL("area"),$$VAL("patient"),$$VAL("name"))
|
|
"RTN","EDPCTRL",43,0)
|
|
;
|
|
"RTN","EDPCTRL",44,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",45,0)
|
|
;
|
|
"RTN","EDPCTRL",46,0)
|
|
; saveSecurityLog
|
|
"RTN","EDPCTRL",47,0)
|
|
; return <save />
|
|
"RTN","EDPCTRL",48,0)
|
|
I CMD="saveSecurityLog" D G OUT
|
|
"RTN","EDPCTRL",49,0)
|
|
. D LOG^EDPFPTC($$VAL("patient"))
|
|
"RTN","EDPCTRL",50,0)
|
|
;
|
|
"RTN","EDPCTRL",51,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",52,0)
|
|
;
|
|
"RTN","EDPCTRL",53,0)
|
|
; getLexiconMatches
|
|
"RTN","EDPCTRL",54,0)
|
|
; return <items><item />...</items>
|
|
"RTN","EDPCTRL",55,0)
|
|
I CMD="getLexiconMatches" D G OUT
|
|
"RTN","EDPCTRL",56,0)
|
|
. D ICD^EDPFLEX($$VAL("text"))
|
|
"RTN","EDPCTRL",57,0)
|
|
;
|
|
"RTN","EDPCTRL",58,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",59,0)
|
|
;
|
|
"RTN","EDPCTRL",60,0)
|
|
; initLogArea
|
|
"RTN","EDPCTRL",61,0)
|
|
; return <udp />
|
|
"RTN","EDPCTRL",62,0)
|
|
; <params disposition="" diagnosis="" delay="" delayMinutes="" />
|
|
"RTN","EDPCTRL",63,0)
|
|
; <logEntries><log />...</logEntries>
|
|
"RTN","EDPCTRL",64,0)
|
|
I CMD="initLogArea" D G OUT
|
|
"RTN","EDPCTRL",65,0)
|
|
. I $L($$VAL("logEntry")) D UPD^EDPLOG($$VAL("logEntry")) Q:$G(EDPFAIL)
|
|
"RTN","EDPCTRL",66,0)
|
|
. D PARAM^EDPQAR($$VAL("area"))
|
|
"RTN","EDPCTRL",67,0)
|
|
. D GET^EDPQLP($$VAL("area"),-1) ;-1 = force refresh
|
|
"RTN","EDPCTRL",68,0)
|
|
;
|
|
"RTN","EDPCTRL",69,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",70,0)
|
|
;
|
|
"RTN","EDPCTRL",71,0)
|
|
; checkLogin -- OBSOLETE
|
|
"RTN","EDPCTRL",72,0)
|
|
; return <user />
|
|
"RTN","EDPCTRL",73,0)
|
|
I CMD="checkLogin" D SESS^EDPFAA G OUT
|
|
"RTN","EDPCTRL",74,0)
|
|
;
|
|
"RTN","EDPCTRL",75,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",76,0)
|
|
;
|
|
"RTN","EDPCTRL",77,0)
|
|
; refreshLogSelector
|
|
"RTN","EDPCTRL",78,0)
|
|
; return <logEntries><log />...</logEntries>
|
|
"RTN","EDPCTRL",79,0)
|
|
I CMD="refreshLogSelector" D G OUT
|
|
"RTN","EDPCTRL",80,0)
|
|
. D GET^EDPQLP($$VAL("area"),$$VAL("token"))
|
|
"RTN","EDPCTRL",81,0)
|
|
;
|
|
"RTN","EDPCTRL",82,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",83,0)
|
|
;
|
|
"RTN","EDPCTRL",84,0)
|
|
; switchLogEntry
|
|
"RTN","EDPCTRL",85,0)
|
|
; return <udp />
|
|
"RTN","EDPCTRL",86,0)
|
|
; <logEntry>log fields...</logEntry>
|
|
"RTN","EDPCTRL",87,0)
|
|
; <choices>choice lists...</choices>
|
|
"RTN","EDPCTRL",88,0)
|
|
I CMD="switchLogEntry" D G OUT
|
|
"RTN","EDPCTRL",89,0)
|
|
. I $L($$VAL("logEntry")) D UPD^EDPLOG($$VAL("logEntry")) Q:$G(EDPFAIL)
|
|
"RTN","EDPCTRL",90,0)
|
|
. D GET^EDPQLE($$VAL("logID"),$$VAL("choiceTS"))
|
|
"RTN","EDPCTRL",91,0)
|
|
;
|
|
"RTN","EDPCTRL",92,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",93,0)
|
|
;
|
|
"RTN","EDPCTRL",94,0)
|
|
; saveLogEntry
|
|
"RTN","EDPCTRL",95,0)
|
|
; return <upd />
|
|
"RTN","EDPCTRL",96,0)
|
|
I CMD="saveLogEntry" D G OUT
|
|
"RTN","EDPCTRL",97,0)
|
|
. D UPD^EDPLOG($$VAL("logEntry")) Q:$G(EDPFAIL)
|
|
"RTN","EDPCTRL",98,0)
|
|
;
|
|
"RTN","EDPCTRL",99,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",100,0)
|
|
;
|
|
"RTN","EDPCTRL",101,0)
|
|
; addPatientToLog
|
|
"RTN","EDPCTRL",102,0)
|
|
; return <upd />
|
|
"RTN","EDPCTRL",103,0)
|
|
; <add />
|
|
"RTN","EDPCTRL",104,0)
|
|
; <logEntry>log fields...</logEntry>
|
|
"RTN","EDPCTRL",105,0)
|
|
; <choices>choice lists...</choices>
|
|
"RTN","EDPCTRL",106,0)
|
|
; <logEntries><log />...</logEntries>
|
|
"RTN","EDPCTRL",107,0)
|
|
I CMD="addPatientToLog" D G OUT
|
|
"RTN","EDPCTRL",108,0)
|
|
. D ADD^EDPLOGA($$VAL("addPatient"),$$VAL("area"),$$VAL("localTime"),$$VAL("choiceTS"))
|
|
"RTN","EDPCTRL",109,0)
|
|
. Q:$G(EDPFAIL)
|
|
"RTN","EDPCTRL",110,0)
|
|
. D GET^EDPQLP($$VAL("area"),-1)
|
|
"RTN","EDPCTRL",111,0)
|
|
;
|
|
"RTN","EDPCTRL",112,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",113,0)
|
|
;
|
|
"RTN","EDPCTRL",114,0)
|
|
; deleteStubEntry
|
|
"RTN","EDPCTRL",115,0)
|
|
; return <upd />
|
|
"RTN","EDPCTRL",116,0)
|
|
I CMD="deleteStubEntry" D G OUT
|
|
"RTN","EDPCTRL",117,0)
|
|
. D DEL^EDPLOGA($$VAL("area"),$$VAL("logID"))
|
|
"RTN","EDPCTRL",118,0)
|
|
;
|
|
"RTN","EDPCTRL",119,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",120,0)
|
|
;
|
|
"RTN","EDPCTRL",121,0)
|
|
; removeLogEntry
|
|
"RTN","EDPCTRL",122,0)
|
|
; return <upd />
|
|
"RTN","EDPCTRL",123,0)
|
|
; <logEntries><log />...</logEntries>
|
|
"RTN","EDPCTRL",124,0)
|
|
I CMD="removeLogEntry" D G OUT
|
|
"RTN","EDPCTRL",125,0)
|
|
. D UPD^EDPLOG($$VAL("logEntry"),1) Q:$G(EDPFAIL)
|
|
"RTN","EDPCTRL",126,0)
|
|
. D GET^EDPQLP($$VAL("area"),-1)
|
|
"RTN","EDPCTRL",127,0)
|
|
;
|
|
"RTN","EDPCTRL",128,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",129,0)
|
|
;
|
|
"RTN","EDPCTRL",130,0)
|
|
; matchClosed
|
|
"RTN","EDPCTRL",131,0)
|
|
; return <visit />...
|
|
"RTN","EDPCTRL",132,0)
|
|
I CMD="matchClosed" D G OUT
|
|
"RTN","EDPCTRL",133,0)
|
|
. D CLOSED^EDPQLP($$VAL("area"),$$VAL("partial"))
|
|
"RTN","EDPCTRL",134,0)
|
|
;
|
|
"RTN","EDPCTRL",135,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",136,0)
|
|
;
|
|
"RTN","EDPCTRL",137,0)
|
|
; loadConfiguration
|
|
"RTN","EDPCTRL",138,0)
|
|
; return <color><map />...</color>...
|
|
"RTN","EDPCTRL",139,0)
|
|
; <columnList><col />...</columnList>
|
|
"RTN","EDPCTRL",140,0)
|
|
; <colorMapList><colorMap><map />...</colorMapList>
|
|
"RTN","EDPCTRL",141,0)
|
|
; <beds><bed />...</beds>
|
|
"RTN","EDPCTRL",142,0)
|
|
; <params />
|
|
"RTN","EDPCTRL",143,0)
|
|
; <defaultRoomList><item />...</defaultRoomList>
|
|
"RTN","EDPCTRL",144,0)
|
|
; <displayWhen><when />...</displayWhen>
|
|
"RTN","EDPCTRL",145,0)
|
|
; <statusList><status />...</statusList>
|
|
"RTN","EDPCTRL",146,0)
|
|
I CMD="loadConfiguration" D G OUT
|
|
"RTN","EDPCTRL",147,0)
|
|
. D LOAD^EDPBCF($$VAL("area"))
|
|
"RTN","EDPCTRL",148,0)
|
|
;
|
|
"RTN","EDPCTRL",149,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",150,0)
|
|
;
|
|
"RTN","EDPCTRL",151,0)
|
|
; loadBoardConfig
|
|
"RTN","EDPCTRL",152,0)
|
|
; return <spec><row /><col />...</spec>
|
|
"RTN","EDPCTRL",153,0)
|
|
I CMD="loadBoardConfig" D G OUT
|
|
"RTN","EDPCTRL",154,0)
|
|
. D LOADBRD^EDPBCF($$VAL("area"),$$VAL("boardID"))
|
|
"RTN","EDPCTRL",155,0)
|
|
;
|
|
"RTN","EDPCTRL",156,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",157,0)
|
|
;
|
|
"RTN","EDPCTRL",158,0)
|
|
; saveConfigBoard
|
|
"RTN","EDPCTRL",159,0)
|
|
; return <save />
|
|
"RTN","EDPCTRL",160,0)
|
|
I CMD="saveConfigBoard" D G OUT
|
|
"RTN","EDPCTRL",161,0)
|
|
. D SAVEBRD^EDPBCF(.REQ) ; pass whole request for parsing
|
|
"RTN","EDPCTRL",162,0)
|
|
;
|
|
"RTN","EDPCTRL",163,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",164,0)
|
|
;
|
|
"RTN","EDPCTRL",165,0)
|
|
; saveBedConfig
|
|
"RTN","EDPCTRL",166,0)
|
|
; return <save />
|
|
"RTN","EDPCTRL",167,0)
|
|
I CMD="saveBedConfig" D G OUT
|
|
"RTN","EDPCTRL",168,0)
|
|
. D SAVE^EDPBRM(.REQ,$$VAL("area")) ; pass whole request for parsing
|
|
"RTN","EDPCTRL",169,0)
|
|
;
|
|
"RTN","EDPCTRL",170,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",171,0)
|
|
;
|
|
"RTN","EDPCTRL",172,0)
|
|
; saveColorConfig
|
|
"RTN","EDPCTRL",173,0)
|
|
; return <save />
|
|
"RTN","EDPCTRL",174,0)
|
|
I CMD="saveColorConfig" D G OUT
|
|
"RTN","EDPCTRL",175,0)
|
|
. D SAVE^EDPBCM(.REQ) ; pass whole request for parsing
|
|
"RTN","EDPCTRL",176,0)
|
|
;
|
|
"RTN","EDPCTRL",177,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",178,0)
|
|
;
|
|
"RTN","EDPCTRL",179,0)
|
|
; loadSelectionConfig
|
|
"RTN","EDPCTRL",180,0)
|
|
; return <selectionName><code />....</selectionName>...
|
|
"RTN","EDPCTRL",181,0)
|
|
I CMD="loadSelectionConfig" D G OUT
|
|
"RTN","EDPCTRL",182,0)
|
|
. D LOAD^EDPBSL($$VAL("area"))
|
|
"RTN","EDPCTRL",183,0)
|
|
;
|
|
"RTN","EDPCTRL",184,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",185,0)
|
|
;
|
|
"RTN","EDPCTRL",186,0)
|
|
; loadStaffConfig
|
|
"RTN","EDPCTRL",187,0)
|
|
; return providers, nurses, staff for area
|
|
"RTN","EDPCTRL",188,0)
|
|
I CMD="loadStaffConfig" D G OUT
|
|
"RTN","EDPCTRL",189,0)
|
|
. D LOAD^EDPBST($$VAL("area"))
|
|
"RTN","EDPCTRL",190,0)
|
|
;
|
|
"RTN","EDPCTRL",191,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",192,0)
|
|
;
|
|
"RTN","EDPCTRL",193,0)
|
|
; saveStaffConfig
|
|
"RTN","EDPCTRL",194,0)
|
|
; return <save />
|
|
"RTN","EDPCTRL",195,0)
|
|
I CMD="saveStaffConfig" D G OUT
|
|
"RTN","EDPCTRL",196,0)
|
|
. D SAVE^EDPBST(.REQ) ; pass whole request for parsing
|
|
"RTN","EDPCTRL",197,0)
|
|
;
|
|
"RTN","EDPCTRL",198,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",199,0)
|
|
;
|
|
"RTN","EDPCTRL",200,0)
|
|
; matchPersons
|
|
"RTN","EDPCTRL",201,0)
|
|
; return <per />...<per />
|
|
"RTN","EDPCTRL",202,0)
|
|
I CMD="matchPersons" D G OUT
|
|
"RTN","EDPCTRL",203,0)
|
|
. D MATCH^EDPFPER($$VAL("partial"),$$VAL("personType"))
|
|
"RTN","EDPCTRL",204,0)
|
|
;
|
|
"RTN","EDPCTRL",205,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",206,0)
|
|
;
|
|
"RTN","EDPCTRL",207,0)
|
|
; saveParamConfig
|
|
"RTN","EDPCTRL",208,0)
|
|
; return <save />
|
|
"RTN","EDPCTRL",209,0)
|
|
I CMD="saveParamConfig" D G OUT
|
|
"RTN","EDPCTRL",210,0)
|
|
. D SAVE^EDPBPM($$VAL("area"),$$VAL("param"))
|
|
"RTN","EDPCTRL",211,0)
|
|
;
|
|
"RTN","EDPCTRL",212,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",213,0)
|
|
;
|
|
"RTN","EDPCTRL",214,0)
|
|
; saveSelectionConfig
|
|
"RTN","EDPCTRL",215,0)
|
|
; return <save />
|
|
"RTN","EDPCTRL",216,0)
|
|
I CMD="saveSelectionConfig" D G OUT
|
|
"RTN","EDPCTRL",217,0)
|
|
. D SAVE^EDPBSL($$VAL("area"),.REQ)
|
|
"RTN","EDPCTRL",218,0)
|
|
;
|
|
"RTN","EDPCTRL",219,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",220,0)
|
|
;
|
|
"RTN","EDPCTRL",221,0)
|
|
; getReport
|
|
"RTN","EDPCTRL",222,0)
|
|
; return <logEntries><log />...</logEntries>
|
|
"RTN","EDPCTRL",223,0)
|
|
; <averages><all /><not /><adm /></averages>
|
|
"RTN","EDPCTRL",224,0)
|
|
; <providers><md />...</providers>
|
|
"RTN","EDPCTRL",225,0)
|
|
I CMD="getReport" D G OUT
|
|
"RTN","EDPCTRL",226,0)
|
|
. D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"))
|
|
"RTN","EDPCTRL",227,0)
|
|
;
|
|
"RTN","EDPCTRL",228,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",229,0)
|
|
;
|
|
"RTN","EDPCTRL",230,0)
|
|
; getCSV
|
|
"RTN","EDPCTRL",231,0)
|
|
; return TAB separated values for report
|
|
"RTN","EDPCTRL",232,0)
|
|
I CMD="getCSV" D G OUT
|
|
"RTN","EDPCTRL",233,0)
|
|
. N EDPCSV ; CSV mode uses EDPCSV instead of EDPXML
|
|
"RTN","EDPCTRL",234,0)
|
|
. D EN^EDPRPT($$VAL("start"),$$VAL("stop"),$$VAL("report"),$$VAL("id"),1)
|
|
"RTN","EDPCTRL",235,0)
|
|
. M EDPXML=EDPCSV
|
|
"RTN","EDPCTRL",236,0)
|
|
;
|
|
"RTN","EDPCTRL",237,0)
|
|
; ---------------------------------
|
|
"RTN","EDPCTRL",238,0)
|
|
; else
|
|
"RTN","EDPCTRL",239,0)
|
|
D XML^EDPX("<error msg='"_$$MSG^EDPX(2300010)_CMD_"' />")
|
|
"RTN","EDPCTRL",240,0)
|
|
; end switch
|
|
"RTN","EDPCTRL",241,0)
|
|
;
|
|
"RTN","EDPCTRL",242,0)
|
|
OUT ; output the XML
|
|
"RTN","EDPCTRL",243,0)
|
|
I EDPDBUG D PUTXML^EDPCDBG(EDPDBUG,.EDPXML)
|
|
"RTN","EDPCTRL",244,0)
|
|
I $L($G(EDPHTTP)) D ; if in CSP mode
|
|
"RTN","EDPCTRL",245,0)
|
|
. U EDPHTTP
|
|
"RTN","EDPCTRL",246,0)
|
|
. W "<results>",!
|
|
"RTN","EDPCTRL",247,0)
|
|
. N I S I=0 F S I=$O(EDPXML(I)) Q:'I W EDPXML(I),!
|
|
"RTN","EDPCTRL",248,0)
|
|
. W "</results>",!
|
|
"RTN","EDPCTRL",249,0)
|
|
END Q
|
|
"RTN","EDPCTRL",250,0)
|
|
;
|
|
"RTN","EDPCTRL",251,0)
|
|
VAL(X) ; return value from request
|
|
"RTN","EDPCTRL",252,0)
|
|
Q $G(REQ(X,1))
|
|
"RTN","EDPDD")
|
|
0^35^B1560959
|
|
"RTN","EDPDD",1,0)
|
|
EDPDD ;SLC/KCM - Test Update ED Log - Update
|
|
"RTN","EDPDD",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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","EDPDD",6,0)
|
|
;
|
|
"RTN","EDPDD",7,0)
|
|
LFS ; Local form set logic from code field
|
|
"RTN","EDPDD",8,0)
|
|
N LST,X0,NM,ABB
|
|
"RTN","EDPDD",9,0)
|
|
S LST=$P(^EDPB(233.2,DA(1),0),U)
|
|
"RTN","EDPDD",10,0)
|
|
S X0=$G(^EDPB(233.2,DA(1),1,DA,0))
|
|
"RTN","EDPDD",11,0)
|
|
S NM=$P(X0,U,4),ABB=$P(X0,U,5)
|
|
"RTN","EDPDD",12,0)
|
|
Q:LST="" Q:X=""
|
|
"RTN","EDPDD",13,0)
|
|
S ^EDPB(233.2,"AS",LST,X,DA)=ABB_U_NM
|
|
"RTN","EDPDD",14,0)
|
|
Q
|
|
"RTN","EDPDD",15,0)
|
|
LFK ; Local form kill logic from code field
|
|
"RTN","EDPDD",16,0)
|
|
N LST
|
|
"RTN","EDPDD",17,0)
|
|
S LST=$P(^EDPB(233.2,DA(1),0),U)
|
|
"RTN","EDPDD",18,0)
|
|
S CODE=$P(^EDPB(233.2,DA(1),1,DA,0),U,2)
|
|
"RTN","EDPDD",19,0)
|
|
Q:LST="" Q:X=""
|
|
"RTN","EDPDD",20,0)
|
|
K ^EDPB(233.2,"AS",LST,X,DA)
|
|
"RTN","EDPDD",21,0)
|
|
Q
|
|
"RTN","EDPDD",22,0)
|
|
LFS1 ; Local form set logic from name, abbreviation
|
|
"RTN","EDPDD",23,0)
|
|
N X0,LST,CODE,NM,ABB
|
|
"RTN","EDPDD",24,0)
|
|
S LST=$P(^EDPB(233.2,DA(1),0),U)
|
|
"RTN","EDPDD",25,0)
|
|
S X0=$G(^EDPB(233.2,DA(1),1,DA,0))
|
|
"RTN","EDPDD",26,0)
|
|
S CODE=$P(X0,U,2),NM=$P(X0,U,4),ABB=$P(X0,U,5)
|
|
"RTN","EDPDD",27,0)
|
|
Q:LST="" Q:CODE=""
|
|
"RTN","EDPDD",28,0)
|
|
S ^EDPB(233.2,"AS",LST,CODE,DA)=ABB_U_NM
|
|
"RTN","EDPDD",29,0)
|
|
Q
|
|
"RTN","EDPDD",30,0)
|
|
LFK1 ; Local form kill logic name, abbreviation
|
|
"RTN","EDPDD",31,0)
|
|
N LST,CODE
|
|
"RTN","EDPDD",32,0)
|
|
S LST=$P(^EDPB(233.2,DA(1),0),U)
|
|
"RTN","EDPDD",33,0)
|
|
S CODE=$P($G(^EDPB(233.2,DA(1),1,DA,0)),U,2)
|
|
"RTN","EDPDD",34,0)
|
|
Q:LST="" Q:CODE=""
|
|
"RTN","EDPDD",35,0)
|
|
K ^EDPB(233.2,"AS",LST,CODE,DA)
|
|
"RTN","EDPDD",36,0)
|
|
Q
|
|
"RTN","EDPFAA")
|
|
0^1^B5372812
|
|
"RTN","EDPFAA",1,0)
|
|
EDPFAA ;SLC/KCM - RPC Calls to Facility
|
|
"RTN","EDPFAA",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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)
|
|
S X("version")=$$VERSRV^EDPQAR
|
|
"RTN","EDPFAA",17,0)
|
|
;
|
|
"RTN","EDPFAA",18,0)
|
|
; This code to enable VEHU training.
|
|
"RTN","EDPFAA",19,0)
|
|
;N AREA
|
|
"RTN","EDPFAA",20,0)
|
|
;S AREA=$$GET^XPAR(DUZ_";VA(200,","EDPF USER AREA",1,"Q")
|
|
"RTN","EDPFAA",21,0)
|
|
;I AREA S X("area")=AREA,X("areaNm")=$P($G(^EDPB(231.9,AREA,0)),U)
|
|
"RTN","EDPFAA",22,0)
|
|
;
|
|
"RTN","EDPFAA",23,0)
|
|
S X("timeOut")=$$GET^XPAR("USR^DIV^SYS","ORWOR TIMEOUT CHART",1,"I")
|
|
"RTN","EDPFAA",24,0)
|
|
S:'X("timeOut") X("timeOut")=$$DTIME^XUP(DUZ)
|
|
"RTN","EDPFAA",25,0)
|
|
S:'X("timeOut") X("timeOut")=300
|
|
"RTN","EDPFAA",26,0)
|
|
S X("timeOut")=X("timeOut")*1000 ; milliseconds
|
|
"RTN","EDPFAA",27,0)
|
|
S X("countDown")=$$GET^XPAR("USR^SYS^PKG","ORWOR TIMEOUT COUNTDOWN",1,"I")
|
|
"RTN","EDPFAA",28,0)
|
|
S:'X("countDown") X("countDown")=10
|
|
"RTN","EDPFAA",29,0)
|
|
S X("countDown")=X("countDown")*1000 ; milliseconds
|
|
"RTN","EDPFAA",30,0)
|
|
D XML^EDPX($$XMLA^EDPX("user",.X))
|
|
"RTN","EDPFAA",31,0)
|
|
Q
|
|
"RTN","EDPFAA",32,0)
|
|
;
|
|
"RTN","EDPFAA",33,0)
|
|
VIEWS ; Return views allowed for this user
|
|
"RTN","EDPFAA",34,0)
|
|
N I,X,ID
|
|
"RTN","EDPFAA",35,0)
|
|
F I=1:1 S X=$P($T(OPTIONS+I),";",3,99) Q:X="zzzzz" D
|
|
"RTN","EDPFAA",36,0)
|
|
. I $$ACCESS^XQCHK(DUZ,$$LKOPT^XPDMENU($P(X,U)))>0 D
|
|
"RTN","EDPFAA",37,0)
|
|
. . D XML^EDPX($$XMLS^EDPX("view",$P(X,U,3),$P(X,U,2)))
|
|
"RTN","EDPFAA",38,0)
|
|
Q
|
|
"RTN","EDPFAA",39,0)
|
|
OPTIONS ;; options visible in Tracking System
|
|
"RTN","EDPFAA",40,0)
|
|
;;EDPF TRACKING VIEW SIGNIN^Sign In^1
|
|
"RTN","EDPFAA",41,0)
|
|
;;EDPF TRACKING VIEW TRIAGE^Triage^2
|
|
"RTN","EDPFAA",42,0)
|
|
;;EDPF TRACKING VIEW UPDATE^Update^3
|
|
"RTN","EDPFAA",43,0)
|
|
;;EDPF TRACKING VIEW DISPOSITION^Disposition^4
|
|
"RTN","EDPFAA",44,0)
|
|
;;EDPF TRACKING VIEW EDIT CLOSED^Edit Closed^5
|
|
"RTN","EDPFAA",45,0)
|
|
;;EDPF TRACKING VIEW BOARD^Display Board^6
|
|
"RTN","EDPFAA",46,0)
|
|
;;EDPF TRACKING VIEW STAFF^Assign Staff^7
|
|
"RTN","EDPFAA",47,0)
|
|
;;EDPF TRACKING VIEW REPORTS^Reports^8
|
|
"RTN","EDPFAA",48,0)
|
|
;;EDPF TRACKING VIEW CONFIGURE^Configure^9
|
|
"RTN","EDPFAA",49,0)
|
|
;;zzzzz
|
|
"RTN","EDPFLEX")
|
|
0^2^B1745474
|
|
"RTN","EDPFLEX",1,0)
|
|
EDPFLEX ;SLC/KCM - Lexicon Utilities
|
|
"RTN","EDPFLEX",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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("<items>")
|
|
"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("</items>")
|
|
"RTN","EDPFLEX",24,0)
|
|
Q
|
|
"RTN","EDPFMON")
|
|
0^3^B27211876
|
|
"RTN","EDPFMON",1,0)
|
|
EDPFMON ;SLC/MKB - ED Monitor at facility
|
|
"RTN","EDPFMON",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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^XR"[ORDCNTRL:"NEW",1:"UPD")
|
|
"RTN","EDPFMON",18,0)
|
|
. D @RTN
|
|
"RTN","EDPFMON",19,0)
|
|
Q
|
|
"RTN","EDPFMON",20,0)
|
|
;
|
|
"RTN","EDPFMON",21,0)
|
|
ENOR(MSG) ; -- main entry point for EDP OR MONITOR where MSG contains HL7 msg
|
|
"RTN","EDPFMON",22,0)
|
|
N EDMSG,PKG,MSH,PID,PV1,ORC,DFN,LOG
|
|
"RTN","EDPFMON",23,0)
|
|
S EDMSG=$S($L($G(MSG)):MSG,1:"MSG"),MSH=0 ;MSG="NAME" or MSG(#)
|
|
"RTN","EDPFMON",24,0)
|
|
F S MSH=$O(@EDMSG@(MSH)) Q:MSH'>0 Q:$E(@EDMSG@(MSH),1,3)="MSH"
|
|
"RTN","EDPFMON",25,0)
|
|
Q:'MSH ;no message/header
|
|
"RTN","EDPFMON",26,0)
|
|
S PKG=$$PKG($P(@EDMSG@(MSH),"|",5)) Q:'$L(PKG) ;unknown or not tracked
|
|
"RTN","EDPFMON",27,0)
|
|
S DFN=$$PID Q:DFN<1 ;missing patient
|
|
"RTN","EDPFMON",28,0)
|
|
S LOG=+$O(^EDP(230,"APA",DFN,0)) Q:LOG<1 ;not in ED now
|
|
"RTN","EDPFMON",29,0)
|
|
S ORC=0 F S ORC=$O(@EDMSG@(+ORC)) Q:ORC'>0 I $E(@EDMSG@(ORC),1,3)="ORC" D
|
|
"RTN","EDPFMON",30,0)
|
|
. N ORDCNTRL,ORIFN
|
|
"RTN","EDPFMON",31,0)
|
|
. S ORC=ORC_U_@EDMSG@(ORC),ORDCNTRL=$TR($P(ORC,"|",2),"@","P")
|
|
"RTN","EDPFMON",32,0)
|
|
. Q:ORDCNTRL'="NA" ;new backdoor ack
|
|
"RTN","EDPFMON",33,0)
|
|
. S ORIFN=$P($P(ORC,"|",3),U)
|
|
"RTN","EDPFMON",34,0)
|
|
. D NEW
|
|
"RTN","EDPFMON",35,0)
|
|
Q
|
|
"RTN","EDPFMON",36,0)
|
|
;
|
|
"RTN","EDPFMON",37,0)
|
|
PKG(NAME) ; -- Returns package code
|
|
"RTN","EDPFMON",38,0)
|
|
I NAME="RADIOLOGY"!(NAME="IMAGING") Q "R"
|
|
"RTN","EDPFMON",39,0)
|
|
I NAME="LABORATORY" Q "L"
|
|
"RTN","EDPFMON",40,0)
|
|
I NAME="PHARMACY" Q "M"
|
|
"RTN","EDPFMON",41,0)
|
|
I NAME="CONSULTS" Q "C"
|
|
"RTN","EDPFMON",42,0)
|
|
I NAME="PROCEDURES" Q "C"
|
|
"RTN","EDPFMON",43,0)
|
|
I NAME="DIETETICS" Q "A"
|
|
"RTN","EDPFMON",44,0)
|
|
I NAME="ORDER ENTRY" Q "A"
|
|
"RTN","EDPFMON",45,0)
|
|
Q ""
|
|
"RTN","EDPFMON",46,0)
|
|
;
|
|
"RTN","EDPFMON",47,0)
|
|
PID() ; -- Returns patient DFN from PID segment in current msg
|
|
"RTN","EDPFMON",48,0)
|
|
N I,Y,SEG S I=MSH,Y=""
|
|
"RTN","EDPFMON",49,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",50,0)
|
|
Q Y
|
|
"RTN","EDPFMON",51,0)
|
|
;
|
|
"RTN","EDPFMON",52,0)
|
|
PV1() ; -- Returns patient location from PV1 segment in current msg
|
|
"RTN","EDPFMON",53,0)
|
|
N I,Y,SEG S I=MSH,Y=""
|
|
"RTN","EDPFMON",54,0)
|
|
F S I=$O(@EDMSG@(I)) Q:I'>0 S SEG=$E(@EDMSG@(I),1,3) Q:SEG="ORC" I SEG="PV1" S Y=+$P(@EDMSG@(I),"|",4) Q
|
|
"RTN","EDPFMON",55,0)
|
|
Q Y
|
|
"RTN","EDPFMON",56,0)
|
|
;
|
|
"RTN","EDPFMON",57,0)
|
|
NEW ; -- add new order to patient log
|
|
"RTN","EDPFMON",58,0)
|
|
Q:'$G(ORIFN) Q:$$START(ORIFN)>DT ;no future orders
|
|
"RTN","EDPFMON",59,0)
|
|
N MSG,URG,ORL
|
|
"RTN","EDPFMON",60,0)
|
|
S ORL=+$$GET1^DIQ(100,+ORIFN_",",6,"I")
|
|
"RTN","EDPFMON",61,0)
|
|
I ORL,'$$ED(ORL) Q ;not ED location
|
|
"RTN","EDPFMON",62,0)
|
|
S URG=$$VALUE^ORCSAVE2(+ORIFN,"URGENCY") S:'URG URG=9 ;routine
|
|
"RTN","EDPFMON",63,0)
|
|
S MSG(1)="command=newOrder"
|
|
"RTN","EDPFMON",64,0)
|
|
S MSG(2)="id="_LOG
|
|
"RTN","EDPFMON",65,0)
|
|
S MSG(3)="orifn="_+ORIFN
|
|
"RTN","EDPFMON",66,0)
|
|
S MSG(4)="pkg="_PKG
|
|
"RTN","EDPFMON",67,0)
|
|
S MSG(5)="sts="_"N"
|
|
"RTN","EDPFMON",68,0)
|
|
S MSG(6)="stat="_(URG<3) ;1=STAT or 2=ASAP
|
|
"RTN","EDPFMON",69,0)
|
|
S MSG(7)="release="_$$NOW^XLFDT
|
|
"RTN","EDPFMON",70,0)
|
|
D SEND(.MSG)
|
|
"RTN","EDPFMON",71,0)
|
|
Q
|
|
"RTN","EDPFMON",72,0)
|
|
;
|
|
"RTN","EDPFMON",73,0)
|
|
ED(LOC) ; -- Return 1 or 0 if LOCation is part of ED
|
|
"RTN","EDPFMON",74,0)
|
|
N EDLOC,I,Y
|
|
"RTN","EDPFMON",75,0)
|
|
D GETLST^XPAR(.EDLOC,"ALL","EDPF LOCATION")
|
|
"RTN","EDPFMON",76,0)
|
|
S (I,Y)=0 F S I=$O(EDLOC(I)) Q:I<1 I $P(EDLOC(I),U,2)=LOC S Y=1 Q
|
|
"RTN","EDPFMON",77,0)
|
|
Q Y
|
|
"RTN","EDPFMON",78,0)
|
|
;
|
|
"RTN","EDPFMON",79,0)
|
|
START(IFN) ; -- return start date (day only) of order
|
|
"RTN","EDPFMON",80,0)
|
|
N X,Y,%DT
|
|
"RTN","EDPFMON",81,0)
|
|
S Y=+$$GET1^DIQ(100,+$G(IFN)_",",21,"I") I Y<1 D
|
|
"RTN","EDPFMON",82,0)
|
|
. S X=$$VALUE^ORCSAVE2(+IFN,"START")
|
|
"RTN","EDPFMON",83,0)
|
|
. I '$L(X) S Y=DT Q ;assume NOW
|
|
"RTN","EDPFMON",84,0)
|
|
. S %DT="T" D ^%DT S:Y<1 Y=""
|
|
"RTN","EDPFMON",85,0)
|
|
S Y=$P(Y,".")
|
|
"RTN","EDPFMON",86,0)
|
|
Q Y
|
|
"RTN","EDPFMON",87,0)
|
|
;
|
|
"RTN","EDPFMON",88,0)
|
|
UPD ; -- update state of order in log
|
|
"RTN","EDPFMON",89,0)
|
|
I ORDCNTRL="RE" D STS("C") Q
|
|
"RTN","EDPFMON",90,0)
|
|
I "CA^DC^OC^OD^CR^DR"[ORDCNTRL D DEL Q ;??
|
|
"RTN","EDPFMON",91,0)
|
|
I PKG="L",ORDCNTRL="SC" D STS("A") Q
|
|
"RTN","EDPFMON",92,0)
|
|
I PKG="R",ORDCNTRL="SC" D STS("A") Q
|
|
"RTN","EDPFMON",93,0)
|
|
I PKG="C","SC^XX"[ORDCNTRL D STS("A") Q
|
|
"RTN","EDPFMON",94,0)
|
|
I PKG="M" D Q
|
|
"RTN","EDPFMON",95,0)
|
|
. I "RO^XX^ZV"[ORDCNTRL D STS("A") Q
|
|
"RTN","EDPFMON",96,0)
|
|
. Q:ORDCNTRL'="SC" Q:'$L(STS)
|
|
"RTN","EDPFMON",97,0)
|
|
. I "DC^ZE^RP"[STS D STS("C") Q
|
|
"RTN","EDPFMON",98,0)
|
|
. D STS("A")
|
|
"RTN","EDPFMON",99,0)
|
|
I PKG="A","SC^XX"[ORDCNTRL D Q
|
|
"RTN","EDPFMON",100,0)
|
|
. I "DC^ZE"[STS D STS("C") Q
|
|
"RTN","EDPFMON",101,0)
|
|
. D STS("A")
|
|
"RTN","EDPFMON",102,0)
|
|
Q
|
|
"RTN","EDPFMON",103,0)
|
|
;
|
|
"RTN","EDPFMON",104,0)
|
|
STS(X) ; -- update status
|
|
"RTN","EDPFMON",105,0)
|
|
N MSG
|
|
"RTN","EDPFMON",106,0)
|
|
S MSG(1)="command=updateOrder"
|
|
"RTN","EDPFMON",107,0)
|
|
S MSG(2)="id="_LOG
|
|
"RTN","EDPFMON",108,0)
|
|
S MSG(3)="orifn="_+ORIFN
|
|
"RTN","EDPFMON",109,0)
|
|
S MSG(4)="sts="_X
|
|
"RTN","EDPFMON",110,0)
|
|
D SEND(.MSG)
|
|
"RTN","EDPFMON",111,0)
|
|
Q
|
|
"RTN","EDPFMON",112,0)
|
|
;
|
|
"RTN","EDPFMON",113,0)
|
|
DEL ; -- remove order
|
|
"RTN","EDPFMON",114,0)
|
|
N MSG
|
|
"RTN","EDPFMON",115,0)
|
|
S MSG(1)="command=deleteOrder"
|
|
"RTN","EDPFMON",116,0)
|
|
S MSG(2)="id="_LOG
|
|
"RTN","EDPFMON",117,0)
|
|
S MSG(3)="orifn="_+ORIFN
|
|
"RTN","EDPFMON",118,0)
|
|
D SEND(.MSG)
|
|
"RTN","EDPFMON",119,0)
|
|
Q
|
|
"RTN","EDPFMON",120,0)
|
|
;
|
|
"RTN","EDPFMON",121,0)
|
|
VER(ORIFN) ; -- update status when ORIFN verified
|
|
"RTN","EDPFMON",122,0)
|
|
N LOG,MSG S ORIFN=+$G(ORIFN)
|
|
"RTN","EDPFMON",123,0)
|
|
S LOG=+$O(^EDP(230,"AO",ORIFN,0)) Q:LOG<1 ;not in ED
|
|
"RTN","EDPFMON",124,0)
|
|
S MSG(1)="command=verifyOrder"
|
|
"RTN","EDPFMON",125,0)
|
|
S MSG(2)="id="_LOG
|
|
"RTN","EDPFMON",126,0)
|
|
S MSG(3)="orifn="_ORIFN
|
|
"RTN","EDPFMON",127,0)
|
|
D SEND(.MSG)
|
|
"RTN","EDPFMON",128,0)
|
|
Q
|
|
"RTN","EDPFMON",129,0)
|
|
;
|
|
"RTN","EDPFMON",130,0)
|
|
COMP(ORIFN) ; -- update status when ORIFN completed
|
|
"RTN","EDPFMON",131,0)
|
|
N LOG,MSG S ORIFN=+$G(ORIFN)
|
|
"RTN","EDPFMON",132,0)
|
|
S LOG=+$O(^EDP(230,"AO",ORIFN,0)) Q:LOG<1 ;not in ED
|
|
"RTN","EDPFMON",133,0)
|
|
S MSG(1)="command=completeOrder"
|
|
"RTN","EDPFMON",134,0)
|
|
S MSG(2)="id="_LOG
|
|
"RTN","EDPFMON",135,0)
|
|
S MSG(3)="orifn="_ORIFN
|
|
"RTN","EDPFMON",136,0)
|
|
D SEND(.MSG)
|
|
"RTN","EDPFMON",137,0)
|
|
Q
|
|
"RTN","EDPFMON",138,0)
|
|
;
|
|
"RTN","EDPFMON",139,0)
|
|
; -- Monitor SDAM APPOINTMENT EVENTS for patients checking-in to ED
|
|
"RTN","EDPFMON",140,0)
|
|
;
|
|
"RTN","EDPFMON",141,0)
|
|
SDAM ; -- send bulletin on check-in
|
|
"RTN","EDPFMON",142,0)
|
|
N EDPEVENT
|
|
"RTN","EDPFMON",143,0)
|
|
S EDPEVENT=$$GET^XPAR("ALL","EDPF SCHEDULING TRIGGER",1,"Q")
|
|
"RTN","EDPFMON",144,0)
|
|
Q:EDPEVENT="D" ; adding via scheduling disabled
|
|
"RTN","EDPFMON",145,0)
|
|
S:'EDPEVENT EDPEVENT=4
|
|
"RTN","EDPFMON",146,0)
|
|
Q:$G(SDAMEVT)'=EDPEVENT
|
|
"RTN","EDPFMON",147,0)
|
|
;
|
|
"RTN","EDPFMON",148,0)
|
|
N EDPLST,X,FOUND
|
|
"RTN","EDPFMON",149,0)
|
|
D GETLST^XPAR(.EDPLST,"ALL","EDPF LOCATION","I")
|
|
"RTN","EDPFMON",150,0)
|
|
S X="",FOUND=0
|
|
"RTN","EDPFMON",151,0)
|
|
F S X=$O(EDPLST(X)) Q:X="" I $P(SDATA,U,4)=EDPLST(X) S FOUND=1 Q
|
|
"RTN","EDPFMON",152,0)
|
|
Q:'FOUND
|
|
"RTN","EDPFMON",153,0)
|
|
;
|
|
"RTN","EDPFMON",154,0)
|
|
N DFN,DATE,HLOC
|
|
"RTN","EDPFMON",155,0)
|
|
S DFN=+$P(SDATA,U,2),DATE=+$P(SDATA,U,3),HLOC=+$P(SDATA,U,4)
|
|
"RTN","EDPFMON",156,0)
|
|
; your code goes here :)
|
|
"RTN","EDPFMON",157,0)
|
|
N MSG
|
|
"RTN","EDPFMON",158,0)
|
|
S MSG(1)="command=patientCheckIn"
|
|
"RTN","EDPFMON",159,0)
|
|
S MSG(2)="dfn="_DFN
|
|
"RTN","EDPFMON",160,0)
|
|
S MSG(3)="ptNm="_$P(^DPT(DFN,0),U)
|
|
"RTN","EDPFMON",161,0)
|
|
S MSG(4)="ssn="_$P(^DPT(DFN,0),U,9)
|
|
"RTN","EDPFMON",162,0)
|
|
S MSG(5)="hloc="_HLOC
|
|
"RTN","EDPFMON",163,0)
|
|
S MSG(6)="site="_DUZ(2)
|
|
"RTN","EDPFMON",164,0)
|
|
S MSG(7)="time="_DATE ; appt date to match PCE
|
|
"RTN","EDPFMON",165,0)
|
|
D SEND(.MSG)
|
|
"RTN","EDPFMON",166,0)
|
|
Q
|
|
"RTN","EDPFMON",167,0)
|
|
;
|
|
"RTN","EDPFMON",168,0)
|
|
SEND(MSG) ; Transfer control to message handler
|
|
"RTN","EDPFMON",169,0)
|
|
D MSG^EDPMAIL(.MSG)
|
|
"RTN","EDPFMON",170,0)
|
|
Q
|
|
"RTN","EDPFMOVE")
|
|
0^23^B43728958
|
|
"RTN","EDPFMOVE",1,0)
|
|
EDPFMOVE ;SLC/MKB - Move local ER Visits to EDIS
|
|
"RTN","EDPFMOVE",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPFMOVE",3,0)
|
|
;
|
|
"RTN","EDPFMOVE",4,0)
|
|
EN ; -- Option EDP CONVERSION to copy 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 !!,"The data conversion has completed." H 1 Q
|
|
"RTN","EDPFMOVE",7,0)
|
|
;
|
|
"RTN","EDPFMOVE",8,0)
|
|
N X,Y,DIR,DTOUT,DUOUT,DIRUT,DIROUT,EDPDIV
|
|
"RTN","EDPFMOVE",9,0)
|
|
W !!,"This option will copy ER configuration and visit data at your site"
|
|
"RTN","EDPFMOVE",10,0)
|
|
W !,"to the new Emergency Department application. For each division,"
|
|
"RTN","EDPFMOVE",11,0)
|
|
W !,"your local configuration data will be copied first, followed by all"
|
|
"RTN","EDPFMOVE",12,0)
|
|
W !,"currently active patient visits. A task will then be queued to"
|
|
"RTN","EDPFMOVE",13,0)
|
|
W !,"populate previous, closed visits in the national application files"
|
|
"RTN","EDPFMOVE",14,0)
|
|
W !,"to allow reports to continue to function."
|
|
"RTN","EDPFMOVE",15,0)
|
|
S EDPDIV=$$SELDIV Q:'EDPDIV
|
|
"RTN","EDPFMOVE",16,0)
|
|
I '$$AREA(EDPDIV) W !!,"Please create a Tracking Area for this division.",! Q
|
|
"RTN","EDPFMOVE",17,0)
|
|
D SELCVT Q:EDPDIV="^"
|
|
"RTN","EDPFMOVE",18,0)
|
|
W !!,"DO NOT PROCEED UNTIL YOU ARE READY TO USE THE NEW EDIS PACKAGE!!",!
|
|
"RTN","EDPFMOVE",19,0)
|
|
S DIR(0)="YA",DIR("A")="Are you ready? ",DIR("B")="NO"
|
|
"RTN","EDPFMOVE",20,0)
|
|
D ^DIR Q:'Y
|
|
"RTN","EDPFMOVE",21,0)
|
|
;
|
|
"RTN","EDPFMOVE",22,0)
|
|
E1 ; -- start here
|
|
"RTN","EDPFMOVE",23,0)
|
|
D CONFIG
|
|
"RTN","EDPFMOVE",24,0)
|
|
D ACTIVE
|
|
"RTN","EDPFMOVE",25,0)
|
|
; -- task LOOP
|
|
"RTN","EDPFMOVE",26,0)
|
|
N ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTUCI,ZTCPU,ZTPRI,ZTSAVE,ZTKIL,ZTSYNC,ZTSK
|
|
"RTN","EDPFMOVE",27,0)
|
|
S ZTSK=$P($G(^XTMP("EDP-CONV","D",EDPDIV)),U,4) I ZTSK D Q:$G(ZTSK)
|
|
"RTN","EDPFMOVE",28,0)
|
|
. D STAT^%ZTLOAD N STS S STS=+$G(ZTSK(1))
|
|
"RTN","EDPFMOVE",29,0)
|
|
. I STS=1!(STS=2) W !,"Visit conversion is still running." Q
|
|
"RTN","EDPFMOVE",30,0)
|
|
. K ZTSK
|
|
"RTN","EDPFMOVE",31,0)
|
|
. ; STS=4!(STS=5) K ZTSK Q ;never ran or errored out
|
|
"RTN","EDPFMOVE",32,0)
|
|
. ; STS=3!(STS=0) K ZTSK Q ;completed or undefined
|
|
"RTN","EDPFMOVE",33,0)
|
|
S ZTRTN="LOOP^EDPFMOVE",ZTIO="",ZTDTH=$H,ZTSAVE("EDPDIV")=""
|
|
"RTN","EDPFMOVE",34,0)
|
|
S ZTDESC="Copy old ER data to new EDIS application"
|
|
"RTN","EDPFMOVE",35,0)
|
|
D ^%ZTLOAD I $G(ZTSK) D Q
|
|
"RTN","EDPFMOVE",36,0)
|
|
. W !,"Task #"_ZTSK_" started to copy closed visits."
|
|
"RTN","EDPFMOVE",37,0)
|
|
. S $P(^XTMP("EDP-CONV","D",EDPDIV),U,4)=ZTSK
|
|
"RTN","EDPFMOVE",38,0)
|
|
W !,"ERROR -- Task to copy closed visits NOT started!"
|
|
"RTN","EDPFMOVE",39,0)
|
|
Q
|
|
"RTN","EDPFMOVE",40,0)
|
|
;
|
|
"RTN","EDPFMOVE",41,0)
|
|
CONFIG ; -- convert site configuration
|
|
"RTN","EDPFMOVE",42,0)
|
|
N EDPI,MSG,N,I,X0,XMZ K XMMG
|
|
"RTN","EDPFMOVE",43,0)
|
|
S EDPI=$P($G(^XTMP("EDP-CONV","D",EDPDIV)),U) ; = ien^0^0 in post-init
|
|
"RTN","EDPFMOVE",44,0)
|
|
I EDPI="" W !,"Configuration data for "_$$NAME^XUAF4(EDPDIV)_" has already been copied." Q
|
|
"RTN","EDPFMOVE",45,0)
|
|
I EDPI=-1 W !,"Configuration data for "_$$NAME^XUAF4(EDPDIV)_" will not be copied." Q
|
|
"RTN","EDPFMOVE",46,0)
|
|
W !,"Copying local configuration ... "
|
|
"RTN","EDPFMOVE",47,0)
|
|
F S EDPI=$O(^DIZ(172012,EDPI)) Q:EDPI<1 D Q:$D(XMMG)
|
|
"RTN","EDPFMOVE",48,0)
|
|
. K MSG S MSG(1)="command=convertConfiguration",N=1
|
|
"RTN","EDPFMOVE",49,0)
|
|
. S X0=$G(^DIZ(172012,EDPI,0))
|
|
"RTN","EDPFMOVE",50,0)
|
|
. S N=N+1,MSG(N)="SITE="_EDPDIV
|
|
"RTN","EDPFMOVE",51,0)
|
|
. S N=N+1,MSG(N)="TZ="_$$TZ^XLFDT
|
|
"RTN","EDPFMOVE",52,0)
|
|
. F I=2,3,5 S N=N+1,MSG(N)=I_"="_$G(^DIZ(172012,EDPI,I))
|
|
"RTN","EDPFMOVE",53,0)
|
|
. ; include acuities and statuses for default colors
|
|
"RTN","EDPFMOVE",54,0)
|
|
. S I=0 F S I=$O(^DIZ(172007,"D",EDPDIV,I)) Q:I<1 D
|
|
"RTN","EDPFMOVE",55,0)
|
|
.. S X0=$G(^DIZ(172007,I,0)) Q:'$P(X0,U,6) ;inactive
|
|
"RTN","EDPFMOVE",56,0)
|
|
.. S $P(X0,U,3)=$$EXTERNAL^DILFD(172007,2,"",$P(X0,U,3))
|
|
"RTN","EDPFMOVE",57,0)
|
|
.. S $P(X0,U,4)=$$EXTERNAL^DILFD(172007,3,"",$P(X0,U,4))
|
|
"RTN","EDPFMOVE",58,0)
|
|
.. S N=N+1,MSG(N)="ACU"_I_"="_X0
|
|
"RTN","EDPFMOVE",59,0)
|
|
. S I=0 F S I=$O(^DIZ(172009,I)) Q:I<1 S X0=$G(^(I,0)) D
|
|
"RTN","EDPFMOVE",60,0)
|
|
.. S $P(X0,U,2)=$$EXTERNAL^DILFD(172009,1,"",$P(X0,U,2))
|
|
"RTN","EDPFMOVE",61,0)
|
|
.. S $P(X0,U,3)=$$EXTERNAL^DILFD(172009,2,"",$P(X0,U,3))
|
|
"RTN","EDPFMOVE",62,0)
|
|
.. S N=N+1,MSG(N)="STS"_I_"="_X0
|
|
"RTN","EDPFMOVE",63,0)
|
|
. D SEND^EDPFMON(.MSG)
|
|
"RTN","EDPFMOVE",64,0)
|
|
S $P(^XTMP("EDP-CONV","D",EDPDIV),U)="" ;done
|
|
"RTN","EDPFMOVE",65,0)
|
|
Q
|
|
"RTN","EDPFMOVE",66,0)
|
|
;
|
|
"RTN","EDPFMOVE",67,0)
|
|
ACTIVE ; -- Loop through ER Locations, convert open visits first
|
|
"RTN","EDPFMOVE",68,0)
|
|
N EDPL,VST,XMZ
|
|
"RTN","EDPFMOVE",69,0)
|
|
S EDPL=$P($G(^XTMP("EDP-CONV","D",EDPDIV)),U,2) ; = ien^0^0 in post-init
|
|
"RTN","EDPFMOVE",70,0)
|
|
I EDPL="" Q ;W !,"Active visits already copied." Q
|
|
"RTN","EDPFMOVE",71,0)
|
|
W !,"Copying currently active visits ... "
|
|
"RTN","EDPFMOVE",72,0)
|
|
F S EDPL=$O(^DIZ(172008,"C",EDPDIV,EDPL)) Q:EDPL<1 D
|
|
"RTN","EDPFMOVE",73,0)
|
|
. S VST=$P($G(^DIZ(172008,EDPL,0)),U,5) Q:'VST
|
|
"RTN","EDPFMOVE",74,0)
|
|
. D EN1(VST,1) S ^XTMP("EDP-CONV",VST)=""
|
|
"RTN","EDPFMOVE",75,0)
|
|
. S $P(^XTMP("EDP-CONV","D",EDPDIV),U,2)=EDPL
|
|
"RTN","EDPFMOVE",76,0)
|
|
S $P(^XTMP("EDP-CONV","D",EDPDIV),U,2)="" ;done
|
|
"RTN","EDPFMOVE",77,0)
|
|
Q
|
|
"RTN","EDPFMOVE",78,0)
|
|
;
|
|
"RTN","EDPFMOVE",79,0)
|
|
LOOP ; -- Queued loop to send previous [closed] visits
|
|
"RTN","EDPFMOVE",80,0)
|
|
N EDPI
|
|
"RTN","EDPFMOVE",81,0)
|
|
S EDPI=$P($G(^XTMP("EDP-CONV","D",EDPDIV)),U,3)
|
|
"RTN","EDPFMOVE",82,0)
|
|
F S EDPI=$O(^DIZ(172006,"E",EDPDIV,EDPI)) Q:EDPI<1 D
|
|
"RTN","EDPFMOVE",83,0)
|
|
. I $D(^XTMP("EDP-CONV",EDPI)) S $P(^XTMP("EDP-CONV","D",EDPDIV),U,3)=EDPI Q
|
|
"RTN","EDPFMOVE",84,0)
|
|
. D EN1(EDPI)
|
|
"RTN","EDPFMOVE",85,0)
|
|
. S $P(^XTMP("EDP-CONV","D",EDPDIV),U,3)=EDPI
|
|
"RTN","EDPFMOVE",86,0)
|
|
;S ^XTMP("EDP-CONV","X")="DONE"
|
|
"RTN","EDPFMOVE",87,0)
|
|
Q
|
|
"RTN","EDPFMOVE",88,0)
|
|
;
|
|
"RTN","EDPFMOVE",89,0)
|
|
EN1(IEN,OPEN) ; -- convert single ER visit
|
|
"RTN","EDPFMOVE",90,0)
|
|
N I,X,Y,X0,DIZ
|
|
"RTN","EDPFMOVE",91,0)
|
|
F I=0,1,2,3,4,6,9 S DIZ(I)=$G(^DIZ(172006,IEN,I))
|
|
"RTN","EDPFMOVE",92,0)
|
|
I $O(^DIZ(172006,IEN,8,0)) M DIZ(8)=^DIZ(172006,IEN,8)
|
|
"RTN","EDPFMOVE",93,0)
|
|
S X=$P(DIZ(3),U),DIZ("SITE")=X ;Institution file ien
|
|
"RTN","EDPFMOVE",94,0)
|
|
S DIZ("TZ")=$$TZ^XLFDT ;Time Zone difference
|
|
"RTN","EDPFMOVE",95,0)
|
|
; S:'$G(OPEN) DIZ("CLOSED")=1 ;Closed visit
|
|
"RTN","EDPFMOVE",96,0)
|
|
;
|
|
"RTN","EDPFMOVE",97,0)
|
|
;include static file nodes used:
|
|
"RTN","EDPFMOVE",98,0)
|
|
S X=$P(DIZ(0),U,4) S:X DIZ("STS"_X)=$$STS(X) ;Status
|
|
"RTN","EDPFMOVE",99,0)
|
|
I '$G(OPEN),X,$P($G(DIZ("STS"_X)),U,4)="GONE" S DIZ("CLOSED")=1
|
|
"RTN","EDPFMOVE",100,0)
|
|
S X=$P(DIZ(0),U,6) S:X DIZ("ARR"_X)=$$ARR(X) ;Arrival Mode
|
|
"RTN","EDPFMOVE",101,0)
|
|
S X=$P(DIZ(3),U,2) S:X DIZ("LOC"_X)=$$LOC(X) ;Location
|
|
"RTN","EDPFMOVE",102,0)
|
|
S X=$P(DIZ(4),U,2) S:X $P(DIZ(4),U,2)=$$NUR(X) ;RN->200
|
|
"RTN","EDPFMOVE",103,0)
|
|
S X=$P(DIZ(4),U,3) S:X DIZ("ACU"_X)=$$ACU(X) ;Acuity
|
|
"RTN","EDPFMOVE",104,0)
|
|
S X=$P(DIZ(4),U,7) S:X DIZ("DEL"_X)=$$DEL(X) ;Delay Reason
|
|
"RTN","EDPFMOVE",105,0)
|
|
S X=$P(DIZ(9),U,3) S:X DIZ("DIS"_X)=$$DIS(X) ;Disposition
|
|
"RTN","EDPFMOVE",106,0)
|
|
I 'X S X=$P(DIZ(6),U,3) S:$L(X) DIZ("DIS"_X)=$$EXTERNAL^DILFD(172006,16,,X)_"^1^^^"_X
|
|
"RTN","EDPFMOVE",107,0)
|
|
S I=0 F S I=$O(^DIZ(172006,IEN,7,I)) Q:I<1 S X0=$G(^(I,0)) D
|
|
"RTN","EDPFMOVE",108,0)
|
|
. S X=$P(X0,U,3) I X,'$D(DIZ("STS"_X)) S DIZ("STS"_X)=$$STS(X)
|
|
"RTN","EDPFMOVE",109,0)
|
|
. S X=$P(X0,U,4) I X,'$D(DIZ("ACU"_X)) S DIZ("ACU"_X)=$$ACU(X)
|
|
"RTN","EDPFMOVE",110,0)
|
|
. S X=$P(X0,U,5) I X,'$D(DIZ("LOC"_X)) S DIZ("LOC"_X)=$$LOC(X)
|
|
"RTN","EDPFMOVE",111,0)
|
|
. S X=$P(X0,U,7) S:X $P(X0,U,7)=$$NUR(X) ;RN->200
|
|
"RTN","EDPFMOVE",112,0)
|
|
. S DIZ("MVT"_I)=X0
|
|
"RTN","EDPFMOVE",113,0)
|
|
;
|
|
"RTN","EDPFMOVE",114,0)
|
|
;send to nat'l file
|
|
"RTN","EDPFMOVE",115,0)
|
|
;N MSG S MSG(1)="command=convertVisit",I=1
|
|
"RTN","EDPFMOVE",116,0)
|
|
;S X="" F S X=$O(DIZ(X)) Q:X="" S I=I+1,MSG(I)=X_"="_DIZ(X)
|
|
"RTN","EDPFMOVE",117,0)
|
|
;D SEND^EDPFMON(.MSG)
|
|
"RTN","EDPFMOVE",118,0)
|
|
;
|
|
"RTN","EDPFMOVE",119,0)
|
|
D VST^EDPCONV(.DIZ)
|
|
"RTN","EDPFMOVE",120,0)
|
|
I $G(DIZ(230)) S ^DIZ(172006,IEN,230)=DIZ(230)
|
|
"RTN","EDPFMOVE",121,0)
|
|
Q
|
|
"RTN","EDPFMOVE",122,0)
|
|
;
|
|
"RTN","EDPFMOVE",123,0)
|
|
LOC(X) ; -- Return 0-node for Location ien X
|
|
"RTN","EDPFMOVE",124,0)
|
|
N NODE,S S NODE=$G(^DIZ(172008,+$G(X),0))
|
|
"RTN","EDPFMOVE",125,0)
|
|
S S=$P(NODE,U,8) I S,'$D(DIZ("STS"_S)) S DIZ("STS"_S)=$$STS(S)
|
|
"RTN","EDPFMOVE",126,0)
|
|
Q NODE
|
|
"RTN","EDPFMOVE",127,0)
|
|
;
|
|
"RTN","EDPFMOVE",128,0)
|
|
ACU(X) ; -- Return 0-node for Acuity ien X
|
|
"RTN","EDPFMOVE",129,0)
|
|
Q $G(^DIZ(172007,+$G(X),0))
|
|
"RTN","EDPFMOVE",130,0)
|
|
;
|
|
"RTN","EDPFMOVE",131,0)
|
|
STS(X) ; -- Return 0-node for Status ien X
|
|
"RTN","EDPFMOVE",132,0)
|
|
Q $G(^DIZ(172009,+$G(X),0))
|
|
"RTN","EDPFMOVE",133,0)
|
|
;
|
|
"RTN","EDPFMOVE",134,0)
|
|
DEL(X) ; -- Return 0-node for Delay Reason ien X
|
|
"RTN","EDPFMOVE",135,0)
|
|
Q $G(^DIZ(172011,+$G(X),0))
|
|
"RTN","EDPFMOVE",136,0)
|
|
;
|
|
"RTN","EDPFMOVE",137,0)
|
|
ARR(X) ; -- Return 0-node for Arrival Mode ien X
|
|
"RTN","EDPFMOVE",138,0)
|
|
Q $G(^DIZ(172014,+$G(X),0))
|
|
"RTN","EDPFMOVE",139,0)
|
|
;
|
|
"RTN","EDPFMOVE",140,0)
|
|
DIS(X) ; -- Return 0-node for Disposition ien X
|
|
"RTN","EDPFMOVE",141,0)
|
|
Q $G(^DIZ(172015,+$G(X),0))
|
|
"RTN","EDPFMOVE",142,0)
|
|
;
|
|
"RTN","EDPFMOVE",143,0)
|
|
PER(X) ; -- Return NAME^INITIALS for New Person ien X
|
|
"RTN","EDPFMOVE",144,0)
|
|
Q $P($G(^VA(200,+$G(X),0)),U,1,2)
|
|
"RTN","EDPFMOVE",145,0)
|
|
;
|
|
"RTN","EDPFMOVE",146,0)
|
|
NUR(X) ; -- Return #200 ptr for Nurse Staff ien X
|
|
"RTN","EDPFMOVE",147,0)
|
|
Q $P($G(^NURSF(210,+$G(X),0)),U)
|
|
"RTN","EDPFMOVE",148,0)
|
|
;
|
|
"RTN","EDPFMOVE",149,0)
|
|
SELDIV() ; -- Select division ien to convert
|
|
"RTN","EDPFMOVE",150,0)
|
|
N I,DIV,CNT,X,Y,DIC,DTOUT,DUOUT
|
|
"RTN","EDPFMOVE",151,0)
|
|
S I=0 F S I=$O(^XTMP("EDP-CONV","D",I)) Q:I<1 S X=$G(^(I)) D
|
|
"RTN","EDPFMOVE",152,0)
|
|
. I $P(X,U)<1,$O(^DIZ(172006,"E",I,"A"),-1)'>$P(X,U,3) Q
|
|
"RTN","EDPFMOVE",153,0)
|
|
. S DIV(I)=$$NS^XUAF4(I),CNT=+$G(CNT)+1
|
|
"RTN","EDPFMOVE",154,0)
|
|
I '$O(DIV(0)) W !!,"There is no data to convert." Q
|
|
"RTN","EDPFMOVE",155,0)
|
|
S DIC=4,DIC(0)="AEQMN",DIC("S")="I $D(DIV(Y))"
|
|
"RTN","EDPFMOVE",156,0)
|
|
I $G(CNT)=1 S I=$O(DIV(0)),DIC("B")=$P(DIV(I),U,2)
|
|
"RTN","EDPFMOVE",157,0)
|
|
S DIC("A")="Select the division you wish to convert: "
|
|
"RTN","EDPFMOVE",158,0)
|
|
W !!,"Available divisions: "
|
|
"RTN","EDPFMOVE",159,0)
|
|
S I=0 F S I=$O(DIV(I)) Q:I<1 W !,$P(DIV(I),U,2),?10,$P(DIV(I),U)
|
|
"RTN","EDPFMOVE",160,0)
|
|
D ^DIC S Y=$S(Y>0:+Y,1:0)
|
|
"RTN","EDPFMOVE",161,0)
|
|
Q Y
|
|
"RTN","EDPFMOVE",162,0)
|
|
;
|
|
"RTN","EDPFMOVE",163,0)
|
|
AREA(D) ; -- Return Tracking Area #231.9 ien for Division ien
|
|
"RTN","EDPFMOVE",164,0)
|
|
Q +$O(^EDPB(231.9,"C",+$G(D),0))
|
|
"RTN","EDPFMOVE",165,0)
|
|
;
|
|
"RTN","EDPFMOVE",166,0)
|
|
SELCVT ; -- Select what to convert: configuration, data, or both
|
|
"RTN","EDPFMOVE",167,0)
|
|
Q:$P($G(^XTMP("EDP-CONV","D",EDPDIV)),U)=""
|
|
"RTN","EDPFMOVE",168,0)
|
|
N X,Y,DIR,DTOUT,DUOUT
|
|
"RTN","EDPFMOVE",169,0)
|
|
S DIR(0)="YA" W !
|
|
"RTN","EDPFMOVE",170,0)
|
|
S DIR("A")="Do you wish to convert the configuration as well as the data? "
|
|
"RTN","EDPFMOVE",171,0)
|
|
S DIR("?",1)="Enter YES if you wish to convert this division's configuration as well"
|
|
"RTN","EDPFMOVE",172,0)
|
|
S DIR("?")="as the patient data, otherwise enter NO to convert only the data."
|
|
"RTN","EDPFMOVE",173,0)
|
|
D ^DIR I Y'=1,Y'=0 S EDPDIV="^" Q
|
|
"RTN","EDPFMOVE",174,0)
|
|
S $P(^XTMP("EDP-CONV","D",EDPDIV),U)=$S(Y=0:-1,1:+$O(^DIZ(172012,"B",EDPDIV,0)))
|
|
"RTN","EDPFMOVE",175,0)
|
|
Q
|
|
"RTN","EDPFPER")
|
|
0^5^B3427509
|
|
"RTN","EDPFPER",1,0)
|
|
EDPFPER ;SLC/KCM - Lookup Persons at Facility
|
|
"RTN","EDPFPER",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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)
|
|
S MATCH=$TR(MATCH,"_"," ") ; underscore replaces space in flex widget
|
|
"RTN","EDPFPER",7,0)
|
|
D XML^EDPX("<personType>"_PTYP_"</personType>")
|
|
"RTN","EDPFPER",8,0)
|
|
I PTYP="N" D NURS
|
|
"RTN","EDPFPER",9,0)
|
|
I PTYP'="N" D PROV
|
|
"RTN","EDPFPER",10,0)
|
|
Q
|
|
"RTN","EDPFPER",11,0)
|
|
PROV ; match providers
|
|
"RTN","EDPFPER",12,0)
|
|
N NM,PRV
|
|
"RTN","EDPFPER",13,0)
|
|
S NM=$O(^VA(200,"AK.PROVIDER",MATCH),-1)
|
|
"RTN","EDPFPER",14,0)
|
|
F S NM=$O(^VA(200,"AK.PROVIDER",NM)) Q:$E(NM,1,$L(MATCH))'=MATCH D
|
|
"RTN","EDPFPER",15,0)
|
|
. S PRV=0 F S PRV=$O(^VA(200,"AK.PROVIDER",NM,PRV)) Q:'PRV D
|
|
"RTN","EDPFPER",16,0)
|
|
.. I $$ALLOW(PRV,"P") D ADD(PRV,NM)
|
|
"RTN","EDPFPER",17,0)
|
|
Q
|
|
"RTN","EDPFPER",18,0)
|
|
NURS ; match nurses
|
|
"RTN","EDPFPER",19,0)
|
|
N NM,NRS,EDPNURS
|
|
"RTN","EDPFPER",20,0)
|
|
S EDPNURS=$$GET^XPAR("ALL","EDPF NURSE STAFF SCREEN")
|
|
"RTN","EDPFPER",21,0)
|
|
S NM=$O(^VA(200,"B",MATCH),-1)
|
|
"RTN","EDPFPER",22,0)
|
|
F S NM=$O(^VA(200,"B",NM)) Q:$E(NM,1,$L(MATCH))'=MATCH D
|
|
"RTN","EDPFPER",23,0)
|
|
. S NRS=0 F S NRS=$O(^VA(200,"B",NM,NRS)) Q:'NRS D
|
|
"RTN","EDPFPER",24,0)
|
|
.. I $$ALLOW(NRS,"N") D ADD(NRS,NM)
|
|
"RTN","EDPFPER",25,0)
|
|
Q
|
|
"RTN","EDPFPER",26,0)
|
|
ADD(PER,NM) ; Add the person to the list of staff
|
|
"RTN","EDPFPER",27,0)
|
|
N X,X0,TITLE
|
|
"RTN","EDPFPER",28,0)
|
|
S X0=^VA(200,PER,0),TITLE=$P(X0,U,9)
|
|
"RTN","EDPFPER",29,0)
|
|
S X("nm")=NM
|
|
"RTN","EDPFPER",30,0)
|
|
S X("itl")=$P(X0,U,2)
|
|
"RTN","EDPFPER",31,0)
|
|
I X("itl")="" S X("itl")=$E($P(NM,",",2))_$E(NM)
|
|
"RTN","EDPFPER",32,0)
|
|
S X("duz")=PER
|
|
"RTN","EDPFPER",33,0)
|
|
I TITLE S X("title")=$P($G(^DIC(3.1,TITLE,0)),U)
|
|
"RTN","EDPFPER",34,0)
|
|
D XML^EDPX($$XMLA^EDPX("staff",.X))
|
|
"RTN","EDPFPER",35,0)
|
|
Q
|
|
"RTN","EDPFPER",36,0)
|
|
ALLOW(PER,ROLE) ; Screen when selecting persons
|
|
"RTN","EDPFPER",37,0)
|
|
; PER is IEN for file 200, ROLE is P(rovider),R(esident), or N(urse)
|
|
"RTN","EDPFPER",38,0)
|
|
; Expects EDPNURS to be defined for nurses (EDPF NURSE STAFF FILTER)
|
|
"RTN","EDPFPER",39,0)
|
|
I '$$ACTIVE^XUSER(PER) Q 0
|
|
"RTN","EDPFPER",40,0)
|
|
I ("PR"[ROLE),'$$PROVIDER^XUSER(PER) Q 0
|
|
"RTN","EDPFPER",41,0)
|
|
Q:ROLE'="N" 1
|
|
"RTN","EDPFPER",42,0)
|
|
;
|
|
"RTN","EDPFPER",43,0)
|
|
I '$G(EDPNURS),'$D(^NURSF(210,"B",PER)) Q 0
|
|
"RTN","EDPFPER",44,0)
|
|
I ($G(EDPNURS)=1),'$D(^XUSEC("ORELSE",PER)) Q 0
|
|
"RTN","EDPFPER",45,0)
|
|
I ($G(EDPNURS)=2),'$D(^XUSEC("PSJ RNURSE",PER)) Q 0
|
|
"RTN","EDPFPER",46,0)
|
|
Q 1
|
|
"RTN","EDPFPTC")
|
|
0^36^B14885802
|
|
"RTN","EDPFPTC",1,0)
|
|
EDPFPTC ;SLC/MKB - Patient look-up Utilities at Facility
|
|
"RTN","EDPFPTC",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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("<warning>")
|
|
"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("</warning>")
|
|
"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("<warnSimilar>")
|
|
"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("</warnSimilar>")
|
|
"RTN","EDPFPTC",62,0)
|
|
I $D(DIED) D
|
|
"RTN","EDPFPTC",63,0)
|
|
. D XML^EDPX("<died>")
|
|
"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("</died>")
|
|
"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("<patientRecordFlags>")
|
|
"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("<text>"_$$ESC^EDPX(X)_"</text>")
|
|
"RTN","EDPFPTC",86,0)
|
|
. D XML^EDPX("</flag>")
|
|
"RTN","EDPFPTC",87,0)
|
|
D XML^EDPX("</patientRecordFlags>")
|
|
"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("<save status='"_X_"' />")
|
|
"RTN","EDPFPTC",95,0)
|
|
Q
|
|
"RTN","EDPFPTC",96,0)
|
|
;
|
|
"RTN","EDPFPTC",97,0)
|
|
TEST ;
|
|
"RTN","EDPFPTC",98,0)
|
|
S EDPSITE=$$IEN^XUAF4(442),NAME="doe,john"
|
|
"RTN","EDPFPTC",99,0)
|
|
D CHK(1,"",NAME)
|
|
"RTN","EDPFPTC",100,0)
|
|
;N PID S EDPSITE=$$IEN^XUAF4(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=$$IEN^XUAF4(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("<notes>")
|
|
"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="<text>"_$$ESC^EDPX(X)_"</text>" D XML^EDPX(X)
|
|
"RTN","EDPFPTC",122,0)
|
|
;.. D XML^EDPX("</note>")
|
|
"RTN","EDPFPTC",123,0)
|
|
;. D XML^EDPX("</notes>")
|
|
"RTN","EDPFPTL")
|
|
0^6^B4915038
|
|
"RTN","EDPFPTL",1,0)
|
|
EDPFPTL ;SLC/KCM - Select Patient at Facility
|
|
"RTN","EDPFPTL",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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)
|
|
N LIMIT S LIMIT=100
|
|
"RTN","EDPFPTL",12,0)
|
|
I MATCH?4N D BS(MATCH)
|
|
"RTN","EDPFPTL",13,0)
|
|
I MATCH?1U4N D BS5(MATCH)
|
|
"RTN","EDPFPTL",14,0)
|
|
I MATCH?9N.1U D SSN(MATCH)
|
|
"RTN","EDPFPTL",15,0)
|
|
D LNAM(MATCH)
|
|
"RTN","EDPFPTL",16,0)
|
|
I LST=0 D NONE("No matches found.")
|
|
"RTN","EDPFPTL",17,0)
|
|
I LST>0 D LIST(.LST)
|
|
"RTN","EDPFPTL",18,0)
|
|
I LIMIT<1 D
|
|
"RTN","EDPFPTL",19,0)
|
|
. D NONE("Limit of 100 matches reached.")
|
|
"RTN","EDPFPTL",20,0)
|
|
. D XML^EDPX("<matchesTruncated>true</matchesTruncated>")
|
|
"RTN","EDPFPTL",21,0)
|
|
Q
|
|
"RTN","EDPFPTL",22,0)
|
|
;
|
|
"RTN","EDPFPTL",23,0)
|
|
NONE(MSG) ; create a "no match" entry
|
|
"RTN","EDPFPTL",24,0)
|
|
N X
|
|
"RTN","EDPFPTL",25,0)
|
|
S X("name")=MSG
|
|
"RTN","EDPFPTL",26,0)
|
|
S X("ssn")="",X("dob")="",X("dfn")=0
|
|
"RTN","EDPFPTL",27,0)
|
|
D XML^EDPX($$XMLA^EDPX("ptlk",.X))
|
|
"RTN","EDPFPTL",28,0)
|
|
Q
|
|
"RTN","EDPFPTL",29,0)
|
|
LIST(LST) ; list names that match
|
|
"RTN","EDPFPTL",30,0)
|
|
N I,X,DFN,NAME
|
|
"RTN","EDPFPTL",31,0)
|
|
S NAME="" F S NAME=$O(LST(NAME)) Q:NAME="" D
|
|
"RTN","EDPFPTL",32,0)
|
|
. S DFN=0 F S DFN=$O(LST(NAME,DFN)) Q:'DFN D
|
|
"RTN","EDPFPTL",33,0)
|
|
.. S X("name")=NAME
|
|
"RTN","EDPFPTL",34,0)
|
|
.. S X("ssn")=$$SSN^DPTLK1(DFN) ; DG249
|
|
"RTN","EDPFPTL",35,0)
|
|
.. S X("dob")=$$DOB^DPTLK1(DFN) ; DG249
|
|
"RTN","EDPFPTL",36,0)
|
|
.. S X("dfn")=DFN
|
|
"RTN","EDPFPTL",37,0)
|
|
.. D XML^EDPX($$XMLA^EDPX("ptlk",.X))
|
|
"RTN","EDPFPTL",38,0)
|
|
Q
|
|
"RTN","EDPFPTL",39,0)
|
|
BS(X) ; find matches on 9999 (BS)
|
|
"RTN","EDPFPTL",40,0)
|
|
; expects LST,LIMIT to be defined
|
|
"RTN","EDPFPTL",41,0)
|
|
N DFN S DFN=0
|
|
"RTN","EDPFPTL",42,0)
|
|
F S DFN=$O(^DPT("BS",X,DFN)) Q:'DFN D
|
|
"RTN","EDPFPTL",43,0)
|
|
. S LIMIT=LIMIT-1 I LIMIT<1 Q
|
|
"RTN","EDPFPTL",44,0)
|
|
. S LST=LST+1,LST($P(^DPT(DFN,0),U),DFN)=""
|
|
"RTN","EDPFPTL",45,0)
|
|
Q
|
|
"RTN","EDPFPTL",46,0)
|
|
BS5(X) ; find matches on X9999 (BS5)
|
|
"RTN","EDPFPTL",47,0)
|
|
; expects LST,LIMIT to be defined
|
|
"RTN","EDPFPTL",48,0)
|
|
N DFN S DFN=0
|
|
"RTN","EDPFPTL",49,0)
|
|
F S DFN=$O(^DPT("BS5",X,DFN)) Q:'DFN D
|
|
"RTN","EDPFPTL",50,0)
|
|
. S LIMIT=LIMIT-1 I LIMIT<1 Q
|
|
"RTN","EDPFPTL",51,0)
|
|
. S LST=LST+1,LST($P(^DPT(DFN,0),U),DFN)=""
|
|
"RTN","EDPFPTL",52,0)
|
|
Q
|
|
"RTN","EDPFPTL",53,0)
|
|
SSN(X) ; find matches on 999999999 (SSN)
|
|
"RTN","EDPFPTL",54,0)
|
|
; expects LST,LIMIT to be defined
|
|
"RTN","EDPFPTL",55,0)
|
|
N DFN S DFN=0
|
|
"RTN","EDPFPTL",56,0)
|
|
F S DFN=$O(^DPT("SSN",X,DFN)) Q:'DFN D
|
|
"RTN","EDPFPTL",57,0)
|
|
. S LIMIT=LIMIT-1 I LIMIT<1 Q
|
|
"RTN","EDPFPTL",58,0)
|
|
. S LST=LST+1,LST($P(^DPT(DFN,0),U),DFN)=""
|
|
"RTN","EDPFPTL",59,0)
|
|
Q
|
|
"RTN","EDPFPTL",60,0)
|
|
LNAM(X) ; find matches on name (B)
|
|
"RTN","EDPFPTL",61,0)
|
|
; expects LST,LIMIT to be defined
|
|
"RTN","EDPFPTL",62,0)
|
|
N DFN,NAME
|
|
"RTN","EDPFPTL",63,0)
|
|
S NAME=$O(^DPT("B",X),-1)
|
|
"RTN","EDPFPTL",64,0)
|
|
F S NAME=$O(^DPT("B",NAME)) Q:$E(NAME,1,$L(X))'=X Q:NAME="" Q:LIMIT<1 D
|
|
"RTN","EDPFPTL",65,0)
|
|
. S DFN=0 F S DFN=$O(^DPT("B",NAME,DFN)) Q:'DFN D
|
|
"RTN","EDPFPTL",66,0)
|
|
.. S LIMIT=LIMIT-1 I LIMIT<1 Q
|
|
"RTN","EDPFPTL",67,0)
|
|
.. S LST=LST+1,LST(NAME,DFN)=""
|
|
"RTN","EDPFPTL",68,0)
|
|
Q
|
|
"RTN","EDPLOG")
|
|
0^37^B42149061
|
|
"RTN","EDPLOG",1,0)
|
|
EDPLOG ;SLC/KCM - Update ED Log - Update ;1/26/09 14:14
|
|
"RTN","EDPLOG",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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 & "no value" ien
|
|
"RTN","EDPLOG",15,0)
|
|
N TIME S TIME=$$NOW^XLFDT
|
|
"RTN","EDPLOG",16,0)
|
|
N EDPNOVAL S EDPNOVAL=+$O(^EDPB(233.1,"B","edp.reserved.novalue",0))
|
|
"RTN","EDPLOG",17,0)
|
|
; before allowing remove, check the required fields
|
|
"RTN","EDPLOG",18,0)
|
|
S REMOVE=$G(REMOVE,0)!$P(^EDP(230,IEN,0),U,7) ; removing or closed
|
|
"RTN","EDPLOG",19,0)
|
|
I REMOVE D RDY2RMV Q:'REC("closed")
|
|
"RTN","EDPLOG",20,0)
|
|
;
|
|
"RTN","EDPLOG",21,0)
|
|
; get the existing log entry
|
|
"RTN","EDPLOG",22,0)
|
|
N X0,X1,X2,X3,AREA,I
|
|
"RTN","EDPLOG",23,0)
|
|
S X0=^EDP(230,IEN,0),X1=$G(^(1)),X2=$G(^(2)),X3=$G(^(3))
|
|
"RTN","EDPLOG",24,0)
|
|
S AREA=$P(X0,U,3),^EDPB(231.9,AREA,230)=$H ; last update timestamp
|
|
"RTN","EDPLOG",25,0)
|
|
;
|
|
"RTN","EDPLOG",26,0)
|
|
N NAME,DFN,SSN,PCE
|
|
"RTN","EDPLOG",27,0)
|
|
S NAME=$$VAL("name"),DFN=$$VAL("dfn"),SSN=""
|
|
"RTN","EDPLOG",28,0)
|
|
I DFN S SSN=$P(^DPT(DFN,0),U,9)
|
|
"RTN","EDPLOG",29,0)
|
|
I '$P(X0,U,8),((NAME'=AMB)!DFN) S REC("inTS")=TIME
|
|
"RTN","EDPLOG",30,0)
|
|
; Update any fields that have values passed in
|
|
"RTN","EDPLOG",31,0)
|
|
N FDA,FDAIEN,DIERR,HIST
|
|
"RTN","EDPLOG",32,0)
|
|
D SETFDA(X0,4,"name",.04)
|
|
"RTN","EDPLOG",33,0)
|
|
;D SETFDA(X0,5,"ssn",.05) -- NtoL
|
|
"RTN","EDPLOG",34,0)
|
|
D SETFDA(X0,6,"dfn",.06)
|
|
"RTN","EDPLOG",35,0)
|
|
D SETFDA(X0,7,"closed",.07)
|
|
"RTN","EDPLOG",36,0)
|
|
D SETFDA(X0,8,"inTS",.08)
|
|
"RTN","EDPLOG",37,0)
|
|
D SETFDA(X0,9,"outTS",.09)
|
|
"RTN","EDPLOG",38,0)
|
|
D SETFDA(X0,10,"arrival",.1)
|
|
"RTN","EDPLOG",39,0)
|
|
D SETFDA(X0,14,"clinic",.14)
|
|
"RTN","EDPLOG",40,0)
|
|
D SETFDA(X1,1,"complaint",1.1)
|
|
"RTN","EDPLOG",41,0)
|
|
D SETFDA(X2,1,"compLong",2)
|
|
"RTN","EDPLOG",42,0)
|
|
D SETFDA(X3,2,"status",3.2)
|
|
"RTN","EDPLOG",43,0)
|
|
D SETFDA(X3,3,"acuity",3.3)
|
|
"RTN","EDPLOG",44,0)
|
|
D SETFDA(X3,4,"bed",3.4)
|
|
"RTN","EDPLOG",45,0)
|
|
D SETFDA(X3,5,"provider",3.5)
|
|
"RTN","EDPLOG",46,0)
|
|
D SETFDA(X3,6,"nurse",3.6)
|
|
"RTN","EDPLOG",47,0)
|
|
D SETFDA(X3,7,"resident",3.7)
|
|
"RTN","EDPLOG",48,0)
|
|
D SETFDA(X3,8,"comment",3.8)
|
|
"RTN","EDPLOG",49,0)
|
|
D SETFDA(X1,5,"delay",1.5)
|
|
"RTN","EDPLOG",50,0)
|
|
D SETFDA(X1,2,"disposition",1.2)
|
|
"RTN","EDPLOG",51,0)
|
|
I $G(FDA(230,IEN_",",1.2)) S FDA(230,IEN_",",1.3)=TIME
|
|
"RTN","EDPLOG",52,0)
|
|
I $L(NAME)&$L(SSN) S FDA(230,IEN_",",.11)=$E(NAME)_$E(SSN,6,9)
|
|
"RTN","EDPLOG",53,0)
|
|
I $$VAL("updDiag") S HIST(230.1,"+1,",9.1)=$G(HIST(230.1,"+1,",9.1))_"4;"
|
|
"RTN","EDPLOG",54,0)
|
|
;
|
|
"RTN","EDPLOG",55,0)
|
|
L +^EDP(230,IEN):3 E D FAIL("upd",2300015) Q
|
|
"RTN","EDPLOG",56,0)
|
|
; be sure to unlock before quitting!
|
|
"RTN","EDPLOG",57,0)
|
|
I $$COLLIDE^EDPLOGH(IEN,$$VAL("loadTS")) L -^EDP(230,IEN) Q
|
|
"RTN","EDPLOG",58,0)
|
|
I $$BEDGONE^EDPLOGH(AREA,$P(X3,U,4),$$VAL("bed")) D FAIL("upd",2300016) L -^EDP(230,IEN) Q
|
|
"RTN","EDPLOG",59,0)
|
|
I $D(HIST)>9 D SAVE^EDPLOGH(IEN,TIME,.HIST)
|
|
"RTN","EDPLOG",60,0)
|
|
I $D(FDA)>9 D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPLOG",61,0)
|
|
I '$D(DIERR),$$VAL("updDiag") D UPDDIAG
|
|
"RTN","EDPLOG",62,0)
|
|
L -^EDP(230,IEN)
|
|
"RTN","EDPLOG",63,0)
|
|
I $D(DIERR) D FAIL("upd",2300008) Q
|
|
"RTN","EDPLOG",64,0)
|
|
;
|
|
"RTN","EDPLOG",65,0)
|
|
D UPDVISIT^EDPLPCE(IEN,.PCE)
|
|
"RTN","EDPLOG",66,0)
|
|
;
|
|
"RTN","EDPLOG",67,0)
|
|
I (DFN&'$P(X0,U,6))!($G(REC("inTS"))&'$P(X0,U,8)) D EVT^EDPLOGA(IEN)
|
|
"RTN","EDPLOG",68,0)
|
|
;
|
|
"RTN","EDPLOG",69,0)
|
|
D XML^EDPX("<upd status='ok' id='"_IEN_"' />")
|
|
"RTN","EDPLOG",70,0)
|
|
Q
|
|
"RTN","EDPLOG",71,0)
|
|
UPDDIAG ; process diagnoses
|
|
"RTN","EDPLOG",72,0)
|
|
; called from UPD^EDPLOG
|
|
"RTN","EDPLOG",73,0)
|
|
; expects REC,PCE,IEN,TIME,AREA to be defined
|
|
"RTN","EDPLOG",74,0)
|
|
N DIAG,I,FDA,FDAIEN,ERR,CODED,CODE
|
|
"RTN","EDPLOG",75,0)
|
|
S DIAG="diagnosis-0",I=0,CODED=$P($G(^EDPB(231.9,AREA,1)),U,2)
|
|
"RTN","EDPLOG",76,0)
|
|
F S DIAG=$O(REC(DIAG)) Q:$E(DIAG,1,10)'="diagnosis-" D
|
|
"RTN","EDPLOG",77,0)
|
|
. S I=I+1,REC("diagnosis",I)=REC(DIAG)
|
|
"RTN","EDPLOG",78,0)
|
|
. I CODED S PCE($P(REC(DIAG),U),I)=REC(DIAG)
|
|
"RTN","EDPLOG",79,0)
|
|
I $D(REC("diagnosis"))<10 Q
|
|
"RTN","EDPLOG",80,0)
|
|
; replace the diagnosis multiple
|
|
"RTN","EDPLOG",81,0)
|
|
D DELDIAG(IEN)
|
|
"RTN","EDPLOG",82,0)
|
|
S FDA(230,IEN_",",1.4)=TIME
|
|
"RTN","EDPLOG",83,0)
|
|
S I=0 F S I=$O(REC("diagnosis",I)) Q:'I D
|
|
"RTN","EDPLOG",84,0)
|
|
. Q:$P(REC("diagnosis",I),U,6) ; entry being removed
|
|
"RTN","EDPLOG",85,0)
|
|
. S CODE=$P(REC("diagnosis",I),U,2)
|
|
"RTN","EDPLOG",86,0)
|
|
. S CODE=$S(+CODE:$$ICDONE^LEXU(CODE,TIME),1:"")
|
|
"RTN","EDPLOG",87,0)
|
|
. S:'$L(CODE) CODE=$P($P(REC("diagnosis",I),U,3),"/",1)
|
|
"RTN","EDPLOG",88,0)
|
|
. S:$L(CODE) CODE=+$O(^ICD9("BA",CODE_" ",0))
|
|
"RTN","EDPLOG",89,0)
|
|
. S FDA(230.04,"+"_I_","_IEN_",",.01)=$P(REC("diagnosis",I),U,4)
|
|
"RTN","EDPLOG",90,0)
|
|
. S FDA(230.04,"+"_I_","_IEN_",",.02)=CODE
|
|
"RTN","EDPLOG",91,0)
|
|
. S FDA(230.04,"+"_I_","_IEN_",",.03)=$P(REC("diagnosis",I),U,8)
|
|
"RTN","EDPLOG",92,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPLOG",93,0)
|
|
Q
|
|
"RTN","EDPLOG",94,0)
|
|
DELDIAG(IEN) ; delete the diagnosis multiple
|
|
"RTN","EDPLOG",95,0)
|
|
I '$O(^EDP(230,IEN,4,0)) Q ; no child nodes
|
|
"RTN","EDPLOG",96,0)
|
|
N DA,DIK S DA=0,DA(1)=IEN,DIK="^EDP(230,"_DA(1)_",4,"
|
|
"RTN","EDPLOG",97,0)
|
|
F S DA=$O(^EDP(230,IEN,4,DA)) Q:'DA D ^DIK
|
|
"RTN","EDPLOG",98,0)
|
|
Q
|
|
"RTN","EDPLOG",99,0)
|
|
HAVEDIAG() ; return true if a diagnosis is present
|
|
"RTN","EDPLOG",100,0)
|
|
; expects REC to be defined
|
|
"RTN","EDPLOG",101,0)
|
|
N FOUND S FOUND=0
|
|
"RTN","EDPLOG",102,0)
|
|
N DIAG S DIAG="diagnosis-0"
|
|
"RTN","EDPLOG",103,0)
|
|
F S DIAG=$O(REC(DIAG)) Q:$E(DIAG,1,10)'="diagnosis-" D Q:FOUND
|
|
"RTN","EDPLOG",104,0)
|
|
. I '$P(REC(DIAG),U,6) S FOUND=1 ; 6th piece is delete flag
|
|
"RTN","EDPLOG",105,0)
|
|
Q FOUND
|
|
"RTN","EDPLOG",106,0)
|
|
;
|
|
"RTN","EDPLOG",107,0)
|
|
RDY2RMV ; check required fields & set up so ready to remove
|
|
"RTN","EDPLOG",108,0)
|
|
; called from UPD, expects REC and IEN and TIME
|
|
"RTN","EDPLOG",109,0)
|
|
;
|
|
"RTN","EDPLOG",110,0)
|
|
; check special dispositions first
|
|
"RTN","EDPLOG",111,0)
|
|
N DISP,CLOSE
|
|
"RTN","EDPLOG",112,0)
|
|
S DISP=+$$VAL("disposition"),CLOSE=0
|
|
"RTN","EDPLOG",113,0)
|
|
I DISP=+$O(^EDPB(233.1,"B","edp.disposition.error",0)) S CLOSE=1
|
|
"RTN","EDPLOG",114,0)
|
|
I DISP=+$O(^EDPB(233.1,"B","edp.disposition.nec",0)) S CLOSE=1
|
|
"RTN","EDPLOG",115,0)
|
|
I DISP=+$O(^EDPB(233.1,"B","edp.disposition.left",0)) S CLOSE=1
|
|
"RTN","EDPLOG",116,0)
|
|
I CLOSE S:'$$VAL("outTS") REC("outTS")=TIME S REC("closed")=1 Q
|
|
"RTN","EDPLOG",117,0)
|
|
;
|
|
"RTN","EDPLOG",118,0)
|
|
; check the generally required fields
|
|
"RTN","EDPLOG",119,0)
|
|
N MISSING S MISSING=""
|
|
"RTN","EDPLOG",120,0)
|
|
S REC("closed")=0
|
|
"RTN","EDPLOG",121,0)
|
|
I '$L($$VAL("complaint")) S MISSING=MISSING_"Complaint "
|
|
"RTN","EDPLOG",122,0)
|
|
I '$$VAL("bed") S MISSING=MISSING_"Room/Area "
|
|
"RTN","EDPLOG",123,0)
|
|
I '$$VAL("provider") S MISSING=MISSING_"Provider "
|
|
"RTN","EDPLOG",124,0)
|
|
I $$NOVAL("acuity") S MISSING=MISSING_"Acuity "
|
|
"RTN","EDPLOG",125,0)
|
|
;
|
|
"RTN","EDPLOG",126,0)
|
|
; check the other disposition required fields
|
|
"RTN","EDPLOG",127,0)
|
|
N X1,AREA,MIN,STS,OUT
|
|
"RTN","EDPLOG",128,0)
|
|
S AREA=$P(^EDP(230,IEN,0),U,3),STS=$P($G(^(3)),U,2)
|
|
"RTN","EDPLOG",129,0)
|
|
S X1=$G(^EDPB(231.9,AREA,1))
|
|
"RTN","EDPLOG",130,0)
|
|
S MIN=$$VAL("inTS") S:'MIN MIN=$P(^EDP(230,IEN,0),U,8)
|
|
"RTN","EDPLOG",131,0)
|
|
S OUT=$$VAL("outTS") S:'OUT OUT=TIME
|
|
"RTN","EDPLOG",132,0)
|
|
S MIN=$$FMDIFF^XLFDT(OUT,MIN,2)\60
|
|
"RTN","EDPLOG",133,0)
|
|
I $P(X1,U,1),'$$HAVEDIAG S MISSING=MISSING_"Diagnosis "
|
|
"RTN","EDPLOG",134,0)
|
|
I $P(X1,U,3),$$NOVAL("disposition") S MISSING=MISSING_"Disposition "
|
|
"RTN","EDPLOG",135,0)
|
|
; (client parses for string "Delay Reason" to know whether to enable delay reason control)
|
|
"RTN","EDPLOG",136,0)
|
|
I $P(X1,U,4),(MIN>$P(X1,U,5)),$$NOVAL("delay"),'$$OBS(STS) S MISSING=MISSING_"Delay Reason "
|
|
"RTN","EDPLOG",137,0)
|
|
I $L(MISSING) D FAIL("upd","Fields required for removal are missing: "_MISSING) Q
|
|
"RTN","EDPLOG",138,0)
|
|
S:'$$VAL("outTS") REC("outTS")=TIME S REC("closed")=1
|
|
"RTN","EDPLOG",139,0)
|
|
Q
|
|
"RTN","EDPLOG",140,0)
|
|
VAL(X) ; Returns parameter value or null
|
|
"RTN","EDPLOG",141,0)
|
|
; HTTP passes HTML-escaped values in an array as REC(param)
|
|
"RTN","EDPLOG",142,0)
|
|
Q $G(REC(X))
|
|
"RTN","EDPLOG",143,0)
|
|
;
|
|
"RTN","EDPLOG",144,0)
|
|
NOVAL(X) ; Returns true if value is empty, 0, or edp.reserved.novalue
|
|
"RTN","EDPLOG",145,0)
|
|
; expects EDPNOVAL to be defined
|
|
"RTN","EDPLOG",146,0)
|
|
I +$G(REC(X))=0 Q 1
|
|
"RTN","EDPLOG",147,0)
|
|
I +$G(REC(X))=EDPNOVAL Q 1
|
|
"RTN","EDPLOG",148,0)
|
|
Q 0
|
|
"RTN","EDPLOG",149,0)
|
|
;
|
|
"RTN","EDPLOG",150,0)
|
|
OBS(X) ; Returns 1 or 0, if observation status X
|
|
"RTN","EDPLOG",151,0)
|
|
Q ($P($G(^EDPB(233.1,+$G(X),0)),U,5)["O")
|
|
"RTN","EDPLOG",152,0)
|
|
;
|
|
"RTN","EDPLOG",153,0)
|
|
SETFDA(NODE,P,SUB,FLD) ; Creates value in FDA & HIST arrays as appropriate
|
|
"RTN","EDPLOG",154,0)
|
|
; from UPD, expects REC, FDA, HIST to be defined
|
|
"RTN","EDPLOG",155,0)
|
|
Q:'$D(REC(SUB)) ; value not sent in message
|
|
"RTN","EDPLOG",156,0)
|
|
Q:$P(NODE,U,P)=REC(SUB) ; value is the same
|
|
"RTN","EDPLOG",157,0)
|
|
; don't save switch from null to 0 or NOVAL to 0
|
|
"RTN","EDPLOG",158,0)
|
|
; since 0 is always sent as none value for combo box fields
|
|
"RTN","EDPLOG",159,0)
|
|
I (REC(SUB)=0),($P(NODE,U,P)=""),("^.1^1.2^1.5^3.2^3.3^3.4^3.5^3.6^3.7^"[(U_FLD_U)) Q
|
|
"RTN","EDPLOG",160,0)
|
|
I (REC(SUB)=0),($P(NODE,U,P)=EDPNOVAL),("^.1^1.2^1.5^3.2^3.3^"[(U_FLD_U)) Q
|
|
"RTN","EDPLOG",161,0)
|
|
;
|
|
"RTN","EDPLOG",162,0)
|
|
I REC(SUB)="" S REC(SUB)="@" ; we must be deleting field if empty
|
|
"RTN","EDPLOG",163,0)
|
|
S FDA(230,IEN_",",FLD)=REC(SUB)
|
|
"RTN","EDPLOG",164,0)
|
|
; save the changed fields in the history
|
|
"RTN","EDPLOG",165,0)
|
|
I $L(REC(SUB)) D
|
|
"RTN","EDPLOG",166,0)
|
|
. S HIST(230.1,"+1,",9.1)=$G(HIST(230.1,"+1,",9.1))_FLD_";"
|
|
"RTN","EDPLOG",167,0)
|
|
. S:FLD=1.1 FLD=.07 ; complaint
|
|
"RTN","EDPLOG",168,0)
|
|
. S:FLD=1.2 FLD=.11 ; disposition
|
|
"RTN","EDPLOG",169,0)
|
|
. S:FLD=1.5 FLD=.12 ; delay
|
|
"RTN","EDPLOG",170,0)
|
|
. S HIST(230.1,"+1,",FLD)=REC(SUB)
|
|
"RTN","EDPLOG",171,0)
|
|
. ; check for updated providers
|
|
"RTN","EDPLOG",172,0)
|
|
. S:FLD=3.5 PCE("PRV",1)=REC(SUB),PCE("PRI")=REC(SUB) ; primary provider
|
|
"RTN","EDPLOG",173,0)
|
|
. S:FLD=3.6 PCE("PRV",2)=REC(SUB) ; nurse
|
|
"RTN","EDPLOG",174,0)
|
|
. S:FLD=3.7 PCE("PRV",3)=REC(SUB) ; resident
|
|
"RTN","EDPLOG",175,0)
|
|
Q
|
|
"RTN","EDPLOG",176,0)
|
|
FAIL(ELEM,MSG) ; creates failure node for returned XML
|
|
"RTN","EDPLOG",177,0)
|
|
N X
|
|
"RTN","EDPLOG",178,0)
|
|
I +MSG S MSG=$$MSG^EDPX(MSG)
|
|
"RTN","EDPLOG",179,0)
|
|
S X="<"_ELEM_" id='"_$$VAL("id")_"' status='fail' msg='"_MSG_"' />"
|
|
"RTN","EDPLOG",180,0)
|
|
D XML^EDPX(X)
|
|
"RTN","EDPLOG",181,0)
|
|
S EDPFAIL=1
|
|
"RTN","EDPLOG",182,0)
|
|
Q
|
|
"RTN","EDPLOG1")
|
|
0^38^B2583250
|
|
"RTN","EDPLOG1",1,0)
|
|
EDPLOG1 ;SLC/KCM - Update ED Log - Validate
|
|
"RTN","EDPLOG1",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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("clinic")
|
|
"RTN","EDPLOG1",7,0)
|
|
D XLATE("bed")
|
|
"RTN","EDPLOG1",8,0)
|
|
D XLATE("acuity")
|
|
"RTN","EDPLOG1",9,0)
|
|
D XLATE("status")
|
|
"RTN","EDPLOG1",10,0)
|
|
D XLATE("provider")
|
|
"RTN","EDPLOG1",11,0)
|
|
D XLATE("nurse")
|
|
"RTN","EDPLOG1",12,0)
|
|
D XLATE("resident")
|
|
"RTN","EDPLOG1",13,0)
|
|
D XLATE("disposition")
|
|
"RTN","EDPLOG1",14,0)
|
|
D XLATE("delay")
|
|
"RTN","EDPLOG1",15,0)
|
|
;
|
|
"RTN","EDPLOG1",16,0)
|
|
N ERR S ERR=""
|
|
"RTN","EDPLOG1",17,0)
|
|
D ADDTXT(.ERR,$$CHECK("name",230,.04,"Patient Name"))
|
|
"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,EDPRSLT
|
|
"RTN","EDPLOG1",31,0)
|
|
S VAL=$G(REC(NAME))
|
|
"RTN","EDPLOG1",32,0)
|
|
I VAL="" Q ""
|
|
"RTN","EDPLOG1",33,0)
|
|
D CHK^DIE(FILE,FIELD,"",VAL,.EDPRSLT)
|
|
"RTN","EDPLOG1",34,0)
|
|
I EDPRSLT="^" Q 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) ; set up pointer fields for FDA array
|
|
"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^B10789313
|
|
"RTN","EDPLOGA",1,0)
|
|
EDPLOGA ;SLC/KCM - Add Entry to ED Log
|
|
"RTN","EDPLOGA",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,CLINIC
|
|
"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="",CLINIC=$G(REC("clinic"))
|
|
"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=$P(^EDPB(231.9,AREA,1),U,12)
|
|
"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=$P(^EDPB(231.9,AREA,1),U,11)
|
|
"RTN","EDPLOGA",24,0)
|
|
S STATUS="" I BED S STATUS=$P(^EDPB(231.8,BED,0),U,8)
|
|
"RTN","EDPLOGA",25,0)
|
|
;
|
|
"RTN","EDPLOGA",26,0)
|
|
I +DFN,$D(^EDP(230,"AP",EDPSITE,AREA,DFN)) D FAIL^EDPLOG("add",2300002) Q
|
|
"RTN","EDPLOGA",27,0)
|
|
I 'DFN,(NAME'=AMB),$D(^EDP(230,"AN",EDPSITE,AREA,NAME)) D FAIL^EDPLOG("add",2300002) Q
|
|
"RTN","EDPLOGA",28,0)
|
|
N ERR S ERR=$$VALID^EDPLOG1(.REC) I $L(ERR) D FAIL^EDPLOG("add",ERR) Q
|
|
"RTN","EDPLOGA",29,0)
|
|
S ^EDPB(231.9,AREA,230)=$H ; last update timestamp
|
|
"RTN","EDPLOGA",30,0)
|
|
;
|
|
"RTN","EDPLOGA",31,0)
|
|
; Create a current log record
|
|
"RTN","EDPLOGA",32,0)
|
|
N FDA,FDAIEN,DIERR,HIST,HISTIEN,LOGIEN
|
|
"RTN","EDPLOGA",33,0)
|
|
S FDA(230,"+1,",.01)=TIME
|
|
"RTN","EDPLOGA",34,0)
|
|
S FDA(230,"+1,",.02)=EDPSITE
|
|
"RTN","EDPLOGA",35,0)
|
|
S FDA(230,"+1,",.03)=AREA
|
|
"RTN","EDPLOGA",36,0)
|
|
S FDA(230,"+1,",.04)=NAME
|
|
"RTN","EDPLOGA",37,0)
|
|
;S FDA(230,"+1,",.05)=SSN --NtoL
|
|
"RTN","EDPLOGA",38,0)
|
|
S FDA(230,"+1,",.06)=DFN
|
|
"RTN","EDPLOGA",39,0)
|
|
S FDA(230,"+1,",3.2)=STATUS
|
|
"RTN","EDPLOGA",40,0)
|
|
S FDA(230,"+1,",3.4)=BED
|
|
"RTN","EDPLOGA",41,0)
|
|
I $L(SSN) S FDA(230,"+1,",.11)=$E(NAME)_$E(SSN,6,9)
|
|
"RTN","EDPLOGA",42,0)
|
|
I NAME=AMB S FDA(230,"+1,",.11)="(amb)"
|
|
"RTN","EDPLOGA",43,0)
|
|
I NAME'=AMB S FDA(230,"+1,",.08)=TIME
|
|
"RTN","EDPLOGA",44,0)
|
|
I $G(ARR) S FDA(230,"+1,",.1)=ARR
|
|
"RTN","EDPLOGA",45,0)
|
|
I CLINIC S FDA(230,"+1,",.14)=CLINIC
|
|
"RTN","EDPLOGA",46,0)
|
|
I $G(REC("create")) S FDA(230,"+1,",.13)=REC("create")
|
|
"RTN","EDPLOGA",47,0)
|
|
M HIST(230.1)=FDA(230)
|
|
"RTN","EDPLOGA",48,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPLOGA",49,0)
|
|
I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q
|
|
"RTN","EDPLOGA",50,0)
|
|
S LOGIEN=FDAIEN(1)
|
|
"RTN","EDPLOGA",51,0)
|
|
;
|
|
"RTN","EDPLOGA",52,0)
|
|
; Post new patient event
|
|
"RTN","EDPLOGA",53,0)
|
|
I DFN,TIME D EVT(LOGIEN)
|
|
"RTN","EDPLOGA",54,0)
|
|
;
|
|
"RTN","EDPLOGA",55,0)
|
|
; Create the first history entry
|
|
"RTN","EDPLOGA",56,0)
|
|
S HIST(230.1,"+1,",.01)=LOGIEN
|
|
"RTN","EDPLOGA",57,0)
|
|
S HIST(230.1,"+1,",.02)=TIME
|
|
"RTN","EDPLOGA",58,0)
|
|
S HIST(230.1,"+1,",.03)=EDPUSER
|
|
"RTN","EDPLOGA",59,0)
|
|
K HIST(230.1,"+1,",.11) ; don't need last4
|
|
"RTN","EDPLOGA",60,0)
|
|
K HIST(230.1,"+1,",.13) ; don't need creation source
|
|
"RTN","EDPLOGA",61,0)
|
|
D UPDATE^DIE("","HIST","HISTIEN","ERR")
|
|
"RTN","EDPLOGA",62,0)
|
|
I $D(DIERR) D FAIL^EDPLOG("add",2300004) Q
|
|
"RTN","EDPLOGA",63,0)
|
|
;
|
|
"RTN","EDPLOGA",64,0)
|
|
D XML^EDPX("<add status='ok' id='"_FDAIEN(1)_"' />")
|
|
"RTN","EDPLOGA",65,0)
|
|
D GET^EDPQLE(FDAIEN(1),CHOICES)
|
|
"RTN","EDPLOGA",66,0)
|
|
Q
|
|
"RTN","EDPLOGA",67,0)
|
|
;
|
|
"RTN","EDPLOGA",68,0)
|
|
DEL(AREA,LOGID) ; Delete Stub Log Entry
|
|
"RTN","EDPLOGA",69,0)
|
|
N I,CNT,DIK,DA
|
|
"RTN","EDPLOGA",70,0)
|
|
S I=0,CNT=0 F S I=$O(^EDP(230.1,"B",LOGID,I)) Q:'I S CNT=CNT+1
|
|
"RTN","EDPLOGA",71,0)
|
|
I $L($P($G(^EDP(230,LOGID,1)),U))!(CNT>1) D Q
|
|
"RTN","EDPLOGA",72,0)
|
|
. D FAIL^EDPLOG("upd","Does not appear to be a stub entry")
|
|
"RTN","EDPLOGA",73,0)
|
|
;
|
|
"RTN","EDPLOGA",74,0)
|
|
; Delete initial history entry
|
|
"RTN","EDPLOGA",75,0)
|
|
S DIK="^EDP(230.1,",DA=$O(^EDP(230.1,"B",LOGID,0))
|
|
"RTN","EDPLOGA",76,0)
|
|
I DA D ^DIK
|
|
"RTN","EDPLOGA",77,0)
|
|
; Delete stub log entry
|
|
"RTN","EDPLOGA",78,0)
|
|
S DIK="^EDP(230,",DA=LOGID
|
|
"RTN","EDPLOGA",79,0)
|
|
D ^DIK
|
|
"RTN","EDPLOGA",80,0)
|
|
;
|
|
"RTN","EDPLOGA",81,0)
|
|
D XML^EDPX("<upd status='ok' />")
|
|
"RTN","EDPLOGA",82,0)
|
|
Q
|
|
"RTN","EDPLOGA",83,0)
|
|
;
|
|
"RTN","EDPLOGA",84,0)
|
|
EVT(LOG) ; -- post new patient event [expects EDPSITE]
|
|
"RTN","EDPLOGA",85,0)
|
|
N X0,DFN,SDT,SDCL,SDATA,SDAMEVT,X
|
|
"RTN","EDPLOGA",86,0)
|
|
S X0=$G(^EDP(230,+$G(LOG),0)),DFN=+$P(X0,U,6),SDT=+$P(X0,U,8)
|
|
"RTN","EDPLOGA",87,0)
|
|
I 'DFN!'SDT Q ;missing data
|
|
"RTN","EDPLOGA",88,0)
|
|
S SDCL=$$DFLTLOC^EDPLPCE(DFN) Q:'SDCL
|
|
"RTN","EDPLOGA",89,0)
|
|
; have patient, time, hosp loc -> post event
|
|
"RTN","EDPLOGA",90,0)
|
|
S SDATA=U_DFN_U_SDT_U_SDCL,SDAMEVT=1
|
|
"RTN","EDPLOGA",91,0)
|
|
S EDPDATA=LOG_SDATA
|
|
"RTN","EDPLOGA",92,0)
|
|
S X=+$O(^ORD(101,"B","EDP NEW PATIENT",0))_";ORD(101,"
|
|
"RTN","EDPLOGA",93,0)
|
|
D EN^XQOR
|
|
"RTN","EDPLOGA",94,0)
|
|
Q
|
|
"RTN","EDPLOGH")
|
|
0^40^B9457380
|
|
"RTN","EDPLOGH",1,0)
|
|
EDPLOGH ;SLC/KCM - Add History Entry for ED Log
|
|
"RTN","EDPLOGH",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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","EDPLOGH",15,0)
|
|
COLLIDE(LOG,LOADTS) ; return true if new updates since load time
|
|
"RTN","EDPLOGH",16,0)
|
|
N I,J,TS,IEN,FLDS,MODS
|
|
"RTN","EDPLOGH",17,0)
|
|
S TS=LOADTS-0.000001
|
|
"RTN","EDPLOGH",18,0)
|
|
F S TS=$O(^EDP(230.1,"ADF",LOG,TS)) Q:'TS D
|
|
"RTN","EDPLOGH",19,0)
|
|
. S IEN=0 F S IEN=$O(^EDP(230.1,"ADF",LOG,TS,IEN)) Q:'IEN D
|
|
"RTN","EDPLOGH",20,0)
|
|
.. S MODS=$P($G(^EDP(230.1,IEN,9)),U)
|
|
"RTN","EDPLOGH",21,0)
|
|
.. F J=1:1:$L(MODS,";") I $L($P(MODS,";",J)) S FLDS($P(MODS,";",J))=""
|
|
"RTN","EDPLOGH",22,0)
|
|
; no collisions
|
|
"RTN","EDPLOGH",23,0)
|
|
I $D(FLDS)<10 Q 0
|
|
"RTN","EDPLOGH",24,0)
|
|
;
|
|
"RTN","EDPLOGH",25,0)
|
|
; handle collisions
|
|
"RTN","EDPLOGH",26,0)
|
|
D XML^EDPX("<upd id='"_LOG_"' status='collision' loadTS='"_$$NOW^XLFDT_"'>")
|
|
"RTN","EDPLOGH",27,0)
|
|
D XML^EDPX("Since you loaded this entry, changes have been made by someone else:")
|
|
"RTN","EDPLOGH",28,0)
|
|
D XML^EDPX(" ")
|
|
"RTN","EDPLOGH",29,0)
|
|
N X,X0,X1,X2,X3,PT
|
|
"RTN","EDPLOGH",30,0)
|
|
S X0=^EDP(230,LOG,0),X1=$G(^(1)),X2=$G(^(2)),X3=$G(^(3)),PT=0
|
|
"RTN","EDPLOGH",31,0)
|
|
S I=0 F S I=$O(FLDS(I)) Q:'I D
|
|
"RTN","EDPLOGH",32,0)
|
|
. I I=.04 S X=$P(X0,U,4) D MSG(X,"Patient Name") S PT=1
|
|
"RTN","EDPLOGH",33,0)
|
|
. I (I=.06),'PT S X=$P(X0,U,6) D MSG($P($G(^DPT(+X,0)),U),"Patient Name")
|
|
"RTN","EDPLOGH",34,0)
|
|
. I I=.1 S X=$P(X0,U,10) D MSG($$CODE(X),"Source")
|
|
"RTN","EDPLOGH",35,0)
|
|
. I I=1.1 S X=$P(X1,U,1) D MSG(X,"Complaint")
|
|
"RTN","EDPLOGH",36,0)
|
|
. I I=1.2 S X=$P(X1,U,2) D MSG($$CODE(X),"Disposition")
|
|
"RTN","EDPLOGH",37,0)
|
|
. I I=1.5 S X=$P(X1,U,5) D MSG($$CODE(X),"Delay Reason")
|
|
"RTN","EDPLOGH",38,0)
|
|
. I I=2 S X=$P(X2,U,1) D MSG(X,"Long Complaint")
|
|
"RTN","EDPLOGH",39,0)
|
|
. I I=3.2 S X=$P(X3,U,2) D MSG($$CODE(X),"Status")
|
|
"RTN","EDPLOGH",40,0)
|
|
. I I=3.3 S X=$P(X3,U,3) D MSG($$CODE(X),"Acuity")
|
|
"RTN","EDPLOGH",41,0)
|
|
. I I=3.4 S X=$P(X3,U,4) D MSG($P($G(^EDPB(231.8,+X,0)),U),"Room/Area")
|
|
"RTN","EDPLOGH",42,0)
|
|
. I I=3.5 S X=$P(X3,U,5) D MSG($$NP(X),"Provider")
|
|
"RTN","EDPLOGH",43,0)
|
|
. I I=3.6 S X=$P(X3,U,6) D MSG($$NP(X),"Nurse")
|
|
"RTN","EDPLOGH",44,0)
|
|
. I I=3.7 S X=$P(X3,U,7) D MSG($$NP(X),"Resident")
|
|
"RTN","EDPLOGH",45,0)
|
|
. I I=3.8 S X=$P(X3,U,8) D MSG(X,"Comment")
|
|
"RTN","EDPLOGH",46,0)
|
|
. I I=4 D MSG($$DIAG(LOG),"Diagnosis")
|
|
"RTN","EDPLOGH",47,0)
|
|
D XML^EDPX(" ")
|
|
"RTN","EDPLOGH",48,0)
|
|
D XML^EDPX("If you wish to overwrite with your changes,")
|
|
"RTN","EDPLOGH",49,0)
|
|
D XML^EDPX("close this window and click SAVE again.")
|
|
"RTN","EDPLOGH",50,0)
|
|
D XML^EDPX("If you wish to leave this entry as is,")
|
|
"RTN","EDPLOGH",51,0)
|
|
D XML^EDPX("close this window and click CANCEL.")
|
|
"RTN","EDPLOGH",52,0)
|
|
D XML^EDPX("</upd>")
|
|
"RTN","EDPLOGH",53,0)
|
|
Q 1
|
|
"RTN","EDPLOGH",54,0)
|
|
;
|
|
"RTN","EDPLOGH",55,0)
|
|
BEDGONE(AREA,CURBED,BED) ; return true if bed is no longer available
|
|
"RTN","EDPLOGH",56,0)
|
|
I 'BED Q 0
|
|
"RTN","EDPLOGH",57,0)
|
|
I BED=CURBED Q 0
|
|
"RTN","EDPLOGH",58,0)
|
|
N MULTI S MULTI=$P(^EDPB(231.8,BED,0),U,9) S:MULTI=3 MULTI=0
|
|
"RTN","EDPLOGH",59,0)
|
|
I MULTI Q 0
|
|
"RTN","EDPLOGH",60,0)
|
|
I '$D(^EDP(230,"AL",EDPSITE,AREA,BED)) Q 0
|
|
"RTN","EDPLOGH",61,0)
|
|
Q 1
|
|
"RTN","EDPLOGH",62,0)
|
|
;
|
|
"RTN","EDPLOGH",63,0)
|
|
MSG(VAL,LBL) ; add to XML message
|
|
"RTN","EDPLOGH",64,0)
|
|
D XML^EDPX(LBL_" changed to: "_VAL)
|
|
"RTN","EDPLOGH",65,0)
|
|
Q
|
|
"RTN","EDPLOGH",66,0)
|
|
CODE(IEN) ; return coded value
|
|
"RTN","EDPLOGH",67,0)
|
|
I IEN Q $P(^EDPB(233.1,IEN,0),U,2)
|
|
"RTN","EDPLOGH",68,0)
|
|
Q ""
|
|
"RTN","EDPLOGH",69,0)
|
|
NP(IEN) ; return New Person name
|
|
"RTN","EDPLOGH",70,0)
|
|
I IEN Q $P(^VA(200,IEN,0),U)
|
|
"RTN","EDPLOGH",71,0)
|
|
Q ""
|
|
"RTN","EDPLOGH",72,0)
|
|
DIAG(LOG) ; return list of diagnoses
|
|
"RTN","EDPLOGH",73,0)
|
|
N I,X
|
|
"RTN","EDPLOGH",74,0)
|
|
S I=0,X=""
|
|
"RTN","EDPLOGH",75,0)
|
|
F S I=$O(^EDP(230,LOG,4,I)) Q:'I S X=X_$S($L(X):",",1:"")_$P($G(^EDP(230,LOG,4,I,0)),U)
|
|
"RTN","EDPLOGH",76,0)
|
|
Q X
|
|
"RTN","EDPLPCE")
|
|
0^49^B32802123
|
|
"RTN","EDPLPCE",1,0)
|
|
EDPLPCE ;SLC/KCM - Create a Visit
|
|
"RTN","EDPLPCE",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,X0
|
|
"RTN","EDPLPCE",8,0)
|
|
S X0=^EDP(230,LOG,0),DFN=$P(X0,U,6),TS=$P(X0,U,8),LOC=$P(X0,U,14)
|
|
"RTN","EDPLPCE",9,0)
|
|
I 'LOC S LOC=$$DFLTLOC(DFN)
|
|
"RTN","EDPLPCE",10,0)
|
|
I 'DFN!('TS)!('LOC) Q 0 ; not enough info
|
|
"RTN","EDPLPCE",11,0)
|
|
;
|
|
"RTN","EDPLPCE",12,0)
|
|
N EDPDATA,EDPVISIT,EDPPCHG
|
|
"RTN","EDPLPCE",13,0)
|
|
S EDPVISIT=$P(X0,U,12),EDPPCHG=0 S:'EDPVISIT TS=$$TS4VISIT(DFN,LOC,TS)
|
|
"RTN","EDPLPCE",14,0)
|
|
;
|
|
"RTN","EDPLPCE",15,0)
|
|
; if closed record and no visit, bail
|
|
"RTN","EDPLPCE",16,0)
|
|
I $P(X0,U,7),'EDPVISIT Q 0
|
|
"RTN","EDPLPCE",17,0)
|
|
;
|
|
"RTN","EDPLPCE",18,0)
|
|
; if no visit, but diagnoses exist, xfer the diagnoses
|
|
"RTN","EDPLPCE",19,0)
|
|
I 'EDPVISIT D XFERDIAG(LOG,.PCE)
|
|
"RTN","EDPLPCE",20,0)
|
|
; remove current primary provider(s) if there is a new one
|
|
"RTN","EDPLPCE",21,0)
|
|
I EDPVISIT,$G(PCE("PRI")) D
|
|
"RTN","EDPLPCE",22,0)
|
|
. N IPRV,XPRV,OLDPRI
|
|
"RTN","EDPLPCE",23,0)
|
|
. K ^TMP("PXKENC",$J)
|
|
"RTN","EDPLPCE",24,0)
|
|
. D ENCEVENT^PXAPI(EDPVISIT)
|
|
"RTN","EDPLPCE",25,0)
|
|
. S IPRV=0 F S IPRV=$O(^TMP("PXKENC",$J,EDPVISIT,"PRV",IPRV)) Q:'IPRV D
|
|
"RTN","EDPLPCE",26,0)
|
|
.. S XPRV=^TMP("PXKENC",$J,EDPVISIT,"PRV",IPRV,0)
|
|
"RTN","EDPLPCE",27,0)
|
|
.. Q:$P(XPRV,U,4)'="P"
|
|
"RTN","EDPLPCE",28,0)
|
|
.. I +XPRV'=$G(PCE("PRI")) S EDPDATA("PROVIDER",IPRV,"NAME")=+XPRV,EDPDATA("PROVIDER",IPRV,"PRIMARY")=0
|
|
"RTN","EDPLPCE",29,0)
|
|
; add any new providers that were entered
|
|
"RTN","EDPLPCE",30,0)
|
|
S I=0 F S I=$O(PCE("PRV",I)) Q:'I D
|
|
"RTN","EDPLPCE",31,0)
|
|
. S EDPDATA("PROVIDER",I,"NAME")=+PCE("PRV",I)
|
|
"RTN","EDPLPCE",32,0)
|
|
. I +PCE("PRV",I)=$G(PCE("PRI")) S EDPDATA("PROVIDER",I,"PRIMARY")=1,EDPPCHG=1
|
|
"RTN","EDPLPCE",33,0)
|
|
; update diagnoses
|
|
"RTN","EDPLPCE",34,0)
|
|
S I=0 F S I=$O(PCE("POV",I)) Q:'I D
|
|
"RTN","EDPLPCE",35,0)
|
|
. S X=PCE("POV",I)
|
|
"RTN","EDPLPCE",36,0)
|
|
. Q:'($P(X,U,5)!$P(X,U,6)!$P(X,U,7)) ; no updates for this diagnosis
|
|
"RTN","EDPLPCE",37,0)
|
|
. I $P(X,U,2) D
|
|
"RTN","EDPLPCE",38,0)
|
|
.. N CODE S CODE=$$ICDONE^LEXU($P(X,U,2),TS)
|
|
"RTN","EDPLPCE",39,0)
|
|
.. S $P(X,U,3)=CODE
|
|
"RTN","EDPLPCE",40,0)
|
|
. Q:'$L($P(X,U,3)) ; not coded
|
|
"RTN","EDPLPCE",41,0)
|
|
. S IEN=+$O(^ICD9("BA",$P(X,U,3)_" ",0)) Q:'IEN
|
|
"RTN","EDPLPCE",42,0)
|
|
. S EDPDATA("DX/PL",I,"DIAGNOSIS")=IEN
|
|
"RTN","EDPLPCE",43,0)
|
|
. S EDPDATA("DX/PL",I,"NARRATIVE")=$P(X,U,4)
|
|
"RTN","EDPLPCE",44,0)
|
|
. I $P(X,U,8) S EDPDATA("DX/PL",I,"PRIMARY")=1
|
|
"RTN","EDPLPCE",45,0)
|
|
. I $P(X,U,6) S EDPDATA("DX/PL",I,"DELETE")=1
|
|
"RTN","EDPLPCE",46,0)
|
|
; update procedures
|
|
"RTN","EDPLPCE",47,0)
|
|
S I=0 F S I=$O(PCE("CPT",I)) Q:'I D
|
|
"RTN","EDPLPCE",48,0)
|
|
. S X=PCE("CPT",I)
|
|
"RTN","EDPLPCE",49,0)
|
|
. Q:'($P(X,U,5)!$P(X,U,6)!$P(X,U,7)) ; no updates for this procedure
|
|
"RTN","EDPLPCE",50,0)
|
|
. I $P(X,U,2) D
|
|
"RTN","EDPLPCE",51,0)
|
|
.. N CODE S CODE=$$CPTONE^LEXU($P(X,U,2),TS)
|
|
"RTN","EDPLPCE",52,0)
|
|
.. S $P(X,U,3)=CODE
|
|
"RTN","EDPLPCE",53,0)
|
|
. Q:'$L($P(X,U,3)) ; not coded
|
|
"RTN","EDPLPCE",54,0)
|
|
. S IEN=+$O(^ICPT("B",$P(X,U,3),0))
|
|
"RTN","EDPLPCE",55,0)
|
|
. S EDPDATA("PROCEDURE",I,"PROCEDURE")=IEN
|
|
"RTN","EDPLPCE",56,0)
|
|
. S EDPDATA("PROCEDURE",I,"QTY")=$S($P(X,U,9):$P(X,U,9),1:1)
|
|
"RTN","EDPLPCE",57,0)
|
|
. S EDPDATA("PROCEDURE",I,"NARRATIVE")=$P(X,U,4)
|
|
"RTN","EDPLPCE",58,0)
|
|
. I $P(X,U,6) S EDPDATA("PROCEDURE",I,"DELETE")=1
|
|
"RTN","EDPLPCE",59,0)
|
|
; exit if no updates
|
|
"RTN","EDPLPCE",60,0)
|
|
Q:'$D(EDPDATA) 0
|
|
"RTN","EDPLPCE",61,0)
|
|
;
|
|
"RTN","EDPLPCE",62,0)
|
|
N EDPKG,EDPSRC,EDPERR,OK
|
|
"RTN","EDPLPCE",63,0)
|
|
S EDPKG=$O(^DIC(9.4,"B","EMERGENCY DEPARTMENT",0))
|
|
"RTN","EDPLPCE",64,0)
|
|
S EDPSRC="EDP TRACKING LOG"
|
|
"RTN","EDPLPCE",65,0)
|
|
S EDPDATA("ENCOUNTER",1,"PATIENT")=DFN
|
|
"RTN","EDPLPCE",66,0)
|
|
S EDPDATA("ENCOUNTER",1,"HOS LOC")=LOC
|
|
"RTN","EDPLPCE",67,0)
|
|
S EDPDATA("ENCOUNTER",1,"SERVICE CATEGORY")="A"
|
|
"RTN","EDPLPCE",68,0)
|
|
S EDPDATA("ENCOUNTER",1,"ENCOUNTER TYPE")="P"
|
|
"RTN","EDPLPCE",69,0)
|
|
I 'EDPVISIT S EDPDATA("ENCOUNTER",1,"ENC D/T")=TS
|
|
"RTN","EDPLPCE",70,0)
|
|
S OK=$$DATA2PCE^PXAPI("EDPDATA",EDPKG,EDPSRC,.EDPVISIT,,,,EDPPCHG,.EDPERR)
|
|
"RTN","EDPLPCE",71,0)
|
|
I OK<1 D
|
|
"RTN","EDPLPCE",72,0)
|
|
. N NOW S NOW=$$NOW^XLFDT
|
|
"RTN","EDPLPCE",73,0)
|
|
. S ^XTMP("EDPERR-PCE-"_LOG,0)=$$FMADD^XLFDT(NOW,7)_U_NOW_U_"ED PCE Error"
|
|
"RTN","EDPLPCE",74,0)
|
|
. S ^XTMP("EDPERR-PCE-"_LOG,"VISIT")=EDPVISIT_U_OK
|
|
"RTN","EDPLPCE",75,0)
|
|
. M ^XTMP("EDPERR-PCE-"_LOG,"DATA")=EDPDATA
|
|
"RTN","EDPLPCE",76,0)
|
|
. M ^XTMP("EDPERR-PCE-"_LOG,"ERR")=EDPERR
|
|
"RTN","EDPLPCE",77,0)
|
|
;
|
|
"RTN","EDPLPCE",78,0)
|
|
; update the visit pointer in 230
|
|
"RTN","EDPLPCE",79,0)
|
|
I EDPVISIT,OK,($P(X0,U,12)'=EDPVISIT) D
|
|
"RTN","EDPLPCE",80,0)
|
|
. N FDA,DIERR,ERR
|
|
"RTN","EDPLPCE",81,0)
|
|
. S FDA(230,LOG_",",.12)=EDPVISIT
|
|
"RTN","EDPLPCE",82,0)
|
|
. D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPLPCE",83,0)
|
|
Q
|
|
"RTN","EDPLPCE",84,0)
|
|
XFERDIAG(LOG,PCE) ; Setup diagnosis list based on entries in 230
|
|
"RTN","EDPLPCE",85,0)
|
|
N IEN,X0,CODE
|
|
"RTN","EDPLPCE",86,0)
|
|
K PCE("POV") ; not worried about adds & subtracts, so start over
|
|
"RTN","EDPLPCE",87,0)
|
|
S IEN=0 F S IEN=$O(^EDP(230,LOG,4,IEN)) Q:'IEN D
|
|
"RTN","EDPLPCE",88,0)
|
|
. S X0=$G(^EDP(230,LOG,4,IEN,0))
|
|
"RTN","EDPLPCE",89,0)
|
|
. S PCE("POV",IEN)="POV^^^^1"
|
|
"RTN","EDPLPCE",90,0)
|
|
. S CODE=$P(X0,U,2) S:CODE CODE=$P(^ICD9(CODE,0),U)
|
|
"RTN","EDPLPCE",91,0)
|
|
. S $P(PCE("POV",IEN),U,3)=CODE ; code
|
|
"RTN","EDPLPCE",92,0)
|
|
. S $P(PCE("POV",IEN),U,4)=$P(X0,U) ; text
|
|
"RTN","EDPLPCE",93,0)
|
|
. S $P(PCE("POV",IEN),U,8)=$P(X0,U,3) ; primary
|
|
"RTN","EDPLPCE",94,0)
|
|
Q
|
|
"RTN","EDPLPCE",95,0)
|
|
DELVISIT(LOG) ; Delete visit for stub entry
|
|
"RTN","EDPLPCE",96,0)
|
|
N EDPVISIT S EDPVISIT=$P(^EDP(230,LOG,0),U,12)
|
|
"RTN","EDPLPCE",97,0)
|
|
Q:'EDPVISIT
|
|
"RTN","EDPLPCE",98,0)
|
|
;
|
|
"RTN","EDPLPCE",99,0)
|
|
N FDA,DIERR,ERR
|
|
"RTN","EDPLPCE",100,0)
|
|
S FDA(230,LOG_",",.12)="@"
|
|
"RTN","EDPLPCE",101,0)
|
|
D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPLPCE",102,0)
|
|
;
|
|
"RTN","EDPLPCE",103,0)
|
|
S OK=$$DELVFILE^PXAPI("ALL",EDPVISIT,"EMERGENCY DEPARTMENT","EDP TRACKING LOG")
|
|
"RTN","EDPLPCE",104,0)
|
|
Q
|
|
"RTN","EDPLPCE",105,0)
|
|
DFLTLOC(DFN) ; Return the default location for the ED
|
|
"RTN","EDPLPCE",106,0)
|
|
N EDPLST,I,LST,TM,BEG,END,LOCS
|
|
"RTN","EDPLPCE",107,0)
|
|
D GETLST^XPAR(.EDPLST,EDPSITE_";DIC(4,","EDPF LOCATION","Q")
|
|
"RTN","EDPLPCE",108,0)
|
|
S TM=$E($P($$NOW^XLFDT,".",2)_"0000",1,4)
|
|
"RTN","EDPLPCE",109,0)
|
|
; put time ranges first, then sequence
|
|
"RTN","EDPLPCE",110,0)
|
|
S I=0 F S I=$O(EDPLST(I)) Q:'I D
|
|
"RTN","EDPLPCE",111,0)
|
|
. ; put sequence at end of list
|
|
"RTN","EDPLPCE",112,0)
|
|
. I EDPLST(I)'["-" S LST(+EDPLST(I)*1000)=EDPLST(I),LOCS(+$P(EDPLST(I),U,2))="" Q
|
|
"RTN","EDPLPCE",113,0)
|
|
. ; put time ranges at top of list
|
|
"RTN","EDPLPCE",114,0)
|
|
. S BEG=+$P(EDPLST(I),"-"),END=+$P(EDPLST(I),"-",2)
|
|
"RTN","EDPLPCE",115,0)
|
|
. I (TM<BEG)!(TM>END) Q ; eliminating times that don't include NOW
|
|
"RTN","EDPLPCE",116,0)
|
|
. S LST(I)=EDPLST(I),LOCS(+$P(EDPLST(I),U,2))=""
|
|
"RTN","EDPLPCE",117,0)
|
|
;
|
|
"RTN","EDPLPCE",118,0)
|
|
; look for visits to ED locations within the last hour
|
|
"RTN","EDPLPCE",119,0)
|
|
N BACKTO,VTM,VLOC,LOC
|
|
"RTN","EDPLPCE",120,0)
|
|
S BACKTO=$$FMADD^XLFDT($$NOW^XLFDT,0,-1),LOC=0
|
|
"RTN","EDPLPCE",121,0)
|
|
I $G(DFN) D
|
|
"RTN","EDPLPCE",122,0)
|
|
. S VTM="" F S VTM=$O(^AUPNVSIT("AET",DFN,VTM),-1) Q:VTM<BACKTO D
|
|
"RTN","EDPLPCE",123,0)
|
|
.. S VLOC=0 F S VLOC=$O(^AUPNVSIT("AET",DFN,VTM,VLOC)) Q:'VLOC D Q:LOC
|
|
"RTN","EDPLPCE",124,0)
|
|
... I $D(LOCS(VLOC)) S LOC=VLOC
|
|
"RTN","EDPLPCE",125,0)
|
|
Q:LOC LOC
|
|
"RTN","EDPLPCE",126,0)
|
|
;
|
|
"RTN","EDPLPCE",127,0)
|
|
; otherwise, return the highest ranked location
|
|
"RTN","EDPLPCE",128,0)
|
|
S I=$O(LST(0)) S:I LOC=$P(LST(I),U,2)
|
|
"RTN","EDPLPCE",129,0)
|
|
Q LOC
|
|
"RTN","EDPLPCE",130,0)
|
|
;
|
|
"RTN","EDPLPCE",131,0)
|
|
TS4VISIT(DFN,LOC,TS) ; Return visit time if there is already a visit
|
|
"RTN","EDPLPCE",132,0)
|
|
N BACKTO,VTM,VLOC,VCAT,NEWTS
|
|
"RTN","EDPLPCE",133,0)
|
|
S BACKTO=$$FMADD^XLFDT($$NOW^XLFDT,0,-1),NEWTS=""
|
|
"RTN","EDPLPCE",134,0)
|
|
S VTM="" F S VTM=$O(^AUPNVSIT("AET",DFN,VTM),-1) Q:VTM<BACKTO D
|
|
"RTN","EDPLPCE",135,0)
|
|
. S VLOC=0 F S VLOC=$O(^AUPNVSIT("AET",DFN,VTM,VLOC)) Q:'VLOC Q:VLOC'=LOC D
|
|
"RTN","EDPLPCE",136,0)
|
|
.. S VCAT="" F S VCAT=$O(^AUPNVSIT("AET",DFN,VTM,VLOC,VCAT)) Q:VCAT'="P" D
|
|
"RTN","EDPLPCE",137,0)
|
|
... S NEWTS=VTM
|
|
"RTN","EDPLPCE",138,0)
|
|
Q:NEWTS NEWTS
|
|
"RTN","EDPLPCE",139,0)
|
|
Q TS
|
|
"RTN","EDPLPCE",140,0)
|
|
;
|
|
"RTN","EDPLPCE",141,0)
|
|
TEST ; Test creation of encounter
|
|
"RTN","EDPLPCE",142,0)
|
|
N DFN S DFN=100679
|
|
"RTN","EDPLPCE",143,0)
|
|
S LOC=$$GET^XPAR(DUZ(2)_";DIC(4,","EDPF LOCATION")
|
|
"RTN","EDPLPCE",144,0)
|
|
;
|
|
"RTN","EDPLPCE",145,0)
|
|
N EDPKG,EDPSRC,OK
|
|
"RTN","EDPLPCE",146,0)
|
|
S EDPKG=$O(^DIC(9.4,"B","EMERGENCY DEPARTMENT",0))
|
|
"RTN","EDPLPCE",147,0)
|
|
S EDPSRC="EDP TRACKING LOG"
|
|
"RTN","EDPLPCE",148,0)
|
|
S EDPDATA("ENCOUNTER",1,"PATIENT")=DFN
|
|
"RTN","EDPLPCE",149,0)
|
|
S EDPDATA("ENCOUNTER",1,"HOS LOC")=LOC
|
|
"RTN","EDPLPCE",150,0)
|
|
S EDPDATA("ENCOUNTER",1,"SERVICE CATEGORY")="A"
|
|
"RTN","EDPLPCE",151,0)
|
|
S EDPDATA("ENCOUNTER",1,"ENCOUNTER TYPE")="P"
|
|
"RTN","EDPLPCE",152,0)
|
|
S EDPDATA("ENCOUNTER",1,"ENC D/T")=$$NOW^XLFDT
|
|
"RTN","EDPLPCE",153,0)
|
|
;
|
|
"RTN","EDPLPCE",154,0)
|
|
;S EDPDATA("DX/PL",1,"DIAGNOSIS")=$O(^ICD9("BA","V70.3 ",0))
|
|
"RTN","EDPLPCE",155,0)
|
|
;S EDPDATA("PROCEDURE",1,"PROCEDURE")=$O(^ICPT("B","99201",0))
|
|
"RTN","EDPLPCE",156,0)
|
|
S EDPDATA("PROVIDER",1,"NAME")=9066
|
|
"RTN","EDPLPCE",157,0)
|
|
;
|
|
"RTN","EDPLPCE",158,0)
|
|
S OK=$$DATA2PCE^PXAPI("EDPDATA",EDPKG,EDPSRC,.EDPVISIT)
|
|
"RTN","EDPLPCE",159,0)
|
|
Q
|
|
"RTN","EDPMAIL")
|
|
0^41^B7335309
|
|
"RTN","EDPMAIL",1,0)
|
|
EDPMAIL ;SLC/KCM - Process incoming mail for posted events
|
|
"RTN","EDPMAIL",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,EDPDBUG
|
|
"RTN","EDPMAIL",6,0)
|
|
S EDPDBUG=$$DEBUG^EDPCDBG("messages")
|
|
"RTN","EDPMAIL",7,0)
|
|
I EDPDBUG D PUTREQ^EDPCDBG(EDPDBUG,.MSG)
|
|
"RTN","EDPMAIL",8,0)
|
|
;
|
|
"RTN","EDPMAIL",9,0)
|
|
S I=0 F S I=$O(MSG(I)) Q:'I S PARAM($P(MSG(I),"="))=$P(MSG(I),"=",2,99)
|
|
"RTN","EDPMAIL",10,0)
|
|
S LOG=$$VAL("id"),ORIFN=$$VAL("orifn")
|
|
"RTN","EDPMAIL",11,0)
|
|
I $$VAL("command")="newOrder" D NEW
|
|
"RTN","EDPMAIL",12,0)
|
|
I $$VAL("command")="updateOrder" D UPD
|
|
"RTN","EDPMAIL",13,0)
|
|
I $$VAL("command")="deleteOrder" D DEL
|
|
"RTN","EDPMAIL",14,0)
|
|
I $$VAL("command")="verifyOrder" D VER
|
|
"RTN","EDPMAIL",15,0)
|
|
I $$VAL("command")="completeOrder" D COMP
|
|
"RTN","EDPMAIL",16,0)
|
|
I $$VAL("command")="patientCheckIn" D CHKIN
|
|
"RTN","EDPMAIL",17,0)
|
|
I $$VAL("command")="convertVisit" D VST^EDPCONV(.PARAM)
|
|
"RTN","EDPMAIL",18,0)
|
|
I $$VAL("command")="convertConfiguration" D CONFIG^EDPCONV1(.PARAM)
|
|
"RTN","EDPMAIL",19,0)
|
|
Q
|
|
"RTN","EDPMAIL",20,0)
|
|
;
|
|
"RTN","EDPMAIL",21,0)
|
|
NEW ; add new order
|
|
"RTN","EDPMAIL",22,0)
|
|
Q:'LOG Q:'ORIFN
|
|
"RTN","EDPMAIL",23,0)
|
|
N X,Y,DIC,DA
|
|
"RTN","EDPMAIL",24,0)
|
|
S DIC="^EDP(230,"_LOG_",8,",DIC(0)="LZ",DA(1)=LOG,X=+ORIFN
|
|
"RTN","EDPMAIL",25,0)
|
|
S DIC("DR")=".02///"_$$VAL("pkg")_";.03///N;.05///"_$$VAL("release")
|
|
"RTN","EDPMAIL",26,0)
|
|
S:$$VAL("stat") DIC("DR")=DIC("DR")_";.04///1"
|
|
"RTN","EDPMAIL",27,0)
|
|
D FILE^DICN
|
|
"RTN","EDPMAIL",28,0)
|
|
Q
|
|
"RTN","EDPMAIL",29,0)
|
|
UPD ; update order
|
|
"RTN","EDPMAIL",30,0)
|
|
Q:'LOG Q:'ORIFN Q:'$L($$VAL("sts"))
|
|
"RTN","EDPMAIL",31,0)
|
|
N IEN S IEN=$$FIND Q:IEN<1
|
|
"RTN","EDPMAIL",32,0)
|
|
I $D(^EDP(230,LOG,8,+IEN,0)) S $P(^(0),U,3)=$$VAL("sts")
|
|
"RTN","EDPMAIL",33,0)
|
|
Q
|
|
"RTN","EDPMAIL",34,0)
|
|
DEL ; delete order
|
|
"RTN","EDPMAIL",35,0)
|
|
Q:'LOG Q:'ORIFN
|
|
"RTN","EDPMAIL",36,0)
|
|
N DIK,DA
|
|
"RTN","EDPMAIL",37,0)
|
|
S DA=$$FIND Q:DA<1
|
|
"RTN","EDPMAIL",38,0)
|
|
S DIK="^EDP(230,"_LOG_",8,",DA(1)=LOG
|
|
"RTN","EDPMAIL",39,0)
|
|
D ^DIK
|
|
"RTN","EDPMAIL",40,0)
|
|
Q
|
|
"RTN","EDPMAIL",41,0)
|
|
VER ; verify order
|
|
"RTN","EDPMAIL",42,0)
|
|
Q:'LOG Q:'ORIFN
|
|
"RTN","EDPMAIL",43,0)
|
|
N IEN S IEN=$$FIND Q:IEN<1
|
|
"RTN","EDPMAIL",44,0)
|
|
I $P($G(^EDP(230,LOG,8,IEN,0)),U,3)'="C" S $P(^(0),U,3)="A"
|
|
"RTN","EDPMAIL",45,0)
|
|
Q
|
|
"RTN","EDPMAIL",46,0)
|
|
COMP ; complete order
|
|
"RTN","EDPMAIL",47,0)
|
|
Q:'LOG Q:'ORIFN
|
|
"RTN","EDPMAIL",48,0)
|
|
N IEN S IEN=$$FIND Q:IEN<1
|
|
"RTN","EDPMAIL",49,0)
|
|
S $P(^EDP(230,LOG,8,IEN,0),U,3)="C"
|
|
"RTN","EDPMAIL",50,0)
|
|
Q
|
|
"RTN","EDPMAIL",51,0)
|
|
;
|
|
"RTN","EDPMAIL",52,0)
|
|
FIND() ; -- return ien of ORIFN in multiple
|
|
"RTN","EDPMAIL",53,0)
|
|
N Y S Y=+$O(^EDP(230,LOG,8,"B",+ORIFN,0))
|
|
"RTN","EDPMAIL",54,0)
|
|
Q Y
|
|
"RTN","EDPMAIL",55,0)
|
|
;
|
|
"RTN","EDPMAIL",56,0)
|
|
VAL(X) ; -- return parameter value or null if undefined
|
|
"RTN","EDPMAIL",57,0)
|
|
Q $G(PARAM(X))
|
|
"RTN","EDPMAIL",58,0)
|
|
;
|
|
"RTN","EDPMAIL",59,0)
|
|
CHKIN ; check in a patient
|
|
"RTN","EDPMAIL",60,0)
|
|
Q:'$$VAL("dfn") Q:'$$VAL("ssn") Q:'$L($$VAL("ptNm")) Q:'$L($$VAL("site"))
|
|
"RTN","EDPMAIL",61,0)
|
|
N NEWPT
|
|
"RTN","EDPMAIL",62,0)
|
|
S NEWPT="dfn="_$$VAL("dfn")_$C(9)_"name="_$$VAL("ptNm")_$C(9)_"dob="_$$VAL("dob")_$C(9)_"ssn="_$$VAL("ssn")_$C(9)_"clinic="_$$VAL("hloc")
|
|
"RTN","EDPMAIL",63,0)
|
|
S NEWPT=NEWPT_$C(9)_"create=1" ; set Creation Source to Scheduling
|
|
"RTN","EDPMAIL",64,0)
|
|
N AREA
|
|
"RTN","EDPMAIL",65,0)
|
|
S AREA=$O(^EDPB(231.9,"C",$$VAL("site"),0)) Q:'AREA
|
|
"RTN","EDPMAIL",66,0)
|
|
N EDPXML,EDPSITE,EDPSTA
|
|
"RTN","EDPMAIL",67,0)
|
|
S EDPUSER=DUZ,EDPSITE=DUZ(2),EDPSTA=$$STA^XUAF4(DUZ(2))
|
|
"RTN","EDPMAIL",68,0)
|
|
D ADD^EDPLOGA(NEWPT,AREA,$$VAL("time"),0)
|
|
"RTN","EDPMAIL",69,0)
|
|
Q
|
|
"RTN","EDPQAR")
|
|
0^42^B6639632
|
|
"RTN","EDPQAR",1,0)
|
|
EDPQAR ;SLC/KCM - Log Area Information
|
|
"RTN","EDPQAR",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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("clinics")=+$P(X1,U,9)
|
|
"RTN","EDPQAR",14,0)
|
|
S X("emptyIEN")=+$O(^EDPB(233.1,"B","edp.reserved.novalue",0))
|
|
"RTN","EDPQAR",15,0)
|
|
S X("errorIEN")=+$O(^EDPB(233.1,"B","edp.disposition.error",0))
|
|
"RTN","EDPQAR",16,0)
|
|
S X("evalIEN")=+$O(^EDPB(233.1,"B","edp.disposition.nec",0))
|
|
"RTN","EDPQAR",17,0)
|
|
S X("leftIEN")=+$O(^EDPB(233.1,"B","edp.disposition.left",0))
|
|
"RTN","EDPQAR",18,0)
|
|
D XML^EDPX($$XMLA^EDPX("params",.X))
|
|
"RTN","EDPQAR",19,0)
|
|
Q
|
|
"RTN","EDPQAR",20,0)
|
|
; BYPASS & LSTIENS not implemented yet, perhaps in T25?
|
|
"RTN","EDPQAR",21,0)
|
|
; This would require changing the params VO to have a list
|
|
"RTN","EDPQAR",22,0)
|
|
; of IEN's that would be checked when enabling the remove from
|
|
"RTN","EDPQAR",23,0)
|
|
; board button. EDPLOG would also need to check the flags of
|
|
"RTN","EDPQAR",24,0)
|
|
; the disposition when validating in RDY2RMV
|
|
"RTN","EDPQAR",25,0)
|
|
BYPASS(AREA) ; list IEN's for bypass dispositions
|
|
"RTN","EDPQAR",26,0)
|
|
N ROOT
|
|
"RTN","EDPQAR",27,0)
|
|
D XML^EDPX("<bypassRemoveChecks>")
|
|
"RTN","EDPQAR",28,0)
|
|
S ROOT="edp.disposition" D LSTIENS(ROOT)
|
|
"RTN","EDPQAR",29,0)
|
|
S ROOT=EDPSTA_".disposition" D LSTIENS(ROOT)
|
|
"RTN","EDPQAR",30,0)
|
|
D XML^EDPX("</bypassRemoveChecks>")
|
|
"RTN","EDPQAR",31,0)
|
|
Q
|
|
"RTN","EDPQAR",32,0)
|
|
LSTIENS(ROOT) ; list IEN's that should bypass remove-from-board checks
|
|
"RTN","EDPQAR",33,0)
|
|
N X,IEN,FLAGS
|
|
"RTN","EDPQAR",34,0)
|
|
S X=ROOT F S X=$O(^EDPB(233.1,"B",X)) Q:$E(X,1,$L(ROOT))'=ROOT D
|
|
"RTN","EDPQAR",35,0)
|
|
. S IEN=0 F S IEN=$O(^EDPB(233.1,"B",X,IEN)) Q:'IEN D
|
|
"RTN","EDPQAR",36,0)
|
|
.. S FLAGS=$P(^EDPB(233.1,IEN,0),U,5) Q:FLAGS'["B"
|
|
"RTN","EDPQAR",37,0)
|
|
.. D XML^EDPX("<ien>"_IEN_"</ien>")
|
|
"RTN","EDPQAR",38,0)
|
|
Q
|
|
"RTN","EDPQAR",39,0)
|
|
DFLTAREA(AREA) ; return the default area for a site
|
|
"RTN","EDPQAR",40,0)
|
|
N X,DFLT
|
|
"RTN","EDPQAR",41,0)
|
|
I $L($G(AREA)),(+AREA'=AREA) D
|
|
"RTN","EDPQAR",42,0)
|
|
. S AREA=$O(^EDPB(231.9,"B",AREA,0))
|
|
"RTN","EDPQAR",43,0)
|
|
. ; need to check for matching site!!
|
|
"RTN","EDPQAR",44,0)
|
|
S DFLT=$S($G(AREA):AREA,1:$O(^EDPB(231.9,"C",EDPSITE,0)))
|
|
"RTN","EDPQAR",45,0)
|
|
;
|
|
"RTN","EDPQAR",46,0)
|
|
I 'DFLT D ADDAREA S DFLT=$O(^EDPB(231.9,"C",EDPSITE,0))
|
|
"RTN","EDPQAR",47,0)
|
|
S X("area")=DFLT
|
|
"RTN","EDPQAR",48,0)
|
|
I X("area") S X("areaNm")=$P(^EDPB(231.9,X("area"),0),U)
|
|
"RTN","EDPQAR",49,0)
|
|
S X("version")=$$VERSRV
|
|
"RTN","EDPQAR",50,0)
|
|
D XML^EDPX($$XMLA^EDPX("user",.X))
|
|
"RTN","EDPQAR",51,0)
|
|
Q
|
|
"RTN","EDPQAR",52,0)
|
|
ADDAREA ; add area if none is defined for this site
|
|
"RTN","EDPQAR",53,0)
|
|
N FDA,FDAIEN,DIERR,ERR
|
|
"RTN","EDPQAR",54,0)
|
|
S FDA(231.9,"+1,",.01)="Emergency Department"
|
|
"RTN","EDPQAR",55,0)
|
|
S FDA(231.9,"+1,",.02)=EDPSITE
|
|
"RTN","EDPQAR",56,0)
|
|
D UPDATE^DIE("","FDA","FDAIEN","ERR")
|
|
"RTN","EDPQAR",57,0)
|
|
Q:$D(DIERR)
|
|
"RTN","EDPQAR",58,0)
|
|
;
|
|
"RTN","EDPQAR",59,0)
|
|
N AREA S AREA=FDAIEN(1)
|
|
"RTN","EDPQAR",60,0)
|
|
D RESET^EDPBRS(AREA)
|
|
"RTN","EDPQAR",61,0)
|
|
Q
|
|
"RTN","EDPQAR",62,0)
|
|
VERSRV() ; Return server version of option name
|
|
"RTN","EDPQAR",63,0)
|
|
N EDPLST,VAL
|
|
"RTN","EDPQAR",64,0)
|
|
D FIND^DIC(19,"",1,"X","EDPF TRACKING SYSTEM",1,,,,"EDPLST")
|
|
"RTN","EDPQAR",65,0)
|
|
S VAL=$G(EDPLST("DILIST","ID",1,1))
|
|
"RTN","EDPQAR",66,0)
|
|
S VAL=$P(VAL,"version ",2)
|
|
"RTN","EDPQAR",67,0)
|
|
I 'VAL Q "1.0T?"
|
|
"RTN","EDPQAR",68,0)
|
|
Q VAL
|
|
"RTN","EDPQDB")
|
|
0^43^B37231235
|
|
"RTN","EDPQDB",1,0)
|
|
EDPQDB ;SLC/KCM - Display Active Log Entries
|
|
"RTN","EDPQDB",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPQDB",3,0)
|
|
;
|
|
"RTN","EDPQDB",4,0)
|
|
GET(AREA,BOARD,LAST) ; Get display board contents
|
|
"RTN","EDPQDB",5,0)
|
|
;I $G(^EDPB(231.9,AREA,230))=TOKEN D XML^EDPX("<rows status='same' />") Q
|
|
"RTN","EDPQDB",6,0)
|
|
;
|
|
"RTN","EDPQDB",7,0)
|
|
N EDPTIME S EDPTIME=$$NOW^XLFDT
|
|
"RTN","EDPQDB",8,0)
|
|
N SEQ,BED,LOG,BEDS,DWHEN,DUP,ACU,LSTUPD,RELOAD,ATT
|
|
"RTN","EDPQDB",9,0)
|
|
;
|
|
"RTN","EDPQDB",10,0)
|
|
S LSTUPD=$P($G(^EDPB(231.9,AREA,0)),U,3),RELOAD="true",LAST=$G(LAST)
|
|
"RTN","EDPQDB",11,0)
|
|
I (LAST="")!(LAST=LSTUPD) S RELOAD="false"
|
|
"RTN","EDPQDB",12,0)
|
|
S ATT("status")="new"
|
|
"RTN","EDPQDB",13,0)
|
|
S ATT("reloadConfig")=RELOAD
|
|
"RTN","EDPQDB",14,0)
|
|
S ATT("configLastUpdated")=LSTUPD
|
|
"RTN","EDPQDB",15,0)
|
|
S ATT("version")=$$VERSRV^EDPQAR
|
|
"RTN","EDPQDB",16,0)
|
|
D XML^EDPX($$XMLA^EDPX("rows",.ATT,""))
|
|
"RTN","EDPQDB",17,0)
|
|
;
|
|
"RTN","EDPQDB",18,0)
|
|
; Get a list of all the beds in sequence for this area
|
|
"RTN","EDPQDB",19,0)
|
|
S BOARD=$G(BOARD)
|
|
"RTN","EDPQDB",20,0)
|
|
S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
|
|
"RTN","EDPQDB",21,0)
|
|
. S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999
|
|
"RTN","EDPQDB",22,0)
|
|
. Q:$P(^EDPB(231.8,BED,0),U,4) ; inactive bed
|
|
"RTN","EDPQDB",23,0)
|
|
. S BEDS(SEQ,BED)="",BEDS("B",BED,SEQ)=""
|
|
"RTN","EDPQDB",24,0)
|
|
;
|
|
"RTN","EDPQDB",25,0)
|
|
; Insert the active log entries into the correct sequence for the beds
|
|
"RTN","EDPQDB",26,0)
|
|
S BED=0 F S BED=$O(^EDP(230,"AL",EDPSITE,AREA,BED)) Q:'BED D
|
|
"RTN","EDPQDB",27,0)
|
|
. S LOG=0 F S LOG=$O(^EDP(230,"AL",EDPSITE,AREA,BED,LOG)) Q:'LOG D
|
|
"RTN","EDPQDB",28,0)
|
|
. . I '$D(BEDS("B",BED)) S BEDS(99999,BED)="",BEDS("B",BED,99999)=""
|
|
"RTN","EDPQDB",29,0)
|
|
. . S SEQ=$O(BEDS("B",BED,0))
|
|
"RTN","EDPQDB",30,0)
|
|
. . S ACU=$P($G(^EDP(230,LOG,3)),U,3) S:'ACU ACU=99
|
|
"RTN","EDPQDB",31,0)
|
|
. . S BEDS(SEQ,BED,ACU,LOG)=""
|
|
"RTN","EDPQDB",32,0)
|
|
;
|
|
"RTN","EDPQDB",33,0)
|
|
; Loop thru the sequence of beds to create display board rows
|
|
"RTN","EDPQDB",34,0)
|
|
D BLDDUP^EDPQLP(.DUP,AREA)
|
|
"RTN","EDPQDB",35,0)
|
|
S SEQ=0 F S SEQ=$O(BEDS(SEQ)) Q:'SEQ D
|
|
"RTN","EDPQDB",36,0)
|
|
. S BED=0 F S BED=$O(BEDS(SEQ,BED)) Q:'BED D
|
|
"RTN","EDPQDB",37,0)
|
|
. . I $L(BOARD),($P(^EDPB(231.8,BED,0),U,11)'=BOARD) Q
|
|
"RTN","EDPQDB",38,0)
|
|
. . S DWHEN=$P(^EDPB(231.8,BED,0),U,7)
|
|
"RTN","EDPQDB",39,0)
|
|
. . ; never display DWHEN=2
|
|
"RTN","EDPQDB",40,0)
|
|
. . Q:DWHEN=2
|
|
"RTN","EDPQDB",41,0)
|
|
. . ; always display DWHEN=1
|
|
"RTN","EDPQDB",42,0)
|
|
. . I ($D(BEDS(SEQ,BED))<10)&(DWHEN=1) D EMPTY(BED) Q
|
|
"RTN","EDPQDB",43,0)
|
|
. . ; display if occupied DWHEN=0
|
|
"RTN","EDPQDB",44,0)
|
|
. . S ACU=0 F S ACU=$O(BEDS(SEQ,BED,ACU)) Q:'ACU D
|
|
"RTN","EDPQDB",45,0)
|
|
. . . S LOG=0 F S LOG=$O(BEDS(SEQ,BED,ACU,LOG)) Q:'LOG D OCCUPIED(LOG,.DUP)
|
|
"RTN","EDPQDB",46,0)
|
|
;
|
|
"RTN","EDPQDB",47,0)
|
|
D XML^EDPX("</rows>")
|
|
"RTN","EDPQDB",48,0)
|
|
Q
|
|
"RTN","EDPQDB",49,0)
|
|
EMPTY(BED) ; add row if unoccupied be should show
|
|
"RTN","EDPQDB",50,0)
|
|
N ROW
|
|
"RTN","EDPQDB",51,0)
|
|
S ROW("bed")=BED
|
|
"RTN","EDPQDB",52,0)
|
|
S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6)
|
|
"RTN","EDPQDB",53,0)
|
|
D XML^EDPX($$XMLA^EDPX("row",.ROW))
|
|
"RTN","EDPQDB",54,0)
|
|
Q
|
|
"RTN","EDPQDB",55,0)
|
|
OCCUPIED(LOG,DUP) ; add log entry row
|
|
"RTN","EDPQDB",56,0)
|
|
N X0,X1,X3,ROW
|
|
"RTN","EDPQDB",57,0)
|
|
S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3))
|
|
"RTN","EDPQDB",58,0)
|
|
S ROW("id")=LOG
|
|
"RTN","EDPQDB",59,0)
|
|
S ROW("bed")=BED
|
|
"RTN","EDPQDB",60,0)
|
|
S ROW("bedNm")=$P(^EDPB(231.8,BED,0),U,6)
|
|
"RTN","EDPQDB",61,0)
|
|
S ROW("ptNm")=$P($P(X0,U,4),",")
|
|
"RTN","EDPQDB",62,0)
|
|
S ROW("last4")=$P(X0,U,11)
|
|
"RTN","EDPQDB",63,0)
|
|
S ROW("visit")=($P(X0,U,12)!$P(X0,U,13))
|
|
"RTN","EDPQDB",64,0)
|
|
S ROW("clinic")=$P(X0,U,14)
|
|
"RTN","EDPQDB",65,0)
|
|
S ROW("clinicNm")=$$LOCNM($P(X0,U,14))
|
|
"RTN","EDPQDB",66,0)
|
|
S ROW("complaint")=$P(X1,U,1)
|
|
"RTN","EDPQDB",67,0)
|
|
S ROW("comment")=$P(X3,U,8)
|
|
"RTN","EDPQDB",68,0)
|
|
S ROW("md")=$P(X3,U,5)
|
|
"RTN","EDPQDB",69,0)
|
|
S ROW("mdNm")=$$INITIAL($P(X3,U,5))
|
|
"RTN","EDPQDB",70,0)
|
|
S ROW("rn")=$P(X3,U,6)
|
|
"RTN","EDPQDB",71,0)
|
|
S ROW("rnNm")=$$INITIAL($P(X3,U,6))
|
|
"RTN","EDPQDB",72,0)
|
|
S ROW("res")=$P(X3,U,7)
|
|
"RTN","EDPQDB",73,0)
|
|
S ROW("resNm")=$$INITIAL($P(X3,U,7))
|
|
"RTN","EDPQDB",74,0)
|
|
S ROW("status")=$P(X3,U,2)
|
|
"RTN","EDPQDB",75,0)
|
|
S ROW("statusNm")=$$CAB(EDPSTA_".status",$P(X3,U,2))
|
|
"RTN","EDPQDB",76,0)
|
|
S ROW("acuity")=$P(X3,U,3)
|
|
"RTN","EDPQDB",77,0)
|
|
S ROW("acuityNm")=$$CAB(EDPSTA_".acuity",$P(X3,U,3))
|
|
"RTN","EDPQDB",78,0)
|
|
S ROW("emins")=$$HHMM($$MIN($P(X0,U,8)))
|
|
"RTN","EDPQDB",79,0)
|
|
S ROW("lmins")=$$HHMM($$LMIN(LOG))
|
|
"RTN","EDPQDB",80,0)
|
|
S ROW("similar")=$$SIM^EDPQLP(ROW("ptNm"),ROW("last4"),.DUP)
|
|
"RTN","EDPQDB",81,0)
|
|
;
|
|
"RTN","EDPQDB",82,0)
|
|
N STS D ORDSTS(LOG,.STS)
|
|
"RTN","EDPQDB",83,0)
|
|
S ROW("lab")=STS("LP")_"/"_STS("LC") ; lab pending / lab complete
|
|
"RTN","EDPQDB",84,0)
|
|
S ROW("labUrg")=$S(STS("LS"):2,STS("LP"):1,1:0) ; any STAT labs?
|
|
"RTN","EDPQDB",85,0)
|
|
S ROW("rad")=STS("RP")_"/"_STS("RC") ; img pending / img complete
|
|
"RTN","EDPQDB",86,0)
|
|
S ROW("radUrg")=$S(STS("RS"):2,STS("RP"):1,1:0) ; any STAT imgs?
|
|
"RTN","EDPQDB",87,0)
|
|
S ROW("ordNew")=STS("ON") ; number of new orders
|
|
"RTN","EDPQDB",88,0)
|
|
S ROW("minLab")=STS("LO") ; oldest pending/active lab
|
|
"RTN","EDPQDB",89,0)
|
|
S ROW("minRad")=STS("RO") ; oldest pending/active img
|
|
"RTN","EDPQDB",90,0)
|
|
S ROW("minVer")=STS("OO") ; oldest "new" order
|
|
"RTN","EDPQDB",91,0)
|
|
D XML^EDPX($$XMLA^EDPX("row",.ROW))
|
|
"RTN","EDPQDB",92,0)
|
|
Q
|
|
"RTN","EDPQDB",93,0)
|
|
INITIAL(LOCID) ; Return initials
|
|
"RTN","EDPQDB",94,0)
|
|
Q:'LOCID ""
|
|
"RTN","EDPQDB",95,0)
|
|
Q $P(^VA(200,LOCID,0),U,2)
|
|
"RTN","EDPQDB",96,0)
|
|
;
|
|
"RTN","EDPQDB",97,0)
|
|
LOCNM(LOC) ; Return clinic name from 44
|
|
"RTN","EDPQDB",98,0)
|
|
Q:'LOC ""
|
|
"RTN","EDPQDB",99,0)
|
|
N X S X=$G(^SC(LOC,0)) ; IA#10040
|
|
"RTN","EDPQDB",100,0)
|
|
Q:'$L(X) ""
|
|
"RTN","EDPQDB",101,0)
|
|
I $L($P(X,U,2)) Q $P(X,U,2)
|
|
"RTN","EDPQDB",102,0)
|
|
Q $P(X,U)
|
|
"RTN","EDPQDB",103,0)
|
|
;
|
|
"RTN","EDPQDB",104,0)
|
|
CAB(LST,IEN) ; Return code abbreviation
|
|
"RTN","EDPQDB",105,0)
|
|
Q:'IEN ""
|
|
"RTN","EDPQDB",106,0)
|
|
N LSTDA,ABB,XSITE,XNATL
|
|
"RTN","EDPQDB",107,0)
|
|
S LSTDA=$O(^EDPB(233.2,"AS",LST,IEN,0))
|
|
"RTN","EDPQDB",108,0)
|
|
S ABB="",XSITE="",XNATL=""
|
|
"RTN","EDPQDB",109,0)
|
|
I LSTDA S XSITE=^EDPB(233.2,"AS",LST,IEN,LSTDA)
|
|
"RTN","EDPQDB",110,0)
|
|
S ABB=$P(XSITE,U,1) Q:$L(ABB) ABB ;site abbreviation
|
|
"RTN","EDPQDB",111,0)
|
|
S XNATL=^EDPB(233.1,IEN,0)
|
|
"RTN","EDPQDB",112,0)
|
|
S ABB=$P(XNATL,U,3) Q:$L(ABB) ABB ;nat'l abbreviation
|
|
"RTN","EDPQDB",113,0)
|
|
S ABB=$P(XSITE,U,2) Q:$L(ABB) ABB ;site name
|
|
"RTN","EDPQDB",114,0)
|
|
S ABB=$P(XNATL,U,2) Q:$L(ABB) ABB ;nat'l name
|
|
"RTN","EDPQDB",115,0)
|
|
Q ""
|
|
"RTN","EDPQDB",116,0)
|
|
;
|
|
"RTN","EDPQDB",117,0)
|
|
MIN(START) ; Return elapse time
|
|
"RTN","EDPQDB",118,0)
|
|
I 'START Q ""
|
|
"RTN","EDPQDB",119,0)
|
|
Q $$FMDIFF^XLFDT(EDPTIME,START,2)\60
|
|
"RTN","EDPQDB",120,0)
|
|
;
|
|
"RTN","EDPQDB",121,0)
|
|
LMIN(LOG) ; Return time at location
|
|
"RTN","EDPQDB",122,0)
|
|
N IEN,TS,TM S TM=0
|
|
"RTN","EDPQDB",123,0)
|
|
S TS="" F S TS=$O(^EDP(230.1,"ADF",LOG,TS),-1) Q:'TS D Q:TM
|
|
"RTN","EDPQDB",124,0)
|
|
. S IEN=0 F S IEN=$O(^EDP(230.1,"ADF",LOG,TS,IEN)) Q:'IEN D Q:TM
|
|
"RTN","EDPQDB",125,0)
|
|
. . I +$P($G(^EDP(230.1,IEN,3)),U,4) S TM=$P($G(^EDP(230.1,IEN,0)),U,2)
|
|
"RTN","EDPQDB",126,0)
|
|
I TM Q $$FMDIFF^XLFDT(EDPTIME,TM,2)\60
|
|
"RTN","EDPQDB",127,0)
|
|
Q 0
|
|
"RTN","EDPQDB",128,0)
|
|
;
|
|
"RTN","EDPQDB",129,0)
|
|
HHMM(MIN) ; Format as hours:minutes
|
|
"RTN","EDPQDB",130,0)
|
|
Q MIN ;(the colon messed up the calculations for elapsed time)
|
|
"RTN","EDPQDB",131,0)
|
|
;
|
|
"RTN","EDPQDB",132,0)
|
|
N H,M
|
|
"RTN","EDPQDB",133,0)
|
|
S H=MIN\60,M=MIN#60
|
|
"RTN","EDPQDB",134,0)
|
|
S:$L(M)=1 M="0"_M
|
|
"RTN","EDPQDB",135,0)
|
|
Q H_":"_M
|
|
"RTN","EDPQDB",136,0)
|
|
;
|
|
"RTN","EDPQDB",137,0)
|
|
ORDSTS(LOG,STS) ; compute statuses of orders
|
|
"RTN","EDPQDB",138,0)
|
|
N IEN,X0
|
|
"RTN","EDPQDB",139,0)
|
|
S STS("OO")=9999999,STS("ON")=0 ; oldest order, new orders
|
|
"RTN","EDPQDB",140,0)
|
|
S STS("LP")=0,STS("LO")=9999999,STS("LS")=0,STS("LC")=0
|
|
"RTN","EDPQDB",141,0)
|
|
S STS("RP")=0,STS("RO")=9999999,STS("RS")=0,STS("RC")=0
|
|
"RTN","EDPQDB",142,0)
|
|
S IEN=0 F S IEN=$O(^EDP(230,LOG,8,IEN)) Q:'IEN D
|
|
"RTN","EDPQDB",143,0)
|
|
. S X0=^EDP(230,LOG,8,IEN,0)
|
|
"RTN","EDPQDB",144,0)
|
|
. I ($P(X0,U,3)="N")!($P(X0,U,3)="A") D
|
|
"RTN","EDPQDB",145,0)
|
|
. . I $P(X0,U,5)<STS("OO") S STS("OO")=$P(X0,U,5) ; oldest order
|
|
"RTN","EDPQDB",146,0)
|
|
. . I $P(X0,U,2)="L" D
|
|
"RTN","EDPQDB",147,0)
|
|
. . . S STS("LP")=STS("LP")+1 ; pending labs
|
|
"RTN","EDPQDB",148,0)
|
|
. . . I $P(X0,U,5)<STS("LO") S STS("LO")=$P(X0,U,5) ; oldest lab
|
|
"RTN","EDPQDB",149,0)
|
|
. . . I $P(X0,U,4) S STS("LS")=1 ; stat lab
|
|
"RTN","EDPQDB",150,0)
|
|
. . I $P(X0,U,2)="R" D
|
|
"RTN","EDPQDB",151,0)
|
|
. . . S STS("RP")=STS("RP")+1 ; pending radiology
|
|
"RTN","EDPQDB",152,0)
|
|
. . . I $P(X0,U,5)<STS("RO") S STS("RO")=$P(X0,U,5) ; oldest radiology
|
|
"RTN","EDPQDB",153,0)
|
|
. . . I $P(X0,U,4) S STS("RS")=1 ; stat radiology
|
|
"RTN","EDPQDB",154,0)
|
|
. I $P(X0,U,3)="N" S STS("ON")=STS("ON")+1
|
|
"RTN","EDPQDB",155,0)
|
|
. I $P(X0,U,3)="C" D
|
|
"RTN","EDPQDB",156,0)
|
|
. . I $P(X0,U,2)="L" S STS("LC")=STS("LC")+1 ; completed labs
|
|
"RTN","EDPQDB",157,0)
|
|
. . I $P(X0,U,2)="R" S STS("RC")=STS("RC")+1 ; completed radiology
|
|
"RTN","EDPQDB",158,0)
|
|
S STS("OO")=$S(STS("OO")=9999999:0,1:$$MIN(STS("OO")))
|
|
"RTN","EDPQDB",159,0)
|
|
S STS("LO")=$S(STS("LO")=9999999:0,1:$$MIN(STS("LO")))
|
|
"RTN","EDPQDB",160,0)
|
|
S STS("RO")=$S(STS("RO")=9999999:0,1:$$MIN(STS("RO")))
|
|
"RTN","EDPQDB",161,0)
|
|
Q
|
|
"RTN","EDPQDBS")
|
|
0^44^B3113182
|
|
"RTN","EDPQDBS",1,0)
|
|
EDPQDBS ;SLC/KCM - Display Board Specs
|
|
"RTN","EDPQDBS",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPQDBS",3,0)
|
|
;
|
|
"RTN","EDPQDBS",4,0)
|
|
GET(AREA,BOARD) ; Get Display Board Specs
|
|
"RTN","EDPQDBS",5,0)
|
|
;N I S I=0
|
|
"RTN","EDPQDBS",6,0)
|
|
;F S I=$O(^EDPB(231.9,AREA,2,I)) Q:'I D XML^EDPX(^EDPB(231.9,AREA,2,I,0))
|
|
"RTN","EDPQDBS",7,0)
|
|
I '$L($G(BOARD)) S BOARD="Main (default)"
|
|
"RTN","EDPQDBS",8,0)
|
|
S BOARD=$O(^EDPB(231.9,AREA,4,"B",BOARD,0))
|
|
"RTN","EDPQDBS",9,0)
|
|
D LOADBRD^EDPBCF(AREA,BOARD)
|
|
"RTN","EDPQDBS",10,0)
|
|
;
|
|
"RTN","EDPQDBS",11,0)
|
|
D XML^EDPX("<colorSpec>")
|
|
"RTN","EDPQDBS",12,0)
|
|
D CLRBED(AREA)
|
|
"RTN","EDPQDBS",13,0)
|
|
D CLRSTAFF(AREA,"md","P")
|
|
"RTN","EDPQDBS",14,0)
|
|
D CLRSTAFF(AREA,"res","R")
|
|
"RTN","EDPQDBS",15,0)
|
|
D CLRSTAFF(AREA,"rn","N")
|
|
"RTN","EDPQDBS",16,0)
|
|
N I S I=0
|
|
"RTN","EDPQDBS",17,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",18,0)
|
|
D XML^EDPX("</colorSpec>")
|
|
"RTN","EDPQDBS",19,0)
|
|
Q
|
|
"RTN","EDPQDBS",20,0)
|
|
CLRBED(AREA) ; add bed colors
|
|
"RTN","EDPQDBS",21,0)
|
|
D XML^EDPX("<colors id='bed' type='bed' >")
|
|
"RTN","EDPQDBS",22,0)
|
|
N BED
|
|
"RTN","EDPQDBS",23,0)
|
|
S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
|
|
"RTN","EDPQDBS",24,0)
|
|
. S X0=^EDPB(231.8,BED,0)
|
|
"RTN","EDPQDBS",25,0)
|
|
. I $P(X0,U,12)="" Q
|
|
"RTN","EDPQDBS",26,0)
|
|
. N X
|
|
"RTN","EDPQDBS",27,0)
|
|
. S X("att")="@bed"
|
|
"RTN","EDPQDBS",28,0)
|
|
. S X("clr")=$P(X0,U,12)
|
|
"RTN","EDPQDBS",29,0)
|
|
. S X("val")=BED
|
|
"RTN","EDPQDBS",30,0)
|
|
. D XML^EDPX($$XMLA^EDPX("map",.X))
|
|
"RTN","EDPQDBS",31,0)
|
|
D XML^EDPX("</colors>")
|
|
"RTN","EDPQDBS",32,0)
|
|
Q
|
|
"RTN","EDPQDBS",33,0)
|
|
CLRSTAFF(AREA,ROLEID,ROLE) ; add staff colors
|
|
"RTN","EDPQDBS",34,0)
|
|
D XML^EDPX("<colors id='"_ROLEID_"' type='staff' >")
|
|
"RTN","EDPQDBS",35,0)
|
|
N IEN
|
|
"RTN","EDPQDBS",36,0)
|
|
S IEN="" F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
|
|
"RTN","EDPQDBS",37,0)
|
|
. S X0=^EDPB(231.7,IEN,0) Q:'$P(X0,U,8)
|
|
"RTN","EDPQDBS",38,0)
|
|
. N X
|
|
"RTN","EDPQDBS",39,0)
|
|
. S X("att")=$S(ROLE="P":"@md",ROLE="N":"@rn",ROLE="R":"@res",1:"nop")
|
|
"RTN","EDPQDBS",40,0)
|
|
. S X("clr")=$P(X0,U,8)
|
|
"RTN","EDPQDBS",41,0)
|
|
. S X("val")=$P(X0,U)
|
|
"RTN","EDPQDBS",42,0)
|
|
. D XML^EDPX($$XMLA^EDPX("map",.X))
|
|
"RTN","EDPQDBS",43,0)
|
|
D XML^EDPX("</colors>")
|
|
"RTN","EDPQDBS",44,0)
|
|
Q
|
|
"RTN","EDPQLE")
|
|
0^45^B40300302
|
|
"RTN","EDPQLE",1,0)
|
|
EDPQLE ;SLC/KCM - Retrieve Log Entry
|
|
"RTN","EDPQLE",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,CODED,CHTS,CHLOAD,CLINIC
|
|
"RTN","EDPQLE",6,0)
|
|
S AREA=$P(^EDP(230,LOG,0),U,3)
|
|
"RTN","EDPQLE",7,0)
|
|
S CHTS=$P($G(^EDPB(231.9,AREA,231)),U),CHLOAD=(CHTS'=CHOICES)
|
|
"RTN","EDPQLE",8,0)
|
|
N EDPTIME S EDPTIME=$$NOW^XLFDT
|
|
"RTN","EDPQLE",9,0)
|
|
N EDPNOVAL S EDPNOVAL=+$O(^EDPB(233.1,"B","edp.reserved.novalue",0))
|
|
"RTN","EDPQLE",10,0)
|
|
D LOG(LOG)
|
|
"RTN","EDPQLE",11,0)
|
|
D XML^EDPX("<choices ts='"_CHTS_"' >")
|
|
"RTN","EDPQLE",12,0)
|
|
D BEDS,PERSONS,CODED,CLINICS
|
|
"RTN","EDPQLE",13,0)
|
|
D:CHLOAD CHOICES^EDPQLE1(AREA)
|
|
"RTN","EDPQLE",14,0)
|
|
D CLINLST^EDPQLE1($P(^EDP(230,LOG,0),U,14)) ; time-sensitive, get every time
|
|
"RTN","EDPQLE",15,0)
|
|
D XML^EDPX("</choices>")
|
|
"RTN","EDPQLE",16,0)
|
|
Q
|
|
"RTN","EDPQLE",17,0)
|
|
LOG(LOG) ; return the log entry as XML
|
|
"RTN","EDPQLE",18,0)
|
|
N X,X0,X1,X3
|
|
"RTN","EDPQLE",19,0)
|
|
;
|
|
"RTN","EDPQLE",20,0)
|
|
L +^EDP(230,LOG):3
|
|
"RTN","EDPQLE",21,0)
|
|
S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3))
|
|
"RTN","EDPQLE",22,0)
|
|
S X("loadTS")=$$NOW^XLFDT
|
|
"RTN","EDPQLE",23,0)
|
|
L -^EDP(230,LOG)
|
|
"RTN","EDPQLE",24,0)
|
|
;
|
|
"RTN","EDPQLE",25,0)
|
|
; Set up encounter info into ^TMP if necessary so we can use it later
|
|
"RTN","EDPQLE",26,0)
|
|
; see if visit present, if diagnosis coded or missing provider
|
|
"RTN","EDPQLE",27,0)
|
|
I $P(X0,U,12),($P($G(^EDPB(231.9,AREA,1)),U,2)!('$P(X3,U,5))) D
|
|
"RTN","EDPQLE",28,0)
|
|
. K ^TMP("PXKENC",$J)
|
|
"RTN","EDPQLE",29,0)
|
|
. D ENCEVENT^PXAPI($P(X0,U,12))
|
|
"RTN","EDPQLE",30,0)
|
|
;
|
|
"RTN","EDPQLE",31,0)
|
|
; Get Provider from PCE if we don't have one
|
|
"RTN","EDPQLE",32,0)
|
|
; this is commented out for now since we don't have a way to
|
|
"RTN","EDPQLE",33,0)
|
|
; let the user know the provider was pulled in and needed to be saved
|
|
"RTN","EDPQLE",34,0)
|
|
; I '$P(X3,U,5),$P(X0,U,12) S X("md")=$$PRIMPCE($P(X0,U,12)),PERSON("provider")=X("md")
|
|
"RTN","EDPQLE",35,0)
|
|
;
|
|
"RTN","EDPQLE",36,0)
|
|
S X("id")=LOG
|
|
"RTN","EDPQLE",37,0)
|
|
S X("site")=$P(X0,U,2)
|
|
"RTN","EDPQLE",38,0)
|
|
S X("area")=$P(X0,U,3)
|
|
"RTN","EDPQLE",39,0)
|
|
S X("name")=$P(X0,U,4)
|
|
"RTN","EDPQLE",40,0)
|
|
S X("dfn")=$P(X0,U,6)
|
|
"RTN","EDPQLE",41,0)
|
|
S X("ssn")=$S(X("dfn"):$P(^DPT(X("dfn"),0),U,9),1:"")
|
|
"RTN","EDPQLE",42,0)
|
|
S X("dob")=$$DOB(X("dfn"))
|
|
"RTN","EDPQLE",43,0)
|
|
S X("closed")=$P(X0,U,7)
|
|
"RTN","EDPQLE",44,0)
|
|
S X("inTS")=$P(X0,U,8)
|
|
"RTN","EDPQLE",45,0)
|
|
S X("outTS")=$P(X0,U,9)
|
|
"RTN","EDPQLE",46,0)
|
|
S X("arrival")=$$CODE($P(X0,U,10)),CODED("arrival")=X("arrival")
|
|
"RTN","EDPQLE",47,0)
|
|
S X("visit")=$P(X0,U,12)
|
|
"RTN","EDPQLE",48,0)
|
|
S X("clinic")=$P(X0,U,14),CLINIC=X("clinic")
|
|
"RTN","EDPQLE",49,0)
|
|
S X("complaint")=$P(X1,U,1)
|
|
"RTN","EDPQLE",50,0)
|
|
S X("compLong")=$G(^EDP(230,LOG,2))
|
|
"RTN","EDPQLE",51,0)
|
|
S X("status")=$$CODE($P(X3,U,2)),CODED("status")=X("status")
|
|
"RTN","EDPQLE",52,0)
|
|
S X("acuity")=$$CODE($P(X3,U,3))
|
|
"RTN","EDPQLE",53,0)
|
|
S X("bed")=+$P(X3,U,4)
|
|
"RTN","EDPQLE",54,0)
|
|
S X("md")=+$P(X3,U,5),PERSON("provider")=X("md")
|
|
"RTN","EDPQLE",55,0)
|
|
S X("nurse")=+$P(X3,U,6),PERSON("nurse")=X("nurse")
|
|
"RTN","EDPQLE",56,0)
|
|
S X("res")=+$P(X3,U,7),PERSON("resident")=X("res")
|
|
"RTN","EDPQLE",57,0)
|
|
S X("comment")=$P(X3,U,8)
|
|
"RTN","EDPQLE",58,0)
|
|
S X("delay")=$$CODE($P(X1,U,5)),CODED("delay")=X("delay")
|
|
"RTN","EDPQLE",59,0)
|
|
S X("disposition")=$$CODE($P(X1,U,2)),CODED("disposition")=X("disposition")
|
|
"RTN","EDPQLE",60,0)
|
|
S X("required")=$$REQ(.X)
|
|
"RTN","EDPQLE",61,0)
|
|
S CURBED=X("bed") ; for later use by BEDS
|
|
"RTN","EDPQLE",62,0)
|
|
;
|
|
"RTN","EDPQLE",63,0)
|
|
D XML^EDPX("<logEntry>")
|
|
"RTN","EDPQLE",64,0)
|
|
D XMLE^EDPX(.X)
|
|
"RTN","EDPQLE",65,0)
|
|
;
|
|
"RTN","EDPQLE",66,0)
|
|
; Get diagnosis from PCE if it is coded entry required AND patient has a VISIT
|
|
"RTN","EDPQLE",67,0)
|
|
I $P($G(^EDPB(231.9,AREA,1)),U,2),$P(X0,U,12) D
|
|
"RTN","EDPQLE",68,0)
|
|
. D DIAGPCE($P(X0,U,12))
|
|
"RTN","EDPQLE",69,0)
|
|
E D
|
|
"RTN","EDPQLE",70,0)
|
|
. D DIAGFREE(LOG)
|
|
"RTN","EDPQLE",71,0)
|
|
;
|
|
"RTN","EDPQLE",72,0)
|
|
I X("dfn") D PRF^EDPFPTC(X("dfn")) ; patient record flags
|
|
"RTN","EDPQLE",73,0)
|
|
;
|
|
"RTN","EDPQLE",74,0)
|
|
D XML^EDPX("</logEntry>")
|
|
"RTN","EDPQLE",75,0)
|
|
Q
|
|
"RTN","EDPQLE",76,0)
|
|
PRIMPCE(EDPVISIT) ; return primary provider from PCE
|
|
"RTN","EDPQLE",77,0)
|
|
;for provider
|
|
"RTN","EDPQLE",78,0)
|
|
; LST(n)="PRV"^ien^^^name^primary/secondary flag
|
|
"RTN","EDPQLE",79,0)
|
|
N I,X,PRIM
|
|
"RTN","EDPQLE",80,0)
|
|
S PRIM=""
|
|
"RTN","EDPQLE",81,0)
|
|
S I=0 F S I=$O(^TMP("PXKENC",$J,EDPVISIT,"PRV",I)) Q:'I D Q:PRIM
|
|
"RTN","EDPQLE",82,0)
|
|
. S X=^TMP("PXKENC",$J,EDPVISIT,"PRV",I,0)
|
|
"RTN","EDPQLE",83,0)
|
|
. Q:$P(X,U,4)'="P"
|
|
"RTN","EDPQLE",84,0)
|
|
. S PRIM=$P(X,U)
|
|
"RTN","EDPQLE",85,0)
|
|
Q:'PRIM ""
|
|
"RTN","EDPQLE",86,0)
|
|
Q:'$D(^XUSEC("PROVIDER",PRIM)) ""
|
|
"RTN","EDPQLE",87,0)
|
|
Q:'$$ALLOW^EDPFPER(PRIM,"P") ""
|
|
"RTN","EDPQLE",88,0)
|
|
Q PRIM
|
|
"RTN","EDPQLE",89,0)
|
|
;
|
|
"RTN","EDPQLE",90,0)
|
|
DIAGPCE(EDPVISIT) ; add PCE diagnoses
|
|
"RTN","EDPQLE",91,0)
|
|
Q:'EDPVISIT
|
|
"RTN","EDPQLE",92,0)
|
|
N I,X,CODE
|
|
"RTN","EDPQLE",93,0)
|
|
S I=0 F S I=$O(^TMP("PXKENC",$J,EDPVISIT,"POV",I)) Q:'I D
|
|
"RTN","EDPQLE",94,0)
|
|
. K X S X=^TMP("PXKENC",$J,EDPVISIT,"POV",I,0)
|
|
"RTN","EDPQLE",95,0)
|
|
. S X("type")="POV"
|
|
"RTN","EDPQLE",96,0)
|
|
. S CODE=$P(X,U) S:CODE CODE=$P(^ICD9(CODE,0),U)
|
|
"RTN","EDPQLE",97,0)
|
|
. S X("code")=$P(^ICD9($P(X,U),0),U)
|
|
"RTN","EDPQLE",98,0)
|
|
. S X("label")=^AUTNPOV($P(X,U,4),0)
|
|
"RTN","EDPQLE",99,0)
|
|
. S X("primary")=($P(X,U,12)="P")
|
|
"RTN","EDPQLE",100,0)
|
|
. D XML^EDPX($$XMLA^EDPX("diagnosis",.X))
|
|
"RTN","EDPQLE",101,0)
|
|
S I=0 F S I=$O(^TMP("PXKENC",$J,EDPVISIT,"CPT",I)) Q:'I D
|
|
"RTN","EDPQLE",102,0)
|
|
. K X S X=^TMP("PXKENC",$J,EDPVISIT,"CPT",I,0)
|
|
"RTN","EDPQLE",103,0)
|
|
. S X("type")="CPT"
|
|
"RTN","EDPQLE",104,0)
|
|
. S CODE=$O(^ICPT("B",$P(X,U),0)) S:CODE CODE=$P(^ICPT(CODE,0),U)
|
|
"RTN","EDPQLE",105,0)
|
|
. S X("code")=CODE
|
|
"RTN","EDPQLE",106,0)
|
|
. S X("label")=^AUTNPOV($P(X,U,4),0)
|
|
"RTN","EDPQLE",107,0)
|
|
. S X("quantity")=$P(X,U,16)
|
|
"RTN","EDPQLE",108,0)
|
|
. D XML^EDPX($$XMLA^EDPX("proc",.X))
|
|
"RTN","EDPQLE",109,0)
|
|
Q
|
|
"RTN","EDPQLE",110,0)
|
|
DIAGFREE(LOG) ; add free text diagnoses
|
|
"RTN","EDPQLE",111,0)
|
|
N DIAG,CODE,LABEL,X4
|
|
"RTN","EDPQLE",112,0)
|
|
S DIAG=0 F S DIAG=$O(^EDP(230,LOG,4,DIAG)) Q:'DIAG D
|
|
"RTN","EDPQLE",113,0)
|
|
. S X4=^EDP(230,LOG,4,DIAG,0)
|
|
"RTN","EDPQLE",114,0)
|
|
. S X4("type")="POV"
|
|
"RTN","EDPQLE",115,0)
|
|
. S CODE=$P(X4,U,2) S:CODE CODE=$P(^ICD9(CODE,0),U)
|
|
"RTN","EDPQLE",116,0)
|
|
. S X4("code")=CODE
|
|
"RTN","EDPQLE",117,0)
|
|
. S X4("label")=$P(X4,U,1)
|
|
"RTN","EDPQLE",118,0)
|
|
. S X4("primary")=+$P(X4,U,3)
|
|
"RTN","EDPQLE",119,0)
|
|
. D XML^EDPX($$XMLA^EDPX("diagnosis",.X4))
|
|
"RTN","EDPQLE",120,0)
|
|
Q
|
|
"RTN","EDPQLE",121,0)
|
|
DOB(DFN) ; Return date of birth (external)
|
|
"RTN","EDPQLE",122,0)
|
|
I 'DFN Q ""
|
|
"RTN","EDPQLE",123,0)
|
|
N VA,VADM,X,Y
|
|
"RTN","EDPQLE",124,0)
|
|
D DEM^VADPT
|
|
"RTN","EDPQLE",125,0)
|
|
Q $P(VADM(3),U,2)_" Age "_VADM(4)
|
|
"RTN","EDPQLE",126,0)
|
|
;
|
|
"RTN","EDPQLE",127,0)
|
|
CODE(IEN) ; set NOVAL code to 0 when returning code
|
|
"RTN","EDPQLE",128,0)
|
|
Q:IEN=EDPNOVAL 0
|
|
"RTN","EDPQLE",129,0)
|
|
Q +IEN
|
|
"RTN","EDPQLE",130,0)
|
|
;
|
|
"RTN","EDPQLE",131,0)
|
|
BEDS ; add a list of available room/beds for this area
|
|
"RTN","EDPQLE",132,0)
|
|
D XML^EDPX("<bedList>")
|
|
"RTN","EDPQLE",133,0)
|
|
D XML^EDPX($$XMLS^EDPX("bed",0,"None")) ;non-selected
|
|
"RTN","EDPQLE",134,0)
|
|
N BED,X0,MULTI,SEQ
|
|
"RTN","EDPQLE",135,0)
|
|
S BED=0 F S BED=$O(^EDPB(231.8,"C",EDPSITE,AREA,BED)) Q:'BED D
|
|
"RTN","EDPQLE",136,0)
|
|
. S SEQ=$P(^EDPB(231.8,BED,0),U,5) S:'SEQ SEQ=99999
|
|
"RTN","EDPQLE",137,0)
|
|
. S SEQ(SEQ,BED)=""
|
|
"RTN","EDPQLE",138,0)
|
|
S SEQ=0 F S SEQ=$O(SEQ(SEQ)) Q:'SEQ D
|
|
"RTN","EDPQLE",139,0)
|
|
. S BED=0 F S BED=$O(SEQ(SEQ,BED)) Q:'BED D
|
|
"RTN","EDPQLE",140,0)
|
|
.. S X0=^EDPB(231.8,BED,0)
|
|
"RTN","EDPQLE",141,0)
|
|
.. ; QUIT if inactive bed
|
|
"RTN","EDPQLE",142,0)
|
|
.. I $P(X0,U,4) Q
|
|
"RTN","EDPQLE",143,0)
|
|
.. ; QUIT if occupied, unless own bed or multi-assign
|
|
"RTN","EDPQLE",144,0)
|
|
.. S MULTI=+$P(X0,U,9) S:MULTI=3 MULTI=0 ; single non-ed
|
|
"RTN","EDPQLE",145,0)
|
|
.. I $D(^EDP(230,"AL",EDPSITE,AREA,BED)),((BED'=CURBED)&'MULTI) Q
|
|
"RTN","EDPQLE",146,0)
|
|
.. ;
|
|
"RTN","EDPQLE",147,0)
|
|
.. S X("data")=BED
|
|
"RTN","EDPQLE",148,0)
|
|
.. S X("label")=$P(X0,U,6)_" ("_$P(X0,U)_")"
|
|
"RTN","EDPQLE",149,0)
|
|
.. S X("ref")=$P(X0,U,8)
|
|
"RTN","EDPQLE",150,0)
|
|
.. D XML^EDPX($$XMLA^EDPX("bed",.X))
|
|
"RTN","EDPQLE",151,0)
|
|
D XML^EDPX("</bedList>")
|
|
"RTN","EDPQLE",152,0)
|
|
Q
|
|
"RTN","EDPQLE",153,0)
|
|
PERSONS ; add the internal/external values for persons
|
|
"RTN","EDPQLE",154,0)
|
|
N ROLE,NAME,LOCID,IEN,X
|
|
"RTN","EDPQLE",155,0)
|
|
D XML^EDPX("<persons>")
|
|
"RTN","EDPQLE",156,0)
|
|
F ROLE="provider","nurse","resident" S LOCID=$G(PERSON(ROLE)) D
|
|
"RTN","EDPQLE",157,0)
|
|
. Q:'LOCID
|
|
"RTN","EDPQLE",158,0)
|
|
. S NAME=$P(^VA(200,LOCID,0),U)
|
|
"RTN","EDPQLE",159,0)
|
|
. S X("data")=LOCID,X("label")=NAME
|
|
"RTN","EDPQLE",160,0)
|
|
. D XML^EDPX($$XMLA^EDPX(ROLE,.X))
|
|
"RTN","EDPQLE",161,0)
|
|
D XML^EDPX("</persons>")
|
|
"RTN","EDPQLE",162,0)
|
|
Q
|
|
"RTN","EDPQLE",163,0)
|
|
CODED ; add internal/external values for codes
|
|
"RTN","EDPQLE",164,0)
|
|
N NAME,X
|
|
"RTN","EDPQLE",165,0)
|
|
D XML^EDPX("<selected>")
|
|
"RTN","EDPQLE",166,0)
|
|
S X="" F S X=$O(CODED(X)) Q:X="" I CODED(X) D
|
|
"RTN","EDPQLE",167,0)
|
|
. S NAME=$P($G(^EDPB(233.1,CODED(X),0)),U,2) Q:NAME=""
|
|
"RTN","EDPQLE",168,0)
|
|
. D XML^EDPX($$XMLS^EDPX(X,CODED(X),NAME))
|
|
"RTN","EDPQLE",169,0)
|
|
D XML^EDPX("</selected>")
|
|
"RTN","EDPQLE",170,0)
|
|
Q
|
|
"RTN","EDPQLE",171,0)
|
|
CLINICS ; add internal/external values for clinic
|
|
"RTN","EDPQLE",172,0)
|
|
Q:'CLINIC
|
|
"RTN","EDPQLE",173,0)
|
|
N NAME,X
|
|
"RTN","EDPQLE",174,0)
|
|
D XML^EDPX("<clinics>")
|
|
"RTN","EDPQLE",175,0)
|
|
S NAME=$P($G(^SC(CLINIC,0)),U)
|
|
"RTN","EDPQLE",176,0)
|
|
S X("data")=CLINIC,X("label")=NAME
|
|
"RTN","EDPQLE",177,0)
|
|
D XML^EDPX($$XMLA^EDPX("clinic",.X))
|
|
"RTN","EDPQLE",178,0)
|
|
D XML^EDPX("</clinics>")
|
|
"RTN","EDPQLE",179,0)
|
|
Q
|
|
"RTN","EDPQLE",180,0)
|
|
REQ(VAL) ; return the fields required to close this entry
|
|
"RTN","EDPQLE",181,0)
|
|
; called from LOG, AREA is assumed to be defined
|
|
"RTN","EDPQLE",182,0)
|
|
N NEED,PARAM
|
|
"RTN","EDPQLE",183,0)
|
|
S PARAM=$G(^EDPB(231.9,AREA,1)),NEED=""
|
|
"RTN","EDPQLE",184,0)
|
|
I $P(PARAM,U,1) S $P(NEED,",",1)="diag"
|
|
"RTN","EDPQLE",185,0)
|
|
I $P(PARAM,U,3) S $P(NEED,",",2)="disp"
|
|
"RTN","EDPQLE",186,0)
|
|
I $$DLYREQ,$$NOTOBS,$$EXCEED S $P(NEED,",",3)="delay"
|
|
"RTN","EDPQLE",187,0)
|
|
Q NEED
|
|
"RTN","EDPQLE",188,0)
|
|
;
|
|
"RTN","EDPQLE",189,0)
|
|
DLYREQ() ; return true if delay params set to required
|
|
"RTN","EDPQLE",190,0)
|
|
; called from REQ, PARAM is assumed to be defined
|
|
"RTN","EDPQLE",191,0)
|
|
Q $P(PARAM,U,4)&$P(PARAM,U,5)
|
|
"RTN","EDPQLE",192,0)
|
|
;
|
|
"RTN","EDPQLE",193,0)
|
|
NOTOBS() ; return true if not in observation status
|
|
"RTN","EDPQLE",194,0)
|
|
; called from REQ, VAL is assumed to be defined
|
|
"RTN","EDPQLE",195,0)
|
|
N STS S STS=+$G(VAL("status"))
|
|
"RTN","EDPQLE",196,0)
|
|
Q:'STS 1
|
|
"RTN","EDPQLE",197,0)
|
|
Q:$P(^EDPB(233.1,STS,0),U,5)["O" 0
|
|
"RTN","EDPQLE",198,0)
|
|
Q 1
|
|
"RTN","EDPQLE",199,0)
|
|
;
|
|
"RTN","EDPQLE",200,0)
|
|
EXCEED() ; return true if delay time exceeded
|
|
"RTN","EDPQLE",201,0)
|
|
; called from REQ, VAL and PARAM are assumed to be defined
|
|
"RTN","EDPQLE",202,0)
|
|
N IN S IN=$G(VAL("inTS"))
|
|
"RTN","EDPQLE",203,0)
|
|
N OUT S OUT=$G(VAL("outTS")) S:'OUT OUT=EDPTIME
|
|
"RTN","EDPQLE",204,0)
|
|
N MAX S MAX=$P(PARAM,U,5)
|
|
"RTN","EDPQLE",205,0)
|
|
Q ($$FMDIFF^XLFDT(OUT,IN,2)\60)>MAX
|
|
"RTN","EDPQLE1")
|
|
0^46^B9736825
|
|
"RTN","EDPQLE1",1,0)
|
|
EDPQLE1 ;SLC/KCM - Retrive Log Entry - Supporting Info
|
|
"RTN","EDPQLE1",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,NM,PER,ALPHA,EDPNURS
|
|
"RTN","EDPQLE1",19,0)
|
|
I ROLE="N" S EDPNURS=$$GET^XPAR("ALL","EDPF NURSE STAFF SCREEN")
|
|
"RTN","EDPQLE1",20,0)
|
|
D XML^EDPX("<"_LABEL_"List>")
|
|
"RTN","EDPQLE1",21,0)
|
|
D XML^EDPX($$XMLS^EDPX(LABEL,0,"None")) ;non-selected (-1 will delete)
|
|
"RTN","EDPQLE1",22,0)
|
|
S IEN=0 F S IEN=$O(^EDPB(231.7,"AC",EDPSITE,AREA,ROLE,IEN)) Q:'IEN D
|
|
"RTN","EDPQLE1",23,0)
|
|
. S X0=^EDPB(231.7,IEN,0),PER=$P(X0,U)
|
|
"RTN","EDPQLE1",24,0)
|
|
. I '$$ALLOW^EDPFPER(PER,ROLE) Q
|
|
"RTN","EDPQLE1",25,0)
|
|
. S ALPHA($P(^VA(200,PER,0),U),PER)=""
|
|
"RTN","EDPQLE1",26,0)
|
|
S NM="" F S NM=$O(ALPHA(NM)) Q:NM="" D
|
|
"RTN","EDPQLE1",27,0)
|
|
. S PER=0 F S PER=$O(ALPHA(NM,PER)) Q:'PER D
|
|
"RTN","EDPQLE1",28,0)
|
|
. . D XML^EDPX($$XMLS^EDPX(LABEL,PER,NM))
|
|
"RTN","EDPQLE1",29,0)
|
|
D XML^EDPX("</"_LABEL_"List>")
|
|
"RTN","EDPQLE1",30,0)
|
|
Q
|
|
"RTN","EDPQLE1",31,0)
|
|
CODES(LABEL,SETNM) ; build nodes for set of codes
|
|
"RTN","EDPQLE1",32,0)
|
|
D XML^EDPX("<"_LABEL_"List>")
|
|
"RTN","EDPQLE1",33,0)
|
|
I "^arrival^acuity^status^disposition^delay^"[(U_LABEL_U) D
|
|
"RTN","EDPQLE1",34,0)
|
|
. ;N NOVAL S NOVAL=+$O(^EDPB(233.1,"B","edp.reserved.novalue",0))
|
|
"RTN","EDPQLE1",35,0)
|
|
. ;D XML^EDPX($$XMLS^EDPX(LABEL,NOVAL,"None")) ; non-selected value
|
|
"RTN","EDPQLE1",36,0)
|
|
. D XML^EDPX($$XMLS^EDPX(LABEL,0,"None")) ; non-selected value ;
|
|
"RTN","EDPQLE1",37,0)
|
|
I $D(^EDPB(233.2,"B",EDPSTA_"."_SETNM)) S SETNM=EDPSTA_"."_SETNM I 1
|
|
"RTN","EDPQLE1",38,0)
|
|
E S SETNM="edp."_SETNM
|
|
"RTN","EDPQLE1",39,0)
|
|
;
|
|
"RTN","EDPQLE1",40,0)
|
|
N SET,SEQ,I,X0,IEN,SHOW
|
|
"RTN","EDPQLE1",41,0)
|
|
S SET=$O(^EDPB(233.2,"B",SETNM,0))
|
|
"RTN","EDPQLE1",42,0)
|
|
S SEQ=0 F S SEQ=$O(^EDPB(233.2,SET,1,"B",SEQ)) Q:'SEQ D
|
|
"RTN","EDPQLE1",43,0)
|
|
. S I=0 F S I=$O(^EDPB(233.2,SET,1,"B",SEQ,I)) Q:'I D
|
|
"RTN","EDPQLE1",44,0)
|
|
. . S X0=^EDPB(233.2,SET,1,I,0)
|
|
"RTN","EDPQLE1",45,0)
|
|
. . Q:$P(X0,U,3) ; inactive
|
|
"RTN","EDPQLE1",46,0)
|
|
. . S IEN=$P(X0,U,2)
|
|
"RTN","EDPQLE1",47,0)
|
|
. . S SHOW=$P(X0,U,4)
|
|
"RTN","EDPQLE1",48,0)
|
|
. . I SHOW="" S SHOW=$P(^EDPB(233.1,IEN,0),U,2)
|
|
"RTN","EDPQLE1",49,0)
|
|
. . D XML^EDPX($$XMLS^EDPX(LABEL,IEN,SHOW))
|
|
"RTN","EDPQLE1",50,0)
|
|
;
|
|
"RTN","EDPQLE1",51,0)
|
|
D XML^EDPX("</"_LABEL_"List>")
|
|
"RTN","EDPQLE1",52,0)
|
|
Q
|
|
"RTN","EDPQLE1",53,0)
|
|
CLINLST(USEALL) ; build nodes for selectable clinics
|
|
"RTN","EDPQLE1",54,0)
|
|
N EDPLST,INSTANCE,IEN,NAME,LST,CURTM
|
|
"RTN","EDPQLE1",55,0)
|
|
D GETLST^XPAR(.EDPLST,EDPSITE_";DIC(4,","EDPF LOCATION","N")
|
|
"RTN","EDPQLE1",56,0)
|
|
S CURTM=$E($P($$NOW^XLFDT,".",2)_"0000",1,4)
|
|
"RTN","EDPQLE1",57,0)
|
|
S INSTANCE="" F S INSTANCE=$O(EDPLST(INSTANCE)) Q:INSTANCE="" D
|
|
"RTN","EDPQLE1",58,0)
|
|
. S IEN=+EDPLST(INSTANCE),NAME=$P(EDPLST(INSTANCE),U,2)
|
|
"RTN","EDPQLE1",59,0)
|
|
. I 'USEALL,$$OUTSIDE(CURTM,INSTANCE) Q ; outside time range, get next
|
|
"RTN","EDPQLE1",60,0)
|
|
. S LST(NAME)=IEN
|
|
"RTN","EDPQLE1",61,0)
|
|
;
|
|
"RTN","EDPQLE1",62,0)
|
|
D XML^EDPX("<clinicList>")
|
|
"RTN","EDPQLE1",63,0)
|
|
D XML^EDPX($$XMLS^EDPX("clinic",0,"None")) ;non-selected (-1 will delete)
|
|
"RTN","EDPQLE1",64,0)
|
|
S NAME="" F S NAME=$O(LST(NAME)) Q:NAME="" D
|
|
"RTN","EDPQLE1",65,0)
|
|
. D XML^EDPX($$XMLS^EDPX("clinic",LST(NAME),NAME))
|
|
"RTN","EDPQLE1",66,0)
|
|
D XML^EDPX("</clinicList>")
|
|
"RTN","EDPQLE1",67,0)
|
|
Q
|
|
"RTN","EDPQLE1",68,0)
|
|
OUTSIDE(TM,RNG) ; return true if the time is OUTSIDE of the range
|
|
"RTN","EDPQLE1",69,0)
|
|
I RNG'["-" Q 0
|
|
"RTN","EDPQLE1",70,0)
|
|
;
|
|
"RTN","EDPQLE1",71,0)
|
|
S BEG=+$P(RNG,"-"),END=+$P(RNG,"-",2)
|
|
"RTN","EDPQLE1",72,0)
|
|
I (TM<BEG)!(TM>END) Q 1
|
|
"RTN","EDPQLE1",73,0)
|
|
Q 0
|
|
"RTN","EDPQLP")
|
|
0^47^B12368052
|
|
"RTN","EDPQLP",1,0)
|
|
EDPQLP ;SLC/KCM - Log Entry Patients
|
|
"RTN","EDPQLP",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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("<logEntries status='same' />")
|
|
"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("<logEntries status='new' token='"_$G(^EDPB(231.9,AREA,230))_"' >")
|
|
"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("</logEntries>")
|
|
"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)
|
|
I PARTIAL?1U4N D BS5(PARTIAL) G XCLOSED
|
|
"RTN","EDPQLP",55,0)
|
|
I PARTIAL?9N.1U D SSN(PARTIAL) G XCLOSED
|
|
"RTN","EDPQLP",56,0)
|
|
I PARTIAL?1.2N1"/"1.2N1"/"2.4N D DAY(PARTIAL) G XCLOSED
|
|
"RTN","EDPQLP",57,0)
|
|
I PARTIAL?1"T"1"-"1.4N D DAY(PARTIAL) G XCLOSED
|
|
"RTN","EDPQLP",58,0)
|
|
I (PARTIAL="TODAY") D DAY(PARTIAL) ; fall thru LNAM in case TODAY is a name
|
|
"RTN","EDPQLP",59,0)
|
|
D LNAM(PARTIAL)
|
|
"RTN","EDPQLP",60,0)
|
|
;
|
|
"RTN","EDPQLP",61,0)
|
|
XCLOSED ; exit case statement
|
|
"RTN","EDPQLP",62,0)
|
|
Q
|
|
"RTN","EDPQLP",63,0)
|
|
;
|
|
"RTN","EDPQLP",64,0)
|
|
BS5(X) ; find matches by last inital, last 4
|
|
"RTN","EDPQLP",65,0)
|
|
N DFN,IEN
|
|
"RTN","EDPQLP",66,0)
|
|
S DFN=0 F S DFN=$O(^DPT("BS5",X,DFN)) Q:'DFN D
|
|
"RTN","EDPQLP",67,0)
|
|
. S IEN=0 F S IEN=$O(^EDP(230,"PDFN",EDPSITE,AREA,DFN,IEN)) Q:'IEN D ADDVST(IEN)
|
|
"RTN","EDPQLP",68,0)
|
|
Q
|
|
"RTN","EDPQLP",69,0)
|
|
SSN(X) ; find matches by SSN
|
|
"RTN","EDPQLP",70,0)
|
|
N DFN,IEN
|
|
"RTN","EDPQLP",71,0)
|
|
S DFN=0 F S DFN=$O(^DPT("SSN",X,DFN)) Q:'DFN D
|
|
"RTN","EDPQLP",72,0)
|
|
. S IEN=0 F S IEN=$O(^EDP(230,"PDFN",EDPSITE,AREA,DFN,IEN)) Q:'IEN D ADDVST(IEN)
|
|
"RTN","EDPQLP",73,0)
|
|
Q
|
|
"RTN","EDPQLP",74,0)
|
|
DAY(X) ; find matches by DATE
|
|
"RTN","EDPQLP",75,0)
|
|
N %DT,Y,DTOUT,END,INTS
|
|
"RTN","EDPQLP",76,0)
|
|
D ^%DT
|
|
"RTN","EDPQLP",77,0)
|
|
S INTS=$P(Y,"."),END=INTS_".999999"
|
|
"RTN","EDPQLP",78,0)
|
|
Q:INTS'>0
|
|
"RTN","EDPQLP",79,0)
|
|
F S INTS=$O(^EDP(230,"ATI",EDPSITE,INTS)) Q:'INTS Q:INTS>END D
|
|
"RTN","EDPQLP",80,0)
|
|
. S IEN=0 F S IEN=$O(^EDP(230,"ATI",EDPSITE,INTS,IEN)) Q:'IEN D
|
|
"RTN","EDPQLP",81,0)
|
|
. . Q:$P(^EDP(230,IEN,0),U,3)'=AREA
|
|
"RTN","EDPQLP",82,0)
|
|
. . D ADDVST(IEN)
|
|
"RTN","EDPQLP",83,0)
|
|
Q
|
|
"RTN","EDPQLP",84,0)
|
|
LNAM(PARTIAL) ; find matches by name
|
|
"RTN","EDPQLP",85,0)
|
|
N IEN,NAME,X,X0
|
|
"RTN","EDPQLP",86,0)
|
|
S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,PARTIAL),-1)
|
|
"RTN","EDPQLP",87,0)
|
|
F S NAME=$O(^EDP(230,"PN",EDPSITE,AREA,NAME)) Q:$E(NAME,1,$L(PARTIAL))'=PARTIAL Q:NAME="" D
|
|
"RTN","EDPQLP",88,0)
|
|
. S IEN=0 F S IEN=$O(^EDP(230,"PN",EDPSITE,AREA,NAME,IEN)) Q:'IEN D ADDVST(IEN)
|
|
"RTN","EDPQLP",89,0)
|
|
Q
|
|
"RTN","EDPQLP",90,0)
|
|
ADDVST(IEN) ; add node for visit
|
|
"RTN","EDPQLP",91,0)
|
|
N X0,X,NAME
|
|
"RTN","EDPQLP",92,0)
|
|
S X0=^EDP(230,IEN,0),NAME=$P(X0,U,4)
|
|
"RTN","EDPQLP",93,0)
|
|
I '$P(X0,U,7) Q ; not closed
|
|
"RTN","EDPQLP",94,0)
|
|
S X("id")=IEN,X("name")=NAME,X("inTS")=$P(X0,U,8)
|
|
"RTN","EDPQLP",95,0)
|
|
D XML^EDPX($$XMLA^EDPX("visit",.X))
|
|
"RTN","EDPQLP",96,0)
|
|
Q
|
|
"RTN","EDPQPCE")
|
|
0^54^B2442064
|
|
"RTN","EDPQPCE",1,0)
|
|
EDPQPCE ;SLC/KCM - Retrieve PCE information for ED Visits
|
|
"RTN","EDPQPCE",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPQPCE",3,0)
|
|
;
|
|
"RTN","EDPQPCE",4,0)
|
|
DXPRI(AREA,LOG) ; return primary diagnosis
|
|
"RTN","EDPQPCE",5,0)
|
|
N DXLST
|
|
"RTN","EDPQPCE",6,0)
|
|
D DXALL(AREA,LOG,.DXLST)
|
|
"RTN","EDPQPCE",7,0)
|
|
Q $G(DXLST(1)) ;$P( ,U,2)
|
|
"RTN","EDPQPCE",8,0)
|
|
;
|
|
"RTN","EDPQPCE",9,0)
|
|
DXALL(AREA,LOG,DXLST) ; build list of diagnoses for a visit
|
|
"RTN","EDPQPCE",10,0)
|
|
N EDPVISIT S EDPVISIT=$P(^EDP(230,LOG,0),U,12)
|
|
"RTN","EDPQPCE",11,0)
|
|
I EDPVISIT,$P($G(^EDPB(231.9,AREA,1)),U,2) D DXPCE(EDPVISIT,.DXLST) I 1
|
|
"RTN","EDPQPCE",12,0)
|
|
E D DXFREE(LOG,.DXLST)
|
|
"RTN","EDPQPCE",13,0)
|
|
Q
|
|
"RTN","EDPQPCE",14,0)
|
|
DXPCE(EDPVISIT,DXLST) ; return a list of diagnoses from PCE
|
|
"RTN","EDPQPCE",15,0)
|
|
N I,X,CODE,NAME,DX
|
|
"RTN","EDPQPCE",16,0)
|
|
K ^TMP("PXKENC",$J)
|
|
"RTN","EDPQPCE",17,0)
|
|
D ENCEVENT^PXAPI(EDPVISIT)
|
|
"RTN","EDPQPCE",18,0)
|
|
S I=0,DX=0 F S I=$O(^TMP("PXKENC",$J,EDPVISIT,"POV",I)) Q:'I D
|
|
"RTN","EDPQPCE",19,0)
|
|
. S X=^TMP("PXKENC",$J,EDPVISIT,"POV",I,0)
|
|
"RTN","EDPQPCE",20,0)
|
|
. S CODE=$P(^ICD9($P(X,U),0),U)
|
|
"RTN","EDPQPCE",21,0)
|
|
. S NAME=^AUTNPOV($P(X,U,4),0)
|
|
"RTN","EDPQPCE",22,0)
|
|
. S DX=DX+1,DX($S($P(X,U,12)="P":DX,1:DX*10000))=CODE_U_NAME
|
|
"RTN","EDPQPCE",23,0)
|
|
S X="",DXLST=DX F I=1:1 S X=$O(DX(X)) Q:X="" S DXLST(I)=DX(X)
|
|
"RTN","EDPQPCE",24,0)
|
|
Q
|
|
"RTN","EDPQPCE",25,0)
|
|
DXFREE(LOG,DXLST) ; return free text diagnoses from ED LOG file
|
|
"RTN","EDPQPCE",26,0)
|
|
N I,CODE,NAME,X4,DX
|
|
"RTN","EDPQPCE",27,0)
|
|
S I=0,DX=0 F S I=$O(^EDP(230,LOG,4,I)) Q:'I D
|
|
"RTN","EDPQPCE",28,0)
|
|
. S X4=^EDP(230,LOG,4,I,0)
|
|
"RTN","EDPQPCE",29,0)
|
|
. S CODE=$P(X4,U,2) S:CODE CODE=$P(^ICD9(CODE,0),U)
|
|
"RTN","EDPQPCE",30,0)
|
|
. S NAME=$P(X4,U,1)
|
|
"RTN","EDPQPCE",31,0)
|
|
. S DX=DX+1,DX($S(+$P(X4,U,3):DX,1:DX*10000))=CODE_U_NAME
|
|
"RTN","EDPQPCE",32,0)
|
|
S X="",DXLST=DX F I=1:1 S X=$O(DX(X)) Q:X="" S DXLST(I)=DX(X)
|
|
"RTN","EDPQPCE",33,0)
|
|
Q
|
|
"RTN","EDPRPT")
|
|
0^10^B17619722
|
|
"RTN","EDPRPT",1,0)
|
|
EDPRPT ;SLC/MKB - Reports
|
|
"RTN","EDPRPT",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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)
|
|
N NOW S NOW=$$NOW
|
|
"RTN","EDPRPT",6,0)
|
|
I BEG,END D ;check
|
|
"RTN","EDPRPT",7,0)
|
|
. N X I END<BEG S X=BEG,BEG=END,END=X ;switch
|
|
"RTN","EDPRPT",8,0)
|
|
. S:$L(END,".")<2 END=END_".2359"
|
|
"RTN","EDPRPT",9,0)
|
|
S RPT=$$UP^XLFSTR($G(RPT))
|
|
"RTN","EDPRPT",10,0)
|
|
; switch on report type
|
|
"RTN","EDPRPT",11,0)
|
|
I RPT="EXPOSURE" D EXP^EDPRPT7(ID) G CONT
|
|
"RTN","EDPRPT",12,0)
|
|
I BEG<1 D ERR(2300012) G CONT
|
|
"RTN","EDPRPT",13,0)
|
|
I RPT="SHIFT" D SFT^EDPRPT5(BEG) G CONT
|
|
"RTN","EDPRPT",14,0)
|
|
I END<1 D ERR(2300012) G CONT
|
|
"RTN","EDPRPT",15,0)
|
|
I RPT="ACTIVITY" D ACT^EDPRPT1(BEG,END) G CONT
|
|
"RTN","EDPRPT",16,0)
|
|
I RPT["DELAY" D DEL^EDPRPT2(BEG,END) G CONT
|
|
"RTN","EDPRPT",17,0)
|
|
I RPT="SUMMARY" D SUM^EDPRPT4(BEG,END) G CONT
|
|
"RTN","EDPRPT",18,0)
|
|
I RPT="MISSEDOP" D MO^EDPRPT3(BEG,END) G CONT
|
|
"RTN","EDPRPT",19,0)
|
|
I RPT="PROVIDER" D PRV^EDPRPT6(BEG,END) G CONT
|
|
"RTN","EDPRPT",20,0)
|
|
I RPT="ACUITY" D ACU^EDPRPT8(BEG,END) G CONT
|
|
"RTN","EDPRPT",21,0)
|
|
I RPT="PATIENT" D XRF^EDPRPT9(BEG,END) G CONT
|
|
"RTN","EDPRPT",22,0)
|
|
I RPT="ADMISSIONS" D ADM^EDPRPT10(BEG,END) G CONT
|
|
"RTN","EDPRPT",23,0)
|
|
I RPT="INTAKE" D CNT^EDPRPT11(BEG,END) G CONT
|
|
"RTN","EDPRPT",24,0)
|
|
I RPT="ORDERS" D ORD^EDPRPT12(BEG,END) G CONT
|
|
"RTN","EDPRPT",25,0)
|
|
I RPT="BVAC" D EN^EDPRPTBV(BEG,END) G CONT
|
|
"RTN","EDPRPT",26,0)
|
|
; else
|
|
"RTN","EDPRPT",27,0)
|
|
D ERR(2300011)
|
|
"RTN","EDPRPT",28,0)
|
|
CONT ; end switch
|
|
"RTN","EDPRPT",29,0)
|
|
Q
|
|
"RTN","EDPRPT",30,0)
|
|
;
|
|
"RTN","EDPRPT",31,0)
|
|
ERR(MSG) ; -- return error MSG
|
|
"RTN","EDPRPT",32,0)
|
|
N X S X=$$MSG^EDPX(MSG)
|
|
"RTN","EDPRPT",33,0)
|
|
I $G(CSV) D ADD^EDPCSV(X) Q
|
|
"RTN","EDPRPT",34,0)
|
|
D XML^EDPX("<error msg='"_X_"' />")
|
|
"RTN","EDPRPT",35,0)
|
|
Q
|
|
"RTN","EDPRPT",36,0)
|
|
;
|
|
"RTN","EDPRPT",37,0)
|
|
NOW() ; -- Return local value of NOW, based on EDPSITE
|
|
"RTN","EDPRPT",38,0)
|
|
Q $$NOW^XLFDT
|
|
"RTN","EDPRPT",39,0)
|
|
;
|
|
"RTN","EDPRPT",40,0)
|
|
PROV(MD) ; add list of assigned providers to XML
|
|
"RTN","EDPRPT",41,0)
|
|
N I,X0,X
|
|
"RTN","EDPRPT",42,0)
|
|
D XML^EDPX("<providers>")
|
|
"RTN","EDPRPT",43,0)
|
|
S I=0 F S I=$O(MD(I)) Q:I<1 D
|
|
"RTN","EDPRPT",44,0)
|
|
. S X0=$G(^VA(200,I,0)),X="<md id='"_I_"' name='"_$$ESC^EDPX($P(X0,U))_"' initials='"_$$ESC^EDPX($P(X0,U,2))_"'/>"
|
|
"RTN","EDPRPT",45,0)
|
|
. D XML^EDPX(X)
|
|
"RTN","EDPRPT",46,0)
|
|
D XML^EDPX("</providers>")
|
|
"RTN","EDPRPT",47,0)
|
|
Q
|
|
"RTN","EDPRPT",48,0)
|
|
;
|
|
"RTN","EDPRPT",49,0)
|
|
ECODE(IEN) ; Return external value for a Code
|
|
"RTN","EDPRPT",50,0)
|
|
;Q:$G(IEN) $P($G(^EDPB(233.1,+IEN,0)),U,3) ;code
|
|
"RTN","EDPRPT",51,0)
|
|
N X0,LIST,DA,Y S IEN=+$G(IEN)
|
|
"RTN","EDPRPT",52,0)
|
|
S X0=$G(^EDPB(233.1,IEN,0)),LIST=EDPSTA_"."_$P($P(X0,U),".",2)
|
|
"RTN","EDPRPT",53,0)
|
|
S DA=+$O(^EDPB(233.2,"AS",LIST,IEN,0)),Y=""
|
|
"RTN","EDPRPT",54,0)
|
|
I DA S Y=$P($G(^EDPB(233.2,"AS",LIST,IEN,DA)),U)
|
|
"RTN","EDPRPT",55,0)
|
|
I Y="" S Y=$P(X0,U,3) ;use nat'l value if no local
|
|
"RTN","EDPRPT",56,0)
|
|
Q Y
|
|
"RTN","EDPRPT",57,0)
|
|
;
|
|
"RTN","EDPRPT",58,0)
|
|
ENAME(IEN) ; Return external value for a code Name
|
|
"RTN","EDPRPT",59,0)
|
|
N X0,LIST,DA,Y S IEN=+$G(IEN)
|
|
"RTN","EDPRPT",60,0)
|
|
S X0=$G(^EDPB(233.1,IEN,0)),LIST=EDPSTA_"."_$P($P(X0,U),".",2)
|
|
"RTN","EDPRPT",61,0)
|
|
S DA=$O(^EDPB(233.2,"AS",LIST,IEN,0)),Y=""
|
|
"RTN","EDPRPT",62,0)
|
|
I DA S Y=$P($G(^EDPB(233.2,"AS",LIST,IEN,DA)),U,2)
|
|
"RTN","EDPRPT",63,0)
|
|
I Y="" S Y=$P(X0,U,2) ;use nat'l value if no local
|
|
"RTN","EDPRPT",64,0)
|
|
Q Y
|
|
"RTN","EDPRPT",65,0)
|
|
;
|
|
"RTN","EDPRPT",66,0)
|
|
EPERS(IEN) ; Return external value for a Person (file 200)
|
|
"RTN","EDPRPT",67,0)
|
|
Q:$G(IEN) $P($G(^VA(200,+IEN,0)),U)
|
|
"RTN","EDPRPT",68,0)
|
|
Q ""
|
|
"RTN","EDPRPT",69,0)
|
|
;
|
|
"RTN","EDPRPT",70,0)
|
|
EDATE(FMDT) ; Return external value for a Date/Time
|
|
"RTN","EDPRPT",71,0)
|
|
Q:$G(FMDT) $TR($$FMTE^XLFDT(FMDT,"2M"),"@"," ") ;MM/DD/YY HH:MM
|
|
"RTN","EDPRPT",72,0)
|
|
Q ""
|
|
"RTN","EDPRPT",73,0)
|
|
;
|
|
"RTN","EDPRPT",74,0)
|
|
ETIME(MINS) ; Return #minutes as HH:MM
|
|
"RTN","EDPRPT",75,0)
|
|
N H,M,Y S MINS=+$G(MINS)
|
|
"RTN","EDPRPT",76,0)
|
|
S H=MINS\60,M=MINS#60
|
|
"RTN","EDPRPT",77,0)
|
|
S Y=H_":"_$S($L(M)=1:"0"_M,1:M)
|
|
"RTN","EDPRPT",78,0)
|
|
Q Y
|
|
"RTN","EDPRPT",79,0)
|
|
;
|
|
"RTN","EDPRPT",80,0)
|
|
MD(LOG) ; Return time physician was first assigned
|
|
"RTN","EDPRPT",81,0)
|
|
N IDX,ROOT,D,X,Y S Y="",LOG=+$G(LOG)
|
|
"RTN","EDPRPT",82,0)
|
|
S IDX=$NA(^EDP(230.1,"ADF",LOG)),ROOT=$TR(IDX,")")
|
|
"RTN","EDPRPT",83,0)
|
|
F S IDX=$Q(@IDX) Q:$P(IDX,",",1,3)'=ROOT D Q:Y
|
|
"RTN","EDPRPT",84,0)
|
|
. S D=+$P(IDX,",",4),X=$P($G(^EDP(230.1,+$P(IDX,",",5),3)),U,5)
|
|
"RTN","EDPRPT",85,0)
|
|
. I X'="" S Y=D
|
|
"RTN","EDPRPT",86,0)
|
|
Q Y
|
|
"RTN","EDPRPT",87,0)
|
|
;
|
|
"RTN","EDPRPT",88,0)
|
|
ACUITY(LOG) ; Return time acuity was first assigned
|
|
"RTN","EDPRPT",89,0)
|
|
N IDX,ROOT,D,X,Y S Y="",LOG=+$G(LOG)
|
|
"RTN","EDPRPT",90,0)
|
|
S IDX=$NA(^EDP(230.1,"ADF",LOG)),ROOT=$TR(IDX,")")
|
|
"RTN","EDPRPT",91,0)
|
|
F S IDX=$Q(@IDX) Q:$P(IDX,",",1,3)'=ROOT D Q:Y
|
|
"RTN","EDPRPT",92,0)
|
|
. S D=+$P(IDX,",",4),X=$P($G(^EDP(230.1,+$P(IDX,",",5),3)),U,3)
|
|
"RTN","EDPRPT",93,0)
|
|
. S:X Y=D
|
|
"RTN","EDPRPT",94,0)
|
|
Q Y
|
|
"RTN","EDPRPT",95,0)
|
|
;
|
|
"RTN","EDPRPT",96,0)
|
|
LVWAITRM(LOG) ; Return time patient left waiting room
|
|
"RTN","EDPRPT",97,0)
|
|
N IDX,ROOT,D,D1,X,ROOM S Y="",LOG=+$G(LOG)
|
|
"RTN","EDPRPT",98,0)
|
|
; get list of room changes in ROOM(time)= 231.8 ien
|
|
"RTN","EDPRPT",99,0)
|
|
S IDX=$NA(^EDP(230.1,"ADF",LOG)),ROOT=$TR(IDX,")")
|
|
"RTN","EDPRPT",100,0)
|
|
F S IDX=$Q(@IDX) Q:$P(IDX,",",1,3)'=ROOT D
|
|
"RTN","EDPRPT",101,0)
|
|
. S D=+$P(IDX,",",4),X=+$P($G(^EDP(230.1,+$P(IDX,",",5),3)),U,4)
|
|
"RTN","EDPRPT",102,0)
|
|
. I X,D S ROOM(D)=X
|
|
"RTN","EDPRPT",103,0)
|
|
; look for movement in and out of waiting room
|
|
"RTN","EDPRPT",104,0)
|
|
S D=0 F S D=$O(ROOM(D)) Q:D<1 S D1=$O(ROOM(D)) D Q:Y
|
|
"RTN","EDPRPT",105,0)
|
|
. N RM,NXT S RM=ROOM(D),NXT=$S(D1:ROOM(D1),1:0)
|
|
"RTN","EDPRPT",106,0)
|
|
. I NXT,NXT'=RM,$$WAIT(RM),'$$WAIT(NXT) S Y=D1 ;$S(D1:D1,1:OUT)
|
|
"RTN","EDPRPT",107,0)
|
|
Q Y
|
|
"RTN","EDPRPT",108,0)
|
|
;
|
|
"RTN","EDPRPT",109,0)
|
|
WAIT(X) ; Return 1 or 0, if X is a waiting room
|
|
"RTN","EDPRPT",110,0)
|
|
Q $P($G(^EDPB(231.8,+$G(X),0)),U,9)=2
|
|
"RTN","EDPRPT",111,0)
|
|
;
|
|
"RTN","EDPRPT",112,0)
|
|
ADMIT(LOG) ; Return 1st time admitting disposition was assigned
|
|
"RTN","EDPRPT",113,0)
|
|
N D,I,X0,X,Y,OUT S Y="",LOG=+$G(LOG)
|
|
"RTN","EDPRPT",114,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",115,0)
|
|
. S X0=$G(^EDP(230.1,I,0))
|
|
"RTN","EDPRPT",116,0)
|
|
. I $P(X0,U,11),$P($G(^EDPB(233.1,+$P(X0,U,11),0)),U,5)["A" S Y=D
|
|
"RTN","EDPRPT",117,0)
|
|
I Y="" D ;ck old format
|
|
"RTN","EDPRPT",118,0)
|
|
. N X1 S X1=$G(^EDP(230,LOG,1))
|
|
"RTN","EDPRPT",119,0)
|
|
. I $P(X1,U,2),$P($G(^EDPB(233.1,+$P(X1,U,2),0)),U,5)["A" S Y=$P(X1,U,3)
|
|
"RTN","EDPRPT",120,0)
|
|
I Y S OUT=$P($G(^EDP(230,LOG,0)),U,9) S:OUT&(OUT<Y) Y=OUT ;use Time Out if earlier
|
|
"RTN","EDPRPT",121,0)
|
|
Q Y
|
|
"RTN","EDPRPT1")
|
|
0^11^B33605254
|
|
"RTN","EDPRPT1",1,0)
|
|
EDPRPT1 ;SLC/MKB - Activity Report
|
|
"RTN","EDPRPT1",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;**1**;Sep 30, 2009;Build 74
|
|
"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,DX,IN,OUT,ROW,PROV,I
|
|
"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("<logEntries>") 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))
|
|
"RTN","EDPRPT1",15,0)
|
|
. S OUT=$P(X0,U,9),DX=$$DXPRI^EDPQPCE(+$P(X0,U,3),LOG)
|
|
"RTN","EDPRPT1",16,0)
|
|
. K ROW S ROW("id")=LOG,ALL=ALL+1
|
|
"RTN","EDPRPT1",17,0)
|
|
. S ROW("inTS")=$S($G(CSV):$$EDATE^EDPRPT(IN),1:IN)
|
|
"RTN","EDPRPT1",18,0)
|
|
. S ROW("outTS")=$S($G(CSV):$$EDATE^EDPRPT(OUT),1: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")=$$ENAME^EDPRPT($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("icd")=$P(DX,U),ROW("dx")=$P(DX,U,2)
|
|
"RTN","EDPRPT1",26,0)
|
|
. S:'$L(DISP) DISP="none" S DISP(DISP)=DISP(DISP)+1
|
|
"RTN","EDPRPT1",27,0)
|
|
. ;
|
|
"RTN","EDPRPT1",28,0)
|
|
A1 . ; calculate times
|
|
"RTN","EDPRPT1",29,0)
|
|
. ; S:OUT="" OUT=NOW ;for calculations
|
|
"RTN","EDPRPT1",30,0)
|
|
. S ELAPSE=$S(OUT:($$FMDIFF^XLFDT(OUT,IN,2)\60),1:0)
|
|
"RTN","EDPRPT1",31,0)
|
|
. S ROW("elapsed")=ELAPSE_$S(ELAPSE>359:" *",1:"")
|
|
"RTN","EDPRPT1",32,0)
|
|
. S ALL("elapsed")=ALL("elapsed")+ELAPSE
|
|
"RTN","EDPRPT1",33,0)
|
|
. S DISP(DISP,"elapsed")=DISP(DISP,"elapsed")+ELAPSE
|
|
"RTN","EDPRPT1",34,0)
|
|
. ;
|
|
"RTN","EDPRPT1",35,0)
|
|
. S X=$$ACUITY^EDPRPT(LOG),TRIAGE=0 ;S:X<1 X=OUT
|
|
"RTN","EDPRPT1",36,0)
|
|
. S:X TRIAGE=($$FMDIFF^XLFDT(X,IN,2)\60)
|
|
"RTN","EDPRPT1",37,0)
|
|
. S ROW("triage")=TRIAGE,ALL("triage")=ALL("triage")+TRIAGE
|
|
"RTN","EDPRPT1",38,0)
|
|
. S DISP(DISP,"triage")=DISP(DISP,"triage")+TRIAGE
|
|
"RTN","EDPRPT1",39,0)
|
|
. ;
|
|
"RTN","EDPRPT1",40,0)
|
|
. S X=$$LVWAITRM^EDPRPT(LOG),WAIT=0
|
|
"RTN","EDPRPT1",41,0)
|
|
. S:X WAIT=($$FMDIFF^XLFDT(X,IN,2)\60)
|
|
"RTN","EDPRPT1",42,0)
|
|
. S ROW("wait")=WAIT,ALL("wait")=ALL("wait")+WAIT
|
|
"RTN","EDPRPT1",43,0)
|
|
. S DISP(DISP,"wait")=DISP(DISP,"wait")+WAIT
|
|
"RTN","EDPRPT1",44,0)
|
|
. ;
|
|
"RTN","EDPRPT1",45,0)
|
|
. S X=$$ADMIT^EDPRPT(LOG) I X<1 D
|
|
"RTN","EDPRPT1",46,0)
|
|
.. S NOT=NOT+1,NOT("elapsed")=NOT("elapsed")+ELAPSE
|
|
"RTN","EDPRPT1",47,0)
|
|
.. S NOT("triage")=NOT("triage")+TRIAGE
|
|
"RTN","EDPRPT1",48,0)
|
|
.. S NOT("wait")=NOT("wait")+WAIT
|
|
"RTN","EDPRPT1",49,0)
|
|
. E D ;decision to admit
|
|
"RTN","EDPRPT1",50,0)
|
|
.. S ADMDEC=($$FMDIFF^XLFDT(X,IN,2)\60)
|
|
"RTN","EDPRPT1",51,0)
|
|
.. S ADMDEL=$S(OUT:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0)
|
|
"RTN","EDPRPT1",52,0)
|
|
.. S ROW("admDec")=ADMDEC,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("</logEntries>")
|
|
"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("<averages>")
|
|
"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("</averages>")
|
|
"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,DA,X,Y 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 DA=0 F S DA=$O(^EDPB(233.1,"AB","disposition",X,DA)) Q:DA<1 D
|
|
"RTN","EDPRPT1",110,0)
|
|
.. S Y=$$ECODE^EDPRPT(DA) Q:'$L(Y) S DISP(Y)=0
|
|
"RTN","EDPRPT1",111,0)
|
|
.. F I="elapsed","triage","wait","admDec","admDel" S DISP(Y,I)=0
|
|
"RTN","EDPRPT1",112,0)
|
|
S DISP("none")=0 F I="elapsed","triage","wait","admDec","admDel" S DISP("none",I)=0
|
|
"RTN","EDPRPT1",113,0)
|
|
Q
|
|
"RTN","EDPRPT10")
|
|
0^12^B19172294
|
|
"RTN","EDPRPT10",1,0)
|
|
EDPRPT10 ;SLC/MKB - Admissions Report
|
|
"RTN","EDPRPT10",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,DX,DISP,ROW,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("<logEntries>") 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))
|
|
"RTN","EDPRPT10",15,0)
|
|
. S DISP=$$ECODE^EDPRPT($P(X1,U,2)),OUT=$P(X0,U,9)
|
|
"RTN","EDPRPT10",16,0)
|
|
. Q:DISP="" Q:'$D(CNT($$UP^XLFSTR(DISP))) ;visits w/admit disp
|
|
"RTN","EDPRPT10",17,0)
|
|
. S DX=$$DXPRI^EDPQPCE(+$P(X0,U,3),LOG)
|
|
"RTN","EDPRPT10",18,0)
|
|
. K ROW S ROW("id")=LOG
|
|
"RTN","EDPRPT10",19,0)
|
|
. S ROW("outTS")=$S($G(CSV):$$EDATE^EDPRPT(OUT),1:OUT)
|
|
"RTN","EDPRPT10",20,0)
|
|
. S ROW("complaint")=$P(X1,U)
|
|
"RTN","EDPRPT10",21,0)
|
|
. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
|
|
"RTN","EDPRPT10",22,0)
|
|
. S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3))
|
|
"RTN","EDPRPT10",23,0)
|
|
. S ROW("disposition")=DISP,DISP=$$UP^XLFSTR(DISP)
|
|
"RTN","EDPRPT10",24,0)
|
|
. S ROW("icd")=$P(DX,U),ROW("dx")=$P(DX,U,2)
|
|
"RTN","EDPRPT10",25,0)
|
|
. ; ER Special Visit ?? -- ck ^DPT dispositions
|
|
"RTN","EDPRPT10",26,0)
|
|
. S CNT("ALL")=CNT("ALL")+1,CNT(DISP)=CNT(DISP)+1
|
|
"RTN","EDPRPT10",27,0)
|
|
. ;
|
|
"RTN","EDPRPT10",28,0)
|
|
A1 . ; calculate times
|
|
"RTN","EDPRPT10",29,0)
|
|
. ; S:OUT="" OUT=NOW
|
|
"RTN","EDPRPT10",30,0)
|
|
. S ELAPSE=$S(OUT:($$FMDIFF^XLFDT(OUT,IN,2)\60),1:0)
|
|
"RTN","EDPRPT10",31,0)
|
|
. F I="ALL",DISP S MIN(I,"elapsed")=MIN(I,"elapsed")+ELAPSE
|
|
"RTN","EDPRPT10",32,0)
|
|
. ;
|
|
"RTN","EDPRPT10",33,0)
|
|
. S X=$$ACUITY^EDPRPT(LOG),TRIAGE=0 ;S:X<1 X=OUT
|
|
"RTN","EDPRPT10",34,0)
|
|
. S:X TRIAGE=($$FMDIFF^XLFDT(X,IN,2)\60)
|
|
"RTN","EDPRPT10",35,0)
|
|
. F I="ALL",DISP S MIN(I,"triage")=MIN(I,"triage")+TRIAGE
|
|
"RTN","EDPRPT10",36,0)
|
|
. ;
|
|
"RTN","EDPRPT10",37,0)
|
|
. S X=$$LVWAITRM^EDPRPT(LOG),WAIT=0 ;leave waiting room
|
|
"RTN","EDPRPT10",38,0)
|
|
. S:X WAIT=($$FMDIFF^XLFDT(X,IN,2)\60)
|
|
"RTN","EDPRPT10",39,0)
|
|
. F I="ALL",DISP S MIN(I,"wait")=MIN(I,"wait")+WAIT
|
|
"RTN","EDPRPT10",40,0)
|
|
. ;
|
|
"RTN","EDPRPT10",41,0)
|
|
. S X=$$ADMIT^EDPRPT(LOG) ;decision to admit
|
|
"RTN","EDPRPT10",42,0)
|
|
. S ADMDEC=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
|
|
"RTN","EDPRPT10",43,0)
|
|
. F I="ALL",DISP S MIN(I,"admDec")=MIN(I,"admDec")+ADMDEC
|
|
"RTN","EDPRPT10",44,0)
|
|
. S ROW("admDec")=ADMDEC
|
|
"RTN","EDPRPT10",45,0)
|
|
. ;
|
|
"RTN","EDPRPT10",46,0)
|
|
. S ADMDEL=$S(X:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0)
|
|
"RTN","EDPRPT10",47,0)
|
|
. F I="ALL",DISP S MIN(I,"admDel")=MIN(I,"admDel")+ADMDEL
|
|
"RTN","EDPRPT10",48,0)
|
|
. S ROW("admDel")=ADMDEL
|
|
"RTN","EDPRPT10",49,0)
|
|
. ;
|
|
"RTN","EDPRPT10",50,0)
|
|
. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
|
|
"RTN","EDPRPT10",51,0)
|
|
. S X=ROW("id")
|
|
"RTN","EDPRPT10",52,0)
|
|
. F I="outTS","complaint","md","acuity","disposition","admDec","admDel","dx","icd" S X=X_$C(9)_$G(ROW(I))
|
|
"RTN","EDPRPT10",53,0)
|
|
. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT10",54,0)
|
|
D:'$G(CSV) XML^EDPX("</logEntries>")
|
|
"RTN","EDPRPT10",55,0)
|
|
;
|
|
"RTN","EDPRPT10",56,0)
|
|
A2 ; calculate & include averages
|
|
"RTN","EDPRPT10",57,0)
|
|
Q:CNT("ALL")<1 ;no visits found
|
|
"RTN","EDPRPT10",58,0)
|
|
I $G(CSV) D Q ;return as CSV
|
|
"RTN","EDPRPT10",59,0)
|
|
. S X=TAB_TAB_TAB_" Activity Summary"_TAB_"Total"_TAB_"Visit"_TAB_"Triage"_TAB_"Wait"_TAB_"Adm Dec"_TAB_"Adm Delay"
|
|
"RTN","EDPRPT10",60,0)
|
|
. D BLANK^EDPCSV,ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT10",61,0)
|
|
. S X=TAB_TAB_TAB_"Total Patients VA Admitted"_TAB_CNT("ALL")
|
|
"RTN","EDPRPT10",62,0)
|
|
. F I="elapsed","triage","wait","admDec","admDel" D
|
|
"RTN","EDPRPT10",63,0)
|
|
.. S Y=MIN("ALL",I)\CNT("ALL"),X=X_TAB_$S(Y:$$ETIME^EDPRPT(Y),1:"0:00")
|
|
"RTN","EDPRPT10",64,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT10",65,0)
|
|
. S X=TAB_TAB_TAB_" Disposition" D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT10",66,0)
|
|
. S DISP="" F S DISP=$O(CNT(DISP)) Q:DISP="" I DISP'="ALL",CNT(DISP) D
|
|
"RTN","EDPRPT10",67,0)
|
|
.. S X=TAB_TAB_TAB_DISP_TAB_CNT(DISP)
|
|
"RTN","EDPRPT10",68,0)
|
|
.. F I="elapsed","triage","wait","admDec","admDel" D
|
|
"RTN","EDPRPT10",69,0)
|
|
... S Y=MIN(DISP,I)\CNT(DISP),X=X_TAB_$S(Y:$$ETIME^EDPRPT(Y),1:"0:00")
|
|
"RTN","EDPRPT10",70,0)
|
|
.. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT10",71,0)
|
|
; or as XML
|
|
"RTN","EDPRPT10",72,0)
|
|
D XML^EDPX("<averages>")
|
|
"RTN","EDPRPT10",73,0)
|
|
S DISP="" F S DISP=$O(CNT(DISP)) Q:DISP="" I CNT(DISP) D
|
|
"RTN","EDPRPT10",74,0)
|
|
. S MIN(DISP,"type")=$S(DISP="ALL":"Total Patients VA Admitted",1:DISP)
|
|
"RTN","EDPRPT10",75,0)
|
|
. S MIN(DISP,"total")=CNT(DISP)
|
|
"RTN","EDPRPT10",76,0)
|
|
. F I="elapsed","triage","wait","admDec","admDel" D
|
|
"RTN","EDPRPT10",77,0)
|
|
.. S X=MIN(DISP,I)\CNT(DISP)
|
|
"RTN","EDPRPT10",78,0)
|
|
.. S MIN(DISP,I)=$S(X:$$ETIME^EDPRPT(X),1:"0:00")
|
|
"RTN","EDPRPT10",79,0)
|
|
. K ROW M ROW=MIN(DISP)
|
|
"RTN","EDPRPT10",80,0)
|
|
. S X=$$XMLA^EDPX("average",.ROW) D XML^EDPX(X)
|
|
"RTN","EDPRPT10",81,0)
|
|
D XML^EDPX("</averages>")
|
|
"RTN","EDPRPT10",82,0)
|
|
Q
|
|
"RTN","EDPRPT10",83,0)
|
|
;
|
|
"RTN","EDPRPT10",84,0)
|
|
INIT ; Initialize counters and sums
|
|
"RTN","EDPRPT10",85,0)
|
|
N I,DISP
|
|
"RTN","EDPRPT10",86,0)
|
|
;F D="VA","T","ICU","OBS","ALL" D
|
|
"RTN","EDPRPT10",87,0)
|
|
S DISP="" F S DISP=$O(^EDPB(233.1,"AB","disposition",DISP)) Q:DISP="" D
|
|
"RTN","EDPRPT10",88,0)
|
|
. Q:'$$VADMIT^EDPRPT2(DISP)
|
|
"RTN","EDPRPT10",89,0)
|
|
. S CNT(DISP)=0
|
|
"RTN","EDPRPT10",90,0)
|
|
. F I="elapsed","triage","wait","admDec","admDel" S MIN(DISP,I)=0
|
|
"RTN","EDPRPT10",91,0)
|
|
S CNT("ALL")=0
|
|
"RTN","EDPRPT10",92,0)
|
|
F I="elapsed","triage","wait","admDec","admDel" S MIN("ALL",I)=0
|
|
"RTN","EDPRPT10",93,0)
|
|
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^B8054102
|
|
"RTN","EDPRPT11",1,0)
|
|
EDPRPT11 ;SLC/MKB - Patient Intake Report
|
|
"RTN","EDPRPT11",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,HR,DAY,%H,%T,%Y,H,D,ROW,AVG,NM,TAB,DAYS
|
|
"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 H=%T\3600,D=%Y
|
|
"RTN","EDPRPT11",12,0)
|
|
. S CNT=CNT+1,HR(H)=HR(H)+1,CNT(H,D)=CNT(H,D)+1
|
|
"RTN","EDPRPT11",13,0)
|
|
. S DAY(D)=DAY(D)+1
|
|
"RTN","EDPRPT11",14,0)
|
|
. I LAST=""!($P(LAST,".")'=$P(IN,".")) S DAYS(D)=DAYS(D)+1,LAST=IN
|
|
"RTN","EDPRPT11",15,0)
|
|
C1 ; return counts and averages
|
|
"RTN","EDPRPT11",16,0)
|
|
D:'$G(CSV) XML^EDPX("<averages>") I $G(CSV) D ;headers
|
|
"RTN","EDPRPT11",17,0)
|
|
. S X="Time/Day"_TAB_"Sunday"_TAB_"Monday"_TAB_"Tuesday"_TAB_"Wednesday"_TAB_"Thursday"_TAB_"Friday"_TAB_"Saturday"_TAB_"Totals"_TAB_"Avg/Day"
|
|
"RTN","EDPRPT11",18,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT11",19,0)
|
|
F H=0:1:23 D
|
|
"RTN","EDPRPT11",20,0)
|
|
. K ROW S ROW("time")=$$TIME(H)_"-"_$$TIME(H+1)
|
|
"RTN","EDPRPT11",21,0)
|
|
. S ROW=ROW("time") ;CSV
|
|
"RTN","EDPRPT11",22,0)
|
|
. F D=0:1:6 S NM=$$NAME(D) D
|
|
"RTN","EDPRPT11",23,0)
|
|
.. S ROW(NM)=CNT(H,D)
|
|
"RTN","EDPRPT11",24,0)
|
|
.. S ROW=ROW_TAB_ROW(NM) ;CSV
|
|
"RTN","EDPRPT11",25,0)
|
|
. S ROW("total")=HR(H),ROW("average")=$$ROUND(HR(H)/DAYS)
|
|
"RTN","EDPRPT11",26,0)
|
|
. I '$G(CSV) S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) Q
|
|
"RTN","EDPRPT11",27,0)
|
|
. S ROW=ROW_TAB_ROW("total")_TAB_ROW("average") D ADD^EDPCSV(ROW)
|
|
"RTN","EDPRPT11",28,0)
|
|
; total & average rows
|
|
"RTN","EDPRPT11",29,0)
|
|
K ROW S ROW("time")="Totals",ROW=ROW("time")
|
|
"RTN","EDPRPT11",30,0)
|
|
S AVG("time")="Avg/Hour",AVG=AVG("time")
|
|
"RTN","EDPRPT11",31,0)
|
|
F D=0:1:6 S NM=$$NAME(D) D
|
|
"RTN","EDPRPT11",32,0)
|
|
. S ROW(NM)=DAY(D),X=0
|
|
"RTN","EDPRPT11",33,0)
|
|
. S:DAYS(D) X=DAY(D)/(24*DAYS(D))
|
|
"RTN","EDPRPT11",34,0)
|
|
. S AVG(NM)=$$ROUND(X)
|
|
"RTN","EDPRPT11",35,0)
|
|
. S ROW=ROW_TAB_ROW(NM) ;CSV
|
|
"RTN","EDPRPT11",36,0)
|
|
. S AVG=AVG_TAB_AVG(NM) ;CSV
|
|
"RTN","EDPRPT11",37,0)
|
|
S ROW("total")=CNT,ROW("average")=$$ROUND(CNT/DAYS)
|
|
"RTN","EDPRPT11",38,0)
|
|
S ROW=ROW_TAB_ROW("total")_TAB_ROW("average")
|
|
"RTN","EDPRPT11",39,0)
|
|
I $G(CSV) D BLANK^EDPCSV,ADD^EDPCSV(ROW),ADD^EDPCSV(AVG) Q
|
|
"RTN","EDPRPT11",40,0)
|
|
S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X)
|
|
"RTN","EDPRPT11",41,0)
|
|
S X=$$XMLA^EDPX("row",.AVG) D XML^EDPX(X)
|
|
"RTN","EDPRPT11",42,0)
|
|
D XML^EDPX("</averages>")
|
|
"RTN","EDPRPT11",43,0)
|
|
Q
|
|
"RTN","EDPRPT11",44,0)
|
|
;
|
|
"RTN","EDPRPT11",45,0)
|
|
INIT ; Initialize counters and sums
|
|
"RTN","EDPRPT11",46,0)
|
|
N H,D S CNT=0
|
|
"RTN","EDPRPT11",47,0)
|
|
F H=0:1:23 S HR(H)=0 F D=0:1:6 S CNT(H,D)=0
|
|
"RTN","EDPRPT11",48,0)
|
|
F D=0:1:6 S DAY(D)=0,DAYS(D)=0
|
|
"RTN","EDPRPT11",49,0)
|
|
S DAYS=$$FMDIFF^XLFDT(END,BEG)+1
|
|
"RTN","EDPRPT11",50,0)
|
|
Q
|
|
"RTN","EDPRPT11",51,0)
|
|
;
|
|
"RTN","EDPRPT11",52,0)
|
|
ROUND(X) ; Round X to one decimal place
|
|
"RTN","EDPRPT11",53,0)
|
|
N Y1,Y2,Y S X=+$G(X)
|
|
"RTN","EDPRPT11",54,0)
|
|
S Y1=+$P(X,"."),Y2=$E($P(X,".",2)_"00",1,2)
|
|
"RTN","EDPRPT11",55,0)
|
|
S:$E(Y2,2)'>4 Y2=+$E(Y2) I $E(Y2,2)>4 D
|
|
"RTN","EDPRPT11",56,0)
|
|
. I $E(Y2)=9 S Y1=Y1+1,Y2=0 Q
|
|
"RTN","EDPRPT11",57,0)
|
|
. S Y2=$E(Y2)+1
|
|
"RTN","EDPRPT11",58,0)
|
|
S Y=Y1_"."_Y2
|
|
"RTN","EDPRPT11",59,0)
|
|
Q Y
|
|
"RTN","EDPRPT11",60,0)
|
|
;
|
|
"RTN","EDPRPT11",61,0)
|
|
ZROUND(X) ; Round X to nearest integer
|
|
"RTN","EDPRPT11",62,0)
|
|
N Y S Y=+$E($P(X,".",2)),X=X\1
|
|
"RTN","EDPRPT11",63,0)
|
|
S:Y>4 X=X+1
|
|
"RTN","EDPRPT11",64,0)
|
|
Q X
|
|
"RTN","EDPRPT11",65,0)
|
|
;
|
|
"RTN","EDPRPT11",66,0)
|
|
TIME(X) ; Return 0000 form of hour# X
|
|
"RTN","EDPRPT11",67,0)
|
|
N Y S Y=$S($L(X)=1:"0"_X,1:X)_"00"
|
|
"RTN","EDPRPT11",68,0)
|
|
Q Y
|
|
"RTN","EDPRPT11",69,0)
|
|
;
|
|
"RTN","EDPRPT11",70,0)
|
|
NAME(X) ; Return name of day# X
|
|
"RTN","EDPRPT11",71,0)
|
|
I X=1 Q "Monday"
|
|
"RTN","EDPRPT11",72,0)
|
|
I X=2 Q "Tuesday"
|
|
"RTN","EDPRPT11",73,0)
|
|
I X=3 Q "Wednesday"
|
|
"RTN","EDPRPT11",74,0)
|
|
I X=4 Q "Thursday"
|
|
"RTN","EDPRPT11",75,0)
|
|
I X=5 Q "Friday"
|
|
"RTN","EDPRPT11",76,0)
|
|
I X=6 Q "Saturday"
|
|
"RTN","EDPRPT11",77,0)
|
|
Q "Sunday"
|
|
"RTN","EDPRPT12")
|
|
0^50^B7797789
|
|
"RTN","EDPRPT12",1,0)
|
|
EDPRPT12 ;SLC/MKB - Orders by Acuity Report
|
|
"RTN","EDPRPT12",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPRPT12",3,0)
|
|
;
|
|
"RTN","EDPRPT12",4,0)
|
|
ORD(BEG,END) ; Get Acuity Report for EDPSITE by date range
|
|
"RTN","EDPRPT12",5,0)
|
|
; CNT = counters by acuity
|
|
"RTN","EDPRPT12",6,0)
|
|
N IN,OUT,X,X0,I,SERV,ACU,CNT,ROW,EDLOC
|
|
"RTN","EDPRPT12",7,0)
|
|
D INIT ;set counters, sums to 0
|
|
"RTN","EDPRPT12",8,0)
|
|
S IN=BEG-.000001
|
|
"RTN","EDPRPT12",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","EDPRPT12",10,0)
|
|
. S X=$P($G(^EDP(230,LOG,3)),U,3),ACU=$$ECODE(X)
|
|
"RTN","EDPRPT12",11,0)
|
|
. I '$D(^EDP(230,LOG,8)) D FIND(LOG,ACU) Q ;old/converted visit
|
|
"RTN","EDPRPT12",12,0)
|
|
. S I=0 F S I=$O(^EDP(230,LOG,8,I)) Q:I<1 S X0=$G(^(I,0)) D
|
|
"RTN","EDPRPT12",13,0)
|
|
.. S SERV=$$ENAME($P(X0,U,2))
|
|
"RTN","EDPRPT12",14,0)
|
|
.. S CNT(ACU,SERV)=CNT(ACU,SERV)+1
|
|
"RTN","EDPRPT12",15,0)
|
|
;
|
|
"RTN","EDPRPT12",16,0)
|
|
OR1 ; return counts
|
|
"RTN","EDPRPT12",17,0)
|
|
I $G(CSV) D Q ;as CSV
|
|
"RTN","EDPRPT12",18,0)
|
|
. N TAB S TAB=$C(9)
|
|
"RTN","EDPRPT12",19,0)
|
|
. S X="Acuity"_TAB_"Labs"_TAB_"Images"_TAB_"Consults"_TAB_"Meds"_TAB_"Other"
|
|
"RTN","EDPRPT12",20,0)
|
|
. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT12",21,0)
|
|
. F ACU=0,1,2,3,4,5 D
|
|
"RTN","EDPRPT12",22,0)
|
|
.. K ROW S ROW("acuity")=ACU M ROW=CNT(ACU)
|
|
"RTN","EDPRPT12",23,0)
|
|
.. D ROW(ACU,.ROW)
|
|
"RTN","EDPRPT12",24,0)
|
|
; or as XML
|
|
"RTN","EDPRPT12",25,0)
|
|
D XML^EDPX("<statistics>")
|
|
"RTN","EDPRPT12",26,0)
|
|
F ACU=0,1,2,3,4,5 D
|
|
"RTN","EDPRPT12",27,0)
|
|
. K ROW S ROW("acuity")=ACU M ROW=CNT(ACU)
|
|
"RTN","EDPRPT12",28,0)
|
|
. S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X)
|
|
"RTN","EDPRPT12",29,0)
|
|
D XML^EDPX("</statistics>")
|
|
"RTN","EDPRPT12",30,0)
|
|
Q
|
|
"RTN","EDPRPT12",31,0)
|
|
;
|
|
"RTN","EDPRPT12",32,0)
|
|
ROW(NAME,LIST) ; add line
|
|
"RTN","EDPRPT12",33,0)
|
|
N I S X=NAME
|
|
"RTN","EDPRPT12",34,0)
|
|
F I="labs","images","consults","meds","other" S X=X_TAB_LIST(I)
|
|
"RTN","EDPRPT12",35,0)
|
|
D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT12",36,0)
|
|
Q
|
|
"RTN","EDPRPT12",37,0)
|
|
;
|
|
"RTN","EDPRPT12",38,0)
|
|
INIT ; Initialize acuity/service counters
|
|
"RTN","EDPRPT12",39,0)
|
|
N A,S
|
|
"RTN","EDPRPT12",40,0)
|
|
F A=0,1,2,3,4,5 D
|
|
"RTN","EDPRPT12",41,0)
|
|
. F S="meds","labs","images","consults","other" S CNT(A,S)=0
|
|
"RTN","EDPRPT12",42,0)
|
|
Q
|
|
"RTN","EDPRPT12",43,0)
|
|
;
|
|
"RTN","EDPRPT12",44,0)
|
|
ECODE(IEN) ; Return external value for an Acuity code
|
|
"RTN","EDPRPT12",45,0)
|
|
N X0,X,Y S X0=$G(^EDPB(233.1,+IEN,0))
|
|
"RTN","EDPRPT12",46,0)
|
|
S X=$P(X0,U,3) S:X<1 X=$P(X0,U,4) ;code or nat'l code
|
|
"RTN","EDPRPT12",47,0)
|
|
;S Y=$S(X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"none")
|
|
"RTN","EDPRPT12",48,0)
|
|
S Y=+X I (Y<1)!(Y>5) S Y=0
|
|
"RTN","EDPRPT12",49,0)
|
|
Q Y
|
|
"RTN","EDPRPT12",50,0)
|
|
;
|
|
"RTN","EDPRPT12",51,0)
|
|
ENAME(X) ; Return external name for a Service code
|
|
"RTN","EDPRPT12",52,0)
|
|
I X="L"!($E(X,1,2)="LR") Q "labs"
|
|
"RTN","EDPRPT12",53,0)
|
|
I X="R"!($E(X,1,2)="RA") Q "images"
|
|
"RTN","EDPRPT12",54,0)
|
|
I X="C"!(X="GMRC") Q "consults"
|
|
"RTN","EDPRPT12",55,0)
|
|
I X="M"!($E(X,1,2)="PS") Q "meds"
|
|
"RTN","EDPRPT12",56,0)
|
|
I X="A" Q "other"
|
|
"RTN","EDPRPT12",57,0)
|
|
Q "other"
|
|
"RTN","EDPRPT12",58,0)
|
|
;
|
|
"RTN","EDPRPT12",59,0)
|
|
FIND(LOG,ACU) ; find/count orders placed during visit LOG
|
|
"RTN","EDPRPT12",60,0)
|
|
; (for converted data)
|
|
"RTN","EDPRPT12",61,0)
|
|
N ORLIST,X0,DFN,IN,OUT,ORI,ORIFN,ORL,PKG,SERV
|
|
"RTN","EDPRPT12",62,0)
|
|
S X0=$G(^EDP(230,LOG,0)),DFN=+$P(X0,U,6) Q:DFN<1
|
|
"RTN","EDPRPT12",63,0)
|
|
S IN=$P(X0,U,8),OUT=$P(X0,U,9)
|
|
"RTN","EDPRPT12",64,0)
|
|
D:'$D(EDLOC) GETLST^XPAR(.EDLOC,"ALL","EDPF LOCATION")
|
|
"RTN","EDPRPT12",65,0)
|
|
K ^TMP("ORR",$J) D EN^ORQ1(DFN_";DPT(",,1,,IN,OUT) S ORI=0
|
|
"RTN","EDPRPT12",66,0)
|
|
F S ORI=$O(^TMP("ORR",$J,ORLIST,ORI)) Q:ORI<1 S ORIFN=+$G(^(ORI)) D
|
|
"RTN","EDPRPT12",67,0)
|
|
. S ORL=$$GET1^DIQ(100,ORIFN_",",6,"I") Q:'$$ED(+ORL)
|
|
"RTN","EDPRPT12",68,0)
|
|
. S PKG=$$GET1^DIQ(100,ORIFN_",","12:1")
|
|
"RTN","EDPRPT12",69,0)
|
|
. S SERV=$$ENAME(PKG)
|
|
"RTN","EDPRPT12",70,0)
|
|
. S CNT(ACU,SERV)=CNT(ACU,SERV)+1
|
|
"RTN","EDPRPT12",71,0)
|
|
Q
|
|
"RTN","EDPRPT12",72,0)
|
|
;
|
|
"RTN","EDPRPT12",73,0)
|
|
ED(LOC) ; -- Return 1 or 0, if LOCation is part of ED
|
|
"RTN","EDPRPT12",74,0)
|
|
; Expects EDLOC(n) = seq ^ #44 ien
|
|
"RTN","EDPRPT12",75,0)
|
|
N I,Y S (I,Y)=0
|
|
"RTN","EDPRPT12",76,0)
|
|
F S I=$O(EDLOC(I)) Q:I<1 I $P(EDLOC(I),U,2)=LOC S Y=1 Q
|
|
"RTN","EDPRPT12",77,0)
|
|
Q Y
|
|
"RTN","EDPRPT2")
|
|
0^14^B15843773
|
|
"RTN","EDPRPT2",1,0)
|
|
EDPRPT2 ;SLC/MKB - Delay Report
|
|
"RTN","EDPRPT2",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,DX,ELAPSE,ADMDEC,ADMDEL,DISP,VADISP,CNT,MIN,DEL,ACU
|
|
"RTN","EDPRPT2",8,0)
|
|
D INIT ;set counters, sums to 0
|
|
"RTN","EDPRPT2",9,0)
|
|
D:'$G(CSV) XML^EDPX("<logEntries>") 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))
|
|
"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=$S(OUT:($$FMDIFF^XLFDT(OUT,IN,2)\60),1:0),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=$S(OUT:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0)
|
|
"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)
|
|
.. S DX=$$DXPRI^EDPQPCE(+$P(X0,U,3),LOG)
|
|
"RTN","EDPRPT2",39,0)
|
|
.. N ROW S ROW("id")=LOG
|
|
"RTN","EDPRPT2",40,0)
|
|
.. S ROW("inTS")=$S($G(CSV):$$EDATE^EDPRPT(IN),1:IN)
|
|
"RTN","EDPRPT2",41,0)
|
|
.. S ROW("elapsed")=$$ETIME^EDPRPT(ELAPSE)_" *"
|
|
"RTN","EDPRPT2",42,0)
|
|
.. S ROW("disposition")=DISP
|
|
"RTN","EDPRPT2",43,0)
|
|
.. S ROW("acuity")=ACU
|
|
"RTN","EDPRPT2",44,0)
|
|
.. S ROW("delayReason")=$$ENAME^EDPRPT(DEL)
|
|
"RTN","EDPRPT2",45,0)
|
|
.. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
|
|
"RTN","EDPRPT2",46,0)
|
|
.. S ROW("dx")=$P(DX,U,2)
|
|
"RTN","EDPRPT2",47,0)
|
|
.. S ROW("admDec")=ADMDEC
|
|
"RTN","EDPRPT2",48,0)
|
|
.. S ROW("admDel")=ADMDEL
|
|
"RTN","EDPRPT2",49,0)
|
|
.. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
|
|
"RTN","EDPRPT2",50,0)
|
|
.. S X=ROW("id")
|
|
"RTN","EDPRPT2",51,0)
|
|
.. F I="inTS","elapsed","disposition","delayReason","md","admDec","admDel","acuity","dx" S X=X_$C(9)_$G(ROW(I))
|
|
"RTN","EDPRPT2",52,0)
|
|
.. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT2",53,0)
|
|
D:'$G(CSV) XML^EDPX("</logEntries>")
|
|
"RTN","EDPRPT2",54,0)
|
|
Q
|
|
"RTN","EDPRPT2",55,0)
|
|
;
|
|
"RTN","EDPRPT2",56,0)
|
|
D4 ; return counts and averages
|
|
"RTN","EDPRPT2",57,0)
|
|
D XML^EDPX("<averages>")
|
|
"RTN","EDPRPT2",58,0)
|
|
S X="<average type='All Patients' total='"_CNT_"' avgTime='"_$S(CNT:$$ETIME^EDPRPT(MIN/CNT),1:0)_"' num6hr='"_CNT("6+")_"' num23hr='"_CNT("23+")_"' avgAdmDec='"_$S(CNT("DEC"):$$ETIME^EDPRPT(MIN("DEC")/CNT("DEC")),1:0)_"' />"
|
|
"RTN","EDPRPT2",59,0)
|
|
D XML^EDPX(X)
|
|
"RTN","EDPRPT2",60,0)
|
|
S X="<average type='Not VA Admitted' total='"_(CNT-CNT("VA"))_"' avgTime='"_$S(CNT-CNT("VA"):$$ETIME^EDPRPT((MIN-MIN("VA")/(CNT-CNT("VA")))),1:0)_"' />"
|
|
"RTN","EDPRPT2",61,0)
|
|
D XML^EDPX(X)
|
|
"RTN","EDPRPT2",62,0)
|
|
S X="<average type='VA Admitted' total='"_CNT("VA")_"' num6hr='"_CNT("VA6")_"' numAdmDel6hr='"_CNT("VADEL6")
|
|
"RTN","EDPRPT2",63,0)
|
|
S X=X_"' avgAdmDel='"_$S(CNT("VA"):$$ETIME^EDPRPT(MIN("VADEL")/CNT("VA")),1:0)_"' avgAdmDec='"_$S(CNT("VA"):$$ETIME^EDPRPT(MIN("VADEC")/CNT("VA")),1:0)_"' />"
|
|
"RTN","EDPRPT2",64,0)
|
|
D XML^EDPX(X)
|
|
"RTN","EDPRPT2",65,0)
|
|
D XML^EDPX("</averages>")
|
|
"RTN","EDPRPT2",66,0)
|
|
Q
|
|
"RTN","EDPRPT2",67,0)
|
|
;
|
|
"RTN","EDPRPT2",68,0)
|
|
INIT ; Initialize counters and sums
|
|
"RTN","EDPRPT2",69,0)
|
|
N I S (CNT,MIN)=0
|
|
"RTN","EDPRPT2",70,0)
|
|
F I="DEC","VA","VA6","VADEL6","6+","23+" S CNT(I)=0
|
|
"RTN","EDPRPT2",71,0)
|
|
F I="DEC","VA","VADEC","VADEL" S MIN(I)=0
|
|
"RTN","EDPRPT2",72,0)
|
|
Q
|
|
"RTN","EDPRPT2",73,0)
|
|
;
|
|
"RTN","EDPRPT2",74,0)
|
|
VADMIT(X) ; -- Return 1 or 0, if disposition indicates a VA admission
|
|
"RTN","EDPRPT2",75,0)
|
|
I $G(X)="" Q 0
|
|
"RTN","EDPRPT2",76,0)
|
|
N I,Y S X=$$UP^XLFSTR(X)
|
|
"RTN","EDPRPT2",77,0)
|
|
S I=+$O(^EDPB(233.1,"AB","disposition",X,0))
|
|
"RTN","EDPRPT2",78,0)
|
|
S Y=$S($P($G(^EDPB(233.1,I,0)),U,5)["V":1,1:0)
|
|
"RTN","EDPRPT2",79,0)
|
|
Q Y
|
|
"RTN","EDPRPT3")
|
|
0^15^B8721424
|
|
"RTN","EDPRPT3",1,0)
|
|
EDPRPT3 ;SLC/MKB - Missed Opportunity Report
|
|
"RTN","EDPRPT3",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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
|
|
"RTN","EDPRPT3",7,0)
|
|
D INIT ;set counters to 0
|
|
"RTN","EDPRPT3",8,0)
|
|
D:'$G(CSV) XML^EDPX("<logEntries>") I $G(CSV) D ;headers
|
|
"RTN","EDPRPT3",9,0)
|
|
. N TAB S TAB=$C(9)
|
|
"RTN","EDPRPT3",10,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",11,0)
|
|
. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT3",12,0)
|
|
S IN=BEG-.000001
|
|
"RTN","EDPRPT3",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","EDPRPT3",14,0)
|
|
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
|
|
"RTN","EDPRPT3",15,0)
|
|
. S DISP=$$ECODE^EDPRPT($P(X1,U,2)) Q:'$$MISSEDOP(DISP)
|
|
"RTN","EDPRPT3",16,0)
|
|
. S OUT=$P(X0,U,9) ;S:OUT="" OUT=NOW
|
|
"RTN","EDPRPT3",17,0)
|
|
. K ROW S ROW("id")=LOG
|
|
"RTN","EDPRPT3",18,0)
|
|
. S ROW("inTS")=$S($G(CSV):$$EDATE^EDPRPT(IN),1:IN)
|
|
"RTN","EDPRPT3",19,0)
|
|
. S ROW("complaint")=$P(X1,U)
|
|
"RTN","EDPRPT3",20,0)
|
|
. S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3))
|
|
"RTN","EDPRPT3",21,0)
|
|
. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
|
|
"RTN","EDPRPT3",22,0)
|
|
. S ROW("disposition")=DISP
|
|
"RTN","EDPRPT3",23,0)
|
|
. S DISP=$$UP^XLFSTR(DISP),CNT(DISP)=CNT(DISP)+1
|
|
"RTN","EDPRPT3",24,0)
|
|
. ;
|
|
"RTN","EDPRPT3",25,0)
|
|
. ; calculate times
|
|
"RTN","EDPRPT3",26,0)
|
|
. S ROW("elapsed")=$S(OUT:($$FMDIFF^XLFDT(OUT,IN,2)\60),1:0)
|
|
"RTN","EDPRPT3",27,0)
|
|
. S X=$$ACUITY^EDPRPT(LOG) ;S:X<1 X=OUT
|
|
"RTN","EDPRPT3",28,0)
|
|
. S ROW("triage")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
|
|
"RTN","EDPRPT3",29,0)
|
|
. S X=$$LVWAITRM^EDPRPT(LOG) ;S:X<1 X=IN
|
|
"RTN","EDPRPT3",30,0)
|
|
. S ROW("wait")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
|
|
"RTN","EDPRPT3",31,0)
|
|
. S X=$$ADMIT^EDPRPT(LOG)
|
|
"RTN","EDPRPT3",32,0)
|
|
. S ROW("admDec")=$S(X:($$FMDIFF^XLFDT(X,IN,2)\60),1:0)
|
|
"RTN","EDPRPT3",33,0)
|
|
. S ROW("admDel")=$S(X&OUT:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0)
|
|
"RTN","EDPRPT3",34,0)
|
|
. S ROW("delayReason")=$$ENAME^EDPRPT(+$P(X1,U,5))
|
|
"RTN","EDPRPT3",35,0)
|
|
. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
|
|
"RTN","EDPRPT3",36,0)
|
|
. S X=ROW("id")
|
|
"RTN","EDPRPT3",37,0)
|
|
. F I="inTS","complaint","md","acuity","elapsed","triage","wait","disposition","admDec","admDel","delayReason" S X=X_$C(9)_$G(ROW(I))
|
|
"RTN","EDPRPT3",38,0)
|
|
. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT3",39,0)
|
|
D:'$G(CSV) XML^EDPX("</logEntries>")
|
|
"RTN","EDPRPT3",40,0)
|
|
;
|
|
"RTN","EDPRPT3",41,0)
|
|
; return totals, as XML or CSV
|
|
"RTN","EDPRPT3",42,0)
|
|
I '$G(CSV) S X=$$XMLA^EDPX("totals",.CNT) D XML^EDPX(X) Q
|
|
"RTN","EDPRPT3",43,0)
|
|
N TAB S TAB=$C(9)
|
|
"RTN","EDPRPT3",44,0)
|
|
S I="" F S I=$O(CNT(I)) Q:I="" D
|
|
"RTN","EDPRPT3",45,0)
|
|
. D BLANK^EDPCSV
|
|
"RTN","EDPRPT3",46,0)
|
|
. S X=TAB_TAB_TAB_TAB_"Total "_CNT(I,0)_": "_CNT(I)
|
|
"RTN","EDPRPT3",47,0)
|
|
. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT3",48,0)
|
|
Q
|
|
"RTN","EDPRPT3",49,0)
|
|
;
|
|
"RTN","EDPRPT3",50,0)
|
|
INIT ; -- initialize counters
|
|
"RTN","EDPRPT3",51,0)
|
|
N I,X,X2 S CNT=0
|
|
"RTN","EDPRPT3",52,0)
|
|
S X="" F S X=$O(^EDPB(233.1,"AB","disposition",X)) Q:X="" S I=+$O(^(X,0)) D
|
|
"RTN","EDPRPT3",53,0)
|
|
. S X2=$P($G(^EDPB(233.1,I,0)),U,2)
|
|
"RTN","EDPRPT3",54,0)
|
|
. I $$MISSEDOP(X) S CNT(X)=0,CNT(X,0)=X2
|
|
"RTN","EDPRPT3",55,0)
|
|
Q
|
|
"RTN","EDPRPT3",56,0)
|
|
;
|
|
"RTN","EDPRPT3",57,0)
|
|
MISSEDOP(X) ; -- Return 1 or 0, if disposition indicates a missed opportunity
|
|
"RTN","EDPRPT3",58,0)
|
|
I $G(X)="" Q 0
|
|
"RTN","EDPRPT3",59,0)
|
|
N I,Y S X=$$UP^XLFSTR(X)
|
|
"RTN","EDPRPT3",60,0)
|
|
S I=+$O(^EDPB(233.1,"AB","disposition",X,0))
|
|
"RTN","EDPRPT3",61,0)
|
|
S Y=$S($P($G(^EDPB(233.1,I,0)),U,5)["M":1,1:0)
|
|
"RTN","EDPRPT3",62,0)
|
|
Q Y
|
|
"RTN","EDPRPT4")
|
|
0^16^B24084771
|
|
"RTN","EDPRPT4",1,0)
|
|
EDPRPT4 ;SLC/MKB - Delay Summary Report
|
|
"RTN","EDPRPT4",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,STS,VADM,CNT,MIN,PROV,DEL,ACU,Y
|
|
"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)),STS=$P(X3,U,2)
|
|
"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=$S(OUT:($$FMDIFF^XLFDT(OUT,IN,2)\60),1:0),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=$S(OUT:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0)
|
|
"RTN","EDPRPT4",23,0)
|
|
. S:$$OBS(STS) CNT("OBS")=CNT("OBS")+1
|
|
"RTN","EDPRPT4",24,0)
|
|
D2 . ; VA admissions only
|
|
"RTN","EDPRPT4",25,0)
|
|
. I VADM D
|
|
"RTN","EDPRPT4",26,0)
|
|
.. S CNT("VA")=CNT("VA")+1
|
|
"RTN","EDPRPT4",27,0)
|
|
.. S MIN("VA")=MIN("VA")+ELAPSE
|
|
"RTN","EDPRPT4",28,0)
|
|
.. S MIN("VADEC")=MIN("VADEC")+ADMDEC
|
|
"RTN","EDPRPT4",29,0)
|
|
.. S MIN("VADEL")=MIN("VADEL")+ADMDEL
|
|
"RTN","EDPRPT4",30,0)
|
|
.. S:ADMDEL>359 CNT("VADEL6")=CNT("VADEL6")+1
|
|
"RTN","EDPRPT4",31,0)
|
|
D3 . ; elapsed visit time >=6 hrs
|
|
"RTN","EDPRPT4",32,0)
|
|
. S:ELAPSE>1380 CNT("23+")=CNT("23+")+1
|
|
"RTN","EDPRPT4",33,0)
|
|
. I ELAPSE>359 D
|
|
"RTN","EDPRPT4",34,0)
|
|
.. S CNT("6+")=CNT("6+")+1
|
|
"RTN","EDPRPT4",35,0)
|
|
.. S:VADM CNT("VA6")=CNT("VA6")+1
|
|
"RTN","EDPRPT4",36,0)
|
|
. S:DEL CNT(DEL,ACU)=+$G(CNT(DEL,ACU))+1,CNT(DEL)=+$G(CNT(DEL))+1
|
|
"RTN","EDPRPT4",37,0)
|
|
;
|
|
"RTN","EDPRPT4",38,0)
|
|
D4 ; return counts and averages as CSV
|
|
"RTN","EDPRPT4",39,0)
|
|
I $G(CSV) D Q
|
|
"RTN","EDPRPT4",40,0)
|
|
. N TAB S TAB=$C(9)
|
|
"RTN","EDPRPT4",41,0)
|
|
. S X=TAB_TAB_"Delay Reason"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total"
|
|
"RTN","EDPRPT4",42,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV ;headers
|
|
"RTN","EDPRPT4",43,0)
|
|
. S X="Total ED Visits: "_CNT_TAB
|
|
"RTN","EDPRPT4",44,0)
|
|
. S X=X_"Average ED Visit Time: "_$S(CNT:$$ETIME^EDPRPT(MIN\CNT),1:0)
|
|
"RTN","EDPRPT4",45,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT4",46,0)
|
|
. S X="Total Visits over Six Hours: "_CNT("6+")_TAB
|
|
"RTN","EDPRPT4",47,0)
|
|
. S X=X_"Total Visits over 23 Hours: "_CNT("23+")
|
|
"RTN","EDPRPT4",48,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT4",49,0)
|
|
. S X="Total Admitted to Observation: "_CNT("OBS")
|
|
"RTN","EDPRPT4",50,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT4",51,0)
|
|
. S Y=CNT-CNT("VA"),X="Total Visits Not VA Admitted: "_Y_TAB
|
|
"RTN","EDPRPT4",52,0)
|
|
. S X=X_"Average Visit Time for Not VA Admitted: "_$S(Y:$$ETIME^EDPRPT((MIN-MIN("VA")\Y)),1:0)
|
|
"RTN","EDPRPT4",53,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT4",54,0)
|
|
. S Y=CNT("VA"),X="Total VA Admits: "_Y_TAB
|
|
"RTN","EDPRPT4",55,0)
|
|
. S X=X_"Total VA Admit Delay over Six Hours: "_CNT("VADEL6")
|
|
"RTN","EDPRPT4",56,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT4",57,0)
|
|
. S X="Average VA Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEC")\Y),1:0)_TAB
|
|
"RTN","EDPRPT4",58,0)
|
|
. S X=X_"Average VA Admit Delay Time: "_$S(Y:$$ETIME^EDPRPT(MIN("VADEL")\Y),1:0)
|
|
"RTN","EDPRPT4",59,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT4",60,0)
|
|
. S Y=CNT("DEC"),X="Average All Admit Decision Time: "_$S(Y:$$ETIME^EDPRPT(MIN("DEC")\Y),1:0)
|
|
"RTN","EDPRPT4",61,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT4",62,0)
|
|
. S X=TAB_TAB_"Delay Chart" D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT4",63,0)
|
|
. S X=TAB_TAB_"Acuity"_TAB_"None"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total"
|
|
"RTN","EDPRPT4",64,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT4",65,0)
|
|
. S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D
|
|
"RTN","EDPRPT4",66,0)
|
|
.. S X=$$ENAME^EDPRPT(DEL) Q:X="" Q:X?1." " S X=TAB_TAB_X ;novalue
|
|
"RTN","EDPRPT4",67,0)
|
|
.. F I="none","one","two","three","four","five" S X=X_TAB_+$G(CNT(DEL,I))
|
|
"RTN","EDPRPT4",68,0)
|
|
.. S X=X_TAB_CNT(DEL) D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT4",69,0)
|
|
D5 ; or return counts and averages as XML
|
|
"RTN","EDPRPT4",70,0)
|
|
D XML^EDPX("<averages>")
|
|
"RTN","EDPRPT4",71,0)
|
|
S X="<average type='All Patients' total='"_CNT
|
|
"RTN","EDPRPT4",72,0)
|
|
S X=X_"' avgTime='"_$S(CNT:$$ETIME^EDPRPT(MIN\CNT),1:0)
|
|
"RTN","EDPRPT4",73,0)
|
|
S X=X_"' num6hr='"_CNT("6+")_"' num23hr='"_CNT("23+"),Y=CNT("DEC")
|
|
"RTN","EDPRPT4",74,0)
|
|
S X=X_"' avgAdmDec='"_$S(Y:$$ETIME^EDPRPT(MIN("DEC")\Y),1:0)
|
|
"RTN","EDPRPT4",75,0)
|
|
S X=X_"' numObs='"_CNT("OBS")_"' />"
|
|
"RTN","EDPRPT4",76,0)
|
|
D XML^EDPX(X)
|
|
"RTN","EDPRPT4",77,0)
|
|
S Y=CNT-CNT("VA")
|
|
"RTN","EDPRPT4",78,0)
|
|
S X="<average type='Not VA Admitted' total='"_Y_"' avgTime='"_$S(Y:$$ETIME^EDPRPT((MIN-MIN("VA")\Y)),1:0)_"' />"
|
|
"RTN","EDPRPT4",79,0)
|
|
D XML^EDPX(X)
|
|
"RTN","EDPRPT4",80,0)
|
|
S Y=CNT("VA"),X="<average type='VA Admitted' total='"_Y
|
|
"RTN","EDPRPT4",81,0)
|
|
S X=X_"' num6hr='"_CNT("VA6")_"' numAdmDel6hr='"_CNT("VADEL6")
|
|
"RTN","EDPRPT4",82,0)
|
|
S X=X_"' avgAdmDel='"_$S(Y:$$ETIME^EDPRPT(MIN("VADEL")\Y),1:0)
|
|
"RTN","EDPRPT4",83,0)
|
|
S X=X_"' avgAdmDec='"_$S(Y:$$ETIME^EDPRPT(MIN("VADEC")\Y),1:0)_"' />"
|
|
"RTN","EDPRPT4",84,0)
|
|
D XML^EDPX(X)
|
|
"RTN","EDPRPT4",85,0)
|
|
D XML^EDPX("</averages>")
|
|
"RTN","EDPRPT4",86,0)
|
|
D XML^EDPX("<delayChart>")
|
|
"RTN","EDPRPT4",87,0)
|
|
S DEL=0 F S DEL=$O(CNT(DEL)) Q:+DEL'=DEL D
|
|
"RTN","EDPRPT4",88,0)
|
|
. S X=$$ENAME^EDPRPT(DEL) Q:X="" Q:X?1." " ;novalue
|
|
"RTN","EDPRPT4",89,0)
|
|
. S CNT(DEL,"reason")=X,CNT(DEL,"total")=CNT(DEL)
|
|
"RTN","EDPRPT4",90,0)
|
|
. F I="none","one","two","three","four","five" S CNT(DEL,I)=+$G(CNT(DEL,I))
|
|
"RTN","EDPRPT4",91,0)
|
|
. K ROW M ROW=CNT(DEL)
|
|
"RTN","EDPRPT4",92,0)
|
|
. S X=$$XMLA^EDPX("delay",.ROW) D XML^EDPX(X)
|
|
"RTN","EDPRPT4",93,0)
|
|
D XML^EDPX("</delayChart>")
|
|
"RTN","EDPRPT4",94,0)
|
|
Q
|
|
"RTN","EDPRPT4",95,0)
|
|
;
|
|
"RTN","EDPRPT4",96,0)
|
|
INIT ; Initialize counters and sums
|
|
"RTN","EDPRPT4",97,0)
|
|
N I S (CNT,MIN)=0
|
|
"RTN","EDPRPT4",98,0)
|
|
F I="DEC","VA","VA6","VADEL6","6+","23+","OBS" S CNT(I)=0
|
|
"RTN","EDPRPT4",99,0)
|
|
F I="DEC","VA","VADEC","VADEL" S MIN(I)=0
|
|
"RTN","EDPRPT4",100,0)
|
|
Q
|
|
"RTN","EDPRPT4",101,0)
|
|
;
|
|
"RTN","EDPRPT4",102,0)
|
|
ECODE(IEN) ; Return external value for an Acuity code
|
|
"RTN","EDPRPT4",103,0)
|
|
N X,Y S X=$P($G(^EDPB(233.1,+IEN,0)),U,3) ;code
|
|
"RTN","EDPRPT4",104,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",105,0)
|
|
Q Y
|
|
"RTN","EDPRPT4",106,0)
|
|
;
|
|
"RTN","EDPRPT4",107,0)
|
|
OBS(IEN) ; Return 1 or 0, if status IEN indicates Observation
|
|
"RTN","EDPRPT4",108,0)
|
|
I $G(IEN),$P($G(^EDPB(233.1,+IEN,0)),U,5)["O" Q 1
|
|
"RTN","EDPRPT4",109,0)
|
|
Q 0
|
|
"RTN","EDPRPT5")
|
|
0^17^B35383693
|
|
"RTN","EDPRPT5",1,0)
|
|
EDPRPT5 ;SLC/MKB - Shift Report
|
|
"RTN","EDPRPT5",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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
|
|
"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)),DISP=$$UP^XLFSTR(DISP)
|
|
"RTN","EDPRPT5",17,0)
|
|
.. S OUT=$P(X0,U,9) ;S:OUT="" OUT=NOW
|
|
"RTN","EDPRPT5",18,0)
|
|
.. S ELAPSE=$S(OUT:($$FMDIFF^XLFDT(OUT,IN,2)\60),1:0) ;#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 X0=^EDP(230,LOG,0),X1=$G(^(1))
|
|
"RTN","EDPRPT5",33,0)
|
|
.. S SOUT=$$SHIFT(OUT,1),DX(SOUT)=DX(SOUT)+1
|
|
"RTN","EDPRPT5",34,0)
|
|
.. S IN=$P(X0,U,8) S:IN<BEG PREV=PREV+1
|
|
"RTN","EDPRPT5",35,0)
|
|
.. S DISP=$$ECODE^EDPRPT($P(X1,U,2))
|
|
"RTN","EDPRPT5",36,0)
|
|
.. S ADMDEC=$$ADMIT^EDPRPT(LOG)
|
|
"RTN","EDPRPT5",37,0)
|
|
.. I ADMDEC,ADMDEC>BEG,$$VADMIT^EDPRPT2(DISP) S S=$$SHIFT(ADMDEC,1),VA(S)=VA(S)+1
|
|
"RTN","EDPRPT5",38,0)
|
|
D3 ; calculate #carried over
|
|
"RTN","EDPRPT5",39,0)
|
|
S S=SUB(SHIFT),NEXT(S)=PREV+CNT(S)-DX(S)
|
|
"RTN","EDPRPT5",40,0)
|
|
S PREV("one")=NEXT(S),PREV(S)=PREV
|
|
"RTN","EDPRPT5",41,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",42,0)
|
|
F I=2:1:(SHIFT-1) S PREV(SUB(I))=NEXT(SUB(I-1))
|
|
"RTN","EDPRPT5",43,0)
|
|
;S NEXT("three")=PREV+CNT("three")-DX("three")
|
|
"RTN","EDPRPT5",44,0)
|
|
;S NEXT("one")=NEXT("three")+CNT("one")-DX("one")
|
|
"RTN","EDPRPT5",45,0)
|
|
;S NEXT("two")=NEXT("one")+CNT("two")-DX("two")
|
|
"RTN","EDPRPT5",46,0)
|
|
;S PREV("one")=NEXT("three"),PREV("two")=NEXT("one"),PREV("three")=PREV
|
|
"RTN","EDPRPT5",47,0)
|
|
D4 ; return column info
|
|
"RTN","EDPRPT5",48,0)
|
|
F I=1:1:SHIFT D ;convert #seconds to HH[:MM]
|
|
"RTN","EDPRPT5",49,0)
|
|
. N X,Y S X=SHIFT(I),Y=X\60
|
|
"RTN","EDPRPT5",50,0)
|
|
. ;S Y=X\3600 S:Y=0 Y=12 S:Y>12 Y=Y-12
|
|
"RTN","EDPRPT5",51,0)
|
|
. S SHIFT(I)=$$ETIME^EDPRPT(Y) ;Y_$S(X#3600:":"_(X#3600)\60,1:"")
|
|
"RTN","EDPRPT5",52,0)
|
|
F I=1:1:SHIFT D ;build column captions
|
|
"RTN","EDPRPT5",53,0)
|
|
. S COL(I,"name")=SHIFT(I)_" to "_SHIFT($S(I+1>SHIFT:1,1:I+1))
|
|
"RTN","EDPRPT5",54,0)
|
|
. S COL(I,"shiftId")=SUB(I)
|
|
"RTN","EDPRPT5",55,0)
|
|
;S COL(1,"name")="7 to 3",COL(1,"shiftId")="one"
|
|
"RTN","EDPRPT5",56,0)
|
|
;S COL(2,"name")="3 to 11",COL(2,"shiftId")="two"
|
|
"RTN","EDPRPT5",57,0)
|
|
;S COL(3,"name")="11 to 7",COL(3,"shiftId")="three"
|
|
"RTN","EDPRPT5",58,0)
|
|
I $G(CSV) D CSV Q
|
|
"RTN","EDPRPT5",59,0)
|
|
D XML^EDPX("<columns>")
|
|
"RTN","EDPRPT5",60,0)
|
|
F S=1:1:SHIFT K X M X=COL(S) S X=$$XMLA^EDPX("column",.X) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",61,0)
|
|
D XML^EDPX("</columns>")
|
|
"RTN","EDPRPT5",62,0)
|
|
D5 ; return counts and averages as XML
|
|
"RTN","EDPRPT5",63,0)
|
|
D XML^EDPX("<categories>")
|
|
"RTN","EDPRPT5",64,0)
|
|
S X=$$XMLA^EDPX("category",.PREV) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",65,0)
|
|
S X=$$XMLA^EDPX("category",.CNT) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",66,0)
|
|
S X=$$XMLA^EDPX("category",.DX) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",67,0)
|
|
S X=$$XMLA^EDPX("category",.VA) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",68,0)
|
|
S X=$$XMLA^EDPX("category",.OTH) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",69,0)
|
|
S X=$$XMLA^EDPX("category",.HR6) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",70,0)
|
|
S X=$$XMLA^EDPX("category",.TRG) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",71,0)
|
|
S X=$$XMLA^EDPX("category",.OCB) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",72,0)
|
|
S X=$$XMLA^EDPX("category",.MO) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",73,0)
|
|
S X=$$XMLA^EDPX("category",.DIE) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",74,0)
|
|
S X=$$XMLA^EDPX("category",.UNK) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",75,0)
|
|
S X=$$XMLA^EDPX("category",.NEXT) D XML^EDPX(X)
|
|
"RTN","EDPRPT5",76,0)
|
|
D XML^EDPX("</categories>")
|
|
"RTN","EDPRPT5",77,0)
|
|
Q
|
|
"RTN","EDPRPT5",78,0)
|
|
;
|
|
"RTN","EDPRPT5",79,0)
|
|
CSV ; Return headers, counts and averages as CSV
|
|
"RTN","EDPRPT5",80,0)
|
|
N X,TAB S TAB=$C(9)
|
|
"RTN","EDPRPT5",81,0)
|
|
S X="Category"_TAB_COL(SHIFT,"name")
|
|
"RTN","EDPRPT5",82,0)
|
|
F I=1:1:(SHIFT-1) S X=X_TAB_COL(I,"name")
|
|
"RTN","EDPRPT5",83,0)
|
|
D ADD^EDPCSV(X) ;headers
|
|
"RTN","EDPRPT5",84,0)
|
|
D ROW("Carried over at Report Start",.PREV)
|
|
"RTN","EDPRPT5",85,0)
|
|
D ROW("Number of New Patients",.CNT)
|
|
"RTN","EDPRPT5",86,0)
|
|
D ROW("Number of Patients Discharged",.DX)
|
|
"RTN","EDPRPT5",87,0)
|
|
D ROW("Number Dec to Admit to VA",.VA)
|
|
"RTN","EDPRPT5",88,0)
|
|
D ROW("Number Dec to Admit to Other",.OTH)
|
|
"RTN","EDPRPT5",89,0)
|
|
D ROW("Number over Six Hours",.HR6)
|
|
"RTN","EDPRPT5",90,0)
|
|
D ROW("Number Waiting for Triage",.TRG)
|
|
"RTN","EDPRPT5",91,0)
|
|
D ROW("Number of Occupied Beds",.OCB)
|
|
"RTN","EDPRPT5",92,0)
|
|
D ROW("Number of Missed Opportunities",.MO)
|
|
"RTN","EDPRPT5",93,0)
|
|
D ROW("Number Deceased",.DIE)
|
|
"RTN","EDPRPT5",94,0)
|
|
D ROW("Number With No Disposition",.UNK)
|
|
"RTN","EDPRPT5",95,0)
|
|
D ROW("Carry over to Next Shift",.NEXT)
|
|
"RTN","EDPRPT5",96,0)
|
|
Q
|
|
"RTN","EDPRPT5",97,0)
|
|
;
|
|
"RTN","EDPRPT5",98,0)
|
|
ROW(NAME,LIST) ; add row
|
|
"RTN","EDPRPT5",99,0)
|
|
N S,I
|
|
"RTN","EDPRPT5",100,0)
|
|
S S=SUB(SHIFT),X=NAME_TAB_LIST(S)
|
|
"RTN","EDPRPT5",101,0)
|
|
F I=1:1:(SHIFT-1) S S=SUB(I),X=X_TAB_LIST(S)
|
|
"RTN","EDPRPT5",102,0)
|
|
D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT5",103,0)
|
|
Q
|
|
"RTN","EDPRPT5",104,0)
|
|
;
|
|
"RTN","EDPRPT5",105,0)
|
|
INIT ; Initialize counters and sums
|
|
"RTN","EDPRPT5",106,0)
|
|
N I,S
|
|
"RTN","EDPRPT5",107,0)
|
|
S PREV=0,DAY=$P(DAY,".")
|
|
"RTN","EDPRPT5",108,0)
|
|
D SETUP F I=1:1:SHIFT D
|
|
"RTN","EDPRPT5",109,0)
|
|
. S S=$$WORD(I),SUB(I)=S
|
|
"RTN","EDPRPT5",110,0)
|
|
. S CNT(S)=0,CNT("category")="Number of New Patients"
|
|
"RTN","EDPRPT5",111,0)
|
|
. S DX(S)=0,DX("category")="Number of Patients Discharged"
|
|
"RTN","EDPRPT5",112,0)
|
|
. S VA(S)=0,VA("category")="Number Dec to Admit to VA"
|
|
"RTN","EDPRPT5",113,0)
|
|
. S OTH(S)=0,OTH("category")="Number Dec to Admit to Other"
|
|
"RTN","EDPRPT5",114,0)
|
|
. S HR6(S)=0,HR6("category")="Number over Six Hours"
|
|
"RTN","EDPRPT5",115,0)
|
|
. S TRG(S)=0,TRG("category")="Number Waiting for Triage" ;no acuity
|
|
"RTN","EDPRPT5",116,0)
|
|
. S OCB(S)=0,OCB("category")="Number of Occupied Beds"
|
|
"RTN","EDPRPT5",117,0)
|
|
. S MO(S)=0,MO("category")="Number of Missed Opportunities"
|
|
"RTN","EDPRPT5",118,0)
|
|
. S DIE(S)=0,DIE("category")="Number Deceased"
|
|
"RTN","EDPRPT5",119,0)
|
|
. S UNK(S)=0,UNK("category")="Number With No Disposition"
|
|
"RTN","EDPRPT5",120,0)
|
|
. S PREV(S)=0,PREV("category")="Carried over at Report Start"
|
|
"RTN","EDPRPT5",121,0)
|
|
. S NEXT(S)=0,NEXT("category")="Carry over to Next Shift"
|
|
"RTN","EDPRPT5",122,0)
|
|
Q
|
|
"RTN","EDPRPT5",123,0)
|
|
;
|
|
"RTN","EDPRPT5",124,0)
|
|
WORD(X) ; Return name of number X
|
|
"RTN","EDPRPT5",125,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",126,0)
|
|
Q Y
|
|
"RTN","EDPRPT5",127,0)
|
|
;
|
|
"RTN","EDPRPT5",128,0)
|
|
SETUP ; Create SHIFT(#) list of shift times
|
|
"RTN","EDPRPT5",129,0)
|
|
N TA,X1,X,DUR
|
|
"RTN","EDPRPT5",130,0)
|
|
S TA=+$O(^EDPB(231.9,"C",EDPSITE,0)),X1=$G(^EDPB(231.9,TA,1))
|
|
"RTN","EDPRPT5",131,0)
|
|
S X=$P(X1,U,6),DUR=$P(X1,U,7)*60 I DUR'>0 S SHIFT=0 Q
|
|
"RTN","EDPRPT5",132,0)
|
|
S SHIFT=1,SHIFT(1)=X*60 ;seconds
|
|
"RTN","EDPRPT5",133,0)
|
|
F S X=SHIFT(SHIFT)+DUR Q:X>86340 S SHIFT=SHIFT+1,SHIFT(SHIFT)=X
|
|
"RTN","EDPRPT5",134,0)
|
|
Q
|
|
"RTN","EDPRPT5",135,0)
|
|
;
|
|
"RTN","EDPRPT5",136,0)
|
|
SHIFT(X,TXT) ; Return shift # for time X using SHIFT(#)
|
|
"RTN","EDPRPT5",137,0)
|
|
I $G(X)="" Q 0
|
|
"RTN","EDPRPT5",138,0)
|
|
N TM,Y
|
|
"RTN","EDPRPT5",139,0)
|
|
S TM=$P($$FMTH^XLFDT(X),",",2) ;#seconds since midnight
|
|
"RTN","EDPRPT5",140,0)
|
|
I TM<SHIFT(1)!(TM>=SHIFT(SHIFT)) S Y=SHIFT
|
|
"RTN","EDPRPT5",141,0)
|
|
E F I=2:1:SHIFT I TM<SHIFT(I) S Y=I-1 Q
|
|
"RTN","EDPRPT5",142,0)
|
|
S:$G(TXT) Y=$$WORD(Y)
|
|
"RTN","EDPRPT5",143,0)
|
|
;S Y=$S(TM<25200:"three",TM<54000:"one",TM<82800:"two",1:"three")
|
|
"RTN","EDPRPT5",144,0)
|
|
Q Y
|
|
"RTN","EDPRPT5",145,0)
|
|
;
|
|
"RTN","EDPRPT5",146,0)
|
|
ECODE(IEN) ; Return external value for an Acuity code
|
|
"RTN","EDPRPT5",147,0)
|
|
N X,Y S X=$P($G(^EDPB(233.1,IEN,0)),U,3) ;code
|
|
"RTN","EDPRPT5",148,0)
|
|
S Y=$S(X="":"none",'X:X,X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"X")
|
|
"RTN","EDPRPT5",149,0)
|
|
Q Y
|
|
"RTN","EDPRPT6")
|
|
0^18^B9613057
|
|
"RTN","EDPRPT6",1,0)
|
|
EDPRPT6 ;SLC/MKB - Provider Report
|
|
"RTN","EDPRPT6",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPRPT6",3,0)
|
|
;
|
|
"RTN","EDPRPT6",4,0)
|
|
PRV(BEG,END) ; Get Provider Report for EDPSITE by date range
|
|
"RTN","EDPRPT6",5,0)
|
|
N IN,LOG,X,X0,X1,X3,X4,MD,MDTIME,DISP,S,ACU
|
|
"RTN","EDPRPT6",6,0)
|
|
N CNT,IN2MD,MD2DS,ROW,SHIFT
|
|
"RTN","EDPRPT6",7,0)
|
|
S IN=BEG-.000001 D SETUP^EDPRPT5 ;build SHIFT(#)
|
|
"RTN","EDPRPT6",8,0)
|
|
I 'SHIFT D ERR^EDPRPT(2300013) Q
|
|
"RTN","EDPRPT6",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","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=$$MD^EDPRPT(LOG)
|
|
"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("<providers>")
|
|
"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("<shifts>")
|
|
"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("</shifts>"),XML^EDPX("</md>")
|
|
"RTN","EDPRPT6",54,0)
|
|
D XML^EDPX("</providers>")
|
|
"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^B19582712
|
|
"RTN","EDPRPT7",1,0)
|
|
EDPRPT7 ;SLC/MKB - Exposure Report
|
|
"RTN","EDPRPT7",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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,RLIST,TREAT,OTHER,MD,RN,RES,I,J,RIN,ROUT
|
|
"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)
|
|
D ROOMS(IEN,END)
|
|
"RTN","EDPRPT7",13,0)
|
|
; put IEN info into XML
|
|
"RTN","EDPRPT7",14,0)
|
|
D XML^EDPX("<patient>")
|
|
"RTN","EDPRPT7",15,0)
|
|
D ADD(IEN),STAFF(IEN)
|
|
"RTN","EDPRPT7",16,0)
|
|
D XML^EDPX("</patient>")
|
|
"RTN","EDPRPT7",17,0)
|
|
E1 ; 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)
|
|
. ; compare treatment rooms
|
|
"RTN","EDPRPT7",23,0)
|
|
. S I=0 F S I=$O(RLIST(IEN,I)) Q:I<1 D
|
|
"RTN","EDPRPT7",24,0)
|
|
.. S RIN=$P(RLIST(IEN,I),U,2),ROUT=$P(RLIST(IEN,I),U,3)
|
|
"RTN","EDPRPT7",25,0)
|
|
.. S J=0 F S J=$O(RLIST(LOG,J)) Q:J<1 I +RLIST(IEN,I)=+RLIST(LOG,J) D
|
|
"RTN","EDPRPT7",26,0)
|
|
... S X=$P(RLIST(LOG,J),U,2) Q:X>ROUT ;in to room after IEN left
|
|
"RTN","EDPRPT7",27,0)
|
|
... ;I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
|
|
"RTN","EDPRPT7",28,0)
|
|
... S X=$P(RLIST(LOG,J),U,3) Q:X&(X<RIN) ;out of room before IEN came
|
|
"RTN","EDPRPT7",29,0)
|
|
... ;I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
|
|
"RTN","EDPRPT7",30,0)
|
|
... S TREAT(LOG)=""
|
|
"RTN","EDPRPT7",31,0)
|
|
. I '$D(TREAT(LOG)) S OTHER(LOG)=""
|
|
"RTN","EDPRPT7",32,0)
|
|
E2 ; return treatment room patients
|
|
"RTN","EDPRPT7",33,0)
|
|
I $O(TREAT(0)) D
|
|
"RTN","EDPRPT7",34,0)
|
|
. D XML^EDPX("<treatmentRoom>")
|
|
"RTN","EDPRPT7",35,0)
|
|
. S LOG=0 F S LOG=$O(TREAT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
|
|
"RTN","EDPRPT7",36,0)
|
|
. D XML^EDPX("</treatmentRoom>")
|
|
"RTN","EDPRPT7",37,0)
|
|
; return other ED patients
|
|
"RTN","EDPRPT7",38,0)
|
|
I $O(OTHER(0)) D
|
|
"RTN","EDPRPT7",39,0)
|
|
. D XML^EDPX("<otherPatients>")
|
|
"RTN","EDPRPT7",40,0)
|
|
. S LOG=0 F S LOG=$O(OTHER(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
|
|
"RTN","EDPRPT7",41,0)
|
|
. D XML^EDPX("</otherPatients>")
|
|
"RTN","EDPRPT7",42,0)
|
|
E3 ; return staff on duty
|
|
"RTN","EDPRPT7",43,0)
|
|
D XML^EDPX("<onDutyStaff>")
|
|
"RTN","EDPRPT7",44,0)
|
|
I $O(MD(0)) D
|
|
"RTN","EDPRPT7",45,0)
|
|
. D XML^EDPX("<doctors>")
|
|
"RTN","EDPRPT7",46,0)
|
|
. S I=0 F S I=$O(MD(I)) Q:I<1 D
|
|
"RTN","EDPRPT7",47,0)
|
|
.. S X="<md name='"_$$ESC^EDPX(MD(I))_"' />"
|
|
"RTN","EDPRPT7",48,0)
|
|
.. D XML^EDPX(X)
|
|
"RTN","EDPRPT7",49,0)
|
|
. D XML^EDPX("</doctors>")
|
|
"RTN","EDPRPT7",50,0)
|
|
I $O(RN(0)) D
|
|
"RTN","EDPRPT7",51,0)
|
|
. D XML^EDPX("<nurses>")
|
|
"RTN","EDPRPT7",52,0)
|
|
. S I=0 F S I=$O(RN(I)) Q:I<1 D
|
|
"RTN","EDPRPT7",53,0)
|
|
.. S X="<rn name='"_$$ESC^EDPX(RN(I))_"' />"
|
|
"RTN","EDPRPT7",54,0)
|
|
.. D XML^EDPX(X)
|
|
"RTN","EDPRPT7",55,0)
|
|
. D XML^EDPX("</nurses>")
|
|
"RTN","EDPRPT7",56,0)
|
|
I $O(RES(0)) D
|
|
"RTN","EDPRPT7",57,0)
|
|
. D XML^EDPX("<residents>")
|
|
"RTN","EDPRPT7",58,0)
|
|
. S I=0 F S I=$O(RES(I)) Q:I<1 D
|
|
"RTN","EDPRPT7",59,0)
|
|
.. S X="<md name='"_$$ESC^EDPX(RES(I))_"' />"
|
|
"RTN","EDPRPT7",60,0)
|
|
.. D XML^EDPX(X)
|
|
"RTN","EDPRPT7",61,0)
|
|
. D XML^EDPX("</residents>")
|
|
"RTN","EDPRPT7",62,0)
|
|
D XML^EDPX("</onDutyStaff>")
|
|
"RTN","EDPRPT7",63,0)
|
|
Q
|
|
"RTN","EDPRPT7",64,0)
|
|
;
|
|
"RTN","EDPRPT7",65,0)
|
|
FIND(IN,OUT) ; create LIST(#) of visits at same time
|
|
"RTN","EDPRPT7",66,0)
|
|
N TIME,I,X K LIST
|
|
"RTN","EDPRPT7",67,0)
|
|
S TIME=+$P(IN,".") ;ck today's arrivals
|
|
"RTN","EDPRPT7",68,0)
|
|
F S TIME=$O(^EDP(230,"ATI",EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D
|
|
"RTN","EDPRPT7",69,0)
|
|
. S I=0 F S I=$O(^EDP(230,"ATI",EDPSITE,TIME,I)) Q:I<1 D
|
|
"RTN","EDPRPT7",70,0)
|
|
.. S X=$P($G(^EDP(230,I,0)),U,9) I X,X<IN Q ;left before IEN arrived
|
|
"RTN","EDPRPT7",71,0)
|
|
.. S LIST(I)=""
|
|
"RTN","EDPRPT7",72,0)
|
|
Q
|
|
"RTN","EDPRPT7",73,0)
|
|
;
|
|
"RTN","EDPRPT7",74,0)
|
|
ROOMS(LOG,OUT) ; Return RLIST(LOG,n) = room ^ time in ^ time out
|
|
"RTN","EDPRPT7",75,0)
|
|
N N,D,I,X,LAST S N=0,LAST=""
|
|
"RTN","EDPRPT7",76,0)
|
|
S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
|
|
"RTN","EDPRPT7",77,0)
|
|
. S X=+$P($G(^EDP(230.1,I,3)),U,4) Q:'X Q:X=LAST ;no location change
|
|
"RTN","EDPRPT7",78,0)
|
|
. S:N $P(RLIST(LOG,N),U,3)=D ;time in of next room = time out of prev
|
|
"RTN","EDPRPT7",79,0)
|
|
. S N=N+1,RLIST(LOG,N)=X_U_D,LAST=X ;new room
|
|
"RTN","EDPRPT7",80,0)
|
|
I N,'$P(RLIST(LOG,N),U,3) S $P(RLIST(LOG,N),U,3)=OUT
|
|
"RTN","EDPRPT7",81,0)
|
|
Q
|
|
"RTN","EDPRPT7",82,0)
|
|
;
|
|
"RTN","EDPRPT7",83,0)
|
|
ADD(LOG) ; Add row to XML for each room used during visit
|
|
"RTN","EDPRPT7",84,0)
|
|
N EDPI,EDPX,ROW,LABS,XRAY,X,X0
|
|
"RTN","EDPRPT7",85,0)
|
|
S EDPI=0 F S EDPI=$O(RLIST(LOG,EDPI)) Q:EDPI<1 S EDPX=RLIST(LOG,EDPI) D
|
|
"RTN","EDPRPT7",86,0)
|
|
. K ROW S ROW("id")=LOG ;only return for EDPI=1 ??
|
|
"RTN","EDPRPT7",87,0)
|
|
. S ROW("roomName")=$P($G(^EDPB(231.8,+EDPX,0)),U)
|
|
"RTN","EDPRPT7",88,0)
|
|
. S X=$P(EDPX,U,2)
|
|
"RTN","EDPRPT7",89,0)
|
|
. S ROW("shiftIn")=$$SHIFT^EDPRPT5(X),ROW("inTS")=X
|
|
"RTN","EDPRPT7",90,0)
|
|
. S X=$P(EDPX,U,3)
|
|
"RTN","EDPRPT7",91,0)
|
|
. S ROW("shiftOut")=$$SHIFT^EDPRPT5(X),ROW("outTS")=X
|
|
"RTN","EDPRPT7",92,0)
|
|
. S X=$P($G(^EDP(230,LOG,1)),U,2),ROW("disposition")=$$ECODE^EDPRPT(X)
|
|
"RTN","EDPRPT7",93,0)
|
|
. S X0=$G(^EDP(230,LOG,0)),X=$P(X0,U,10),ROW("arrival")=$$ENAME^EDPRPT(X)
|
|
"RTN","EDPRPT7",94,0)
|
|
. S X=$$DXPRI^EDPQPCE(+$P(X0,U,3),LOG),ROW("dx")=$P(X,U,2)
|
|
"RTN","EDPRPT7",95,0)
|
|
. S LABS=$D(^EDP(230,LOG,8,"AC","L")),XRAY=$D(^("R")),X=""
|
|
"RTN","EDPRPT7",96,0)
|
|
. I LABS!XRAY D S X=X_" ordered"
|
|
"RTN","EDPRPT7",97,0)
|
|
.. I LABS&XRAY S X="Labs and Imaging" Q
|
|
"RTN","EDPRPT7",98,0)
|
|
.. S:LABS X="Labs" S:XRAY X="Imaging"
|
|
"RTN","EDPRPT7",99,0)
|
|
. S ROW("notes")=X
|
|
"RTN","EDPRPT7",100,0)
|
|
. S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X)
|
|
"RTN","EDPRPT7",101,0)
|
|
Q
|
|
"RTN","EDPRPT7",102,0)
|
|
;
|
|
"RTN","EDPRPT7",103,0)
|
|
STAFF(LOG) ; save staff involved in patient care
|
|
"RTN","EDPRPT7",104,0)
|
|
N D,I,X,ACT S LOG=+$G(LOG)
|
|
"RTN","EDPRPT7",105,0)
|
|
S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
|
|
"RTN","EDPRPT7",106,0)
|
|
. S ACT=$G(^EDP(230.1,I,3))
|
|
"RTN","EDPRPT7",107,0)
|
|
. S X=+$P(ACT,U,5) S:X MD(X)=$$EPERS^EDPRPT(X)
|
|
"RTN","EDPRPT7",108,0)
|
|
. S X=+$P(ACT,U,6) S:X RN(X)=$$EPERS^EDPRPT(X)
|
|
"RTN","EDPRPT7",109,0)
|
|
. S X=+$P(ACT,U,7) S:X RES(X)=$$EPERS^EDPRPT(X)
|
|
"RTN","EDPRPT7",110,0)
|
|
Q
|
|
"RTN","EDPRPT7C")
|
|
0^20^B19611509
|
|
"RTN","EDPRPT7C",1,0)
|
|
EDPRPT7C ;SLC/MKB - Exposure Report (CSV format)
|
|
"RTN","EDPRPT7C",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPRPT7C",3,0)
|
|
;
|
|
"RTN","EDPRPT7C",4,0)
|
|
EXP(IEN) ; Get Exposure Report for IEN at EDPSITE
|
|
"RTN","EDPRPT7C",5,0)
|
|
S IEN=+$G(IEN) Q:IEN<1 Q:'$D(^EDP(230,IEN,0))
|
|
"RTN","EDPRPT7C",6,0)
|
|
N BEG,END,LIST,LOG,IN,OUT,X,X0,Y,RLIST,TREAT,OTHER,MD,RN,RES,I,J,RIN,ROUT,TAB
|
|
"RTN","EDPRPT7C",7,0)
|
|
N SHIFT D SETUP^EDPRPT5 ;build SHIFT(#)
|
|
"RTN","EDPRPT7C",8,0)
|
|
I 'SHIFT D ERR^EDPRPT(2300013) Q
|
|
"RTN","EDPRPT7C",9,0)
|
|
S X0=^EDP(230,IEN,0),BEG=$P(X0,U,8),END=$P(X0,U,9),TAB=$C(9)
|
|
"RTN","EDPRPT7C",10,0)
|
|
S:'BEG BEG=$P(X0,U) S:'END END=$$NOW^EDPRPT
|
|
"RTN","EDPRPT7C",11,0)
|
|
D ROOMS(IEN,END)
|
|
"RTN","EDPRPT7C",12,0)
|
|
; put IEN info into CSV
|
|
"RTN","EDPRPT7C",13,0)
|
|
S X="ED"_TAB_"Room"_TAB_"Shift - Time In"_TAB_"Shift - Time Out"_TAB_"Diagnosis"_TAB_"Dispo"_TAB_"Arr Mode"_TAB_"Notes"
|
|
"RTN","EDPRPT7C",14,0)
|
|
D ADD^EDPCSV(X),BLANK^EDPCSV ;headers
|
|
"RTN","EDPRPT7C",15,0)
|
|
S X=TAB_TAB_"Contagious Patient Information"
|
|
"RTN","EDPRPT7C",16,0)
|
|
D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPT7C",17,0)
|
|
D ADD(IEN),STAFF(IEN)
|
|
"RTN","EDPRPT7C",18,0)
|
|
D BLANK^EDPCSV
|
|
"RTN","EDPRPT7C",19,0)
|
|
E1 ; look for patients also in ED between BEG and END
|
|
"RTN","EDPRPT7C",20,0)
|
|
D FIND(BEG,END) ;create LIST(#) list of ien's to check
|
|
"RTN","EDPRPT7C",21,0)
|
|
S LOG=0 F S LOG=+$O(LIST(LOG)) Q:'LOG I LOG'=IEN D
|
|
"RTN","EDPRPT7C",22,0)
|
|
. S X0=$G(^EDP(230,LOG,0)),IN=$P(X0,U,8),OUT=$P(X0,U,9)
|
|
"RTN","EDPRPT7C",23,0)
|
|
. D ROOMS(LOG,OUT)
|
|
"RTN","EDPRPT7C",24,0)
|
|
. ; compare treatment rooms
|
|
"RTN","EDPRPT7C",25,0)
|
|
. S I=0 F S I=$O(RLIST(IEN,I)) Q:I<1 D
|
|
"RTN","EDPRPT7C",26,0)
|
|
.. S RIN=$P(RLIST(IEN,I),U,2),ROUT=$P(RLIST(IEN,I),U,3)
|
|
"RTN","EDPRPT7C",27,0)
|
|
.. S J=0 F S J=$O(RLIST(LOG,J)) Q:J<1 I +RLIST(IEN,I)=+RLIST(LOG,J) D
|
|
"RTN","EDPRPT7C",28,0)
|
|
... S X=$P(RLIST(LOG,J),U,2) Q:X>ROUT ;in to room after IEN left
|
|
"RTN","EDPRPT7C",29,0)
|
|
... ;I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
|
|
"RTN","EDPRPT7C",30,0)
|
|
... S X=$P(RLIST(LOG,J),U,3) Q:X&(X<RIN) ;out of room before IEN came
|
|
"RTN","EDPRPT7C",31,0)
|
|
... ;I (RIN<=X)&(X<=ROUT) S TREAT(LOG)="" Q
|
|
"RTN","EDPRPT7C",32,0)
|
|
... S TREAT(LOG)=""
|
|
"RTN","EDPRPT7C",33,0)
|
|
. I '$D(TREAT(LOG)) S OTHER(LOG)=""
|
|
"RTN","EDPRPT7C",34,0)
|
|
E2 ; return treatment room patients
|
|
"RTN","EDPRPT7C",35,0)
|
|
D ADD^EDPCSV(TAB_TAB_"Exposed in Treatment Room"),BLANK^EDPCSV
|
|
"RTN","EDPRPT7C",36,0)
|
|
I '$O(TREAT(0)) D ADD^EDPCSV(TAB_TAB_" None")
|
|
"RTN","EDPRPT7C",37,0)
|
|
E S LOG=0 F S LOG=$O(TREAT(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
|
|
"RTN","EDPRPT7C",38,0)
|
|
D BLANK^EDPCSV
|
|
"RTN","EDPRPT7C",39,0)
|
|
; return other ED patients
|
|
"RTN","EDPRPT7C",40,0)
|
|
D ADD^EDPCSV(TAB_TAB_"Other ED Patients"),BLANK^EDPCSV
|
|
"RTN","EDPRPT7C",41,0)
|
|
I '$O(OTHER(0)) D ADD^EDPCSV(TAB_TAB_" None")
|
|
"RTN","EDPRPT7C",42,0)
|
|
E S LOG=0 F S LOG=$O(OTHER(LOG)) Q:LOG<1 D ADD(LOG),STAFF(LOG)
|
|
"RTN","EDPRPT7C",43,0)
|
|
D BLANK^EDPCSV
|
|
"RTN","EDPRPT7C",44,0)
|
|
E3 ; return staff on duty
|
|
"RTN","EDPRPT7C",45,0)
|
|
N MAX,MORE D ADD^EDPCSV(TAB_TAB_"On Duty Staff")
|
|
"RTN","EDPRPT7C",46,0)
|
|
D ADD^EDPCSV(TAB_"Doctors"_TAB_"Nurses"_TAB_"Residents")
|
|
"RTN","EDPRPT7C",47,0)
|
|
S MAX=+$G(RN) S:$G(MD)>MAX MAX=+MD S:$G(RES)>MAX MAX=+RES
|
|
"RTN","EDPRPT7C",48,0)
|
|
S MORE=1,(MD,RN,RES)=0 F D Q:'MORE
|
|
"RTN","EDPRPT7C",49,0)
|
|
. S:MD'="" MD=$O(MD(MD)) S:RN'="" RN=$O(RN(RN))
|
|
"RTN","EDPRPT7C",50,0)
|
|
. S:RES'="" RES=$O(RES(RES)) ;get next
|
|
"RTN","EDPRPT7C",51,0)
|
|
. I MD="",RN="",RES="" S MORE=0 Q ;done
|
|
"RTN","EDPRPT7C",52,0)
|
|
. S X=TAB_$S(MD:MD(MD),1:"")_TAB_$S(RN:RN(RN),1:"")_TAB_$S(RES:RES(RES),1:"")
|
|
"RTN","EDPRPT7C",53,0)
|
|
. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPT7C",54,0)
|
|
Q
|
|
"RTN","EDPRPT7C",55,0)
|
|
;
|
|
"RTN","EDPRPT7C",56,0)
|
|
FIND(IN,OUT) ; create LIST(#) of visits at same time
|
|
"RTN","EDPRPT7C",57,0)
|
|
N TIME,I,X K LIST
|
|
"RTN","EDPRPT7C",58,0)
|
|
S TIME=+$P(IN,".") ;ck today's arrivals
|
|
"RTN","EDPRPT7C",59,0)
|
|
F S TIME=$O(^EDP(230,"ATI",EDPSITE,TIME)) Q:TIME<1!(TIME>OUT) D
|
|
"RTN","EDPRPT7C",60,0)
|
|
. S I=0 F S I=$O(^EDP(230,"ATI",EDPSITE,TIME,I)) Q:I<1 D
|
|
"RTN","EDPRPT7C",61,0)
|
|
.. S X=$P($G(^EDP(230,I,0)),U,9) I X,X<IN Q ;left before IEN arrived
|
|
"RTN","EDPRPT7C",62,0)
|
|
.. S LIST(I)=""
|
|
"RTN","EDPRPT7C",63,0)
|
|
Q
|
|
"RTN","EDPRPT7C",64,0)
|
|
;
|
|
"RTN","EDPRPT7C",65,0)
|
|
ROOMS(LOG,OUT) ; Return RLIST(LOG,n)= room ^ time in ^ time out
|
|
"RTN","EDPRPT7C",66,0)
|
|
N N,D,I,X,LAST S N=0,LAST=""
|
|
"RTN","EDPRPT7C",67,0)
|
|
S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
|
|
"RTN","EDPRPT7C",68,0)
|
|
. S X=+$P($G(^EDP(230.1,I,3)),U,4) Q:'X Q:X=LAST ;no location change
|
|
"RTN","EDPRPT7C",69,0)
|
|
. S:N $P(RLIST(LOG,N),U,3)=D ;time in of next room = time out of prev
|
|
"RTN","EDPRPT7C",70,0)
|
|
. S N=N+1,RLIST(LOG,N)=X_U_D,LAST=X ;new room
|
|
"RTN","EDPRPT7C",71,0)
|
|
I N,'$P(RLIST(LOG,N),U,3) S $P(RLIST(LOG,N),U,3)=OUT
|
|
"RTN","EDPRPT7C",72,0)
|
|
Q
|
|
"RTN","EDPRPT7C",73,0)
|
|
;
|
|
"RTN","EDPRPT7C",74,0)
|
|
ADD(LOG) ; Add row to CSV for each room used during visit
|
|
"RTN","EDPRPT7C",75,0)
|
|
N EDPI,EDPX,ROW,LABS,XRAY,X,X0
|
|
"RTN","EDPRPT7C",76,0)
|
|
S EDPI=0 F S EDPI=$O(RLIST(LOG,EDPI)) Q:EDPI<1 S EDPX=RLIST(LOG,EDPI) D
|
|
"RTN","EDPRPT7C",77,0)
|
|
. S ROW=$S(EDPI=1:LOG,1:"")_TAB_$P($G(^EDPB(231.8,+EDPX,0)),U)
|
|
"RTN","EDPRPT7C",78,0)
|
|
. S X=$P(EDPX,U,2) ;shiftTimeIn
|
|
"RTN","EDPRPT7C",79,0)
|
|
. S ROW=ROW_TAB_$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
|
|
"RTN","EDPRPT7C",80,0)
|
|
. S X=$P(EDPX,U,3) ;shiftTimeOut
|
|
"RTN","EDPRPT7C",81,0)
|
|
. S ROW=ROW_TAB_$$SHIFT^EDPRPT5(X)_" - "_$$EDATE^EDPRPT(X)
|
|
"RTN","EDPRPT7C",82,0)
|
|
. S X0=$G(^EDP(230,LOG,0)),X=$$DXPRI^EDPQPCE(+$P(X0,U,3),LOG)
|
|
"RTN","EDPRPT7C",83,0)
|
|
. S ROW=ROW_TAB_$P(X,U,2) ;Dx
|
|
"RTN","EDPRPT7C",84,0)
|
|
. S X=$P($G(^EDP(230,LOG,1)),U,2),ROW=ROW_TAB_$$ECODE^EDPRPT(X) ;dis
|
|
"RTN","EDPRPT7C",85,0)
|
|
. S X=$P(X0,U,10),ROW=ROW_TAB_$$ENAME^EDPRPT(X) ;arrival
|
|
"RTN","EDPRPT7C",86,0)
|
|
. S LABS=$D(^EDP(230,LOG,8,"AC","L")),XRAY=$D(^("R")),X=""
|
|
"RTN","EDPRPT7C",87,0)
|
|
. I LABS!XRAY D S X=X_" ordered"
|
|
"RTN","EDPRPT7C",88,0)
|
|
.. I LABS&XRAY S X="Labs and Imaging" Q
|
|
"RTN","EDPRPT7C",89,0)
|
|
.. S:LABS X="Labs" S:XRAY X="Imaging"
|
|
"RTN","EDPRPT7C",90,0)
|
|
. S ROW=ROW_TAB_X ;notes
|
|
"RTN","EDPRPT7C",91,0)
|
|
. D ADD^EDPCSV(ROW)
|
|
"RTN","EDPRPT7C",92,0)
|
|
Q
|
|
"RTN","EDPRPT7C",93,0)
|
|
;
|
|
"RTN","EDPRPT7C",94,0)
|
|
STAFF(LOG) ; save staff involved in patient care
|
|
"RTN","EDPRPT7C",95,0)
|
|
N D,I,X,ACT S LOG=+$G(LOG)
|
|
"RTN","EDPRPT7C",96,0)
|
|
S D=0 F S D=$O(^EDP(230.1,"ADF",LOG,D)) Q:D<1 S I=+$O(^(D,0)) D
|
|
"RTN","EDPRPT7C",97,0)
|
|
. S ACT=$G(^EDP(230.1,I,3))
|
|
"RTN","EDPRPT7C",98,0)
|
|
. S X=+$P(ACT,U,5) S:X MD(X)=$$EPERS^EDPRPT(X)
|
|
"RTN","EDPRPT7C",99,0)
|
|
. S X=+$P(ACT,U,6) S:X RN(X)=$$EPERS^EDPRPT(X)
|
|
"RTN","EDPRPT7C",100,0)
|
|
. S X=+$P(ACT,U,7) S:X RES(X)=$$EPERS^EDPRPT(X)
|
|
"RTN","EDPRPT7C",101,0)
|
|
Q
|
|
"RTN","EDPRPT8")
|
|
0^21^B14454195
|
|
"RTN","EDPRPT8",1,0)
|
|
EDPRPT8 ;SLC/MKB - Acuity Report
|
|
"RTN","EDPRPT8",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPRPT8",3,0)
|
|
;
|
|
"RTN","EDPRPT8",4,0)
|
|
ACU(BEG,END) ; Get Acuity Report for EDPSITE by date range
|
|
"RTN","EDPRPT8",5,0)
|
|
; CNT = counters by acuity
|
|
"RTN","EDPRPT8",6,0)
|
|
; ADM = counters for all admissions
|
|
"RTN","EDPRPT8",7,0)
|
|
; VA = counters for VA admissions
|
|
"RTN","EDPRPT8",8,0)
|
|
; MIN = accumulate #minutes
|
|
"RTN","EDPRPT8",9,0)
|
|
N IN,OUT,X,X0,X1,X3,X4,DISP,ACU,CNT,ADM,MIN,VA,ROW
|
|
"RTN","EDPRPT8",10,0)
|
|
D INIT ;set counters, sums to 0
|
|
"RTN","EDPRPT8",11,0)
|
|
S IN=BEG-.000001
|
|
"RTN","EDPRPT8",12,0)
|
|
F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
|
|
"RTN","EDPRPT8",13,0)
|
|
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
|
|
"RTN","EDPRPT8",14,0)
|
|
. S DISP=$$ECODE^EDPRPT($P(X1,U,2)),ACU=$$ECODE($P(X3,U,3))
|
|
"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:OUT 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^EDPRPT(MIN("DEC",I)\ADM(I)),1:0)
|
|
"RTN","EDPRPT8",33,0)
|
|
. S MIN("VADEC",I)=$S(VA(I):$$ETIME^EDPRPT(MIN("VADEC",I)\VA(I)),1:0)
|
|
"RTN","EDPRPT8",34,0)
|
|
. S MIN("VADEL",I)=$S(VA(I):$$ETIME^EDPRPT(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^EDPRPT(MIN("DEC")\ADM),1:0)
|
|
"RTN","EDPRPT8",39,0)
|
|
S MIN("VADEC","total")=$S(VA:$$ETIME^EDPRPT(MIN("VADEC")\VA),1:0)
|
|
"RTN","EDPRPT8",40,0)
|
|
S MIN("VADEL","total")=$S(VA:$$ETIME^EDPRPT(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("<statistics>")
|
|
"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("</statistics>")
|
|
"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)
|
|
Q
|
|
"RTN","EDPRPT8",75,0)
|
|
;
|
|
"RTN","EDPRPT8",76,0)
|
|
ECODE(IEN) ; Return external value for an Acuity code
|
|
"RTN","EDPRPT8",77,0)
|
|
N X0,X,Y S X0=$G(^EDPB(233.1,+IEN,0))
|
|
"RTN","EDPRPT8",78,0)
|
|
S X=$P(X0,U,3) S:X<1 X=$P(X0,U,4) ;code or nat'l code
|
|
"RTN","EDPRPT8",79,0)
|
|
S Y=$S(X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"none")
|
|
"RTN","EDPRPT8",80,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;;Sep 30, 2009;Build 74
|
|
"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("<patients>") 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("</patients>")
|
|
"RTN","EDPRPT9",19,0)
|
|
Q
|
|
"RTN","EDPRPTBV")
|
|
0^51^B21129991
|
|
"RTN","EDPRPTBV",1,0)
|
|
EDPRPTBV ;SLC/MKB - BVAC Report
|
|
"RTN","EDPRPTBV",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPRPTBV",3,0)
|
|
;
|
|
"RTN","EDPRPTBV",4,0)
|
|
EN(BEG,END) ; Get Activity Report for EDPSITE by date range
|
|
"RTN","EDPRPTBV",5,0)
|
|
N LOG,X,X0,X1,X3,DX,IN,OUT,ROW,ICD,I
|
|
"RTN","EDPRPTBV",6,0)
|
|
N ELAPSE,TRIAGE,ADMDEC,ADMDEL,CNT,ADM,MIN,AVG
|
|
"RTN","EDPRPTBV",7,0)
|
|
D INIT ;set counters, sums to 0
|
|
"RTN","EDPRPTBV",8,0)
|
|
D:'$G(CSV) XML^EDPX("<logEntries>") I $G(CSV) D ;headers
|
|
"RTN","EDPRPTBV",9,0)
|
|
. N TAB S TAB=$C(9)
|
|
"RTN","EDPRPTBV",10,0)
|
|
. S X="Patient"_TAB_"Time In"_TAB_"Time Out"_TAB_"Complaint"_TAB_"MD"_TAB_"Acuity"_TAB_"Elapsed"_TAB_"Triage"_TAB_"Dispo"_TAB_"Admit Dec"_TAB_"Admit Delay"_TAB_"Diagnosis"_TAB_"ICD9"
|
|
"RTN","EDPRPTBV",11,0)
|
|
. S X=X_TAB_"Viet Vet"_TAB_"Agent Orange"_TAB_"OEF/OIF"_TAB_"Pers Gulf"_TAB_"VA Pension"_TAB_"POW"_TAB_"Serv Conn %"_TAB_"Purp Hrt"_TAB_"Unemploy"_TAB_"Combat End"
|
|
"RTN","EDPRPTBV",12,0)
|
|
. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPTBV",13,0)
|
|
S IN=BEG-.000001
|
|
"RTN","EDPRPTBV",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","EDPRPTBV",15,0)
|
|
. S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3))
|
|
"RTN","EDPRPTBV",16,0)
|
|
. S DX=$$BVAC(+$P(X0,U,3),LOG) Q:DX="" ;no codes in range
|
|
"RTN","EDPRPTBV",17,0)
|
|
. S CNT=CNT+1,OUT=$P(X0,U,9) ;S:OUT="" OUT=NOW
|
|
"RTN","EDPRPTBV",18,0)
|
|
. S ELAPSE=$S(OUT:($$FMDIFF^XLFDT(OUT,IN,2)\60),1:0)
|
|
"RTN","EDPRPTBV",19,0)
|
|
. S MIN("elapsed")=MIN("elapsed")+ELAPSE
|
|
"RTN","EDPRPTBV",20,0)
|
|
. S X=$$ACUITY^EDPRPT(LOG),TRIAGE=0 ;S:X<1 X=OUT
|
|
"RTN","EDPRPTBV",21,0)
|
|
. S:X TRIAGE=($$FMDIFF^XLFDT(X,IN,2)\60)
|
|
"RTN","EDPRPTBV",22,0)
|
|
. S MIN("triage")=MIN("triage")+TRIAGE
|
|
"RTN","EDPRPTBV",23,0)
|
|
. S (ADMDEC,ADMDEL)=""
|
|
"RTN","EDPRPTBV",24,0)
|
|
. S X=$$ADMIT^EDPRPT(LOG) I X S ADM=ADM+1 D ;decision to admit
|
|
"RTN","EDPRPTBV",25,0)
|
|
.. S ADMDEC=($$FMDIFF^XLFDT(X,IN,2)\60)
|
|
"RTN","EDPRPTBV",26,0)
|
|
.. S ADMDEL=$S(OUT:($$FMDIFF^XLFDT(OUT,X,2)\60),1:0)
|
|
"RTN","EDPRPTBV",27,0)
|
|
.. S MIN("admDec")=MIN("admDec")+ADMDEC
|
|
"RTN","EDPRPTBV",28,0)
|
|
.. S MIN("admDel")=MIN("admDel")+ADMDEL
|
|
"RTN","EDPRPTBV",29,0)
|
|
. ;
|
|
"RTN","EDPRPTBV",30,0)
|
|
BV1 . ; add row to report
|
|
"RTN","EDPRPTBV",31,0)
|
|
. ;S ICD=$P($G(^ICD9(+$P(X4,U,2),0)),U) Q:ICD<290 Q:ICD>316
|
|
"RTN","EDPRPTBV",32,0)
|
|
. K ROW S ROW("patient")=$P(X0,U,4)
|
|
"RTN","EDPRPTBV",33,0)
|
|
. S ROW("inTS")=$S($G(CSV):$$EDATE^EDPRPT(IN),1:IN)
|
|
"RTN","EDPRPTBV",34,0)
|
|
. S ROW("outTS")=$S($G(CSV):$$EDATE^EDPRPT(OUT),1:OUT)
|
|
"RTN","EDPRPTBV",35,0)
|
|
. S ROW("complaint")=$P(X1,U)
|
|
"RTN","EDPRPTBV",36,0)
|
|
. S ROW("md")=$$EPERS^EDPRPT($P(X3,U,5))
|
|
"RTN","EDPRPTBV",37,0)
|
|
. S ROW("acuity")=$$ECODE^EDPRPT($P(X3,U,3))
|
|
"RTN","EDPRPTBV",38,0)
|
|
. S ROW("elapsed")=ELAPSE_$S(ELAPSE>359:" *",1:"")
|
|
"RTN","EDPRPTBV",39,0)
|
|
. S ROW("triage")=TRIAGE
|
|
"RTN","EDPRPTBV",40,0)
|
|
. S ROW("disposition")=$$ECODE^EDPRPT($P(X1,U,2))
|
|
"RTN","EDPRPTBV",41,0)
|
|
. S ROW("admDec")=ADMDEC,ROW("admDel")=ADMDEL
|
|
"RTN","EDPRPTBV",42,0)
|
|
. S ROW("icd")=$P(DX,U),ROW("dx")=$P(DX,U,2)
|
|
"RTN","EDPRPTBV",43,0)
|
|
. ; get other patient attributes from VADPT
|
|
"RTN","EDPRPTBV",44,0)
|
|
. N DFN,VAEL,VASV,VAMB,VAERR
|
|
"RTN","EDPRPTBV",45,0)
|
|
. S DFN=$P(X0,U,6) I DFN D 8^VADPT D
|
|
"RTN","EDPRPTBV",46,0)
|
|
.. S ROW("vietnam")=$S(VASV(1):"Y",1:"N")
|
|
"RTN","EDPRPTBV",47,0)
|
|
.. S ROW("agentOrange")=$S(VASV(2):"Y",1:"N")
|
|
"RTN","EDPRPTBV",48,0)
|
|
.. S ROW("iraq")=$S(VASV(11)!VASV(12)!VASV(13):"Y",1:"N")
|
|
"RTN","EDPRPTBV",49,0)
|
|
.. S ROW("persGulf")=$P($G(^DPT(DFN,.322)),U,10)
|
|
"RTN","EDPRPTBV",50,0)
|
|
.. S ROW("vaPension")=$S(VAMB(4):"Y",1:"N")
|
|
"RTN","EDPRPTBV",51,0)
|
|
.. S ROW("pow")=$S(VASV(4):"Y",1:"N")
|
|
"RTN","EDPRPTBV",52,0)
|
|
.. S ROW("servConnPct")=+$P(VAEL(3),U,2)
|
|
"RTN","EDPRPTBV",53,0)
|
|
.. S ROW("purpleHeart")=$S(VASV(9):"Y",1:"N")
|
|
"RTN","EDPRPTBV",54,0)
|
|
.. ; ROW("unemployable")=$P($G(^DGEN(27.11,DFN,"E")),U,17) ;or VAPD(7)=3^NOT EMPLOYED ??
|
|
"RTN","EDPRPTBV",55,0)
|
|
.. S ROW("combatEndDT")=$P($G(VASV(10,1)),U)
|
|
"RTN","EDPRPTBV",56,0)
|
|
BV2 . ;
|
|
"RTN","EDPRPTBV",57,0)
|
|
. I '$G(CSV) S X=$$XMLA^EDPX("log",.ROW) D XML^EDPX(X) Q
|
|
"RTN","EDPRPTBV",58,0)
|
|
. S X=ROW("patient")
|
|
"RTN","EDPRPTBV",59,0)
|
|
. F I="inTS","outTS","complaint","md","acuity","elapsed","triage","disposition","admDec","admDel","dx","icd" S X=X_$C(9)_$G(ROW(I))
|
|
"RTN","EDPRPTBV",60,0)
|
|
. F I="vietnam","agentOrange","iraq","persGulf","vaPension","pow","servConn%","purpleHeart","unemployable","combatEndDT" S X=X_$C(9)_$G(ROW(I))
|
|
"RTN","EDPRPTBV",61,0)
|
|
. D ADD^EDPCSV(X)
|
|
"RTN","EDPRPTBV",62,0)
|
|
D:'$G(CSV) XML^EDPX("</logEntries>")
|
|
"RTN","EDPRPTBV",63,0)
|
|
;
|
|
"RTN","EDPRPTBV",64,0)
|
|
BV3 ; calculate & include averages
|
|
"RTN","EDPRPTBV",65,0)
|
|
Q:CNT<1 ;no visits found
|
|
"RTN","EDPRPTBV",66,0)
|
|
S ELAPSE=$$ETIME^EDPRPT(MIN("elapsed")\CNT),AVG("elapsed")=ELAPSE
|
|
"RTN","EDPRPTBV",67,0)
|
|
S TRIAGE=$$ETIME^EDPRPT(MIN("triage")\CNT),AVG("triage")=TRIAGE
|
|
"RTN","EDPRPTBV",68,0)
|
|
S ADMDEC=$S(ADM:$$ETIME^EDPRPT(MIN("admDec")\ADM),1:"00:00")
|
|
"RTN","EDPRPTBV",69,0)
|
|
S ADMDEL=$S(ADM:$$ETIME^EDPRPT(MIN("admDel")\ADM),1:"00:00")
|
|
"RTN","EDPRPTBV",70,0)
|
|
S AVG("admDec")=ADMDEC,AVG("admDel")=ADMDEL,AVG("total")=CNT
|
|
"RTN","EDPRPTBV",71,0)
|
|
;
|
|
"RTN","EDPRPTBV",72,0)
|
|
I $G(CSV) D Q ;CSV format
|
|
"RTN","EDPRPTBV",73,0)
|
|
. N TAB,D S TAB=$C(9)
|
|
"RTN","EDPRPTBV",74,0)
|
|
. D BLANK^EDPCSV
|
|
"RTN","EDPRPTBV",75,0)
|
|
. S X=TAB_"Total Patients"_TAB_CNT_TAB_"Averages Per Patient"_TAB_TAB_TAB_ELAPSE_TAB_TRIAGE_TAB_ADMDEC_TAB_ADMDEL
|
|
"RTN","EDPRPTBV",76,0)
|
|
. D ADD^EDPCSV(X),BLANK^EDPCSV
|
|
"RTN","EDPRPTBV",77,0)
|
|
D XML^EDPX("<averages>")
|
|
"RTN","EDPRPTBV",78,0)
|
|
S X=$$XMLA^EDPX("average",.AVG) D XML^EDPX(X)
|
|
"RTN","EDPRPTBV",79,0)
|
|
D XML^EDPX("</averages>")
|
|
"RTN","EDPRPTBV",80,0)
|
|
Q
|
|
"RTN","EDPRPTBV",81,0)
|
|
;
|
|
"RTN","EDPRPTBV",82,0)
|
|
INIT ; Initialize counters and sums
|
|
"RTN","EDPRPTBV",83,0)
|
|
N I,X S (CNT,ADM)=0
|
|
"RTN","EDPRPTBV",84,0)
|
|
F I="elapsed","triage","admDec","admDel" S MIN(I)=0
|
|
"RTN","EDPRPTBV",85,0)
|
|
Q
|
|
"RTN","EDPRPTBV",86,0)
|
|
;
|
|
"RTN","EDPRPTBV",87,0)
|
|
ECODE(IEN) ; Return external value for a Code
|
|
"RTN","EDPRPTBV",88,0)
|
|
Q:IEN $P($G(^EDPB(233.1,IEN,0)),U,2) ;name
|
|
"RTN","EDPRPTBV",89,0)
|
|
Q ""
|
|
"RTN","EDPRPTBV",90,0)
|
|
;
|
|
"RTN","EDPRPTBV",91,0)
|
|
BVAC(AREA,LOG) ; -- Return ICD^text of diagnosis in range, else null
|
|
"RTN","EDPRPTBV",92,0)
|
|
N X,Y,I,EDPDX S Y=""
|
|
"RTN","EDPRPTBV",93,0)
|
|
D DXALL^EDPQPCE(AREA,LOG,.EDPDX)
|
|
"RTN","EDPRPTBV",94,0)
|
|
S I=0 F S I=$O(EDPDX(I)) Q:I<1 S X=$G(EDPDX(I)) I 290<=+X,+X<=316 S Y=X Q
|
|
"RTN","EDPRPTBV",95,0)
|
|
Q Y
|
|
"RTN","EDPX")
|
|
0^9^B9797287
|
|
"RTN","EDPX",1,0)
|
|
EDPX ;SLC/KCM - Common Utilities
|
|
"RTN","EDPX",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"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 <TAG data="9" label="XXX" />
|
|
"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 <TAG att1="a" att2="b"... />
|
|
"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))_"</"_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)
|
|
SAVERR(TYP,ERR) ; Output a save error
|
|
"RTN","EDPX",58,0)
|
|
D XML^EDPX("<save status='"_TYP_"' >"_ERR_"</save>")
|
|
"RTN","EDPX",59,0)
|
|
Q
|
|
"RTN","EDPX",60,0)
|
|
MSG(MSG) ; Write out error message
|
|
"RTN","EDPX",61,0)
|
|
I MSG=1 S X="some error"
|
|
"RTN","EDPX",62,0)
|
|
I MSG=2300001 S X="Station Number is missing"
|
|
"RTN","EDPX",63,0)
|
|
I MSG=2300002 S X="Patient is already active in log"
|
|
"RTN","EDPX",64,0)
|
|
I MSG=2300003 S X="Unable to create lock for new record"
|
|
"RTN","EDPX",65,0)
|
|
I MSG=2300004 S X="Error creating new record"
|
|
"RTN","EDPX",66,0)
|
|
I MSG=2300005 S X="Error creating sub-record"
|
|
"RTN","EDPX",67,0)
|
|
I MSG=2300006 S X="Missing log record"
|
|
"RTN","EDPX",68,0)
|
|
I MSG=2300007 S X="Missing log IEN"
|
|
"RTN","EDPX",69,0)
|
|
I MSG=2300008 S X="Error updating record"
|
|
"RTN","EDPX",70,0)
|
|
I MSG=2300009 S X="Error updating sub-record"
|
|
"RTN","EDPX",71,0)
|
|
I MSG=2300010 S X="Command missing or not recognized: "
|
|
"RTN","EDPX",72,0)
|
|
I MSG=2300011 S X="Unknown report type"
|
|
"RTN","EDPX",73,0)
|
|
I MSG=2300012 S X="Missing or invalid date range"
|
|
"RTN","EDPX",74,0)
|
|
I MSG=2300013 S X="Shift times not defined for this site"
|
|
"RTN","EDPX",75,0)
|
|
I MSG=2300014 S X="Name missing"
|
|
"RTN","EDPX",76,0)
|
|
I MSG=2300015 S X="Unable to lock record"
|
|
"RTN","EDPX",77,0)
|
|
I MSG=2300016 S X="The selected room/area is now occupied."
|
|
"RTN","EDPX",78,0)
|
|
Q $$ESC^EDPX(X)
|
|
"RTN","EDPYPRE")
|
|
0^^B8226400
|
|
"RTN","EDPYPRE",1,0)
|
|
EDPYPRE ;SLC/KCM - Pre-init for facility install
|
|
"RTN","EDPYPRE",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPYPRE",3,0)
|
|
;
|
|
"RTN","EDPYPRE",4,0)
|
|
S ^TMP("EDP-LAST-VERSION")=+$P($$VERSRV,"1.0-T",2)
|
|
"RTN","EDPYPRE",5,0)
|
|
;
|
|
"RTN","EDPYPRE",6,0)
|
|
D FIXT5,DELFLDS,DELCODES,CHGNAMES
|
|
"RTN","EDPYPRE",7,0)
|
|
Q
|
|
"RTN","EDPYPRE",8,0)
|
|
;
|
|
"RTN","EDPYPRE",9,0)
|
|
DELFLDS ; delete obsolete fields
|
|
"RTN","EDPYPRE",10,0)
|
|
I $$VERGTE(20) Q ; only convert if version <20
|
|
"RTN","EDPYPRE",11,0)
|
|
;
|
|
"RTN","EDPYPRE",12,0)
|
|
N DIK,DA
|
|
"RTN","EDPYPRE",13,0)
|
|
I $D(^DD(230.1,1)) D
|
|
"RTN","EDPYPRE",14,0)
|
|
. S DIK="^DD(230.1,",DA=1,DA(1)=230.1
|
|
"RTN","EDPYPRE",15,0)
|
|
. D ^DIK
|
|
"RTN","EDPYPRE",16,0)
|
|
I $D(^DD(231.9,.04)) D
|
|
"RTN","EDPYPRE",17,0)
|
|
. S DIK="^DD(231.9,",DA=.04,DA(1)=231.9
|
|
"RTN","EDPYPRE",18,0)
|
|
. D ^DIK
|
|
"RTN","EDPYPRE",19,0)
|
|
Q
|
|
"RTN","EDPYPRE",20,0)
|
|
DELCODES ; delete site code sets
|
|
"RTN","EDPYPRE",21,0)
|
|
I $$VERGTE(16) Q ; only convert if version <16
|
|
"RTN","EDPYPRE",22,0)
|
|
;
|
|
"RTN","EDPYPRE",23,0)
|
|
N X,DIK,DA
|
|
"RTN","EDPYPRE",24,0)
|
|
S X="" F S X=$O(^EDPB(233.2,"B",X)) Q:X="" D
|
|
"RTN","EDPYPRE",25,0)
|
|
. I $P(X,".")="edp" Q
|
|
"RTN","EDPYPRE",26,0)
|
|
. S DA=$O(^EDPB(233.2,"B",X,0)) Q:'DA
|
|
"RTN","EDPYPRE",27,0)
|
|
. S DIK="^EDPB(233.2,"
|
|
"RTN","EDPYPRE",28,0)
|
|
. D ^DIK
|
|
"RTN","EDPYPRE",29,0)
|
|
Q
|
|
"RTN","EDPYPRE",30,0)
|
|
CHGNAMES ; change code names
|
|
"RTN","EDPYPRE",31,0)
|
|
I $$VERGTE(20) Q ; only convert if version <20
|
|
"RTN","EDPYPRE",32,0)
|
|
;
|
|
"RTN","EDPYPRE",33,0)
|
|
D CHG("edp.source.ambulance","zzedp.source.ambulance")
|
|
"RTN","EDPYPRE",34,0)
|
|
D CHG("edp.source.code","zzedp.source.code")
|
|
"RTN","EDPYPRE",35,0)
|
|
D CHG("edp.source.walk-in","zzedp.source.walk-in")
|
|
"RTN","EDPYPRE",36,0)
|
|
D CHG("edp.source.cboc","edp.source.clinic-offsite")
|
|
"RTN","EDPYPRE",37,0)
|
|
D CHG("edp.source.clinic","edp.source.clinic-onsite")
|
|
"RTN","EDPYPRE",38,0)
|
|
D CHG("edp.source.nhcu","edp.source.nhcu-onsite")
|
|
"RTN","EDPYPRE",39,0)
|
|
D CHG("edp.status.observation","zzedp.status.observation")
|
|
"RTN","EDPYPRE",40,0)
|
|
D CHG("edp.status.overflow","zzedp.status.overflow")
|
|
"RTN","EDPYPRE",41,0)
|
|
D CHG("edp.status.gone","zzedp.status.gone")
|
|
"RTN","EDPYPRE",42,0)
|
|
D CHG("edp.delay.admitorders","edp.delay.admitdispo")
|
|
"RTN","EDPYPRE",43,0)
|
|
Q
|
|
"RTN","EDPYPRE",44,0)
|
|
CHG(OLD,NEW) ; change old to new name
|
|
"RTN","EDPYPRE",45,0)
|
|
Q:'$D(^EDPB(233.1,"B",OLD))
|
|
"RTN","EDPYPRE",46,0)
|
|
N IEN
|
|
"RTN","EDPYPRE",47,0)
|
|
S IEN=$O(^EDPB(233.1,"B",OLD,0)) Q:'IEN
|
|
"RTN","EDPYPRE",48,0)
|
|
N FDA,DIERR
|
|
"RTN","EDPYPRE",49,0)
|
|
S IEN=IEN_","
|
|
"RTN","EDPYPRE",50,0)
|
|
S FDA(233.1,IEN,.01)=NEW
|
|
"RTN","EDPYPRE",51,0)
|
|
D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPYPRE",52,0)
|
|
D CLEAN^DILF
|
|
"RTN","EDPYPRE",53,0)
|
|
Q
|
|
"RTN","EDPYPRE",54,0)
|
|
;
|
|
"RTN","EDPYPRE",55,0)
|
|
; VERSRV copied from EDPQAR to avoid $T(VERSRV^EDPQAR) error
|
|
"RTN","EDPYPRE",56,0)
|
|
;
|
|
"RTN","EDPYPRE",57,0)
|
|
VERSRV() ; Return server version of option name
|
|
"RTN","EDPYPRE",58,0)
|
|
N EDPLST,VAL
|
|
"RTN","EDPYPRE",59,0)
|
|
D FIND^DIC(19,"",1,"X","EDPF TRACKING SYSTEM",1,,,,"EDPLST")
|
|
"RTN","EDPYPRE",60,0)
|
|
S VAL=$G(EDPLST("DILIST","ID",1,1))
|
|
"RTN","EDPYPRE",61,0)
|
|
S VAL=$P(VAL,"version ",2)
|
|
"RTN","EDPYPRE",62,0)
|
|
I 'VAL Q "1.0T?"
|
|
"RTN","EDPYPRE",63,0)
|
|
Q VAL
|
|
"RTN","EDPYPRE",64,0)
|
|
;
|
|
"RTN","EDPYPRE",65,0)
|
|
VERGTE(HIGH) ; Return 1 if existing version and greater than HIGH
|
|
"RTN","EDPYPRE",66,0)
|
|
I $G(^TMP("EDP-LAST-VERSION"))<1 Q 1 ; no prior version
|
|
"RTN","EDPYPRE",67,0)
|
|
I $G(^TMP("EDP-LAST-VERSION"))>=HIGH Q 1 ; don't convert
|
|
"RTN","EDPYPRE",68,0)
|
|
Q 0 ; convert
|
|
"RTN","EDPYPRE",69,0)
|
|
;
|
|
"RTN","EDPYPRE",70,0)
|
|
FIXT5 ; convert the timezone offset to visit string
|
|
"RTN","EDPYPRE",71,0)
|
|
; (change occurred between T5 and T6)
|
|
"RTN","EDPYPRE",72,0)
|
|
I $$VERGTE(6) Q ; only convert if version <6
|
|
"RTN","EDPYPRE",73,0)
|
|
;
|
|
"RTN","EDPYPRE",74,0)
|
|
N LOG,X0
|
|
"RTN","EDPYPRE",75,0)
|
|
S LOG=0 F S LOG=$O(^EDP(230,LOG)) Q:'LOG D
|
|
"RTN","EDPYPRE",76,0)
|
|
. S X0=^EDP(230,LOG,0)
|
|
"RTN","EDPYPRE",77,0)
|
|
. I $P(X0,U,12)="0" S $P(^EDP(230,LOG,0),U,12)=""
|
|
"RTN","EDPYPRE",78,0)
|
|
Q
|
|
"RTN","EDPYPRE",79,0)
|
|
;. To convert VSTR to VISIT
|
|
"RTN","EDPYPRE",80,0)
|
|
;. I $L($P(X0,U,12),";")=3 D
|
|
"RTN","EDPYPRE",81,0)
|
|
;.. N VSTR,VISIT,DFN,VISITIEN,I
|
|
"RTN","EDPYPRE",82,0)
|
|
;.. S VSTR=$P(X0,U,12),DFN=$P(X0,U,6)
|
|
"RTN","EDPYPRE",83,0)
|
|
;.. Q:'DFN
|
|
"RTN","EDPYPRE",84,0)
|
|
;.. K ^TMP("PXKENC",$J)
|
|
"RTN","EDPYPRE",85,0)
|
|
;.. S VISIT=+$$GETENC^PXAPI(DFN,$P(VSTR,";",2),$P(VSTR,";"))
|
|
"RTN","EDPYPRE",86,0)
|
|
;.. I VISIT<0 S $P(^EDP(230,LOG,0),U,12)="" Q
|
|
"RTN","EDPYPRE",87,0)
|
|
;.. S VISITIEN=""
|
|
"RTN","EDPYPRE",88,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",89,0)
|
|
;.. S $P(^EDP(230,LOG,0),U,12)=VISITIEN
|
|
"RTN","EDPYPRE",90,0)
|
|
Q
|
|
"RTN","EDPYPST")
|
|
0^^B35872203
|
|
"RTN","EDPYPST",1,0)
|
|
EDPYPST ;SLC/KCM - Post-init for facility install
|
|
"RTN","EDPYPST",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 74
|
|
"RTN","EDPYPST",3,0)
|
|
;
|
|
"RTN","EDPYPST",4,0)
|
|
D PROXY,CONVERT,FIXSPEC,FIXWAIT,FIXDFLT,AO,CHOICES,DELBRD,FIXAPX,FIXSTA,FIXICD,FIXPDFN
|
|
"RTN","EDPYPST",5,0)
|
|
K ^TMP("EDP-LAST-VERSION")
|
|
"RTN","EDPYPST",6,0)
|
|
Q
|
|
"RTN","EDPYPST",7,0)
|
|
;
|
|
"RTN","EDPYPST",8,0)
|
|
PROXY ; Create proxy user
|
|
"RTN","EDPYPST",9,0)
|
|
Q:$O(^VA(200,"B","EDPTRACKING,PROXY",0))
|
|
"RTN","EDPYPST",10,0)
|
|
N X
|
|
"RTN","EDPYPST",11,0)
|
|
S X=$$CREATE^XUSAP("EDPTRACKING,PROXY","","EDPS BOARD CONTEXT")
|
|
"RTN","EDPYPST",12,0)
|
|
Q
|
|
"RTN","EDPYPST",13,0)
|
|
;
|
|
"RTN","EDPYPST",14,0)
|
|
CONVERT ; set ^XTMP for tracking conversion
|
|
"RTN","EDPYPST",15,0)
|
|
Q:'$D(^DIZ(172006,0)) Q:$G(^XTMP("EDP-CONV"))="DONE"
|
|
"RTN","EDPYPST",16,0)
|
|
I '$D(^XTMP("EDP-CONV")) S ^XTMP("EDP-CONV",0)=$$FMADD^XLFDT(DT,365)_U_DT_"^Copy ED data to EDIS files"
|
|
"RTN","EDPYPST",17,0)
|
|
N I,DIV,X S X=$G(^XTMP("EDP-CONV","X")) ;old format
|
|
"RTN","EDPYPST",18,0)
|
|
S I=0 F S I=$O(^DIZ(172012,I)) Q:I<1 D
|
|
"RTN","EDPYPST",19,0)
|
|
. S DIV=$$DIV(I) Q:'DIV Q:$D(^XTMP("EDP-CONV","D",DIV))
|
|
"RTN","EDPYPST",20,0)
|
|
. N X1,X2,X3 S (X2,X3)=0
|
|
"RTN","EDPYPST",21,0)
|
|
. S X1=$S($L(X):"",1:I)
|
|
"RTN","EDPYPST",22,0)
|
|
. S:$P(X,U,2) X2="" I $P(X,U,3) S X2="" D ;old format - active done
|
|
"RTN","EDPYPST",23,0)
|
|
.. N L S L=$P(X,U,3)+1
|
|
"RTN","EDPYPST",24,0)
|
|
.. F S L=$O(^DIZ(172006,L),-1) Q:L<1 I +$G(^(L,3))=DIV S X3=L Q
|
|
"RTN","EDPYPST",25,0)
|
|
. S ^XTMP("EDP-CONV","D",DIV)=X1_U_X2_U_X3 ; I^0^0
|
|
"RTN","EDPYPST",26,0)
|
|
Q
|
|
"RTN","EDPYPST",27,0)
|
|
DIV(X) ; return file 4 ien for Configuration
|
|
"RTN","EDPYPST",28,0)
|
|
N X0,Y
|
|
"RTN","EDPYPST",29,0)
|
|
S X0=$G(^DIZ(172012,+$G(X),0)),Y=+X0
|
|
"RTN","EDPYPST",30,0)
|
|
I Y<1 S Y=+$S($P(X0,U,2):$P(X0,U,2),1:$$SITE^VASITE)
|
|
"RTN","EDPYPST",31,0)
|
|
Q Y
|
|
"RTN","EDPYPST",32,0)
|
|
;
|
|
"RTN","EDPYPST",33,0)
|
|
FIXSPEC ; add the display properties to existing spec
|
|
"RTN","EDPYPST",34,0)
|
|
I $$VERGTE^EDPYPRE(16) Q ; only convert if version <16
|
|
"RTN","EDPYPST",35,0)
|
|
;
|
|
"RTN","EDPYPST",36,0)
|
|
N SPEC
|
|
"RTN","EDPYPST",37,0)
|
|
S SPEC=0 F S SPEC=$O(^EDPB(231.9,SPEC)) Q:'SPEC D ADDPROP(SPEC),MOVEBRD(SPEC)
|
|
"RTN","EDPYPST",38,0)
|
|
Q
|
|
"RTN","EDPYPST",39,0)
|
|
ADDPROP(SPEC) ; add display properties to spec
|
|
"RTN","EDPYPST",40,0)
|
|
N I,X,WP,ORIG,SKIP,DIERR
|
|
"RTN","EDPYPST",41,0)
|
|
S SKIP=0
|
|
"RTN","EDPYPST",42,0)
|
|
S I=0 F S I=$O(^EDPB(231.9,SPEC,2,I)) Q:'I D
|
|
"RTN","EDPYPST",43,0)
|
|
. S ORIG(I)=^EDPB(231.9,SPEC,2,I,0)
|
|
"RTN","EDPYPST",44,0)
|
|
. I ORIG(I)["displayProperties" S SKIP=1
|
|
"RTN","EDPYPST",45,0)
|
|
Q:SKIP
|
|
"RTN","EDPYPST",46,0)
|
|
;
|
|
"RTN","EDPYPST",47,0)
|
|
N LN S LN=0
|
|
"RTN","EDPYPST",48,0)
|
|
S I=0 F S I=$O(ORIG(I)) Q:'I D
|
|
"RTN","EDPYPST",49,0)
|
|
. S LN=LN+1 S WP(LN)=ORIG(I)
|
|
"RTN","EDPYPST",50,0)
|
|
. I ORIG(I)["<spec>" S LN=LN+1,WP(LN)=$P($T(DP+1),";",3,99)
|
|
"RTN","EDPYPST",51,0)
|
|
D WP^DIE(231.9,SPEC_",",2,"","WP")
|
|
"RTN","EDPYPST",52,0)
|
|
D CLEAN^DILF
|
|
"RTN","EDPYPST",53,0)
|
|
Q
|
|
"RTN","EDPYPST",54,0)
|
|
MOVEBRD(AREA) ; move the display board spec into a multiple
|
|
"RTN","EDPYPST",55,0)
|
|
I $P($G(^EDPB(231.9,AREA,4,0)),U,4) Q ; already entries in the multiple
|
|
"RTN","EDPYPST",56,0)
|
|
I '$O(^EDPB(231.9,AREA,2,0)) Q ; no spec to move
|
|
"RTN","EDPYPST",57,0)
|
|
;
|
|
"RTN","EDPYPST",58,0)
|
|
N I,X0,WP,MSG
|
|
"RTN","EDPYPST",59,0)
|
|
S I=0 F S I=$O(^EDPB(231.9,AREA,2,I)) Q:'I D
|
|
"RTN","EDPYPST",60,0)
|
|
. S X0=^EDPB(231.9,AREA,2,I,0)
|
|
"RTN","EDPYPST",61,0)
|
|
. Q:X0="<spec>" Q:X0="</spec>"
|
|
"RTN","EDPYPST",62,0)
|
|
. S WP(I)=X0
|
|
"RTN","EDPYPST",63,0)
|
|
D UPDBRD^EDPBCF(AREA,0,"Main (default)",.WP,.MSG)
|
|
"RTN","EDPYPST",64,0)
|
|
Q
|
|
"RTN","EDPYPST",65,0)
|
|
DP ; default display properties
|
|
"RTN","EDPYPST",66,0)
|
|
;;<displayProperties fontSize="10" displayWidth="1024" displayLabel="1024x768" scrollDelay="7" />
|
|
"RTN","EDPYPST",67,0)
|
|
;
|
|
"RTN","EDPYPST",68,0)
|
|
FIXWAIT ; change the category of waiting room to "waiting"
|
|
"RTN","EDPYPST",69,0)
|
|
I $$VERGTE^EDPYPRE(14) Q ; only convert if version <14
|
|
"RTN","EDPYPST",70,0)
|
|
;
|
|
"RTN","EDPYPST",71,0)
|
|
N IEN
|
|
"RTN","EDPYPST",72,0)
|
|
S IEN=0 F S IEN=$O(^EDPB(231.8,"B","Waiting",IEN)) Q:'IEN D
|
|
"RTN","EDPYPST",73,0)
|
|
. S $P(^EDPB(231.8,IEN,0),U,9)=2
|
|
"RTN","EDPYPST",74,0)
|
|
Q
|
|
"RTN","EDPYPST",75,0)
|
|
FIXDFLT ; create initial default rooms
|
|
"RTN","EDPYPST",76,0)
|
|
N AREA,X1,AMB,DFLT,STN
|
|
"RTN","EDPYPST",77,0)
|
|
S AREA=0 F S AREA=$O(^EDPB(231.9,AREA)) Q:'AREA D
|
|
"RTN","EDPYPST",78,0)
|
|
. S X1=$G(^EDPB(231.9,AREA,1)),AMB=$P(X1,U,11),DFLT=$P(X1,U,12)
|
|
"RTN","EDPYPST",79,0)
|
|
. S STN=$P(^EDPB(231.9,AREA,0),U,2)
|
|
"RTN","EDPYPST",80,0)
|
|
. I 'AMB D
|
|
"RTN","EDPYPST",81,0)
|
|
. . S AMB=$O(^EDPB(231.8,"AC",STN,AREA,"AMBU",0))
|
|
"RTN","EDPYPST",82,0)
|
|
. . S:AMB $P(^EDPB(231.9,AREA,1),U,11)=AMB
|
|
"RTN","EDPYPST",83,0)
|
|
. I 'DFLT D
|
|
"RTN","EDPYPST",84,0)
|
|
. . S DFLT=$O(^EDPB(231.8,"AC",STN,AREA,"WAIT",0))
|
|
"RTN","EDPYPST",85,0)
|
|
. . S $P(^EDPB(231.9,AREA,1),U,12)=DFLT
|
|
"RTN","EDPYPST",86,0)
|
|
Q
|
|
"RTN","EDPYPST",87,0)
|
|
;
|
|
"RTN","EDPYPST",88,0)
|
|
DELBRD ; delete the DD and data for the old display board spec
|
|
"RTN","EDPYPST",89,0)
|
|
I $$VERGTE^EDPYPRE(20) Q ; only convert if version <20
|
|
"RTN","EDPYPST",90,0)
|
|
;
|
|
"RTN","EDPYPST",91,0)
|
|
I $$GET1^DID(231.9,2,,"TYPE")'="WORD-PROCESSING" Q
|
|
"RTN","EDPYPST",92,0)
|
|
N DIU
|
|
"RTN","EDPYPST",93,0)
|
|
S DIU=231.92,DIU(0)="SD"
|
|
"RTN","EDPYPST",94,0)
|
|
D EN^DIU2
|
|
"RTN","EDPYPST",95,0)
|
|
Q
|
|
"RTN","EDPYPST",96,0)
|
|
AO ; build AO index on #230
|
|
"RTN","EDPYPST",97,0)
|
|
Q:$D(^EDP(230,"AO"))
|
|
"RTN","EDPYPST",98,0)
|
|
N LOG,IEN,ORD
|
|
"RTN","EDPYPST",99,0)
|
|
S LOG=0 F S LOG=+$O(^EDP(230,LOG)) Q:LOG<1 D
|
|
"RTN","EDPYPST",100,0)
|
|
. S IEN=0 F S IEN=+$O(^EDP(230,LOG,8,IEN)) Q:IEN<1 S ORD=+$G(^(IEN,0)) D
|
|
"RTN","EDPYPST",101,0)
|
|
.. S:ORD ^EDP(230,"AO",ORD,LOG,IEN)=""
|
|
"RTN","EDPYPST",102,0)
|
|
Q
|
|
"RTN","EDPYPST",103,0)
|
|
CHOICES ; initialize choices timestamps
|
|
"RTN","EDPYPST",104,0)
|
|
N AREA
|
|
"RTN","EDPYPST",105,0)
|
|
S AREA=0 F S AREA=$O(^EDPB(231.9,AREA)) Q:'AREA S ^EDPB(231.9,AREA,231)=$H
|
|
"RTN","EDPYPST",106,0)
|
|
Q
|
|
"RTN","EDPYPST",107,0)
|
|
FIXNV ; convert the "no value" codes to 0
|
|
"RTN","EDPYPST",108,0)
|
|
Q ; maybe do this later....
|
|
"RTN","EDPYPST",109,0)
|
|
N NOVAL,LOG
|
|
"RTN","EDPYPST",110,0)
|
|
S NOVAL=+$O(^EDPB(233.1,"B","edp.reserved.novalue",0))
|
|
"RTN","EDPYPST",111,0)
|
|
Q:'NOVAL
|
|
"RTN","EDPYPST",112,0)
|
|
S LOG=0 F S LOG=$O(^EDP(230,LOG)) Q:'LOG D
|
|
"RTN","EDPYPST",113,0)
|
|
. D CHGNV(230,LOG,0,10)
|
|
"RTN","EDPYPST",114,0)
|
|
. D CHGNV(230,LOG,1,2)
|
|
"RTN","EDPYPST",115,0)
|
|
. D CHGNV(230,LOG,1,5)
|
|
"RTN","EDPYPST",116,0)
|
|
. D CHGNV(230,LOG,3,2)
|
|
"RTN","EDPYPST",117,0)
|
|
. D CHGNV(230,LOG,3,3)
|
|
"RTN","EDPYPST",118,0)
|
|
S LOG=0 F S LOG=$O(^EDP(230.1,LOG)) Q:'LOG D
|
|
"RTN","EDPYPST",119,0)
|
|
. D CHGNV(230.1,LOG,0,10)
|
|
"RTN","EDPYPST",120,0)
|
|
. D CHGNV(230.1,LOG,0,11)
|
|
"RTN","EDPYPST",121,0)
|
|
. D CHGNV(230.1,LOG,0,12)
|
|
"RTN","EDPYPST",122,0)
|
|
. D CHGNV(230.1,LOG,3,2)
|
|
"RTN","EDPYPST",123,0)
|
|
. D CHGNV(230.1,LOG,3,3)
|
|
"RTN","EDPYPST",124,0)
|
|
Q
|
|
"RTN","EDPYPST",125,0)
|
|
CHGNV(FN,LOG,SUB,P) ; convert individual piece, expects NOVAL defined
|
|
"RTN","EDPYPST",126,0)
|
|
Q ; maybe do this later....
|
|
"RTN","EDPYPST",127,0)
|
|
I $P($G(^EDP(FN,LOG,SUB)),U,P)=NOVAL S $P(^EDP(FN,LOG,SUB),U,P)=0
|
|
"RTN","EDPYPST",128,0)
|
|
Q
|
|
"RTN","EDPYPST",129,0)
|
|
FIXAPX ; fix the AP xref in 230
|
|
"RTN","EDPYPST",130,0)
|
|
I $$VERGTE^EDPYPRE(21) Q ; only convert if version <21
|
|
"RTN","EDPYPST",131,0)
|
|
;
|
|
"RTN","EDPYPST",132,0)
|
|
K ^EDP(230,"AP")
|
|
"RTN","EDPYPST",133,0)
|
|
N DIK,DA
|
|
"RTN","EDPYPST",134,0)
|
|
S DIK="^EDP(230,",DIK(1)=".06^AP"
|
|
"RTN","EDPYPST",135,0)
|
|
D ENALL^DIK
|
|
"RTN","EDPYPST",136,0)
|
|
Q
|
|
"RTN","EDPYPST",137,0)
|
|
FIXPDFN ; create the DFN xref in 230
|
|
"RTN","EDPYPST",138,0)
|
|
I $$VERGTE^EDPYPRE(24) Q ; only convert if last version <24
|
|
"RTN","EDPYPST",139,0)
|
|
;
|
|
"RTN","EDPYPST",140,0)
|
|
K ^EDP(230,"PDFN")
|
|
"RTN","EDPYPST",141,0)
|
|
N DIK,DA
|
|
"RTN","EDPYPST",142,0)
|
|
S DIK="^EDP(230,",DIK(1)=".06^PDFN"
|
|
"RTN","EDPYPST",143,0)
|
|
D ENALL^DIK
|
|
"RTN","EDPYPST",144,0)
|
|
Q
|
|
"RTN","EDPYPST",145,0)
|
|
FIXSTA ; convert the station number field to an institution pointer
|
|
"RTN","EDPYPST",146,0)
|
|
I $$VERGTE^EDPYPRE(22) Q ; only convert if version <22
|
|
"RTN","EDPYPST",147,0)
|
|
;
|
|
"RTN","EDPYPST",148,0)
|
|
N IEN
|
|
"RTN","EDPYPST",149,0)
|
|
S IEN=0 F S IEN=$O(^EDP(230,IEN)) Q:'IEN D CHGSTA(230,IEN)
|
|
"RTN","EDPYPST",150,0)
|
|
S IEN=0 F S IEN=$O(^EDPB(231.7,IEN)) Q:'IEN D CHGSTA(231.7,IEN)
|
|
"RTN","EDPYPST",151,0)
|
|
S IEN=0 F S IEN=$O(^EDPB(231.8,IEN)) Q:'IEN D CHGSTA(231.8,IEN)
|
|
"RTN","EDPYPST",152,0)
|
|
S IEN=0 F S IEN=$O(^EDPB(231.9,IEN)) Q:'IEN D CHGSTA(231.9,IEN)
|
|
"RTN","EDPYPST",153,0)
|
|
D CLEAN^DILF
|
|
"RTN","EDPYPST",154,0)
|
|
Q
|
|
"RTN","EDPYPST",155,0)
|
|
CHGSTA(EDPFILE,EDPIEN) ; convert station number to institution pointer withing file
|
|
"RTN","EDPYPST",156,0)
|
|
N STA,INST
|
|
"RTN","EDPYPST",157,0)
|
|
S STA=$P($S(EDPFILE<231:^EDP(EDPFILE,EDPIEN,0),1:^EDPB(EDPFILE,EDPIEN,0)),U,2)
|
|
"RTN","EDPYPST",158,0)
|
|
S INST=$$IEN^XUAF4(STA)
|
|
"RTN","EDPYPST",159,0)
|
|
;
|
|
"RTN","EDPYPST",160,0)
|
|
N FDA,DIERR,ERR
|
|
"RTN","EDPYPST",161,0)
|
|
S FDA(EDPFILE,EDPIEN_",",.02)=INST
|
|
"RTN","EDPYPST",162,0)
|
|
D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPYPST",163,0)
|
|
I $D(DIERR) W !,"STA Error, File=",EDPFILE," IEN=",EDPIEN," STA=",STN," INST=",INST
|
|
"RTN","EDPYPST",164,0)
|
|
Q
|
|
"RTN","EDPYPST",165,0)
|
|
FIXICD ; convert the ICD Code file to a pointer to the ICD file
|
|
"RTN","EDPYPST",166,0)
|
|
I $$VERGTE^EDPYPRE(22) Q ; only convert if version <22
|
|
"RTN","EDPYPST",167,0)
|
|
;
|
|
"RTN","EDPYPST",168,0)
|
|
N LOG,IEN
|
|
"RTN","EDPYPST",169,0)
|
|
S LOG=0 F S LOG=$O(^EDP(230,LOG)) Q:'LOG D
|
|
"RTN","EDPYPST",170,0)
|
|
. S IEN=0 F S IEN=$O(^EDP(230,LOG,4,IEN)) Q:'IEN D CHGICD(LOG,IEN)
|
|
"RTN","EDPYPST",171,0)
|
|
D CLEAN^DILF
|
|
"RTN","EDPYPST",172,0)
|
|
Q
|
|
"RTN","EDPYPST",173,0)
|
|
CHGICD(LOG,IEN) ; convert individual ICD Code to ICD Pointer
|
|
"RTN","EDPYPST",174,0)
|
|
N ICDCODE,ICDIEN
|
|
"RTN","EDPYPST",175,0)
|
|
S ICDCODE=$P($P(^EDP(230,LOG,4,IEN,0),U,2),"/",1)
|
|
"RTN","EDPYPST",176,0)
|
|
Q:'$L(ICDCODE)
|
|
"RTN","EDPYPST",177,0)
|
|
S ICDIEN=+$O(^ICD9("BA",ICDCODE_" ",0))
|
|
"RTN","EDPYPST",178,0)
|
|
;
|
|
"RTN","EDPYPST",179,0)
|
|
N FDA,DIERR,ERR
|
|
"RTN","EDPYPST",180,0)
|
|
S FDA(230.04,IEN_","_LOG_",",.02)=ICDIEN
|
|
"RTN","EDPYPST",181,0)
|
|
D FILE^DIE("","FDA","ERR")
|
|
"RTN","EDPYPST",182,0)
|
|
I $D(DIERR) W !,"STA Error, File=",EDPFILE," IEN=",EDPIEN," STA=",STN," INST=",INST
|
|
"RTN","EDPYPST",183,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^^.14^29
|
|
"^DD",230,230,0,"DDA")
|
|
N
|
|
"^DD",230,230,0,"DT")
|
|
3081215
|
|
"^DD",230,230,0,"IX","AVISIT",230,.12)
|
|
|
|
"^DD",230,230,0,"IX","B",230,.01)
|
|
|
|
"^DD",230,230,0,"IX","V",230,.12)
|
|
|
|
"^DD",230,230,0,"NM","ED LOG")
|
|
|
|
"^DD",230,230,0,"PT",230.1,.01)
|
|
|
|
"^DD",230,230,0,"VRPK")
|
|
EMERGENCY DEPARTMENT
|
|
"^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)
|
|
Enter the time the record was created.
|
|
"^DD",230,230,.01,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230,.01,21,1,0)
|
|
This is the date/time that this log record was added to the file.
|
|
"^DD",230,230,.01,"DT")
|
|
3070721
|
|
"^DD",230,230,.02,0)
|
|
INSTITUTION^RP4'^DIC(4,^0;2^Q
|
|
"^DD",230,230,.02,1,0)
|
|
^.1^^0
|
|
"^DD",230,230,.02,3)
|
|
Select the institution for this log entry.
|
|
"^DD",230,230,.02,21,0)
|
|
^^3^3^3081008^
|
|
"^DD",230,230,.02,21,1,0)
|
|
This allows the log entry to be associated with the station that
|
|
"^DD",230,230,.02,21,2,0)
|
|
originated it. It allows multiple institutions to be served by the same
|
|
"^DD",230,230,.02,21,3,0)
|
|
system.
|
|
"^DD",230,230,.02,"DT")
|
|
3081222
|
|
"^DD",230,230,.03,0)
|
|
AREA^RP231.9'^EDPB(231.9,^0;3^Q
|
|
"^DD",230,230,.03,1,0)
|
|
^.1^^0
|
|
"^DD",230,230,.03,3)
|
|
Select the area for this record.
|
|
"^DD",230,230,.03,21,0)
|
|
^^3^3^3080912^
|
|
"^DD",230,230,.03,21,1,0)
|
|
This is the area in the hospital for which this record applies.
|
|
"^DD",230,230,.03,21,2,0)
|
|
Initially, the only area is the emergency department. This field allows
|
|
"^DD",230,230,.03,21,3,0)
|
|
use to be expanded into other departments.
|
|
"^DD",230,230,.03,23,0)
|
|
^^3^3^3080912^
|
|
"^DD",230,230,.03,23,1,0)
|
|
The area field is also used for training classes. In the class, each
|
|
"^DD",230,230,.03,23,2,0)
|
|
user may be assigned a separate area so as to avoid conflicts when
|
|
"^DD",230,230,.03,23,3,0)
|
|
setting up configurations.
|
|
"^DD",230,230,.03,"DT")
|
|
3081222
|
|
"^DD",230,230,.04,0)
|
|
PATIENT NAME^F^^0;4^K:$L(X)>30!($L(X)<3) X
|
|
"^DD",230,230,.04,3)
|
|
Answer must be 3-30 characters in length.
|
|
"^DD",230,230,.04,21,0)
|
|
^^5^5^3081003^
|
|
"^DD",230,230,.04,21,1,0)
|
|
This is the name of the patient. It allows a name to be entered in the
|
|
"^DD",230,230,.04,21,2,0)
|
|
case of humanitarian care when the patient has not been entered into
|
|
"^DD",230,230,.04,21,3,0)
|
|
VistA yet.
|
|
"^DD",230,230,.04,21,4,0)
|
|
|
|
"^DD",230,230,.04,21,5,0)
|
|
LastName,FirstName is the name format that should be used.
|
|
"^DD",230,230,.04,23,0)
|
|
^^13^13^3081003^
|
|
"^DD",230,230,.04,23,1,0)
|
|
This field also assists in checking for duplicates and similar names on
|
|
"^DD",230,230,.04,23,2,0)
|
|
the display board within a single area. This allows appropriate
|
|
"^DD",230,230,.04,23,3,0)
|
|
indicators to be shown on the display board.
|
|
"^DD",230,230,.04,23,4,0)
|
|
|
|
"^DD",230,230,.04,23,5,0)
|
|
The clerk only enters the name in this field if the patient is not in
|
|
"^DD",230,230,.04,23,6,0)
|
|
VistA. If the patient gets added to VistA during the visit, the name
|
|
"^DD",230,230,.04,23,7,0)
|
|
used in VistA replaces the clerk-entered name. If the patient is
|
|
"^DD",230,230,.04,23,8,0)
|
|
selected from VistA, the software gets the VistA name and places it
|
|
"^DD",230,230,.04,23,9,0)
|
|
here. This allows the software to flag patients with similar names that
|
|
"^DD",230,230,.04,23,10,0)
|
|
might be active in the Emergency Department simultaneously.
|
|
"^DD",230,230,.04,23,11,0)
|
|
|
|
"^DD",230,230,.04,23,12,0)
|
|
This field is set to "(ambulance en route)" in the case where an
|
|
"^DD",230,230,.04,23,13,0)
|
|
ambulance is arriving but the name of the patient is unknown.
|
|
"^DD",230,230,.04,"DT")
|
|
3081003
|
|
"^DD",230,230,.05,0)
|
|
PATIENT SSN*^F^^0;5^K:$L(X)>9!($L(X)<1) X
|
|
"^DD",230,230,.05,1,0)
|
|
^.1^^0
|
|
"^DD",230,230,.05,3)
|
|
Answer must be 1-9 characters in length.
|
|
"^DD",230,230,.05,21,0)
|
|
^.001^2^2^3081003^^
|
|
"^DD",230,230,.05,21,1,0)
|
|
This is the patient social security number in the case of humanitarian
|
|
"^DD",230,230,.05,21,2,0)
|
|
care for a patient that does not exist in VistA.
|
|
"^DD",230,230,.05,23,0)
|
|
^.001^2^2^3081003^^
|
|
"^DD",230,230,.05,23,1,0)
|
|
It was part of the class 3 product, but is not currently used. It may be
|
|
"^DD",230,230,.05,23,2,0)
|
|
used in the future again, but is currently marked for deletion.
|
|
"^DD",230,230,.05,"DT")
|
|
3081003
|
|
"^DD",230,230,.06,0)
|
|
PATIENT ID^P2'^DPT(^0;6^Q
|
|
"^DD",230,230,.06,3)
|
|
Select a patient.
|
|
"^DD",230,230,.06,21,0)
|
|
^.001^1^1^3081003^^
|
|
"^DD",230,230,.06,21,1,0)
|
|
This is the patient in VistA for whom this log record is created.
|
|
"^DD",230,230,.06,23,0)
|
|
^^9^9^3081003^
|
|
"^DD",230,230,.06,23,1,0)
|
|
This field may be absent in the case of an arriving ambulance, where the
|
|
"^DD",230,230,.06,23,2,0)
|
|
patient is not yet known. It may also be absent when humanitarian aid is
|
|
"^DD",230,230,.06,23,3,0)
|
|
rendered for a non-VA patient.
|
|
"^DD",230,230,.06,23,4,0)
|
|
|
|
"^DD",230,230,.06,23,5,0)
|
|
If the patient is in VistA, the software gets the name field from file 2
|
|
"^DD",230,230,.06,23,6,0)
|
|
and places it in the PATIENT NAME field in this file. This allows the
|
|
"^DD",230,230,.06,23,7,0)
|
|
software to flag patients with similar names who are active in the
|
|
"^DD",230,230,.06,23,8,0)
|
|
emergency department at the same time. The clerk does not enter the
|
|
"^DD",230,230,.06,23,9,0)
|
|
PATIENT NAME field directly if the patient is in VistA.
|
|
"^DD",230,230,.06,"DT")
|
|
3081222
|
|
"^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,3)
|
|
Enter "Yes" when the patient should be removed from the board.
|
|
"^DD",230,230,.07,9)
|
|
^
|
|
"^DD",230,230,.07,21,0)
|
|
^^3^3^3081003^
|
|
"^DD",230,230,.07,21,1,0)
|
|
This flag is set to YES when the patient has left the area (Emergency
|
|
"^DD",230,230,.07,21,2,0)
|
|
Department) and has been properly dispositioned. At this time, the entry
|
|
"^DD",230,230,.07,21,3,0)
|
|
no longer appears on the display board.
|
|
"^DD",230,230,.07,"DT")
|
|
3081004
|
|
"^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,3)
|
|
Enter the actual time of arrival.
|
|
"^DD",230,230,.08,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230,.08,21,1,0)
|
|
This is the time that the patient actually arrived at the emergency
|
|
"^DD",230,230,.08,21,2,0)
|
|
department. The length of the visit is measured from this point in time.
|
|
"^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,3)
|
|
Enter the time the patient left.
|
|
"^DD",230,230,.09,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230,.09,21,1,0)
|
|
This is the time that the patient was discharged from the emergency
|
|
"^DD",230,230,.09,21,2,0)
|
|
department (sent home, admitted, transferred somewhere else).
|
|
"^DD",230,230,.09,23,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230,.09,23,1,0)
|
|
Prompting for delay reasons is based on the difference between the time
|
|
"^DD",230,230,.09,23,2,0)
|
|
in and the time out.
|
|
"^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,3)
|
|
Select the source of the patient visit.
|
|
"^DD",230,230,.1,21,0)
|
|
^^2^2^3081003^
|
|
"^DD",230,230,.1,21,1,0)
|
|
This is the source of the emergency department visit. For example, the
|
|
"^DD",230,230,.1,21,2,0)
|
|
patient may have arrived from a nursing home, VA Hospital, walked in, etc.
|
|
"^DD",230,230,.1,23,0)
|
|
^.001^2^2^3081003^^
|
|
"^DD",230,230,.1,23,1,0)
|
|
The values for this field are associated with the <stn>.arrival and the
|
|
"^DD",230,230,.1,23,2,0)
|
|
edp.arrival code sets.
|
|
"^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,21,0)
|
|
^^5^5^3081015^
|
|
"^DD",230,230,.11,21,1,0)
|
|
This is a patient identifier that shows on the display board. In the case
|
|
"^DD",230,230,.11,21,2,0)
|
|
of an ambulance or non-VA patient, this identifier may be constructed and
|
|
"^DD",230,230,.11,21,3,0)
|
|
stored here. The identifier should be in the format: last initial + last
|
|
"^DD",230,230,.11,21,4,0)
|
|
4 of ssn. For example, given a fictional patient named TWENTY VEHU with
|
|
"^DD",230,230,.11,21,5,0)
|
|
an SSN of 000-00-0020, this field would be V0020.
|
|
"^DD",230,230,.11,23,0)
|
|
^.001^9^9^3081015^^
|
|
"^DD",230,230,.11,23,1,0)
|
|
Since last initial + last 4 digits of the social security number are
|
|
"^DD",230,230,.11,23,2,0)
|
|
commonly used to identify patients, this field assists in checking for
|
|
"^DD",230,230,.11,23,3,0)
|
|
patients with the same last initial / last 4. When a VistA patient is
|
|
"^DD",230,230,.11,23,4,0)
|
|
selected, the last initial / last 4 is constructed from information in
|
|
"^DD",230,230,.11,23,5,0)
|
|
file 2 and stored here. This allows patients with the same last initial /
|
|
"^DD",230,230,.11,23,6,0)
|
|
last 4 to be indicated on the display board.
|
|
"^DD",230,230,.11,23,7,0)
|
|
|
|
"^DD",230,230,.11,23,8,0)
|
|
If an ambulance is en route and the patient is not known, the value of
|
|
"^DD",230,230,.11,23,9,0)
|
|
this field is "(amb)".
|
|
"^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,1,2,0)
|
|
230^V
|
|
"^DD",230,230,.12,1,2,1)
|
|
S ^EDP(230,"V",$E(X,1,30),DA)=""
|
|
"^DD",230,230,.12,1,2,2)
|
|
K ^EDP(230,"V",$E(X,1,30),DA)
|
|
"^DD",230,230,.12,1,2,"%D",0)
|
|
^^1^1^3080418^
|
|
"^DD",230,230,.12,1,2,"%D",1,0)
|
|
This is used by PCE to help identify dependent entries.
|
|
"^DD",230,230,.12,1,2,"DT")
|
|
3080418
|
|
"^DD",230,230,.12,3)
|
|
Select a visit.
|
|
"^DD",230,230,.12,21,0)
|
|
^^1^1^3081010^
|
|
"^DD",230,230,.12,21,1,0)
|
|
This is the VISIT associated with this emergency department encounter.
|
|
"^DD",230,230,.12,23,0)
|
|
^.001^6^6^3081010^^
|
|
"^DD",230,230,.12,23,1,0)
|
|
Since emergency departments don't use appointments, the arrival of the
|
|
"^DD",230,230,.12,23,2,0)
|
|
patient is recorded in the emergency department tracking system itself.
|
|
"^DD",230,230,.12,23,3,0)
|
|
The tracking system can then create a visit in PCE so that subsequent
|
|
"^DD",230,230,.12,23,4,0)
|
|
care givers can associate orders and progress notes with that same
|
|
"^DD",230,230,.12,23,5,0)
|
|
visit. The visit is created once any PCE related field is collected so
|
|
"^DD",230,230,.12,23,6,0)
|
|
that DATA2PCE may be called. This is usually the triage nurse.
|
|
"^DD",230,230,.12,"DT")
|
|
3080418
|
|
"^DD",230,230,.13,0)
|
|
CREATION SOURCE^S^0:EDIS;1:SCHEDULING;2:CPRS;^0;13^Q
|
|
"^DD",230,230,.13,3)
|
|
Enter the mechanism which caused this entry to be created.
|
|
"^DD",230,230,.13,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230,.13,21,1,0)
|
|
This field identifies the route by which the visit was created.
|
|
"^DD",230,230,.13,23,0)
|
|
^^5^5^3080912^
|
|
"^DD",230,230,.13,23,1,0)
|
|
Generally the VISIT field is populated by calling DATA2PCE from EDIS. It
|
|
"^DD",230,230,.13,23,2,0)
|
|
is possible that the visit may be created by entering an appointment to
|
|
"^DD",230,230,.13,23,3,0)
|
|
the emergency department or writing a progress note for the emergency
|
|
"^DD",230,230,.13,23,4,0)
|
|
department location. This field records which mechanism was responsible
|
|
"^DD",230,230,.13,23,5,0)
|
|
for creating the entry in the VISIT file.
|
|
"^DD",230,230,.13,"DT")
|
|
3080722
|
|
"^DD",230,230,.14,0)
|
|
CLINIC^P44'^SC(^0;14^Q
|
|
"^DD",230,230,.14,3)
|
|
Select a clinic.
|
|
"^DD",230,230,.14,21,0)
|
|
^.001^2^2^3081215^^
|
|
"^DD",230,230,.14,21,1,0)
|
|
This is the specific clinic within the department (if multiple clinics
|
|
"^DD",230,230,.14,21,2,0)
|
|
are used) that will be associated with this visit.
|
|
"^DD",230,230,.14,23,0)
|
|
^^3^3^3081215^
|
|
"^DD",230,230,.14,23,1,0)
|
|
When a patient is checked in via scheduling, the selected clinic is
|
|
"^DD",230,230,.14,23,2,0)
|
|
stored here until a visit can be created. When the visit is created, the
|
|
"^DD",230,230,.14,23,3,0)
|
|
location stored here is used.
|
|
"^DD",230,230,.14,"DT")
|
|
3081215
|
|
"^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,21,0)
|
|
^^3^3^3081003^
|
|
"^DD",230,230,1.1,21,1,0)
|
|
This is the complaint that the patient presents with. It is usually
|
|
"^DD",230,230,1.1,21,2,0)
|
|
shown on the display board, so it should be brief enough to fit in the
|
|
"^DD",230,230,1.1,21,3,0)
|
|
column on the display board.
|
|
"^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,3)
|
|
Select the disposition of the patient.
|
|
"^DD",230,230,1.2,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230,1.2,21,1,0)
|
|
This is how the patient is dispositioned at the end of the visit.
|
|
"^DD",230,230,1.2,23,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230,1.2,23,1,0)
|
|
The values for this field are associated with the <stn>.disposition and
|
|
"^DD",230,230,1.2,23,2,0)
|
|
the edp.disposition code sets.
|
|
"^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,3)
|
|
Enter the time of disposition.
|
|
"^DD",230,230,1.3,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230,1.3,21,1,0)
|
|
This is the time that the disposition field was last updated.
|
|
"^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)
|
|
Enter the time the diagnosis was made.
|
|
"^DD",230,230,1.4,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230,1.4,21,1,0)
|
|
This is the time that the diagnoses were last updated.
|
|
"^DD",230,230,1.4,"DT")
|
|
3070720
|
|
"^DD",230,230,1.5,0)
|
|
DELAY REASON^P233.1'^EDPB(233.1,^1;5^Q
|
|
"^DD",230,230,1.5,3)
|
|
Select a delay reason.
|
|
"^DD",230,230,1.5,21,0)
|
|
^^2^2^3081010^
|
|
"^DD",230,230,1.5,21,1,0)
|
|
This is the reason for delay in the case where the visit has taken longer
|
|
"^DD",230,230,1.5,21,2,0)
|
|
than the time recommended.
|
|
"^DD",230,230,1.5,23,0)
|
|
^.001^1^1^3081010^^^
|
|
"^DD",230,230,1.5,23,1,0)
|
|
This field is associated with the <stn>.delay and edp.delay code sets.
|
|
"^DD",230,230,1.5,"DT")
|
|
3081003
|
|
"^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,21,0)
|
|
^^3^3^3080912^
|
|
"^DD",230,230,2,21,1,0)
|
|
This is an optional field that allows the complaint to be entered in a
|
|
"^DD",230,230,2,21,2,0)
|
|
form that is longer than that allowed by the complaint column on the
|
|
"^DD",230,230,2,21,3,0)
|
|
display board.
|
|
"^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,3)
|
|
Select a patient status.
|
|
"^DD",230,230,3.2,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230,3.2,21,1,0)
|
|
This is the status of the patient during the course of the emergency
|
|
"^DD",230,230,3.2,21,2,0)
|
|
department visit (awaiting triage, ed patient, etc.).
|
|
"^DD",230,230,3.2,23,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230,3.2,23,1,0)
|
|
This field is associated with the <stn>.status and the edp.status code
|
|
"^DD",230,230,3.2,23,2,0)
|
|
sets.
|
|
"^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,3)
|
|
Select an acuity level.
|
|
"^DD",230,230,3.3,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230,3.3,21,1,0)
|
|
This is the acuity of the patient. The acuity is based on the ESI scale
|
|
"^DD",230,230,3.3,21,2,0)
|
|
with acuity levels 1-5.
|
|
"^DD",230,230,3.3,23,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230,3.3,23,1,0)
|
|
This field is associated with the edp.acuity code set.
|
|
"^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,3)
|
|
Select a room or area.
|
|
"^DD",230,230,3.4,21,0)
|
|
^^4^4^3080912^
|
|
"^DD",230,230,3.4,21,1,0)
|
|
This is the room / area where the patient is. This may be a physical
|
|
"^DD",230,230,3.4,21,2,0)
|
|
room or a specific bed. It may also be a "conceptual area", such as the
|
|
"^DD",230,230,3.4,21,3,0)
|
|
hallway, parking lot, x-ray, etc. It does not necessarily need to be a
|
|
"^DD",230,230,3.4,21,4,0)
|
|
physical location.
|
|
"^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)
|
|
Select a provider.
|
|
"^DD",230,230,3.5,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230,3.5,21,1,0)
|
|
This is the provider currently assigned to the patient.
|
|
"^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)
|
|
Select a nurse.
|
|
"^DD",230,230,3.6,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230,3.6,21,1,0)
|
|
This is the nurse assigned to the patient.
|
|
"^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)
|
|
Select a resident.
|
|
"^DD",230,230,3.7,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230,3.7,21,1,0)
|
|
This is the resident assigned to the patient.
|
|
"^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,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230,3.8,21,1,0)
|
|
This is a comment that may be entered or updated for this particular
|
|
"^DD",230,230,3.8,21,2,0)
|
|
visit. The comment may be optionally shown on the display board.
|
|
"^DD",230,230,3.8,"DT")
|
|
3071129
|
|
"^DD",230,230,4,0)
|
|
DISCHARGE DIAGNOSIS^230.04A^^4;0
|
|
"^DD",230,230,4,21,0)
|
|
^^1^1^3081010^
|
|
"^DD",230,230,4,21,1,0)
|
|
This multiple contains the diagnosis or diagnoses for the visit.
|
|
"^DD",230,230,4,23,0)
|
|
^^13^13^3081010^
|
|
"^DD",230,230,4,23,1,0)
|
|
This multiple serves two purposes:
|
|
"^DD",230,230,4,23,2,0)
|
|
|
|
"^DD",230,230,4,23,3,0)
|
|
1) If the site has chosen to allow free text diagnoses, the list of
|
|
"^DD",230,230,4,23,4,0)
|
|
diagnoses entered is stored here. In this case there will be no ICD 9
|
|
"^DD",230,230,4,23,5,0)
|
|
code. Clerical staff will enter the diagnosis list into PCE at a later
|
|
"^DD",230,230,4,23,6,0)
|
|
time using information from this list.
|
|
"^DD",230,230,4,23,7,0)
|
|
|
|
"^DD",230,230,4,23,8,0)
|
|
2) If the site has chosen to use coded diagnoses, this multiple is used
|
|
"^DD",230,230,4,23,9,0)
|
|
to hold the selected diagnoses until a PCE visit is created. In that
|
|
"^DD",230,230,4,23,10,0)
|
|
case, PCE becomes the real holder of the diagnosis list.
|
|
"^DD",230,230,4,23,11,0)
|
|
|
|
"^DD",230,230,4,23,12,0)
|
|
The parameter that controls the behavior of this list is in the TRACKING
|
|
"^DD",230,230,4,23,13,0)
|
|
AREA file (231.9).
|
|
"^DD",230,230,8,0)
|
|
ORDERS^230.08A^^8;0
|
|
"^DD",230,230,8,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230,8,21,1,0)
|
|
This multiple tracks orders during the course of the patient stay in the
|
|
"^DD",230,230,8,21,2,0)
|
|
emergency department.
|
|
"^DD",230,230,8,23,0)
|
|
^^6^6^3080912^
|
|
"^DD",230,230,8,23,1,0)
|
|
This multiple is populated by an order entry event monitor, which
|
|
"^DD",230,230,8,23,2,0)
|
|
identifies orders related to the current emergency department visit. The
|
|
"^DD",230,230,8,23,3,0)
|
|
display board is refreshed frequently (every few seconds). The board
|
|
"^DD",230,230,8,23,4,0)
|
|
constantly shows the status of emergency department related orders, and
|
|
"^DD",230,230,8,23,5,0)
|
|
this multiple allows a quick up to date display. It allows the reports to
|
|
"^DD",230,230,8,23,6,0)
|
|
track the history of orders related to an emergency department visit.
|
|
"^DD",230,230.04,0)
|
|
DISCHARGE DIAGNOSIS SUB-FIELD^^.03^3
|
|
"^DD",230,230.04,0,"DT")
|
|
3081008
|
|
"^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,21,0)
|
|
^.001^1^1^3081010^^^
|
|
"^DD",230,230.04,.01,21,1,0)
|
|
This is the free text of the diagnosis.
|
|
"^DD",230,230.04,.01,23,0)
|
|
^^4^4^3081010^
|
|
"^DD",230,230.04,.01,23,1,0)
|
|
If the parameters are set so that coded diagnoses will be required, the
|
|
"^DD",230,230.04,.01,23,2,0)
|
|
text will match the Clinical Lexicon text. Some Clinical Lexicon entries
|
|
"^DD",230,230.04,.01,23,3,0)
|
|
map to more than one ICD code. $$ICDONE^LEXU is used to determine which
|
|
"^DD",230,230.04,.01,23,4,0)
|
|
code to store here.
|
|
"^DD",230,230.04,.01,"DT")
|
|
3070720
|
|
"^DD",230,230.04,.02,0)
|
|
ICD9 CODE^P80'^ICD9(^0;2^Q
|
|
"^DD",230,230.04,.02,3)
|
|
Select the ICD Code for this diagnosis.
|
|
"^DD",230,230.04,.02,21,0)
|
|
^.001^1^1^3081010^^^^
|
|
"^DD",230,230.04,.02,21,1,0)
|
|
This is the ICD code for the diagnosis.
|
|
"^DD",230,230.04,.02,23,0)
|
|
^^4^4^3081010^
|
|
"^DD",230,230.04,.02,23,1,0)
|
|
Clinical Lexicon utilities are used by the application to look up
|
|
"^DD",230,230.04,.02,23,2,0)
|
|
diagnoses. Some Clinical Lexicon entries map to more than one ICD code.
|
|
"^DD",230,230.04,.02,23,3,0)
|
|
$$ICDONE^LEXU is used to determine which code to store here. This also
|
|
"^DD",230,230.04,.02,23,4,0)
|
|
becomes the code that is stored in PCE.
|
|
"^DD",230,230.04,.02,"DT")
|
|
3081008
|
|
"^DD",230,230.04,.03,0)
|
|
PRIMARY^S^0:NO (secondary);1:YES (primary);^0;3^Q
|
|
"^DD",230,230.04,.03,3)
|
|
Enter 'yes' if this is the primary diagnosis.
|
|
"^DD",230,230.04,.03,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230.04,.03,21,1,0)
|
|
This flag indicates which of the diagnoses is to be considered the
|
|
"^DD",230,230.04,.03,21,2,0)
|
|
primary diagnosis.
|
|
"^DD",230,230.04,.03,"DT")
|
|
3080605
|
|
"^DD",230,230.08,0)
|
|
ORDERS SUB-FIELD^^.05^5
|
|
"^DD",230,230.08,0,"DT")
|
|
3081003
|
|
"^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,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230,230.08,.01,21,1,0)
|
|
This is the order id for an emergency department related order.
|
|
"^DD",230,230.08,.01,"DT")
|
|
3080527
|
|
"^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,3)
|
|
Select the service filling the order.
|
|
"^DD",230,230.08,.02,21,0)
|
|
^.001^2^2^3081003^^
|
|
"^DD",230,230.08,.02,21,1,0)
|
|
This is a general identification of the service to which the order is
|
|
"^DD",230,230.08,.02,21,2,0)
|
|
related.
|
|
"^DD",230,230.08,.02,"DT")
|
|
3081003
|
|
"^DD",230,230.08,.03,0)
|
|
STATUS^S^N:New;A:Active;C:Complete;^0;3^Q
|
|
"^DD",230,230.08,.03,3)
|
|
Select the current status of the order.
|
|
"^DD",230,230.08,.03,21,0)
|
|
^.001^1^1^3081003^^
|
|
"^DD",230,230.08,.03,21,1,0)
|
|
This is the general status of the order.
|
|
"^DD",230,230.08,.03,23,0)
|
|
^.001^2^2^3081003^^
|
|
"^DD",230,230.08,.03,23,1,0)
|
|
The status may be used to highlight orders on the display board and
|
|
"^DD",230,230.08,.03,23,2,0)
|
|
monitor for those that have been outstanding too long.
|
|
"^DD",230,230.08,.03,"DT")
|
|
3081003
|
|
"^DD",230,230.08,.04,0)
|
|
STAT^S^1:Stat;0:Not Stat;^0;4^Q
|
|
"^DD",230,230.08,.04,3)
|
|
Enter stat if this is a stat order.
|
|
"^DD",230,230.08,.04,21,0)
|
|
^.001^1^1^3081003^^
|
|
"^DD",230,230.08,.04,21,1,0)
|
|
This flag identifies the order as being STAT.
|
|
"^DD",230,230.08,.04,23,0)
|
|
^.001^1^1^3081003^^
|
|
"^DD",230,230.08,.04,23,1,0)
|
|
STAT orders may be optionally highlighted by color on the display board.
|
|
"^DD",230,230.08,.04,"DT")
|
|
3081003
|
|
"^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,3)
|
|
Enter the date/time the order was released to the filling service.
|
|
"^DD",230,230.08,.05,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230,230.08,.05,21,1,0)
|
|
This is the time the order was released to the service. It is used to
|
|
"^DD",230,230.08,.05,21,2,0)
|
|
monitor orders that may be delayed.
|
|
"^DD",230,230.08,.05,"DT")
|
|
3071115
|
|
"^DD",230.1,230.1,0)
|
|
FIELD^^.14^22
|
|
"^DD",230.1,230.1,0,"DDA")
|
|
N
|
|
"^DD",230.1,230.1,0,"DT")
|
|
3081215
|
|
"^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,0,"VRPK")
|
|
EMERGENCY DEPARTMENT
|
|
"^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)
|
|
Select ED LOG entry.
|
|
"^DD",230.1,230.1,.01,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230.1,230.1,.01,21,1,0)
|
|
This references an entry in the ED LOG file. Entries in this file record
|
|
"^DD",230.1,230.1,.01,21,2,0)
|
|
modifications to entries in the ED LOG file.
|
|
"^DD",230.1,230.1,.01,"DT")
|
|
3081016
|
|
"^DD",230.1,230.1,.02,0)
|
|
TIME^RD^^0;2^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
|
|
"^DD",230.1,230.1,.02,3)
|
|
Enter time of modification.
|
|
"^DD",230.1,230.1,.02,21,0)
|
|
^.001^1^1^3080912^^
|
|
"^DD",230.1,230.1,.02,21,1,0)
|
|
This is the time that the log record was modified.
|
|
"^DD",230.1,230.1,.02,"DT")
|
|
3081016
|
|
"^DD",230.1,230.1,.03,0)
|
|
ENTERED BY^RP200'^VA(200,^0;3^Q
|
|
"^DD",230.1,230.1,.03,3)
|
|
Select the person responsible for this update.
|
|
"^DD",230.1,230.1,.03,21,0)
|
|
^.001^1^1^3081004^^
|
|
"^DD",230.1,230.1,.03,21,1,0)
|
|
This is the person who updated the log.
|
|
"^DD",230.1,230.1,.03,"DT")
|
|
3080912
|
|
"^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,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,.04,21,1,0)
|
|
If updated, this is the updated value of the patient name.
|
|
"^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,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230.1,230.1,.05,21,1,0)
|
|
If updated, this is the updated value of the patient social security
|
|
"^DD",230.1,230.1,.05,21,2,0)
|
|
number.
|
|
"^DD",230.1,230.1,.05,23,0)
|
|
^^3^3^3080912^
|
|
"^DD",230.1,230.1,.05,23,1,0)
|
|
The social security number was recorded in the class 3 product in the
|
|
"^DD",230.1,230.1,.05,23,2,0)
|
|
case that a patient without a DFN came to the emergency room. It is not
|
|
"^DD",230.1,230.1,.05,23,3,0)
|
|
currently used, but is here for compatibility with the class 3 version.
|
|
"^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)
|
|
Select the patient.
|
|
"^DD",230.1,230.1,.06,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,.06,21,1,0)
|
|
If updated, this is the updated value of the patient DFN.
|
|
"^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,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,.07,21,1,0)
|
|
If updated, this is the updated value of the complaint.
|
|
"^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,3)
|
|
Enter the arrival time of the patient.
|
|
"^DD",230.1,230.1,.08,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,.08,21,1,0)
|
|
If updated, this is the updated value of the arrival time of the patient.
|
|
"^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,3)
|
|
Enter the departure time.
|
|
"^DD",230.1,230.1,.09,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230.1,230.1,.09,21,1,0)
|
|
If updated, this is the updated value of the departure time of the
|
|
"^DD",230.1,230.1,.09,21,2,0)
|
|
patient.
|
|
"^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,3)
|
|
Enter the source of the patient visit.
|
|
"^DD",230.1,230.1,.1,21,0)
|
|
^.001^2^2^3080912^^
|
|
"^DD",230.1,230.1,.1,21,1,0)
|
|
If updated, this is the updated value of the source of the patient visit
|
|
"^DD",230.1,230.1,.1,21,2,0)
|
|
(came from nursing home, hospital ward, walk-in).
|
|
"^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,3)
|
|
Enter the disposition.
|
|
"^DD",230.1,230.1,.11,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,.11,21,1,0)
|
|
If updated, this is the updated value of the disposition.
|
|
"^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,3)
|
|
Enter the delay reason.
|
|
"^DD",230.1,230.1,.12,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,.12,21,1,0)
|
|
If updated, this is the updated value of the delay reason.
|
|
"^DD",230.1,230.1,.12,"DT")
|
|
3071123
|
|
"^DD",230.1,230.1,.14,0)
|
|
CLINIC^P44'^SC(^0;14^Q
|
|
"^DD",230.1,230.1,.14,3)
|
|
Select a clinic.
|
|
"^DD",230.1,230.1,.14,21,0)
|
|
^^1^1^3081215^
|
|
"^DD",230.1,230.1,.14,21,1,0)
|
|
If updated, this is the updated value of the clinic.
|
|
"^DD",230.1,230.1,.14,"DT")
|
|
3081215
|
|
"^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,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",230.1,230.1,2,21,1,0)
|
|
If updated, this is the updated value of the long complaint (the optional
|
|
"^DD",230.1,230.1,2,21,2,0)
|
|
complaint that may be longer than the display board allows).
|
|
"^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,3)
|
|
Select a status.
|
|
"^DD",230.1,230.1,3.2,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,3.2,21,1,0)
|
|
If updated, this is the updated value of the status.
|
|
"^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,3)
|
|
Select an acuity level.
|
|
"^DD",230.1,230.1,3.3,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,3.3,21,1,0)
|
|
If updated, this is the updated value of the acuity.
|
|
"^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,3)
|
|
Select a room/area
|
|
"^DD",230.1,230.1,3.4,21,0)
|
|
^.001^1^1^3080912^^
|
|
"^DD",230.1,230.1,3.4,21,1,0)
|
|
If updated, this is the updated value of the room / area.
|
|
"^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)
|
|
Select a provider.
|
|
"^DD",230.1,230.1,3.5,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,3.5,21,1,0)
|
|
If updated, this is the updated provider.
|
|
"^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)
|
|
Select a nurse.
|
|
"^DD",230.1,230.1,3.6,21,0)
|
|
^.001^1^1^3080912^^
|
|
"^DD",230.1,230.1,3.6,21,1,0)
|
|
If updated, this is the updated nurse.
|
|
"^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)
|
|
Select a resident.
|
|
"^DD",230.1,230.1,3.7,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,3.7,21,1,0)
|
|
If updated, this is the updated resident.
|
|
"^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,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",230.1,230.1,3.8,21,1,0)
|
|
If updated, this is the updated comment.
|
|
"^DD",230.1,230.1,3.8,"DT")
|
|
3071129
|
|
"^DD",230.1,230.1,9.1,0)
|
|
MODIFIED FIELDS^F^^9;1^K:$L(X)>100!($L(X)<1) X
|
|
"^DD",230.1,230.1,9.1,3)
|
|
Answer must be 1-100 characters in length.
|
|
"^DD",230.1,230.1,9.1,21,0)
|
|
^^3^3^3080912^
|
|
"^DD",230.1,230.1,9.1,21,1,0)
|
|
This lists the fields that were modified in the corresponding ED LOG
|
|
"^DD",230.1,230.1,9.1,21,2,0)
|
|
record at the time of this update. The list contains the field numbers
|
|
"^DD",230.1,230.1,9.1,21,3,0)
|
|
and is semi-colon delimited.
|
|
"^DD",230.1,230.1,9.1,"DT")
|
|
3080411
|
|
"^DD",231.7,231.7,0)
|
|
FIELD^^.08^8
|
|
"^DD",231.7,231.7,0,"DDA")
|
|
N
|
|
"^DD",231.7,231.7,0,"DT")
|
|
3081008
|
|
"^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,0,"VRPK")
|
|
EMERGENCY DEPARTMENT
|
|
"^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)
|
|
Select a provider, resident, or nurse.
|
|
"^DD",231.7,231.7,.01,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",231.7,231.7,.01,21,1,0)
|
|
This is a person who is assigned to work as staff in the emergency
|
|
"^DD",231.7,231.7,.01,21,2,0)
|
|
department.
|
|
"^DD",231.7,231.7,.01,"DT")
|
|
3080305
|
|
"^DD",231.7,231.7,.02,0)
|
|
INSTITUTION^RP4'^DIC(4,^0;2^Q
|
|
"^DD",231.7,231.7,.02,3)
|
|
Select the institution for this staff list.
|
|
"^DD",231.7,231.7,.02,21,0)
|
|
^^1^1^3081008^
|
|
"^DD",231.7,231.7,.02,21,1,0)
|
|
This allows each station to have its own set of staff assignments.
|
|
"^DD",231.7,231.7,.02,"DT")
|
|
3081008
|
|
"^DD",231.7,231.7,.03,0)
|
|
AREA^P231.9'^EDPB(231.9,^0;3^Q
|
|
"^DD",231.7,231.7,.03,3)
|
|
Select an area for this person.
|
|
"^DD",231.7,231.7,.03,21,0)
|
|
^^1^1^3080912^
|
|
"^DD",231.7,231.7,.03,21,1,0)
|
|
This is the area to which the person is assigned as staff.
|
|
"^DD",231.7,231.7,.03,23,0)
|
|
^^2^2^3080912^
|
|
"^DD",231.7,231.7,.03,23,1,0)
|
|
The only area currently supported is the emergency department, but
|
|
"^DD",231.7,231.7,.03,23,2,0)
|
|
expansion into other areas is anticipated.
|
|
"^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,3)
|
|
Enter 'active' or 'inactive'.
|
|
"^DD",231.7,231.7,.04,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",231.7,231.7,.04,21,1,0)
|
|
This flag is set to 'inactive' when the person is no longer an active
|
|
"^DD",231.7,231.7,.04,21,2,0)
|
|
member of the staff for this area.
|
|
"^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,3)
|
|
Enter the role (provider, nurse, resident).
|
|
"^DD",231.7,231.7,.06,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",231.7,231.7,.06,21,1,0)
|
|
This is the role the person has on the staff. The roles currently
|
|
"^DD",231.7,231.7,.06,21,2,0)
|
|
supported are provider, nurse, and resident.
|
|
"^DD",231.7,231.7,.06,"DT")
|
|
3081005
|
|
"^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,21,0)
|
|
^^2^2^3080912^
|
|
"^DD",231.7,231.7,.08,21,1,0)
|
|
This contains the RGB values for the foreground and background colors
|
|
"^DD",231.7,231.7,.08,21,2,0)
|
|
used to highlight this person on the display board.
|
|
"^DD",231.7,231.7,.08,23,0)
|
|
^^9^9^3080912^
|
|
"^DD",231.7,231.7,.08,23,1,0)
|
|
The format of the color map for a person is:
|
|
"^DD",231.7,231.7,.08,23,2,0)
|
|
|
|
"^DD",231.7,231.7,.08,23,3,0)
|
|
<use color?>,<foreground color>,<background color>
|
|
"^DD",231.7,231.7,.08,23,4,0)
|
|
|
|
"^DD",231.7,231.7,.08,23,5,0)
|
|
All colors are represented in hexadecimal. For example,
|
|
"^DD",231.7,231.7,.08,23,6,0)
|
|
|
|
"^DD",231.7,231.7,.08,23,7,0)
|
|
1,0xff0000,0xffffff
|
|
"^DD",231.7,231.7,.08,23,8,0)
|
|
|
|
"^DD",231.7,231.7,.08,23,9,0)
|
|
means to use color, foreground color is red, background color is white.
|
|
"^DD",231.7,231.7,.08,"DT")
|
|
3071124
|
|
"^DD",231.8,231.8,0)
|
|
FIELD^^.12^12
|
|
"^DD",231.8,231.8,0,"DDA")
|
|
N
|
|
"^DD",231.8,231.8,0,"DT")
|
|
3081008
|
|
"^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,0,"PT",231.9,1.11)
|
|
|
|
"^DD",231.8,231.8,0,"PT",231.9,1.12)
|
|
|
|
"^DD",231.8,231.8,0,"VRPK")
|
|
EMERGENCY DEPARTMENT
|
|
"^DD",231.8,231.8,.01,0)
|
|
NAME^RF^^0;1^K:$L(X)>30!($L(X)<2)!'(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)
|
|
Answer must be 2-30 characters in length.
|
|
"^DD",231.8,231.8,.01,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.8,231.8,.01,21,1,0)
|
|
This is the internal name of the room, bed, or area that a patient may be
|
|
"^DD",231.8,231.8,.01,21,2,0)
|
|
during the course of their visit.
|
|
"^DD",231.8,231.8,.01,"DT")
|
|
3080915
|
|
"^DD",231.8,231.8,.02,0)
|
|
INSTITUTION^P4'^DIC(4,^0;2^Q
|
|
"^DD",231.8,231.8,.02,3)
|
|
Select the institution for this bed, room, or area.
|
|
"^DD",231.8,231.8,.02,21,0)
|
|
^^2^2^3081008^
|
|
"^DD",231.8,231.8,.02,21,1,0)
|
|
This allows each station (division, for example) to manage its own set of
|
|
"^DD",231.8,231.8,.02,21,2,0)
|
|
rooms / beds / areas.
|
|
"^DD",231.8,231.8,.02,"DT")
|
|
3081008
|
|
"^DD",231.8,231.8,.03,0)
|
|
AREA^P231.9'^EDPB(231.9,^0;3^Q
|
|
"^DD",231.8,231.8,.03,3)
|
|
Enter the hospital area for this room/bed/area.
|
|
"^DD",231.8,231.8,.03,21,0)
|
|
^^3^3^3080915^
|
|
"^DD",231.8,231.8,.03,21,1,0)
|
|
This is the area in the hospital associated with this room or bed.
|
|
"^DD",231.8,231.8,.03,21,2,0)
|
|
Initially, the only area supported is the emergency department. It is
|
|
"^DD",231.8,231.8,.03,21,3,0)
|
|
expected that additional areas will be supported in the future.
|
|
"^DD",231.8,231.8,.03,23,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.8,231.8,.03,23,1,0)
|
|
For training classes, a separate area may be set up for each user so that
|
|
"^DD",231.8,231.8,.03,23,2,0)
|
|
they may configure their own set of rooms/beds.
|
|
"^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,3)
|
|
Enter 'INACTIVE' to disallow use of this room/bed/area.
|
|
"^DD",231.8,231.8,.04,21,0)
|
|
^^1^1^3080915^
|
|
"^DD",231.8,231.8,.04,21,1,0)
|
|
This flag is used to mark a room/bed/area as out of service.
|
|
"^DD",231.8,231.8,.04,23,0)
|
|
^^3^3^3080915^
|
|
"^DD",231.8,231.8,.04,23,1,0)
|
|
When a room is marked inactive, it is no longer available for selection
|
|
"^DD",231.8,231.8,.04,23,2,0)
|
|
in EDIS. However, the room will still show up on reports and entry
|
|
"^DD",231.8,231.8,.04,23,3,0)
|
|
screens for previous entries.
|
|
"^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,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.8,231.8,.05,21,1,0)
|
|
This is the sequence for displaying the room/bed/area on the large
|
|
"^DD",231.8,231.8,.05,21,2,0)
|
|
display board.
|
|
"^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,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.8,231.8,.06,21,1,0)
|
|
This is the name that is shown on the large display board. It should be
|
|
"^DD",231.8,231.8,.06,21,2,0)
|
|
concise or abbreviated to save space on the display board.
|
|
"^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,3)
|
|
Enter when this room/bed/area should be shown on the display board.
|
|
"^DD",231.8,231.8,.07,21,0)
|
|
^^3^3^3081010^
|
|
"^DD",231.8,231.8,.07,21,1,0)
|
|
This indicates when the room/bed/area should show up on the large display
|
|
"^DD",231.8,231.8,.07,21,2,0)
|
|
board. The room may always show, show only if currently occupied by a
|
|
"^DD",231.8,231.8,.07,21,3,0)
|
|
patient, or never show.
|
|
"^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,3)
|
|
Enter the status that should be assigned, if any, when this room/area is selected.
|
|
"^DD",231.8,231.8,.08,21,0)
|
|
^^4^4^3080915^
|
|
"^DD",231.8,231.8,.08,21,1,0)
|
|
If populated, the default status is automatically assigned to the entry
|
|
"^DD",231.8,231.8,.08,21,2,0)
|
|
in the ED LOG file when the room/bed/area is selected. For example, you
|
|
"^DD",231.8,231.8,.08,21,3,0)
|
|
might want to automatically assign the status, Awaiting Triage, when the
|
|
"^DD",231.8,231.8,.08,21,4,0)
|
|
patient is assigned to the waiting room.
|
|
"^DD",231.8,231.8,.08,"DT")
|
|
3070911
|
|
"^DD",231.8,231.8,.09,0)
|
|
MULTIPLE ASSIGN^S^0:Single;1:Multiple;2:Waiting;3:Single Non-ED;4:Multiple Non-ED;^0;9^Q
|
|
"^DD",231.8,231.8,.09,3)
|
|
Enter 'single' to allow only one patient at a time, 'waiting' for waiting areas, 'non-ED' for areas outside the emergency department.
|
|
"^DD",231.8,231.8,.09,21,0)
|
|
^^6^6^3080915^
|
|
"^DD",231.8,231.8,.09,21,1,0)
|
|
This field affects the behavior of the room for data entry and reports.
|
|
"^DD",231.8,231.8,.09,21,2,0)
|
|
If single, only one patient at a time may be assigned to the room. Exam
|
|
"^DD",231.8,231.8,.09,21,3,0)
|
|
rooms are a common example. If multiple, multiple patients may be
|
|
"^DD",231.8,231.8,.09,21,4,0)
|
|
simultaneously assigned to the room. Waiting is a special case to
|
|
"^DD",231.8,231.8,.09,21,5,0)
|
|
identify waiting areas in the reports. Non-ED indicates an area where the
|
|
"^DD",231.8,231.8,.09,21,6,0)
|
|
patient may be that is outside the emergency department itself.
|
|
"^DD",231.8,231.8,.09,"DT")
|
|
3080512
|
|
"^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,21,0)
|
|
^^3^3^3080915^
|
|
"^DD",231.8,231.8,.1,21,1,0)
|
|
If several beds or areas share the same physical space, use this field to
|
|
"^DD",231.8,231.8,.1,21,2,0)
|
|
create a common name for these beds/areas. By having this shared name,
|
|
"^DD",231.8,231.8,.1,21,3,0)
|
|
the reports may by used to identify exposures to contagious organisms.
|
|
"^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,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.8,231.8,.11,21,1,0)
|
|
An entry in this field indicates that the room/area should be displayed
|
|
"^DD",231.8,231.8,.11,21,2,0)
|
|
on a specific board that uses the name entered here.
|
|
"^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,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.8,231.8,.12,21,1,0)
|
|
A specific room/area may be mapped to a particular foreground and
|
|
"^DD",231.8,231.8,.12,21,2,0)
|
|
background color for use with the display board.
|
|
"^DD",231.8,231.8,.12,23,0)
|
|
^^9^9^3080915^
|
|
"^DD",231.8,231.8,.12,23,1,0)
|
|
The format for color is:
|
|
"^DD",231.8,231.8,.12,23,2,0)
|
|
|
|
"^DD",231.8,231.8,.12,23,3,0)
|
|
<use color?>,<foreground>,<background>
|
|
"^DD",231.8,231.8,.12,23,4,0)
|
|
|
|
"^DD",231.8,231.8,.12,23,5,0)
|
|
For example,
|
|
"^DD",231.8,231.8,.12,23,6,0)
|
|
|
|
"^DD",231.8,231.8,.12,23,7,0)
|
|
1,0x0,0xff0000
|
|
"^DD",231.8,231.8,.12,23,8,0)
|
|
|
|
"^DD",231.8,231.8,.12,23,9,0)
|
|
is a red font on a black background.
|
|
"^DD",231.8,231.8,.12,"DT")
|
|
3071123
|
|
"^DD",231.9,231.9,0)
|
|
FIELD^^1.9^18
|
|
"^DD",231.9,231.9,0,"DDA")
|
|
N
|
|
"^DD",231.9,231.9,0,"DT")
|
|
3081215
|
|
"^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,0,"VRPK")
|
|
EMERGENCY DEPARTMENT
|
|
"^DD",231.9,231.9,.01,0)
|
|
NAME^RF^^0;1^K:$L(X)>30!($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)
|
|
Answer must be 3-30 characters in length.
|
|
"^DD",231.9,231.9,.01,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.9,231.9,.01,21,1,0)
|
|
This is the name for an area within the hospital. Emergency Department
|
|
"^DD",231.9,231.9,.01,21,2,0)
|
|
is the only area currently supported.
|
|
"^DD",231.9,231.9,.01,"DT")
|
|
3080915
|
|
"^DD",231.9,231.9,.02,0)
|
|
INSTITUTION^RP4'^DIC(4,^0;2^Q
|
|
"^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,"%D",0)
|
|
^^1^1^3081010^
|
|
"^DD",231.9,231.9,.02,1,1,"%D",1,0)
|
|
This allows finding an area within a specific division.
|
|
"^DD",231.9,231.9,.02,1,1,"DT")
|
|
3070913
|
|
"^DD",231.9,231.9,.02,3)
|
|
Select the instutition for this area.
|
|
"^DD",231.9,231.9,.02,21,0)
|
|
^^2^2^3081008^
|
|
"^DD",231.9,231.9,.02,21,1,0)
|
|
This allows each station served by the VistA system to have its own set of
|
|
"^DD",231.9,231.9,.02,21,2,0)
|
|
areas.
|
|
"^DD",231.9,231.9,.02,"DT")
|
|
3081008
|
|
"^DD",231.9,231.9,.03,0)
|
|
LAST UPDATE^D^^0;3^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
|
|
"^DD",231.9,231.9,.03,3)
|
|
Enter the date/time the configuration changed.
|
|
"^DD",231.9,231.9,.03,21,0)
|
|
^^3^3^3080915^
|
|
"^DD",231.9,231.9,.03,21,1,0)
|
|
This is the date/time that the configuration was last updated. This
|
|
"^DD",231.9,231.9,.03,21,2,0)
|
|
helps the client or display board know whether it is necessary to reload
|
|
"^DD",231.9,231.9,.03,21,3,0)
|
|
the configuration parameters.
|
|
"^DD",231.9,231.9,.03,"DT")
|
|
3080502
|
|
"^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,3)
|
|
Enter 'YES' if a diagnosis must be entered before removing the patient from the board.
|
|
"^DD",231.9,231.9,1.1,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.9,231.9,1.1,21,1,0)
|
|
This is true if a diagnosis must be entered before removing a patient
|
|
"^DD",231.9,231.9,1.1,21,2,0)
|
|
from the display board.
|
|
"^DD",231.9,231.9,1.1,"DT")
|
|
3071015
|
|
"^DD",231.9,231.9,1.11,0)
|
|
AMBULANCE^P231.8'^EDPB(231.8,^1;11^Q
|
|
"^DD",231.9,231.9,1.11,3)
|
|
Select the room/area that represents an arriving ambulance.
|
|
"^DD",231.9,231.9,1.11,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.9,231.9,1.11,21,1,0)
|
|
This field identifies which entry in the TRACKING ROOM-BED represents an
|
|
"^DD",231.9,231.9,1.11,21,2,0)
|
|
arriving ambulance.
|
|
"^DD",231.9,231.9,1.11,"DT")
|
|
3080514
|
|
"^DD",231.9,231.9,1.12,0)
|
|
INITIAL ROOM^P231.8'^EDPB(231.8,^1;12^Q
|
|
"^DD",231.9,231.9,1.12,3)
|
|
Enter the room/area that is initially assigned.
|
|
"^DD",231.9,231.9,1.12,21,0)
|
|
^^3^3^3080915^
|
|
"^DD",231.9,231.9,1.12,21,1,0)
|
|
This field refers to the entry in the TRACKING ROOM-BED file that should
|
|
"^DD",231.9,231.9,1.12,21,2,0)
|
|
be initially assigned to a patient when the patient is first added to the
|
|
"^DD",231.9,231.9,1.12,21,3,0)
|
|
board (the default room). Often this is the waiting room.
|
|
"^DD",231.9,231.9,1.12,"DT")
|
|
3080514
|
|
"^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,3)
|
|
Enter YES if the diagnosis is required to be an ICD9 code.
|
|
"^DD",231.9,231.9,1.2,21,0)
|
|
^^2^2^3080922^
|
|
"^DD",231.9,231.9,1.2,21,1,0)
|
|
This is set to YES if the diagnosis is required to be an ICD9 code.
|
|
"^DD",231.9,231.9,1.2,21,2,0)
|
|
Otherwise, the diagnosis may be free text.
|
|
"^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,3)
|
|
Enter 'YES' if a disposition must be entered before removing patient from the board.
|
|
"^DD",231.9,231.9,1.3,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.9,231.9,1.3,21,1,0)
|
|
This is true if a disposition must be entered before removing a patient
|
|
"^DD",231.9,231.9,1.3,21,2,0)
|
|
from the display board.
|
|
"^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,3)
|
|
Enter 'YES' if a delay reason is required for visits exceeding the pre-set number of minutes allowed.
|
|
"^DD",231.9,231.9,1.4,21,0)
|
|
^^3^3^3080915^
|
|
"^DD",231.9,231.9,1.4,21,1,0)
|
|
This is true if a delay reason must be entered for visits that have
|
|
"^DD",231.9,231.9,1.4,21,2,0)
|
|
lasted longer than the number of minutes identified in DELAY MINUTES
|
|
"^DD",231.9,231.9,1.4,21,3,0)
|
|
before removing the patient from the board.
|
|
"^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>1440)!(X<1)!(X?.E1"."1N.N) X
|
|
"^DD",231.9,231.9,1.5,3)
|
|
Type a Number between 1 and 1440, 0 Decimal Digits
|
|
"^DD",231.9,231.9,1.5,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.9,231.9,1.5,21,1,0)
|
|
This represents the number of minutes a visit may last before a delay
|
|
"^DD",231.9,231.9,1.5,21,2,0)
|
|
reason is required.
|
|
"^DD",231.9,231.9,1.5,"DT")
|
|
3081010
|
|
"^DD",231.9,231.9,1.6,0)
|
|
FIRST SHIFT START^NJ4,0^^1;6^K:+X'=X!(X>1440)!(X<0)!(X?.E1"."1N.N) X
|
|
"^DD",231.9,231.9,1.6,3)
|
|
Type a Number between 0 and 1440, 0 Decimal Digits
|
|
"^DD",231.9,231.9,1.6,21,0)
|
|
^^5^5^3081010^
|
|
"^DD",231.9,231.9,1.6,21,1,0)
|
|
Some of the reports may be generated by shift. This is the time that the
|
|
"^DD",231.9,231.9,1.6,21,2,0)
|
|
first shift of the day begins. It is currently assumed that the shifts
|
|
"^DD",231.9,231.9,1.6,21,3,0)
|
|
have equal length.
|
|
"^DD",231.9,231.9,1.6,21,4,0)
|
|
|
|
"^DD",231.9,231.9,1.6,21,5,0)
|
|
This is the number of minutes past midnight when the first shift begins.
|
|
"^DD",231.9,231.9,1.6,"DT")
|
|
3081010
|
|
"^DD",231.9,231.9,1.7,0)
|
|
SHIFT DURATION^NJ4,0^^1;7^K:+X'=X!(X>1440)!(X<0)!(X?.E1"."1N.N) X
|
|
"^DD",231.9,231.9,1.7,3)
|
|
Type a Number between 0 and 1440, 0 Decimal Digits
|
|
"^DD",231.9,231.9,1.7,21,0)
|
|
^^2^2^3080915^
|
|
"^DD",231.9,231.9,1.7,21,1,0)
|
|
This represents the number of minutes the comprise a shift. If the shift
|
|
"^DD",231.9,231.9,1.7,21,2,0)
|
|
is 8 hours long, this value would be 480 (8*60).
|
|
"^DD",231.9,231.9,1.7,"DT")
|
|
3081010
|
|
"^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,3)
|
|
Enter 'YES' if residents should be prompted for.
|
|
"^DD",231.9,231.9,1.8,21,0)
|
|
^^2^2^3081010^
|
|
"^DD",231.9,231.9,1.8,21,1,0)
|
|
This flag is set to YES if residents should be prompted for in addition to
|
|
"^DD",231.9,231.9,1.8,21,2,0)
|
|
providers (i.e., the attending provider).
|
|
"^DD",231.9,231.9,1.8,"DT")
|
|
3071130
|
|
"^DD",231.9,231.9,1.9,0)
|
|
PROMPT CLINICS^S^0:NO;1:YES;^1;9^Q
|
|
"^DD",231.9,231.9,1.9,3)
|
|
Enter 'YES' if clinics should be prompted for.
|
|
"^DD",231.9,231.9,1.9,21,0)
|
|
^^2^2^3081215^
|
|
"^DD",231.9,231.9,1.9,21,1,0)
|
|
This flag is set to YES if clinics should be prompted for. This allows
|
|
"^DD",231.9,231.9,1.9,21,2,0)
|
|
the visit to be created based on an explicitly selected clinic.
|
|
"^DD",231.9,231.9,1.9,"DT")
|
|
3081215
|
|
"^DD",231.9,231.9,3,0)
|
|
COLOR SPEC^231.93^^3;0
|
|
"^DD",231.9,231.9,3,21,0)
|
|
^^2^2^3080922^
|
|
"^DD",231.9,231.9,3,21,1,0)
|
|
This contains an XML document that is a map of the colors to be used for
|
|
"^DD",231.9,231.9,3,21,2,0)
|
|
the display board.
|
|
"^DD",231.9,231.9,4,0)
|
|
DISPLAY BOARD CONFIG^231.94A^^4;0
|
|
"^DD",231.9,231.9,4,21,0)
|
|
^^2^2^3080922^
|
|
"^DD",231.9,231.9,4,21,1,0)
|
|
This multiple contains the XML descriptions of each display board
|
|
"^DD",231.9,231.9,4,21,2,0)
|
|
definition.
|
|
"^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,21,0)
|
|
^.001^2^2^3081017^^^
|
|
"^DD",231.9,231.9,230.1,21,1,0)
|
|
This timestamp is set whenever the data that is shown on any display board
|
|
"^DD",231.9,231.9,230.1,21,2,0)
|
|
for an area has been updated.
|
|
"^DD",231.9,231.9,230.1,23,0)
|
|
^^2^2^3081017^
|
|
"^DD",231.9,231.9,230.1,23,1,0)
|
|
The timestamp kept in this field is $H. The $H value is used as a token
|
|
"^DD",231.9,231.9,230.1,23,2,0)
|
|
by the client to know that tracking data has changed.
|
|
"^DD",231.9,231.9,230.1,"DT")
|
|
3071006
|
|
"^DD",231.9,231.9,231.1,0)
|
|
CHOICES UPDATED^F^^231;1^K:$L(X)>30!($L(X)<1) X
|
|
"^DD",231.9,231.9,231.1,3)
|
|
Answer must be 1-30 characters in length.
|
|
"^DD",231.9,231.9,231.1,21,0)
|
|
^.001^2^2^3081017^^^
|
|
"^DD",231.9,231.9,231.1,21,1,0)
|
|
This is a timestamp that is set whenever the definition of any display
|
|
"^DD",231.9,231.9,231.1,21,2,0)
|
|
board for a given area has been modified.
|
|
"^DD",231.9,231.9,231.1,23,0)
|
|
^^2^2^3081017^
|
|
"^DD",231.9,231.9,231.1,23,1,0)
|
|
The timestamp kept in this field is $H. The $H value is used as a token
|
|
"^DD",231.9,231.9,231.1,23,2,0)
|
|
by the client to know that display choices have been updated.
|
|
"^DD",231.9,231.9,231.1,"DT")
|
|
3080727
|
|
"^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,3)
|
|
Enter the XML-based color map.
|
|
"^DD",231.9,231.93,.01,21,0)
|
|
^^2^2^3080922^
|
|
"^DD",231.9,231.93,.01,21,1,0)
|
|
This contains an XML document that is a map of the colors to be used for
|
|
"^DD",231.9,231.93,.01,21,2,0)
|
|
the display board.
|
|
"^DD",231.9,231.93,.01,"DT")
|
|
3071027
|
|
"^DD",231.9,231.94,0)
|
|
DISPLAY BOARD CONFIG SUB-FIELD^^1^2
|
|
"^DD",231.9,231.94,0,"DT")
|
|
3080514
|
|
"^DD",231.9,231.94,0,"IX","B",231.94,.01)
|
|
|
|
"^DD",231.9,231.94,0,"NM","DISPLAY BOARD CONFIG")
|
|
|
|
"^DD",231.9,231.94,0,"UP")
|
|
231.9
|
|
"^DD",231.9,231.94,.01,0)
|
|
NAME^F^^0;1^K:$L(X)>30!($L(X)<1) X
|
|
"^DD",231.9,231.94,.01,1,0)
|
|
^.1
|
|
"^DD",231.9,231.94,.01,1,1,0)
|
|
231.94^B
|
|
"^DD",231.9,231.94,.01,1,1,1)
|
|
S ^EDPB(231.9,DA(1),4,"B",$E(X,1,30),DA)=""
|
|
"^DD",231.9,231.94,.01,1,1,2)
|
|
K ^EDPB(231.9,DA(1),4,"B",$E(X,1,30),DA)
|
|
"^DD",231.9,231.94,.01,3)
|
|
Enter a unique name for this display board configuration.
|
|
"^DD",231.9,231.94,.01,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",231.9,231.94,.01,21,1,0)
|
|
This is the name of the specific display board.
|
|
"^DD",231.9,231.94,.01,"DT")
|
|
3080514
|
|
"^DD",231.9,231.94,1,0)
|
|
SPEC^231.941^^1;0
|
|
"^DD",231.9,231.94,1,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",231.9,231.94,1,21,1,0)
|
|
This is the XML description for a specific display board.
|
|
"^DD",231.9,231.941,0)
|
|
SPEC SUB-FIELD^^.01^1
|
|
"^DD",231.9,231.941,0,"DT")
|
|
3080514
|
|
"^DD",231.9,231.941,0,"NM","SPEC")
|
|
|
|
"^DD",231.9,231.941,0,"UP")
|
|
231.94
|
|
"^DD",231.9,231.941,.01,0)
|
|
SPEC^WL^^0;1^Q
|
|
"^DD",231.9,231.941,.01,3)
|
|
Enter the XML that represents the board specification.
|
|
"^DD",231.9,231.941,.01,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",231.9,231.941,.01,21,1,0)
|
|
This is the XML-based description of a specific display board definition.
|
|
"^DD",231.9,231.941,.01,"DT")
|
|
3080514
|
|
"^DD",233.1,233.1,0)
|
|
FIELD^^2^6
|
|
"^DD",233.1,233.1,0,"DT")
|
|
3081010
|
|
"^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,0,"VRPK")
|
|
EMERGENCY DEPARTMENT
|
|
"^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,21,0)
|
|
^^4^4^3081010^
|
|
"^DD",233.1,233.1,.01,21,1,0)
|
|
This is a unique name for a value in a selection list used by the patient
|
|
"^DD",233.1,233.1,.01,21,2,0)
|
|
tracking system. Each name is made unique by a prefix. This prefix is
|
|
"^DD",233.1,233.1,.01,21,3,0)
|
|
"edp." for nationally exported names. Names that are added by the site
|
|
"^DD",233.1,233.1,.01,21,4,0)
|
|
are prefixed with the station number and a period -- "500.", for example.
|
|
"^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,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",233.1,233.1,.02,21,1,0)
|
|
This is the name of the selection that should appear on the display board.
|
|
"^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,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",233.1,233.1,.03,21,1,0)
|
|
This is an abbreviation of the display name that is used in some reports.
|
|
"^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,3)
|
|
Enter the national code that most closely matches this local code.
|
|
"^DD",233.1,233.1,.04,21,0)
|
|
^^2^2^3080922^
|
|
"^DD",233.1,233.1,.04,21,1,0)
|
|
This will allow a mapping from a site defined code to a national code when
|
|
"^DD",233.1,233.1,.04,21,2,0)
|
|
such a code exists.
|
|
"^DD",233.1,233.1,.04,"DT")
|
|
3070719
|
|
"^DD",233.1,233.1,.05,0)
|
|
FLAGS^F^^0;5^K:$L(X)>4!($L(X)<1) X
|
|
"^DD",233.1,233.1,.05,3)
|
|
Answer must be 1-4 characters in length.
|
|
"^DD",233.1,233.1,.05,21,0)
|
|
^^11^11^3081010^
|
|
"^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,21,8,0)
|
|
|
|
"^DD",233.1,233.1,.05,21,9,0)
|
|
Multiple flags are allowed. No delimiters are required, as each
|
|
"^DD",233.1,233.1,.05,21,10,0)
|
|
character has a specific meaning. In the case of "VA", the "A" indicates
|
|
"^DD",233.1,233.1,.05,21,11,0)
|
|
an admission and the "V" indicates that the admission was to the VA.
|
|
"^DD",233.1,233.1,.05,"DT")
|
|
3081010
|
|
"^DD",233.1,233.1,2,0)
|
|
DESCRIPTION^233.12^^2;0
|
|
"^DD",233.1,233.1,2,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",233.1,233.1,2,21,1,0)
|
|
This allows the code to be further described.
|
|
"^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,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",233.1,233.12,.01,21,1,0)
|
|
This allows the code to be further described.
|
|
"^DD",233.1,233.12,.01,"DT")
|
|
3070720
|
|
"^DD",233.2,233.2,0)
|
|
FIELD^^1^2
|
|
"^DD",233.2,233.2,0,"DDA")
|
|
N
|
|
"^DD",233.2,233.2,0,"DT")
|
|
3071229
|
|
"^DD",233.2,233.2,0,"IX","AS",233.21,.02)
|
|
|
|
"^DD",233.2,233.2,0,"IX","AS",233.21,.04)
|
|
|
|
"^DD",233.2,233.2,0,"IX","AS",233.21,.05)
|
|
|
|
"^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,0,"VRPK")
|
|
EMERGENCY DEPARTMENT
|
|
"^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,.01,21,0)
|
|
^^3^3^3080922^
|
|
"^DD",233.2,233.2,.01,21,1,0)
|
|
This is the name for this set of tracking codes. The set is used as a
|
|
"^DD",233.2,233.2,.01,21,2,0)
|
|
selection list in the patient tracking software. The selection lists may
|
|
"^DD",233.2,233.2,.01,21,3,0)
|
|
be modifed at each site.
|
|
"^DD",233.2,233.2,1,0)
|
|
CODES^233.21A^^1;0
|
|
"^DD",233.2,233.2,1,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",233.2,233.2,1,21,1,0)
|
|
This is the list of codes that are available in the selection list.
|
|
"^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,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",233.2,233.21,.01,21,1,0)
|
|
This is the order in which the code should appear in the list.
|
|
"^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,1,0)
|
|
^.1
|
|
"^DD",233.2,233.21,.02,1,1,0)
|
|
233.2^AS^MUMPS
|
|
"^DD",233.2,233.21,.02,1,1,1)
|
|
D LFS^EDPDD
|
|
"^DD",233.2,233.21,.02,1,1,2)
|
|
D LFK^EDPDD
|
|
"^DD",233.2,233.21,.02,1,1,"%D",0)
|
|
^^2^2^3080924^
|
|
"^DD",233.2,233.21,.02,1,1,"%D",1,0)
|
|
Allows quick access to the local display name.
|
|
"^DD",233.2,233.21,.02,1,1,"%D",2,0)
|
|
ListName,CodePtr,IEN)=Abbreviation^Name
|
|
"^DD",233.2,233.21,.02,1,1,"DT")
|
|
3080723
|
|
"^DD",233.2,233.21,.02,3)
|
|
Select a code to include in the selection list.
|
|
"^DD",233.2,233.21,.02,21,0)
|
|
^^1^1^3080922^
|
|
"^DD",233.2,233.21,.02,21,1,0)
|
|
This is the code to include in the selection list.
|
|
"^DD",233.2,233.21,.02,"DT")
|
|
3080723
|
|
"^DD",233.2,233.21,.03,0)
|
|
INACTIVE^S^1:INACTIVE;0:ACTIVE;^0;3^Q
|
|
"^DD",233.2,233.21,.03,3)
|
|
Enter INACTIVE if selection of the code should be disallowed.
|
|
"^DD",233.2,233.21,.03,21,0)
|
|
^^2^2^3080922^
|
|
"^DD",233.2,233.21,.03,21,1,0)
|
|
This may be used to indicate that the code is to be temporarily
|
|
"^DD",233.2,233.21,.03,21,2,0)
|
|
inactivated.
|
|
"^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,1,0)
|
|
^.1
|
|
"^DD",233.2,233.21,.04,1,1,0)
|
|
233.2^AS^MUMPS
|
|
"^DD",233.2,233.21,.04,1,1,1)
|
|
D LFS1^EDPDD
|
|
"^DD",233.2,233.21,.04,1,1,2)
|
|
D LFK1^EDPDD
|
|
"^DD",233.2,233.21,.04,1,1,"%D",0)
|
|
^^2^2^3080924^
|
|
"^DD",233.2,233.21,.04,1,1,"%D",1,0)
|
|
Allows quick access to the local display name.
|
|
"^DD",233.2,233.21,.04,1,1,"%D",2,0)
|
|
ListName,CodePtr,IEN)=Abbreviation^Name
|
|
"^DD",233.2,233.21,.04,1,1,"DT")
|
|
3080723
|
|
"^DD",233.2,233.21,.04,3)
|
|
Answer must be 1-60 characters in length.
|
|
"^DD",233.2,233.21,.04,21,0)
|
|
^^3^3^3081010^
|
|
"^DD",233.2,233.21,.04,21,1,0)
|
|
This field allows a site to use a name that is different from the
|
|
"^DD",233.2,233.21,.04,21,2,0)
|
|
nationally exported display name. This name should not change the
|
|
"^DD",233.2,233.21,.04,21,3,0)
|
|
underlying meaning of the nationally exported name.
|
|
"^DD",233.2,233.21,.04,"DT")
|
|
3080723
|
|
"^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,1,0)
|
|
^.1
|
|
"^DD",233.2,233.21,.05,1,1,0)
|
|
233.2^AS^MUMPS
|
|
"^DD",233.2,233.21,.05,1,1,1)
|
|
D LFS1^EDPDD
|
|
"^DD",233.2,233.21,.05,1,1,2)
|
|
D LFK1^EDPDD
|
|
"^DD",233.2,233.21,.05,1,1,"%D",0)
|
|
^.101^2^2^3081010^^
|
|
"^DD",233.2,233.21,.05,1,1,"%D",1,0)
|
|
Allows quick access to the local display names.
|
|
"^DD",233.2,233.21,.05,1,1,"%D",2,0)
|
|
ListName,CodePtr,IEN)=Abbreviation^Name
|
|
"^DD",233.2,233.21,.05,1,1,"DT")
|
|
3080723
|
|
"^DD",233.2,233.21,.05,3)
|
|
Answer must be 1-30 characters in length.
|
|
"^DD",233.2,233.21,.05,21,0)
|
|
^^2^2^3080922^
|
|
"^DD",233.2,233.21,.05,21,1,0)
|
|
This allows a site to use a different abbreviation for a national code
|
|
"^DD",233.2,233.21,.05,21,2,0)
|
|
without changing the underlying meaning of the code.
|
|
"^DD",233.2,233.21,.05,"DT")
|
|
3080723
|
|
"^DIC",230,230,0)
|
|
ED LOG^230
|
|
"^DIC",230,230,0,"GL")
|
|
^EDP(230,
|
|
"^DIC",230,230,"%D",0)
|
|
^^12^12^3081004^
|
|
"^DIC",230,230,"%D",1,0)
|
|
This file serves as the log of emergency department visits. It works
|
|
"^DIC",230,230,"%D",2,0)
|
|
together with the ED LOG HISTORY file to track when activities of a
|
|
"^DIC",230,230,"%D",3,0)
|
|
typical emergency department visit are done. It records where the patient
|
|
"^DIC",230,230,"%D",4,0)
|
|
went, who was responsible, and when key things happened (such as triage
|
|
"^DIC",230,230,"%D",5,0)
|
|
and disposition).
|
|
"^DIC",230,230,"%D",6,0)
|
|
|
|
"^DIC",230,230,"%D",7,0)
|
|
This file serves as the key source of information for data that is
|
|
"^DIC",230,230,"%D",8,0)
|
|
displayed on the emergency department display board (an electronic "white
|
|
"^DIC",230,230,"%D",9,0)
|
|
board"). Patient visits that are currently active are shown on the
|
|
"^DIC",230,230,"%D",10,0)
|
|
display board. The display board is refreshed every 30 seconds. Many of
|
|
"^DIC",230,230,"%D",11,0)
|
|
the indexes in this file assist in making the refresh code as efficient as
|
|
"^DIC",230,230,"%D",12,0)
|
|
possible.
|
|
"^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,230.1,"%D",0)
|
|
^^13^13^3081004^
|
|
"^DIC",230.1,230.1,"%D",1,0)
|
|
This file contains a history of changes to key fields in the ED LOG
|
|
"^DIC",230.1,230.1,"%D",2,0)
|
|
file. When a record is first created in the ED LOG file, and each time
|
|
"^DIC",230.1,230.1,"%D",3,0)
|
|
that record is updated, a record is also created in this file that
|
|
"^DIC",230.1,230.1,"%D",4,0)
|
|
contains the values of the fields that actually changed. This gives a
|
|
"^DIC",230.1,230.1,"%D",5,0)
|
|
thorough history of what was changed when and by whom. A major purpose to
|
|
"^DIC",230.1,230.1,"%D",6,0)
|
|
the Emergency Department Tracking System is to measure how long it takes
|
|
"^DIC",230.1,230.1,"%D",7,0)
|
|
to do things. By keeping this history file, with all the time stamps, it
|
|
"^DIC",230.1,230.1,"%D",8,0)
|
|
is possible to generate a variety of reports. These include information
|
|
"^DIC",230.1,230.1,"%D",9,0)
|
|
such as wait times, lengths of visit, number of delayed visits, etc.
|
|
"^DIC",230.1,230.1,"%D",10,0)
|
|
|
|
"^DIC",230.1,230.1,"%D",11,0)
|
|
The fields in this file correspond to the identically named fields in the
|
|
"^DIC",230.1,230.1,"%D",12,0)
|
|
ED LOG file (230). For more detail in the field description, please
|
|
"^DIC",230.1,230.1,"%D",13,0)
|
|
refer to the matching field in the ED LOG file.
|
|
"^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,231.7,"%D",0)
|
|
^^6^6^3081005^
|
|
"^DIC",231.7,231.7,"%D",1,0)
|
|
This file contains staff assigned to a particular area (e.g., the
|
|
"^DIC",231.7,231.7,"%D",2,0)
|
|
emergency department). It allows for concise selection lists when
|
|
"^DIC",231.7,231.7,"%D",3,0)
|
|
updating the tracking log. It also allows for particular colors to be
|
|
"^DIC",231.7,231.7,"%D",4,0)
|
|
associated with staff. When that person is shown on the display board,
|
|
"^DIC",231.7,231.7,"%D",5,0)
|
|
the colors may be used to more easily tell who is assigned to which
|
|
"^DIC",231.7,231.7,"%D",6,0)
|
|
patient.
|
|
"^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,231.8,"%D",0)
|
|
^^6^6^3080915^
|
|
"^DIC",231.8,231.8,"%D",1,0)
|
|
As the patient moves thru a visit, such as a visit to the emergency
|
|
"^DIC",231.8,231.8,"%D",2,0)
|
|
department, there are a number of areas the patient may stop at. This
|
|
"^DIC",231.8,231.8,"%D",3,0)
|
|
file allows the department to set up places a patient may be, physical or
|
|
"^DIC",231.8,231.8,"%D",4,0)
|
|
conceptual, so that the patient may be tracked throughout their visit.
|
|
"^DIC",231.8,231.8,"%D",5,0)
|
|
These places may include specific beds, waiting areas, other areas of the
|
|
"^DIC",231.8,231.8,"%D",6,0)
|
|
hospital such as radiology, exam rooms, etc.
|
|
"^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,231.9,"%D",0)
|
|
^^4^4^3080922^
|
|
"^DIC",231.9,231.9,"%D",1,0)
|
|
This file contains the parameters that control the behavior of the
|
|
"^DIC",231.9,231.9,"%D",2,0)
|
|
tracking software. It also contains XML descriptions that are used by
|
|
"^DIC",231.9,231.9,"%D",3,0)
|
|
the client display board software to control column appearance, row
|
|
"^DIC",231.9,231.9,"%D",4,0)
|
|
content, and cell color.
|
|
"^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,233.1,"%D",0)
|
|
^^3^3^3080922^
|
|
"^DIC",233.1,233.1,"%D",1,0)
|
|
This file contains entries that are used in selection lists within the
|
|
"^DIC",233.1,233.1,"%D",2,0)
|
|
tracking software. The entries for these selection lists may eventually
|
|
"^DIC",233.1,233.1,"%D",3,0)
|
|
be rolled up for reporting to the Emergency Department director.
|
|
"^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,233.2,"%D",0)
|
|
^^3^3^3080922^
|
|
"^DIC",233.2,233.2,"%D",1,0)
|
|
This file contains collections of codes that represent a specific
|
|
"^DIC",233.2,233.2,"%D",2,0)
|
|
selection list (acuities, patient statuses, dispositions, delay reasons,
|
|
"^DIC",233.2,233.2,"%D",3,0)
|
|
etc.) used within the patient tracking software.
|
|
"^DIC",233.2,"B","TRACKING CODE SET",233.2)
|
|
|
|
**END**
|
|
**END**
|