1 | PSJBCMA4 ;BIR/JLC-BCMA ORDER UPDATE FOR INPATIENT MEDS ;18 JUN 01
|
---|
2 | ;;5.0; INPATIENT MEDICATIONS ;**63,66,58,104**;16 DEC 97
|
---|
3 | ;
|
---|
4 | ;Reference to ^DPT is supported by DBIA 10035
|
---|
5 | ;Reference to ^PS(55 is supported by DBIA 2191
|
---|
6 | ;Reference to ^XMB is supported by DBIA 1131
|
---|
7 | ;Reference to ^%DTC is supported by DBIA 10000
|
---|
8 | ;Reference to ^DIE is supported by DBIA 10018
|
---|
9 | ;Reference to ^DIQ is supported by DBIA 2056
|
---|
10 | ;Reference to ^XMD is supported by DBIA 10070
|
---|
11 | ;
|
---|
12 | ENE(DFN,ON) ;
|
---|
13 | N PSJIEN,PSJSTOP,PSJSTAT,PSJSTOP,PSJNOW,DA,DR,DIE,PSIVACT,ON55,PSIVREA,PSIVAL,PSIVALT,PSJSCH,X
|
---|
14 | I $G(DFN)=""!($G(ON)="") Q
|
---|
15 | D NOW^%DTC S PSJNOW=%
|
---|
16 | I ON["V" D Q
|
---|
17 | . I '$D(^PS(55,DFN,"IV",+ON)) Q
|
---|
18 | . S X=$G(^PS(55,DFN,"IV",+ON,0))
|
---|
19 | . S PSJSTART=$P(X,"^",2),PSJSTOP=$P(X,"^",3),PSJSCH=$P(X,"^",9),PSJSTAT=$P(X,"^",17)
|
---|
20 | . I $P($G(^PS(55,DFN,"IV",+ON,.2)),"^",4)="D" Q
|
---|
21 | . S DIE="^PS(55,"_DFN_",""IV"",",DA=+ON,DA(1)=DFN
|
---|
22 | . I PSJSTAT'="A" D IEA(0) Q
|
---|
23 | . I PSJSTOP'>PSJNOW D IEA(0) Q
|
---|
24 | . I $$ONE^PSJBCMA(DFN,ON,PSJSCH,PSJSTART,PSJSTOP)'="O" D IEA(0) Q
|
---|
25 | . S PSIVACT=1,DR="116////"_PSJSTOP_";.03////"_PSJNOW_";100////E;147////1" D ^DIE
|
---|
26 | . D IEA(1),EN1^PSJHL2(DFN,"SC",ON,"BCMA EXPIRED")
|
---|
27 | I ON["U" D Q
|
---|
28 | . I '$D(^PS(55,DFN,5,+ON)) Q
|
---|
29 | . S X=$G(^PS(55,DFN,5,+ON,2)),PSJSCH=$P(X,"^"),PSJSTART=$P(X,"^",2),PSJSTOP=$P(X,"^",4)
|
---|
30 | . S PSJIEN=+ON_","_DFN_",",PSJSTAT=$$GET1^DIQ(55.06,PSJIEN,28,"I")
|
---|
31 | . I $P($G(^PS(55,DFN,5,+ON,.2)),"^",4)="D" Q
|
---|
32 | . S DIE="^PS(55,"_DFN_",5,",DA=+ON,DA(1)=DFN
|
---|
33 | . I PSJSTAT'="A" D UEA(0) Q
|
---|
34 | . I PSJSTOP'>PSJNOW D UEA(0) Q
|
---|
35 | . I $$ONE^PSJBCMA(DFN,ON,PSJSCH,PSJSTART,PSJSTOP)'="O" D UEA(0) Q
|
---|
36 | . S DR="25////"_PSJSTOP_";34////"_PSJNOW_";28////E;123////1" D ^DIE
|
---|
37 | . D UEA(1),EN1^PSJHL2(DFN,"SC",ON,"BCMA EXPIRED")
|
---|
38 | Q
|
---|
39 | ENR(DFN,ON) ;
|
---|
40 | N PSJIEN,PSJORIG,PSJSTAT,PSJSTOP,PSJNOW,DA,DR,DIE,PSIVACT,PSJF,X,PSJ,XMY,XMDUZ,XMSUB,XMTEXT
|
---|
41 | I $G(DFN)=""!($G(ON)="") Q
|
---|
42 | D NOW^%DTC S PSJNOW=%
|
---|
43 | I ON["V" D Q
|
---|
44 | . I '$D(^PS(55,DFN,"IV",+ON)) Q
|
---|
45 | . S PSJIEN=+ON_","_DFN_",",PSJBCMA=$$GET1^DIQ(55.01,PSJIEN,147,"I"),PSJORIG=$$GET1^DIQ(55.01,PSJIEN,116,"I")
|
---|
46 | . S DIE="^PS(55,"_DFN_",""IV"",",DA=+ON,DA(1)=DFN
|
---|
47 | . I PSJBCMA'=1!(PSJORIG'>PSJNOW) D IRA(0) Q
|
---|
48 | . S PSIVACT=1,DR="116////;.03////"_PSJORIG_";100////A;147////0" D ^DIE
|
---|
49 | . D IRA(1),EN1^PSJHL2(DFN,"SC",ON,"BCMA REINSTATED")
|
---|
50 | I ON["U" D Q
|
---|
51 | . I '$D(^PS(55,DFN,5,+ON)) Q
|
---|
52 | . S PSJIEN=+ON_","_DFN_",",PSJBCMA=$$GET1^DIQ(55.06,PSJIEN,123,"I"),PSJORIG=$$GET1^DIQ(55.06,PSJIEN,25,"I")
|
---|
53 | . S DIE="^PS(55,"_DFN_",5,",DA=+ON,DA(1)=DFN
|
---|
54 | . I PSJBCMA'=1!(PSJORIG'>PSJNOW) D URA(0) Q
|
---|
55 | . S DR="25////;34////"_PSJORIG_";28////A;123////0" D ^DIE
|
---|
56 | . D URA(1),EN1^PSJHL2(DFN,"SC",ON,"BCMA REINSTATED")
|
---|
57 | Q
|
---|
58 | IEA(STAT) ;
|
---|
59 | S ON55=ON,PSIVREA="E",PSIVAL=$S(STAT:"BCMA EXPIRED",1:"BCMA EXPIRE DENIED")
|
---|
60 | D LOG^PSIVORAL Q
|
---|
61 | UEA(STAT) ;
|
---|
62 | S PSGAL("C")=$S(STAT:25000,1:25100) D ^PSGAL5 Q
|
---|
63 | IRA(STAT) ;
|
---|
64 | S ON55=ON,PSIVREA="E",PSIVAL=$S(STAT:"BCMA REINSTATED",1:"BCMA REINSTATE DENIED")
|
---|
65 | D LOG^PSIVORAL
|
---|
66 | F PSJF=.06,135,16 S X=$$GET1^DIQ(55.01,PSJIEN,PSJF,"I") I X]"" S XMY(X)=""
|
---|
67 | D MSG(STAT)
|
---|
68 | Q
|
---|
69 | URA(STAT) ;
|
---|
70 | S PSGAL("C")=$S(STAT:25200,1:25300) D ^PSGAL5
|
---|
71 | F PSJF=16,18,20 S X=$$GET1^DIQ(55.06,PSJIEN,PSJF,"I") I X]"" S XMY(X)=""
|
---|
72 | D MSG(STAT)
|
---|
73 | Q
|
---|
74 | MSG(STAT) ;
|
---|
75 | S XMDUZ="Inpatient Medications",XMSUB="Medication Order"_$S(STAT:"",1:" not")_" reinstated.",XMTEXT="PSJ(",XMY(DUZ)="",XMY("G.PSJ-ORDERS REINSTATED@"_$G(^XMB("NETNAME")))=""
|
---|
76 | S PSJ(1,0)="Patient: "_$P(^DPT(DFN,0),"^"),PSJ(2,0)="The following order was"_$S(STAT:"",1:" not")_" reinstated after a status change in BCMA."
|
---|
77 | S PSJLINE=0 I ON["U" D DSPLORDU^PSJLMUT1(DFN,ON)
|
---|
78 | I ON["V" D DSPLORDV^PSJLMUT1(DFN,ON)
|
---|
79 | S CNT=2,X="" F S X=$O(PSJOC(ON,X)) Q:X="" S CNT=CNT+1,PSJ(CNT,0)=PSJOC(ON,X)
|
---|
80 | D ^XMD I $D(XMZ) S DA=XMZ,DIE=3.9,DR="1.7///P;" D ^DIE
|
---|
81 | Q
|
---|