[613] | 1 | IBECUS3 ;RLM/DVAMC - CANCEL TRICARE PHARMACY TRANSACTION ; 14-AUG-96
|
---|
| 2 | ;;2.0;INTEGRATED BILLING;**52,89,240**;21-MAR-94
|
---|
| 3 | ;
|
---|
| 4 | EN ; Transmit a cancellation transaction.
|
---|
| 5 | ; Input: IBKEY -- 1 ; 2, where
|
---|
| 6 | ; 1 = Pointer to the prescription in file #52
|
---|
| 7 | ; 2 = Pointer to the refill in file #52.1, or
|
---|
| 8 | ; 0 for the original fill
|
---|
| 9 | ; IBKEYD -- 1 ^ 2 ^ 3 ^ 4, where
|
---|
| 10 | ; 1 = Rx label printing device
|
---|
| 11 | ; 2 = Pointer to the Pharmacy in file #59
|
---|
| 12 | ; 3 = Pointer to the Pharmacy user in file #200
|
---|
| 13 | ; 4 = Pointer to the billing transaction
|
---|
| 14 | ; in file #351.5 (cancellations only)
|
---|
| 15 | ;
|
---|
| 16 | ; - bleed off queue
|
---|
| 17 | F R *IBI:0 Q:IBI=-1
|
---|
| 18 | ;
|
---|
| 19 | ; - get rx data; make sure there is an NDC
|
---|
| 20 | K IBDRX,IBERR
|
---|
| 21 | I $$TRANS^PSOCPTRI(+IBKEY,+$P(IBKEY,";",2),.IBDRX)<0 S IBERR=1 G ENQ
|
---|
| 22 | ;
|
---|
| 23 | ; - must be a billing transaction for the cancellation
|
---|
| 24 | S IBCHTRN=+$P(IBKEYD,"^",4)
|
---|
| 25 | S IBCHTRND=$G(^IBA(351.5,IBCHTRN,0))
|
---|
| 26 | I 'IBCHTRND S IBERR=8 G ENQ
|
---|
| 27 | S DFN=+$P(IBCHTRND,"^",2)
|
---|
| 28 | I 'DFN S IBERR=4 G ENQ
|
---|
| 29 | ;
|
---|
| 30 | ; - is patient covered by TRICARE?
|
---|
| 31 | S IBCDFN=$$CUS^IBACUS(DFN,DT)
|
---|
| 32 | I 'IBCDFN S IBERR=2 G ENQ
|
---|
| 33 | ;
|
---|
| 34 | ; - get the BIN Number for the insurance company
|
---|
| 35 | S IBCDFND=$G(^DPT(DFN,.312,IBCDFN,0))
|
---|
| 36 | S IBBIN=$P($G(^DIC(36,+IBCDFND,3)),"^",3)
|
---|
| 37 | I $L(IBBIN)'=6 S IBERR=5 G ENQ
|
---|
| 38 | ;
|
---|
| 39 | ; - build transmission:
|
---|
| 40 | ; o pharmacy division
|
---|
| 41 | ; o FI identifier (bin number)
|
---|
| 42 | ; o commercial software package version (32)
|
---|
| 43 | ; o cancellation transaction code (11)
|
---|
| 44 | ; o control # (currently 10 spaces)
|
---|
| 45 | ; o pharmacy # (currently 12 spaces)
|
---|
| 46 | ; o rx fill date
|
---|
| 47 | ; o prescription number
|
---|
| 48 | ;
|
---|
| 49 | ; (pharmacy number [abp] ??)
|
---|
| 50 | ; S JADNUM=$S($P(JADPSRX(2),"^",9)=1:7745017,1:7745029),JADLEN=12 D LJUST^JADNC S JADNABP=JADNUM
|
---|
| 51 | ;
|
---|
| 52 | S IBLINE(1)=$$FILL^IBECUS2(IBDRX("DIV"),2)_IBBIN_"3211"_$J("",10)_$J("",12)
|
---|
| 53 | S IBLINE(1)=IBLINE(1)_$$DATE^IBECUS2(IBDRX("FDT"))
|
---|
| 54 | S IBLINE(1)=IBLINE(1)_$$FILL^IBECUS2(IBDRX("RX#"),7)
|
---|
| 55 | ;
|
---|
| 56 | ; - transmit
|
---|
| 57 | W IBLINE(1),!
|
---|
| 58 | ;
|
---|
| 59 | ; - receive
|
---|
| 60 | R IBRESP(1)#100:120 I '$L(IBRESP(1)) S IBERR=6 G ENQ
|
---|
| 61 | ;
|
---|
| 62 | ; - handle errors
|
---|
| 63 | I $E(IBRESP(1),1,3) D ERROR^IBECUS22 G ENQ
|
---|
| 64 | ;
|
---|
| 65 | ; - handle rejects
|
---|
| 66 | S IBRESP(1)=$E(IBRESP(1),3,999)
|
---|
| 67 | I $E(IBRESP(1),5)="R" D REJECT G ENQ
|
---|
| 68 | ;
|
---|
| 69 | ; - update cancellation auth number and user
|
---|
| 70 | S ^IBA(351.5,IBCHTRN,6)=$E(IBRESP(1),6,19)_"^"_+$P(IBKEYD,"^",3)
|
---|
| 71 | K ^IBA(351.5,"APOST",IBKEY)
|
---|
| 72 | ;
|
---|
| 73 | ; - Queue task to cancel charges
|
---|
| 74 | D TASK^IBECUS2("RXCAN;Rx Cancellation")
|
---|
| 75 | ;
|
---|
| 76 | ENQ I $G(IBERR) D ERROR^IBECUS22
|
---|
| 77 | Q
|
---|
| 78 | ;
|
---|
| 79 | ;
|
---|
| 80 | REJECT ; Send alert for a reject.
|
---|
| 81 | S IBREJ=""
|
---|
| 82 | F IBRJ=8:2 S IBRJA=$E(IBRESP(1),IBRJ,IBRJ+1) Q:IBRJA=" "!(IBRJA="") D
|
---|
| 83 | .S IBERRP=$$ERRIEN^IBECUS22("UNIVERSAL",IBRJA)
|
---|
| 84 | .I IBERRP S IBREJ=IBREJ_","_IBERRP
|
---|
| 85 | S IBREJ=$E(IBREJ,2,999)
|
---|
| 86 | ;
|
---|
| 87 | S XQA("G.IB CHAMP RX REJ")="",XQA(+$P(IBKEYD,"^",3))=""
|
---|
| 88 | S XQAMSG="Reversal for prescription #"_IBDRX("RX#")_" rejected for reason #"_IBREJ
|
---|
| 89 | S XQADATA=IBDRX("RX#")_"^"_IBREJ_"^"_DFN,XQAROU="DISP^IBECUS22"
|
---|
| 90 | D SETUP^XQALERT
|
---|
| 91 | ;
|
---|
| 92 | ; - update transaction file with reject codes
|
---|
| 93 | S $P(^IBA(351.5,IBCHTRN,6),"^",3)=IBREJ
|
---|
| 94 | ;
|
---|
| 95 | K IBERRP,IBREJ,IBRJ,IBRJA
|
---|
| 96 | Q
|
---|