| [613] | 1 | PSOCPIB ;BHAM ISC/EJW - PHARMACY CO-PAY IB-INITIATED COPAY CHARGE ;  07/27/01
 | 
|---|
 | 2 |  ;;7.0;OUTPATIENT PHARMACY;**71,137**;DEC 1997
 | 
|---|
 | 3 |  ;External reference to IBARX supported by DBIA 125
 | 
|---|
 | 4 |  ; files IB-initiated charges into original or refill node
 | 
|---|
 | 5 |  ; IB passes date/time^person initiating copay^Rx#^Fill#^Partial or full charge^IB transaction IEN from file #350
 | 
|---|
 | 6 |  N PSODA,PSOCOMM,PSOREF,PREA,SAVEDUZ,PSORSN
 | 
|---|
 | 7 |  S PREA="I"
 | 
|---|
 | 8 |  S SAVEDUZ=DUZ
 | 
|---|
 | 9 |  S DUZ=$P(Y(1),"^",2)
 | 
|---|
 | 10 |  S PSODA=$P(Y(1),"^",3)
 | 
|---|
 | 11 |  I 'PSODA Q
 | 
|---|
 | 12 |  S PSOREF=$P(Y(1),"^",4)
 | 
|---|
 | 13 |  D CHKIB
 | 
|---|
 | 14 |  S PSOCOMM=$S($P(Y(1),"^",5)="F":"FULL CHARGE",1:"PARTIAL CHARGE")
 | 
|---|
 | 15 | FILE ;         File IB number in ^PSRX
 | 
|---|
 | 16 |  S:PSOREF>0 ^PSRX(PSODA,1,PSOREF,"IB")=$P(Y(1),"^",6) ;  Filing in refill node
 | 
|---|
 | 17 |  I PSOREF>0,'$D(^PSRX(PSODA,"IB")) S ^PSRX(PSODA,"IB")="^^" ;  If refill "IB" exists, need "IB" entry on original fill node
 | 
|---|
 | 18 |  S:PSOREF=0 $P(^PSRX(PSODA,"IB"),"^",2)=$P(Y(1),"^",6) ;Filing in original fill (zero node)
 | 
|---|
 | 19 |  D ACTLOG^PSOCPA
 | 
|---|
 | 20 |  I $P($G(^PSRX(PSODA,"IB")),"^",1)="" D CANCEL ; IF Rx is 'no copay', send a cancel back to IB in 10 minutes for their IB-initiated charge
 | 
|---|
 | 21 |  S DUZ=SAVEDUZ
 | 
|---|
 | 22 |  Q
 | 
|---|
 | 23 |  ;
 | 
|---|
 | 24 | CANCEL ;
 | 
|---|
 | 25 |  S ZTRTN="CANCHG^PSOCPIB"
 | 
|---|
 | 26 |  S ZTDESC="Call IB back to cancel charges"
 | 
|---|
 | 27 |  S PSORX=Y(1)_"^"_$G(PSOPAR7)
 | 
|---|
 | 28 |  S ZTSAVE("PSORX")=""
 | 
|---|
 | 29 |  S ZTDTH=$$HADD^XLFDT($H,0,0,10),ZTIO=""
 | 
|---|
 | 30 |  D ^%ZTLOAD
 | 
|---|
 | 31 |  Q
 | 
|---|
 | 32 |  ;
 | 
|---|
 | 33 | CANCHG ; Cancel charges if IB initiates a charge for a 'no copay' Rx
 | 
|---|
 | 34 |  N PSODA,PSOCOMM,PSOREF,PREA,SAVEDUZ,X
 | 
|---|
 | 35 |  S PREA="C"
 | 
|---|
 | 36 |  S DUZ=$P(PSORX,"^",2)
 | 
|---|
 | 37 |  S PSODA=$P(PSORX,"^",3)
 | 
|---|
 | 38 |  S PSOREF=$P(PSORX,"^",4)
 | 
|---|
 | 39 |  S PSOPAR7=$P(PSORX,"^",7)
 | 
|---|
 | 40 |  S X=PSOPAR7_"^"_+$P(^PSRX(PSODA,0),"^",2)_"^^"_DUZ
 | 
|---|
 | 41 |  I PSOREF=0 D  I $O(X(""))="" Q
 | 
|---|
 | 42 |  . I $P($G(^PSRX(PSODA,"IB")),"^",2)>0 S X(PSODA)=$P(^PSRX(PSODA,"IB"),"^",2)_"^40"
 | 
|---|
 | 43 |  I PSOREF>0 D  I $O(X(""))="" Q
 | 
|---|
 | 44 |  . I $P($G(^PSRX(PSODA,1,PSOREF,"IB")),"^",1)>0 S X(PSODA)=$P(^PSRX(PSODA,1,PSOREF,"IB"),"^",1)_"^40"
 | 
|---|
 | 45 |  D CANCEL^IBARX
 | 
|---|
 | 46 |  I $D(Y(PSODA)),+$G(Y(PSODA))'=-1 D
 | 
|---|
 | 47 |  . S $P(^PSRX(PSODA,"IB"),"^",2)=+Y(PSODA),$P(^PSRX(PSODA,"IB"),"^",4)="" K Y(PSODA)
 | 
|---|
 | 48 |  . S PREA="C",PSOREF=0,PSOCOMM="AUTO-CANCEL IB-INITIATED CHARGE FOR 'NO COPAY' RX" D ACTLOG^PSOCPA
 | 
|---|
 | 49 |  F PSOREF=0:0 S PSOREF=$O(Y(PSOREF)) Q:PSOREF=""  Q:PSOREF>12  D
 | 
|---|
 | 50 |  . I +Y(PSOREF)'=-1,$D(^PSRX(PSODA,1,PSOREF)) S ^PSRX(PSODA,1,PSOREF,"IB")=+Y(PSOREF)
 | 
|---|
 | 51 |  . S PREA="C",PSOCOMM="AUTO-CANCEL IB-INITIATED CHARGE FOR 'NO COPAY' RX" D ACTLOG^PSOCPA
 | 
|---|
 | 52 |  Q
 | 
|---|
 | 53 |  ;
 | 
|---|
 | 54 | CHKIB ; SEE IF IB NUMBER ALREADY EXISTS AND IS A BILL OR UPDATE NUMBER (NOT A CANCEL NUMBER)
 | 
|---|
 | 55 |  N PSOIB,PSOSTAT
 | 
|---|
 | 56 |  I PSOREF=0 S PSOIB=$P($G(^PSRX(PSODA,"IB")),"^",2)
 | 
|---|
 | 57 |  I PSOREF'=0 S PSOIB=$P($G(^PSRX(PSODA,1,PSOREF,"IB")),"^",1)
 | 
|---|
 | 58 |  I PSOIB'="" D STATUS
 | 
|---|
 | 59 |  Q
 | 
|---|
 | 60 |  ;
 | 
|---|
 | 61 | STATUS ;
 | 
|---|
 | 62 |  S PSOSTAT=$$STATUS^IBARX(PSOIB)
 | 
|---|
 | 63 |  I PSOSTAT'=1,PSOSTAT'=3 Q
 | 
|---|
 | 64 |  S PSOCOMM="Copay charge(s) removed"
 | 
|---|
 | 65 |  D ACTLOG^PSOCPA
 | 
|---|
 | 66 |  Q
 | 
|---|
 | 67 |  ;
 | 
|---|