1067 lines
29 KiB
Plaintext
1067 lines
29 KiB
Plaintext
KIDS Distribution saved on Dec 26, 2011@16:58:31
|
|
EDIS & VL fixes
|
|
**KIDS**:UJO*1.0*123^
|
|
|
|
**INSTALL NAME**
|
|
UJO*1.0*123
|
|
"BLD",8018,0)
|
|
UJO*1.0*123^JORDAN SPECIFIC MODIFICATIONS^0^3111226^n
|
|
"BLD",8018,1,0)
|
|
^^10^10^3111226^
|
|
"BLD",8018,1,1,0)
|
|
mainly this patch will fix different issues in the attached EDIS and
|
|
"BLD",8018,1,2,0)
|
|
VistALink routines, which falls in the following criteria.
|
|
"BLD",8018,1,3,0)
|
|
|
|
"BLD",8018,1,4,0)
|
|
1- relational operators that GT.M can not compile like using of ">=",
|
|
"BLD",8018,1,5,0)
|
|
GT.M can handle single operator at the time.
|
|
"BLD",8018,1,6,0)
|
|
which exists in EDPRPT5, EDPRPTBV, EDPYPRE routines.
|
|
"BLD",8018,1,7,0)
|
|
|
|
"BLD",8018,1,8,0)
|
|
2- authentication problem, which cause lose of RPC parameters in
|
|
"BLD",8018,1,9,0)
|
|
VistALink in XOBSRA1 routine, New'ing the RPC parameters will preserve
|
|
"BLD",8018,1,10,0)
|
|
the Value of those parameters.
|
|
"BLD",8018,4,0)
|
|
^9.64PA^^
|
|
"BLD",8018,6.3)
|
|
6
|
|
"BLD",8018,"KRN",0)
|
|
^9.67PA^779.2^20
|
|
"BLD",8018,"KRN",.4,0)
|
|
.4
|
|
"BLD",8018,"KRN",.401,0)
|
|
.401
|
|
"BLD",8018,"KRN",.402,0)
|
|
.402
|
|
"BLD",8018,"KRN",.403,0)
|
|
.403
|
|
"BLD",8018,"KRN",.5,0)
|
|
.5
|
|
"BLD",8018,"KRN",.84,0)
|
|
.84
|
|
"BLD",8018,"KRN",3.6,0)
|
|
3.6
|
|
"BLD",8018,"KRN",3.8,0)
|
|
3.8
|
|
"BLD",8018,"KRN",9.2,0)
|
|
9.2
|
|
"BLD",8018,"KRN",9.8,0)
|
|
9.8
|
|
"BLD",8018,"KRN",9.8,"NM",0)
|
|
^9.68A^5^4
|
|
"BLD",8018,"KRN",9.8,"NM",2,0)
|
|
EDPRPTBV^^0^B22104348
|
|
"BLD",8018,"KRN",9.8,"NM",3,0)
|
|
EDPRPT5^^0^B36687959
|
|
"BLD",8018,"KRN",9.8,"NM",4,0)
|
|
EDPYPRE^^0^B9222306
|
|
"BLD",8018,"KRN",9.8,"NM",5,0)
|
|
XOBSRA1^^0^B4031966
|
|
"BLD",8018,"KRN",9.8,"NM","B","EDPRPT5",3)
|
|
|
|
"BLD",8018,"KRN",9.8,"NM","B","EDPRPTBV",2)
|
|
|
|
"BLD",8018,"KRN",9.8,"NM","B","EDPYPRE",4)
|
|
|
|
"BLD",8018,"KRN",9.8,"NM","B","XOBSRA1",5)
|
|
|
|
"BLD",8018,"KRN",19,0)
|
|
19
|
|
"BLD",8018,"KRN",19.1,0)
|
|
19.1
|
|
"BLD",8018,"KRN",101,0)
|
|
101
|
|
"BLD",8018,"KRN",409.61,0)
|
|
409.61
|
|
"BLD",8018,"KRN",771,0)
|
|
771
|
|
"BLD",8018,"KRN",779.2,0)
|
|
779.2
|
|
"BLD",8018,"KRN",870,0)
|
|
870
|
|
"BLD",8018,"KRN",8989.51,0)
|
|
8989.51
|
|
"BLD",8018,"KRN",8989.52,0)
|
|
8989.52
|
|
"BLD",8018,"KRN",8994,0)
|
|
8994
|
|
"BLD",8018,"KRN","B",.4,.4)
|
|
|
|
"BLD",8018,"KRN","B",.401,.401)
|
|
|
|
"BLD",8018,"KRN","B",.402,.402)
|
|
|
|
"BLD",8018,"KRN","B",.403,.403)
|
|
|
|
"BLD",8018,"KRN","B",.5,.5)
|
|
|
|
"BLD",8018,"KRN","B",.84,.84)
|
|
|
|
"BLD",8018,"KRN","B",3.6,3.6)
|
|
|
|
"BLD",8018,"KRN","B",3.8,3.8)
|
|
|
|
"BLD",8018,"KRN","B",9.2,9.2)
|
|
|
|
"BLD",8018,"KRN","B",9.8,9.8)
|
|
|
|
"BLD",8018,"KRN","B",19,19)
|
|
|
|
"BLD",8018,"KRN","B",19.1,19.1)
|
|
|
|
"BLD",8018,"KRN","B",101,101)
|
|
|
|
"BLD",8018,"KRN","B",409.61,409.61)
|
|
|
|
"BLD",8018,"KRN","B",771,771)
|
|
|
|
"BLD",8018,"KRN","B",779.2,779.2)
|
|
|
|
"BLD",8018,"KRN","B",870,870)
|
|
|
|
"BLD",8018,"KRN","B",8989.51,8989.51)
|
|
|
|
"BLD",8018,"KRN","B",8989.52,8989.52)
|
|
|
|
"BLD",8018,"KRN","B",8994,8994)
|
|
|
|
"BLD",8018,"QUES",0)
|
|
^9.62^^
|
|
"BLD",8018,"REQB",0)
|
|
^9.611^1^1
|
|
"BLD",8018,"REQB",1,0)
|
|
EMERGENCY DEPARTMENT 1.0^1
|
|
"BLD",8018,"REQB","B","EMERGENCY DEPARTMENT 1.0",1)
|
|
|
|
"MBREQ")
|
|
0
|
|
"PKG",209,-1)
|
|
1^1
|
|
"PKG",209,0)
|
|
JORDAN SPECIFIC MODIFICATIONS^UJO
|
|
"PKG",209,20,0)
|
|
^9.402P^^
|
|
"PKG",209,22,0)
|
|
^9.49I^1^1
|
|
"PKG",209,22,1,0)
|
|
1.0
|
|
"PKG",209,22,1,"PAH",1,0)
|
|
123^3111226^8
|
|
"PKG",209,22,1,"PAH",1,1,0)
|
|
^^10^10^3111226
|
|
"PKG",209,22,1,"PAH",1,1,1,0)
|
|
mainly this patch will fix different issues in the attached EDIS and
|
|
"PKG",209,22,1,"PAH",1,1,2,0)
|
|
VistALink routines, which falls in the following criteria.
|
|
"PKG",209,22,1,"PAH",1,1,3,0)
|
|
|
|
"PKG",209,22,1,"PAH",1,1,4,0)
|
|
1- relational operators that GT.M can not compile like using of ">=",
|
|
"PKG",209,22,1,"PAH",1,1,5,0)
|
|
GT.M can handle single operator at the time.
|
|
"PKG",209,22,1,"PAH",1,1,6,0)
|
|
which exists in EDPRPT5, EDPRPTBV, EDPYPRE routines.
|
|
"PKG",209,22,1,"PAH",1,1,7,0)
|
|
|
|
"PKG",209,22,1,"PAH",1,1,8,0)
|
|
2- authentication problem, which cause lose of RPC parameters in
|
|
"PKG",209,22,1,"PAH",1,1,9,0)
|
|
VistALink in XOBSRA1 routine, New'ing the RPC parameters will preserve
|
|
"PKG",209,22,1,"PAH",1,1,10,0)
|
|
the Value of those parameters.
|
|
"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")
|
|
NO
|
|
"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")
|
|
NO
|
|
"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")
|
|
NO
|
|
"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")
|
|
4
|
|
"RTN","EDPRPT5")
|
|
0^3^B36687959
|
|
"RTN","EDPRPT5",1,0)
|
|
EDPRPT5 ;SLC/MKB - Shift Report
|
|
"RTN","EDPRPT5",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 6
|
|
"RTN","EDPRPT5",3,0)
|
|
;
|
|
"RTN","EDPRPT5",4,0)
|
|
SFT(DAY) ; Get Shift Report for EDPSITE on DAY
|
|
"RTN","EDPRPT5",5,0)
|
|
N BEG,END,IN,OUT,LOG,X,X0,X1,X3,X4,S,SOUT,SHIFT
|
|
"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)
|
|
;;UJO/AS fix mathematical expressions that GT.M can not compile
|
|
"RTN","EDPRPT5",141,0)
|
|
;I TM<SHIFT(1)!(TM>=SHIFT(SHIFT)) S Y=SHIFT
|
|
"RTN","EDPRPT5",142,0)
|
|
;;
|
|
"RTN","EDPRPT5",143,0)
|
|
I TM<SHIFT(1)!((TM>SHIFT(SHIFT))!(TM=SHIFT(SHIFT))) S Y=SHIFT
|
|
"RTN","EDPRPT5",144,0)
|
|
E F I=2:1:SHIFT I TM<SHIFT(I) S Y=I-1 Q
|
|
"RTN","EDPRPT5",145,0)
|
|
S:$G(TXT) Y=$$WORD(Y)
|
|
"RTN","EDPRPT5",146,0)
|
|
;S Y=$S(TM<25200:"three",TM<54000:"one",TM<82800:"two",1:"three")
|
|
"RTN","EDPRPT5",147,0)
|
|
Q Y
|
|
"RTN","EDPRPT5",148,0)
|
|
;
|
|
"RTN","EDPRPT5",149,0)
|
|
ECODE(IEN) ; Return external value for an Acuity code
|
|
"RTN","EDPRPT5",150,0)
|
|
N X,Y S X=$P($G(^EDPB(233.1,IEN,0)),U,3) ;code
|
|
"RTN","EDPRPT5",151,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",152,0)
|
|
Q Y
|
|
"RTN","EDPRPTBV")
|
|
0^2^B22104348
|
|
"RTN","EDPRPTBV",1,0)
|
|
EDPRPTBV ;SLC/MKB - BVAC Report
|
|
"RTN","EDPRPTBV",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 6
|
|
"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)
|
|
;;UJO/AS fix mathematical expressions that GT.M can not compile
|
|
"RTN","EDPRPTBV",95,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",96,0)
|
|
;;
|
|
"RTN","EDPRPTBV",97,0)
|
|
S I=0 F S I=$O(EDPDX(I)) Q:I<1 S X=$G(EDPDX(I)) I ((290<+X)!(290=+X)),((+X<316)!(+X=316)) S Y=X Q
|
|
"RTN","EDPRPTBV",98,0)
|
|
Q Y
|
|
"RTN","EDPYPRE")
|
|
0^4^B9222306
|
|
"RTN","EDPYPRE",1,0)
|
|
EDPYPRE ;SLC/KCM - Pre-init for facility install
|
|
"RTN","EDPYPRE",2,0)
|
|
;;1.0;EMERGENCY DEPARTMENT;;Sep 30, 2009;Build 6
|
|
"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)
|
|
;;UJO/AS fix mathematical expressions that GT.M can not compile
|
|
"RTN","EDPYPRE",68,0)
|
|
;I $G(^TMP("EDP-LAST-VERSION"))>=HIGH Q 1 ; don't convert
|
|
"RTN","EDPYPRE",69,0)
|
|
;;
|
|
"RTN","EDPYPRE",70,0)
|
|
I ($G(^TMP("EDP-LAST-VERSION"))>HIGH)!($G(^TMP("EDP-LAST-VERSION"))=HIGH) Q 1 ; don't convert
|
|
"RTN","EDPYPRE",71,0)
|
|
Q 0 ; convert
|
|
"RTN","EDPYPRE",72,0)
|
|
;
|
|
"RTN","EDPYPRE",73,0)
|
|
FIXT5 ; convert the timezone offset to visit string
|
|
"RTN","EDPYPRE",74,0)
|
|
; (change occurred between T5 and T6)
|
|
"RTN","EDPYPRE",75,0)
|
|
I $$VERGTE(6) Q ; only convert if version <6
|
|
"RTN","EDPYPRE",76,0)
|
|
;
|
|
"RTN","EDPYPRE",77,0)
|
|
N LOG,X0
|
|
"RTN","EDPYPRE",78,0)
|
|
S LOG=0 F S LOG=$O(^EDP(230,LOG)) Q:'LOG D
|
|
"RTN","EDPYPRE",79,0)
|
|
. S X0=^EDP(230,LOG,0)
|
|
"RTN","EDPYPRE",80,0)
|
|
. I $P(X0,U,12)="0" S $P(^EDP(230,LOG,0),U,12)=""
|
|
"RTN","EDPYPRE",81,0)
|
|
Q
|
|
"RTN","EDPYPRE",82,0)
|
|
;. To convert VSTR to VISIT
|
|
"RTN","EDPYPRE",83,0)
|
|
;. I $L($P(X0,U,12),";")=3 D
|
|
"RTN","EDPYPRE",84,0)
|
|
;.. N VSTR,VISIT,DFN,VISITIEN,I
|
|
"RTN","EDPYPRE",85,0)
|
|
;.. S VSTR=$P(X0,U,12),DFN=$P(X0,U,6)
|
|
"RTN","EDPYPRE",86,0)
|
|
;.. Q:'DFN
|
|
"RTN","EDPYPRE",87,0)
|
|
;.. K ^TMP("PXKENC",$J)
|
|
"RTN","EDPYPRE",88,0)
|
|
;.. S VISIT=+$$GETENC^PXAPI(DFN,$P(VSTR,";",2),$P(VSTR,";"))
|
|
"RTN","EDPYPRE",89,0)
|
|
;.. I VISIT<0 S $P(^EDP(230,LOG,0),U,12)="" Q
|
|
"RTN","EDPYPRE",90,0)
|
|
;.. S VISITIEN=""
|
|
"RTN","EDPYPRE",91,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",92,0)
|
|
;.. S $P(^EDP(230,LOG,0),U,12)=VISITIEN
|
|
"RTN","EDPYPRE",93,0)
|
|
Q
|
|
"RTN","XOBSRA1")
|
|
0^5^B4031966
|
|
"RTN","XOBSRA1",1,0)
|
|
XOBSRA1 ;mjk,esd/alb - VistALink Reauthentication Code ; 05/22/2003 07:00
|
|
"RTN","XOBSRA1",2,0)
|
|
;;1.5;VistALink Security;;Sep 09, 2005;Build 6
|
|
"RTN","XOBSRA1",3,0)
|
|
;;Foundations Toolbox Release v1.5 [Build: 1.5.0.026]
|
|
"RTN","XOBSRA1",4,0)
|
|
;
|
|
"RTN","XOBSRA1",5,0)
|
|
QUIT
|
|
"RTN","XOBSRA1",6,0)
|
|
;
|
|
"RTN","XOBSRA1",7,0)
|
|
KILL ; -- clean up partition's local symbol table ; called from INIT^XOBSRA
|
|
"RTN","XOBSRA1",8,0)
|
|
;SET AAXOB="before" DO ^%ZTER ; -- used to view symbol table 'before' state
|
|
"RTN","XOBSRA1",9,0)
|
|
;
|
|
"RTN","XOBSRA1",10,0)
|
|
IF XOBOS["OpenM" DO
|
|
"RTN","XOBSRA1",11,0)
|
|
. ; -- Stack: CACHEVMS^XOBVTCP
|
|
"RTN","XOBSRA1",12,0)
|
|
. ; SPAWN^XOBVLL
|
|
"RTN","XOBSRA1",13,0)
|
|
. ; NXTCALL^XOBVLL
|
|
"RTN","XOBSRA1",14,0)
|
|
. ; EN^XOBVRM
|
|
"RTN","XOBSRA1",15,0)
|
|
. ; EN^XOBVRPC()
|
|
"RTN","XOBSRA1",16,0)
|
|
. ; SETUPDUZ^XOBSRA()
|
|
"RTN","XOBSRA1",17,0)
|
|
. ;
|
|
"RTN","XOBSRA1",18,0)
|
|
. ; -- NEW non-XOB variables created in above stack
|
|
"RTN","XOBSRA1",19,0)
|
|
. NEW DIQUIET,DX,DY,RPC0,RPCNAME,RPCIEN,TAG,ROU,METHSIG,XRTN
|
|
"RTN","XOBSRA1",20,0)
|
|
. DO CACHE("XOB")
|
|
"RTN","XOBSRA1",21,0)
|
|
ELSE DO
|
|
"RTN","XOBSRA1",22,0)
|
|
. DO OTHER
|
|
"RTN","XOBSRA1",23,0)
|
|
;
|
|
"RTN","XOBSRA1",24,0)
|
|
;SET AAXOB="after" DO ^%ZTER ; -- used to view symbol table 'after' state
|
|
"RTN","XOBSRA1",25,0)
|
|
QUIT
|
|
"RTN","XOBSRA1",26,0)
|
|
;
|
|
"RTN","XOBSRA1",27,0)
|
|
CACHE(%NS) ; -- KILL all 'L'ocal 'VAR'iables except for a 'N'ame'S'pace (%NS) and Kernel for Cache systems
|
|
"RTN","XOBSRA1",28,0)
|
|
NEW %LVAR,%NSLEN
|
|
"RTN","XOBSRA1",29,0)
|
|
SET %NSLEN=$LENGTH(%NS)
|
|
"RTN","XOBSRA1",30,0)
|
|
SET %LVAR=%NS
|
|
"RTN","XOBSRA1",31,0)
|
|
FOR SET %LVAR=$ORDER(@%LVAR) QUIT:%LVAR=""!($EXTRACT(%LVAR,1,%NSLEN)'=%NS) NEW @%LVAR
|
|
"RTN","XOBSRA1",32,0)
|
|
; -- NEW Kernel variables and do the big KILL
|
|
"RTN","XOBSRA1",33,0)
|
|
DO KILL^XUSCLEAN
|
|
"RTN","XOBSRA1",34,0)
|
|
QUIT
|
|
"RTN","XOBSRA1",35,0)
|
|
;
|
|
"RTN","XOBSRA1",36,0)
|
|
OTHER ; -- explicit NEW'ing for other for non-Cache M implementations
|
|
"RTN","XOBSRA1",37,0)
|
|
; -- The following are NEW'ed as part KILL^XOBVLL call:
|
|
"RTN","XOBSRA1",38,0)
|
|
; XOBPORT,XOBSTOP,XOBNULL,XOBOS,XOBSYS,XOBHDLR,XOBOK
|
|
"RTN","XOBSRA1",39,0)
|
|
; -- additional NEW'ing needed to preserve for CACHEVMS^XOBVTCP
|
|
"RTN","XOBSRA1",40,0)
|
|
NEW XOBEC
|
|
"RTN","XOBSRA1",41,0)
|
|
; -- additional NEW'ing needed to preserve for SPAWN^XOBVLL
|
|
"RTN","XOBSRA1",42,0)
|
|
NEW XOBLASTR
|
|
"RTN","XOBSRA1",43,0)
|
|
;;
|
|
"RTN","XOBSRA1",44,0)
|
|
;;EHS/AFS CHANGE START
|
|
"RTN","XOBSRA1",45,0)
|
|
;;additional NEW'ing needed to preserve RPC parameters
|
|
"RTN","XOBSRA1",46,0)
|
|
FOR SET I=$ORDER(XOBDATA("XOB RPC","PARAMS",I)) Q:I="" NEW @XOBDATA("XOB RPC","PARAMS",I)
|
|
"RTN","XOBSRA1",47,0)
|
|
;;EHS/AFS CHANGE END
|
|
"RTN","XOBSRA1",48,0)
|
|
; -- additional NEW'ing needed to preserve for NXTCALL^XOBVLL
|
|
"RTN","XOBSRA1",49,0)
|
|
NEW XOBROOT,XOBREAD,XOBTO,XOBFIRST,XOBDATA,DIQUIET
|
|
"RTN","XOBSRA1",50,0)
|
|
; -- additional NEW'ing needed to preserve for EN^XOBVRM
|
|
"RTN","XOBSRA1",51,0)
|
|
NEW XOBOPT
|
|
"RTN","XOBSRA1",52,0)
|
|
; -- additional NEW'ing needed to preserve for EN^XOBVRPC()
|
|
"RTN","XOBSRA1",53,0)
|
|
NEW DX,DY,RPC0,RPCNAME,RPCIEN,TAG,ROU,METHSIG,XOBERR,XOBR,XOBSEC,XOBWRAP,XRTN,XOBRA,XOBVER,XOBPTYPE
|
|
"RTN","XOBSRA1",54,0)
|
|
; -- additional NEW'ing needed to preserve for SETUPDUZ^XOBSRA()
|
|
"RTN","XOBSRA1",55,0)
|
|
NEW XOBERR,XOBID,XOBTYPE
|
|
"RTN","XOBSRA1",56,0)
|
|
; -- call KILL^XOBVLL to finish NEW'ing and execute Kernel call to kill
|
|
"RTN","XOBSRA1",57,0)
|
|
DO KILL^XOBVLL
|
|
"RTN","XOBSRA1",58,0)
|
|
QUIT
|
|
"RTN","XOBSRA1",59,0)
|
|
;
|
|
"VER")
|
|
8.0^22.0
|
|
**END**
|
|
**END**
|