| [613] | 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
 | 
|---|