| 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 | 
|---|