| [613] | 1 | PSOHLDI1 ;BIR/PWC,SAB - Automated Dispense Completion HL7 v.2.4 cont. ;10/25/06 10:04am
 | 
|---|
 | 2 |  ;;7.0;OUTPATIENT PHARMACY;**259,268**;DEC 1997;Build 9
 | 
|---|
 | 3 |  ;Reference to ^PSD(58.8 supported by DBIA 1036
 | 
|---|
 | 4 |  ;Reference to ^XTMP("PSA" supported by DBIA 1036
 | 
|---|
 | 5 |  ;This routine is called by PSOHLDIS
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 |  ;*259 create routine to hold DRGACCT, psohldis exceeded 10k, also
 | 
|---|
 | 8 |  ;     add MAIL tag for Email Alert to mail group.
 | 
|---|
 | 9 |  ;
 | 
|---|
 | 10 |  Q
 | 
|---|
 | 11 |  ;
 | 
|---|
 | 12 | BINGREL ;displays to bingo board
 | 
|---|
 | 13 |  N NAM,NAME,RXO,SSN S ADA="",BRXP=RXID
 | 
|---|
 | 14 |  F XX=0:0 S XX=$O(^PS(52.11,"B",BNAM,XX)) Q:'XX  D
 | 
|---|
 | 15 |  .F BRX=0:0 S BRX=$O(^PS(52.11,XX,2,"B",BRX)) Q:'BRX  I BRX=BRXP S (DA,ODA)=XX
 | 
|---|
 | 16 |  Q:'$D(DA)
 | 
|---|
 | 17 |  I $P($G(^PS(52.11,DA,0)),"^",7)]"" Q
 | 
|---|
 | 18 |  I $P($P($G(^PS(52.11,DA,0)),"^",5),".")'=DT S DIK="^PS(52.11," D ^DIK K DIK Q
 | 
|---|
 | 19 |  N TM,TM1 D NOW^%DTC S TM=$E(%,1,12),TM1=$P(TM,".",2)
 | 
|---|
 | 20 |  S NM=$P(^DPT($P(^PS(52.11,DA,0),"^"),0),"^"),DR="6////"_$E(TM1_"0000",1,4)_";8////"_NM_"",DIE="^PS(52.11,"
 | 
|---|
 | 21 |  L +^PS(52.11,DA):$S(+$G(^DD("DILOCKTM"))>0:+^DD("DILOCKTM"),1:3) E  Q
 | 
|---|
 | 22 |  D ^DIE L -^PS(52.11,DA) I $G(X)="" S DIK="^PS(52.11," D ^DIK K DIK Q
 | 
|---|
 | 23 |  S RX0=^PS(52.11,DA,0),JOES=$P(RX0,"^",4),TICK=+$P($G(RX0),"^",2),GRP=$P($G(^PS(59.3,$P($G(^PS(52.11,DA,0)),"^",3),0)),"^",2)
 | 
|---|
 | 24 |  I GRP="T",'$G(TICK) S DIK="^PS(52.11," D ^DIK K DIK
 | 
|---|
 | 25 |  Q:'$G(DA)
 | 
|---|
 | 26 |  S PSZ=0 I '$D(^PS(59.2,DT,0)) K DD,DIC,DO,DA S X=DT,DIC="^PS(59.2,",DIC(0)="",DINUM=X D FILE^DICN S PSZ=1 Q:Y'>0 
 | 
|---|
 | 27 |  I PSZ=1 S DA(1)=+Y,DIC=DIC_DA(1)_",1,",(DINUM,X)=JOES,DIC(0)="",DIC("P")=$P(^DD(59.2,1,0),"^",2) K DD,DO D FILE^DICN K DIC,DA Q:Y'>0
 | 
|---|
 | 28 |  I PSZ=0 K DD,DIC,DO,DA S DA(1)=DT,(DINUM,X)=JOES,DIC="^PS(59.2,"_DT_",1,",DIC(0)="LZ" D FILE^DICN K DIC,DA,DO
 | 
|---|
 | 29 |  S DA=ODA D STATS1^PSOBRPRT,WTIME^PSOBING1
 | 
|---|
 | 30 |  Q
 | 
|---|
 | 31 |  ;
 | 
|---|
 | 32 | DRGACCT(RXP) ;update Drug Accountability Package                      ;PSO*209
 | 
|---|
 | 33 |  S RXP=+$G(RXP) Q:'RXP
 | 
|---|
 | 34 |  N PSA,DIC,DA,DR,X,Y,DIQ,PSODA,PSOSITE,QDRUG,QTY,JOB192
 | 
|---|
 | 35 |  S (JOB192,PSODA)=0
 | 
|---|
 | 36 |  ;check for Drug Acct background job
 | 
|---|
 | 37 |  S X="PSA IV ALL LOCATIONS",DIC(0)="MZ",DIC=19.2 D ^DIC S JOB192=Y
 | 
|---|
 | 38 |  I JOB192>0,$P($G(Y(0)),U,2)>DT D
 | 
|---|
 | 39 |  . S PSODA=1
 | 
|---|
 | 40 |  . S:'$P($G(^XTMP("PSA",0)),U,2) $P(^(0),U,2)=DT
 | 
|---|
 | 41 |  I JOB192'>0 D             ;check old way of scheduling
 | 
|---|
 | 42 |  . S X="PSA IV ALL LOCATIONS",DIC(0)="MZ",DIC=19 D ^DIC
 | 
|---|
 | 43 |  . K DIQ,PSA S DA=+Y,DIC=19,DIQ="PSA",DR=200,DIQ(0)="IN" D EN^DIQ1
 | 
|---|
 | 44 |  . I $G(PSA(19,DA,200,"I"))>DT D
 | 
|---|
 | 45 |  . . S PSODA=1
 | 
|---|
 | 46 |  . . S:'$P($G(^XTMP("PSA",0)),U,2) $P(^(0),U,2)=DT
 | 
|---|
 | 47 |  ;drug stocked in Drug Acct Location?
 | 
|---|
 | 48 |  S PSOSITE=+$O(^PS(59,0))
 | 
|---|
 | 49 |  S PSODA(1)=$S($D(^PSD(58.8,+$O(^PSD(58.8,"AOP",PSOSITE,0)),1,+$P(^PSRX(RXP,0),U,6))):1,1:0)
 | 
|---|
 | 50 |  ;if appropriate update ^XTMP("PSA", for Drug Acct
 | 
|---|
 | 51 |  S QTY=$P($G(^PSRX(RXP,0)),"^",7)
 | 
|---|
 | 52 |  S QDRUG=+$P($G(^PSRX(RXP,0)),"^",6)
 | 
|---|
 | 53 |  Q:'QDRUG
 | 
|---|
 | 54 |  I $G(PSODA),$G(PSODA(1)),'$D(^PSRX("AR",$$NOW^XLFDT,RXP,0)) S ^XTMP("PSA",PSOSITE,QDRUG,DT)=$G(^XTMP("PSA",PSOSITE,QDRUG,DT))+QTY
 | 
|---|
 | 55 |  Q
 | 
|---|
 | 56 |  ;
 | 
|---|
 | 57 | MAIL ;Send mail message
 | 
|---|
 | 58 |  S:'$G(DUZ) DUZ=.5
 | 
|---|
 | 59 |  N PSOTTEXT,PSOIEN,PSOKEYN,XMY,XMDUZ,XMSUB,XMTEXT
 | 
|---|
 | 60 |  S XMY("G.PSO EXTERNAL DISPENSE ALERTS")=""
 | 
|---|
 | 61 |  ;if no members in group, then send to PSXCMOPMGR key holders
 | 
|---|
 | 62 |  S PSOIEN=$O(^XMB(3.8,"B","PSO EXTERNAL DISPENSE ALERTS",0))
 | 
|---|
 | 63 |  I '$O(^XMB(3.8,PSOIEN,1,0)) D
 | 
|---|
 | 64 |  . S PSOKEYN=0
 | 
|---|
 | 65 |  . F  S PSOKEYN=$O(^XUSEC("PSXCMOPMGR",PSOKEYN)) Q:'PSOKEYN  D
 | 
|---|
 | 66 |  . . S XMY(PSOKEYN)=""
 | 
|---|
 | 67 |  S XMDUZ="PSO EXTERNAL DISPENSE"
 | 
|---|
 | 68 |  S XMSUB="External Dispense - Rx Release Attempted"
 | 
|---|
 | 69 |  S PSOTTEXT(1)="Patient: "_NAME_"   SSN: "_PSSN
 | 
|---|
 | 70 |  S PSOTTEXT(2)="   Rx #: "_PSORX_"   Fill: "_FLLN
 | 
|---|
 | 71 |  S PSOTTEXT(3)="   Drug: "_$P(GIVECOD,"~",2)
 | 
|---|
 | 72 |  S PSOTTEXT(4)=""
 | 
|---|
 | 73 |  S PSOTTEXT(5)=ATXT
 | 
|---|
 | 74 |  S PSOTTEXT(6)=""
 | 
|---|
 | 75 |  S:ACTN]"" PSOTTEXT(7)=ACTN
 | 
|---|
 | 76 |  S XMTEXT="PSOTTEXT(" D ^XMD
 | 
|---|
 | 77 |  Q
 | 
|---|