1 | PSBVDLPA ;BIRMINGHAM/EFC-BCMA UNIT DOSE VIRTUAL DUE LIST FUNCTIONS ;Mar 2004
|
---|
2 | ;;3.0;BAR CODE MED ADMIN;**5,16,13,38,32**;Mar 2004;Build 32
|
---|
3 | ;Per VHA Directive 2004-038 (or future revisions regarding same), this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; called by PSBVDLUD to find patches not removed
|
---|
6 | ;
|
---|
7 | ; Reference/IA
|
---|
8 | ; $$GET^XPAR/2263
|
---|
9 | ; $$FMADD^XLFDT/10103
|
---|
10 | ;
|
---|
11 | EN ;
|
---|
12 | S PSBGNODE="^PSB(53.79,"_"""APATCH"""_","_DFN_")"
|
---|
13 | F S PSBGNODE=$Q(@PSBGNODE) Q:PSBGNODE']"" Q:($QS(PSBGNODE,2)'="APATCH")!($QS(PSBGNODE,3)'=DFN) D
|
---|
14 | .S PSBIEN=$QS(PSBGNODE,5)
|
---|
15 | .I '$D(^PSB(53.79,PSBIEN,.5,1)) Q
|
---|
16 | .I $P(^PSB(53.79,PSBIEN,.5,1,0),U,4)'="PATCH" Q
|
---|
17 | .I "G"'[$P(^PSB(53.79,PSBIEN,0),U,9)!($D(PSBONVDL(PSBIEN))) Q
|
---|
18 | .S PSBPBK=+($$GET^XPAR("DIV","PSB VDL PATCH DAYS"))
|
---|
19 | .S PSBZON=$P(^PSB(53.79,PSBIEN,.1),"^")
|
---|
20 | .D CLEAN^PSBVT
|
---|
21 | .D PSJ1^PSBVT(DFN,PSBZON)
|
---|
22 | .I PSBPBK'=0 D NOW^%DTC I ($$FMADD^XLFDT($P(PSBOSP,"."),(PSBPBK))<X) Q
|
---|
23 | .S $P(PSBREC,U,1)=DFN ; dfn
|
---|
24 | .S $P(PSBREC,U,2)=PSBONX ; order numer
|
---|
25 | .S $P(PSBREC,U,3)=PSBON ; order ien
|
---|
26 | .S $P(PSBREC,U,4)="U" ; order type U unit dose
|
---|
27 | .S $P(PSBREC,U,5)=PSBSCHT
|
---|
28 | .S $P(PSBREC,U,6)=PSBSCH
|
---|
29 | .S $P(PSBREC,U,7)=$S(PSBHSM:"HSM",PSBSM:"SM",1:"")
|
---|
30 | .S $P(PSBREC,U,8)=PSBOITX
|
---|
31 | .S $P(PSBREC,U,9)=PSBDOSE
|
---|
32 | .S $P(PSBREC,U,10)=PSBMR
|
---|
33 | .S:$D(PSBHSTAX(PSBOIT)) $P(PSBREC,U,11)=$O(PSBHSTAX(PSBOIT,""),-1),$P(PSBREC,U,20)=$O(PSBHSTAX(PSBOIT,$P(PSBREC,U,11),""),-1)
|
---|
34 | .D:'$D(PSBHSTAX(PSBOIT))
|
---|
35 | ..N PSBX,PSBY,PSBDONE S PSBDONE=0,PSBX="" F S PSBX=$O(^PSB(53.79,"AOIP",DFN,PSBOIT,PSBX),-1) Q:PSBX="" D:'PSBDONE
|
---|
36 | ...S PSBY="" F S PSBY=$O(^PSB(53.79,"AOIP",DFN,PSBOIT,PSBX,PSBY),-1) Q:PSBY="" D:'PSBDONE
|
---|
37 | ....S:$P(^PSB(53.79,PSBY,0),U,9)'="N" $P(PSBREC,U,20)=$P(^PSB(53.79,PSBY,0),U,9) S:($P(PSBREC,U,20)'="N")&($P(PSBREC,U,20)]"") $P(PSBREC,U,11)=PSBX,PSBDONE=1
|
---|
38 | .S $P(PSBREC,U,12)=PSBIEN
|
---|
39 | .S $P(PSBREC,U,13)="G"
|
---|
40 | .S $P(PSBREC,U,14)=$P(^PSB(53.79,PSBIEN,.1),U,3)
|
---|
41 | .I $P(PSBREC,U,14)="" S $P(PSBREC,U,14)=PSBNOW\1
|
---|
42 | .S $P(PSBREC,U,15)=PSBOIT
|
---|
43 | .D:($G(PSBTAB)="CVRSHT")!($G(PSBTAB)="UDTAB")
|
---|
44 | ..S $P(PSBREC,U,16)=$S($G(PSBX)="":0,1:PSBNJECT) ;Set injectable med route flag
|
---|
45 | ..I $P(PSBREC,U,9)?1.4N1"-"1.4N.E S $P(PSBREC,U,17)=1
|
---|
46 | ..E S $P(PSBREC,U,17)=0
|
---|
47 | ..S $P(PSBREC,U,19)=$S(PSBVNI]"":PSBVNI,PSBVNI']"":"***")
|
---|
48 | ..S $P(PSBREC,U,23)=""
|
---|
49 | ..S $P(PSBREC,U,26)=PSBOSP
|
---|
50 | ..S $P(PSBREC,U,27)=$$LASTG^PSBCSUTL($P(PSBREC,U),$P(PSBREC,U,15))
|
---|
51 | ..S $P(PSBREC,U,28)=0
|
---|
52 | ..I ($G(PSBTAB)="CVRSHT") S $P(PSBREC,U,28)=1
|
---|
53 | ..I ($G(PSBTAB)="UDTAB") I PSBSCHT'="O" S:(PSBOSTS="E")!(PSBOSTS["D") $P(PSBREC,U,28)=1
|
---|
54 | ..; Place into Coversheet activity ARRAY
|
---|
55 | ..S PSBDIDX="" I $D(^PSB(53.79,"AORD",DFN,PSBONX)) D
|
---|
56 | ...S PSBXDTI="",PSBXDTI=$O(^PSB(53.79,"AORD",DFN,PSBONX,PSBXDTI),-1)
|
---|
57 | ...Q:'$D(^PSB(53.79,"AORD",DFN,PSBONX,PSBXDTI,PSBIEN))
|
---|
58 | ...S PSBADMX(PSBONX,PSBXDTI,PSBIEN)="",PSBDIDX=1
|
---|
59 | ..I ('PSBDIDX)&$D(^PSB(53.79,"AORDX",DFN,PSBONX)) D
|
---|
60 | ...S PSBXXDTI="",PSBXXDTI=$O(^PSB(53.79,"AORDX",DFN,PSBONX,PSBXXDTI),-1)
|
---|
61 | ...Q:'$D(^PSB(53.79,"AORDX",DFN,PSBONX,PSBXXDTI,PSBIEN))
|
---|
62 | ...S PSBADMX(PSBONX,PSBXXDTI,PSBIEN)=""
|
---|
63 | .S $P(PSBREC,U,18)="PATCH"
|
---|
64 | .S $P(PSBREC,U,21)=PSBOST
|
---|
65 | .S $P(PSBREC,U,22)=PSBOSTS
|
---|
66 | .S PSBDDS="" F Y=0:0 S Y=$O(PSBDDA(Y)) Q:'Y S:$P(PSBDDA(Y),U,4)="" $P(PSBDDA(Y),U,4)=1 S PSBDDS=PSBDDS_U_$P(PSBDDA(Y),U,1,4),$P(PSBDDS,U,1)=PSBDDS+1
|
---|
67 | .S PSBQRR=1
|
---|
68 | .D ADD^PSBVDLU1(PSBREC,PSBOTXT,$P(PSBREC,U,14),PSBDDS,"","",$S($G(PSBTAB)="CVRSHT":"CVRSHT",1:"UDTAB"))
|
---|
69 | K PSBPBK,PSBONVDL
|
---|
70 | Q
|
---|