| [613] | 1 | IBNCPDP3 ;OAK/ELZ - STORES NDC/AWP UPDATES ;20-JUN-2003 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**223,276,342,363**;21-MAR-94;Build 35 | 
|---|
|  | 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | ; | 
|---|
|  | 6 | UPAWP(IBNDC,IBAWP,IBADT) ; updates AWP prices for NDCs | 
|---|
|  | 7 | ; | 
|---|
|  | 8 | N IBITEM,IBCS | 
|---|
|  | 9 | ; | 
|---|
|  | 10 | ; | 
|---|
|  | 11 | S IBCS=$P($G(^IBE(350.9,1,9)),"^",12) | 
|---|
|  | 12 | I 'IBCS Q "0^Unable to find Charge Set" | 
|---|
|  | 13 | ; | 
|---|
|  | 14 | S IBNDC=$$NDC^IBNCPDPU(IBNDC) | 
|---|
|  | 15 | ; | 
|---|
|  | 16 | S IBITEM=+$$ADDBI^IBCREF("NDC",IBNDC) I IBITEM Q "0^Unable to add item" | 
|---|
|  | 17 | ; | 
|---|
|  | 18 | I '$$ADDCI^IBCREF(IBCS,IBITEM,IBADT,IBAWP) Q "0^Unable to add charge" | 
|---|
|  | 19 | ; | 
|---|
|  | 20 | Q 1 | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | ; | 
|---|
|  | 23 | ; | 
|---|
|  | 24 | ; | 
|---|
|  | 25 | REVERSE(DFN,IBD,IBAUTO) ;process reversed claims | 
|---|
|  | 26 | N IBIFN,I,IB,IBIL,IBCHG,IBCRES,IBY,X,Y,DA,DIE,DR,IBADT,IBLOCK,IBLDT | 
|---|
|  | 27 | N IBNOW,IBDUZ,IBCR,IBRELC,IBCC,IBPAP,IBRXN,IBFIL,IBRTS,IBARES,IBUSR | 
|---|
|  | 28 | S IBDUZ=.5 | 
|---|
|  | 29 | ; | 
|---|
|  | 30 | S IBLOCK=0 | 
|---|
|  | 31 | ; find bill number | 
|---|
|  | 32 | I 'DFN S IBY="0^No patient" G REVQ | 
|---|
|  | 33 | I '$L($G(IBD("CLAIMID"))) S IBY="0^Missing ECME Number" G REVQ | 
|---|
|  | 34 | S IBADT=+$G(IBD("FILL DATE")) I 'IBADT S IBY="0^Missing Fill Date" G REVQ | 
|---|
|  | 35 | S IBRXN=+$G(IBD("PRESCRIPTION")) I 'IBRXN S IBY="0^No Rx IEN" G REVQ | 
|---|
|  | 36 | S IBFIL=+$G(IBD("FILL NUMBER"),-1) I IBFIL<0 S IBY="0^No fill number" G REVQ | 
|---|
|  | 37 | I $E($G(IBD("RESPONSE")),1)="R" D  G REVQ:+'$G(IBRTS) | 
|---|
|  | 38 | . S IBY="0^REVERSAL rejected by payer" | 
|---|
|  | 39 | . S IBRTS=$$RTS(IBD("REVERSAL REASON")) | 
|---|
|  | 40 | ; | 
|---|
|  | 41 | S IBD("BCID")=(+IBD("CLAIMID"))_";"_IBADT ; BC ID Number | 
|---|
|  | 42 | L +^DGCR(399,"AG",IBD("BCID")):15 E  S IBY="0^Cannot lock ECME number" G REVQ | 
|---|
|  | 43 | S IBLOCK=1 | 
|---|
|  | 44 | S IBUSR=$S(+$G(IBD("USER"))=0:DUZ,1:IBD("USER")) | 
|---|
|  | 45 | I $D(^DGCR(399,"AG",IBD("BCID"))) S ^(IBD("BCID"))="" | 
|---|
|  | 46 | S IBIFN=$$MATCH^IBNCPDP2(IBD("BCID")) | 
|---|
|  | 47 | I $D(IBD("CLOSE REASON")),'$D(IBD("DROP TO PAPER")) S IBD("DROP TO PAPER")="" | 
|---|
|  | 48 | S IBCR=+$G(IBD("CLOSE REASON")) | 
|---|
|  | 49 | S IBPAP=$G(IBD("DROP TO PAPER")) | 
|---|
|  | 50 | S IBRELC=$G(IBD("RELEASE COPAY")) | 
|---|
|  | 51 | S IBCC=$G(IBD("CLOSE COMMENT")) | 
|---|
|  | 52 | D NONBR^IBNCPNB(DFN,IBRXN,IBFIL,IBADT,IBCR,IBPAP,IBRELC,IBCC,IBUSR) | 
|---|
|  | 53 | I 'IBIFN S IBY="0^"_$S(IBPAP:"Dropped to paper",IBCR>1:"Set non-billable reason in CT",1:"Cannot find the bill to reverse") G REVQ | 
|---|
|  | 54 | ; | 
|---|
|  | 55 | F I=0,"S" S IB(I)=$G(^DGCR(399,IBIFN,I)) | 
|---|
|  | 56 | I IB(0)="" S IBY="0^No data in bill" G REVQ | 
|---|
|  | 57 | I +$P(IB("S"),U,16),$P(IB("S"),U,17)]"" S IBY="0^Bill already cancelled" G REVQ | 
|---|
|  | 58 | ; | 
|---|
|  | 59 | S:'$D(IBCRES) IBCRES="ECME PRESCRIPTION REVERSED" | 
|---|
|  | 60 | S DA=IBIFN,DR="16////1;19////"_IBCRES,DIE="^DGCR(399," | 
|---|
|  | 61 | D ^DIE K DA,DIE,DR | 
|---|
|  | 62 | ; | 
|---|
|  | 63 | ; - decrease out the receivable in AR | 
|---|
|  | 64 | S IB("U1")=$G(^DGCR(399,IBIFN,"U1")) | 
|---|
|  | 65 | S IBIL=$P($G(^PRCA(430,IBIFN,0)),"^") | 
|---|
|  | 66 | S IBCHG=$S(IB("U1")']"":0,$P(IB("U1"),"^",1)]"":$P(IB("U1"),"^",1),1:0) | 
|---|
|  | 67 | ; | 
|---|
|  | 68 | S X="21^"_IBCHG_"^"_IBIL_"^"_IBDUZ_"^"_DT_"^"_IBCRES | 
|---|
|  | 69 | D ^PRCASER1 | 
|---|
|  | 70 | S IBARES=Y | 
|---|
|  | 71 | I IBARES<0 S IBY=IBARES D BULL | 
|---|
|  | 72 | ; | 
|---|
|  | 73 | S IBY=$S(IBARES<0:"0^"_$P(IBARES,"^",2),1:1) | 
|---|
|  | 74 | ; | 
|---|
|  | 75 | I IBDUZ'=DUZ D  ; set the real user | 
|---|
|  | 76 | . N IBI,IBT S IBI=18,IBT(399,IBIFN_",",IBI)=IBDUZ D FILE^DIE("","IBT") | 
|---|
|  | 77 | ; | 
|---|
|  | 78 | REVQ ; perform end of job tasks | 
|---|
|  | 79 | D LOG^IBNCPDP2($S($G(IBAUTO)=1:"AUTO REVERSE",$G(IBAUTO)=2:"BILL CANCELLED",1:"REVERSE"),IBY) | 
|---|
|  | 80 | I IBLOCK L -^DGCR(399,"AG",IBD("BCID")) | 
|---|
|  | 81 | I IBY=1,$G(IBIFN) S IBY=+IBIFN | 
|---|
|  | 82 | Q IBY | 
|---|
|  | 83 | ; | 
|---|
|  | 84 | RTS(IBRR) ; Return to Stock processing on Released Rx | 
|---|
|  | 85 | ; input - IBRR = reversal reason | 
|---|
|  | 86 | ;         IBCRSN = passed in by reference | 
|---|
|  | 87 | ; output - 0 = reversal not due to a Rx RETURN TO STOCK or Rx DELETE | 
|---|
|  | 88 | ;          1 = reversal due to a Rx RETURN TO STOCK or Rx DELETE | 
|---|
|  | 89 | ;          IBCRSN = charge removal reason | 
|---|
|  | 90 | I IBRR'="RX RETURNED TO STOCK"&(IBRR'="RX DELETED") Q 0 | 
|---|
|  | 91 | N IBTRKRN,IBLOCK2,IBCMT,DA,DIE,DR | 
|---|
|  | 92 | S IBTRKRN=+$O(^IBT(356,"ARXFL",IBRXN,IBFIL,0)) | 
|---|
|  | 93 | I 'IBTRKRN Q 0  ; CT record does not exist | 
|---|
|  | 94 | I '$P($G(^IBT(356,IBTRKRN,0)),U,11) Q 0  ; BILL does not exist | 
|---|
|  | 95 | S IBCRES=$$GETRSN(DFN,IBRXN,IBFIL)  ; recorded in file 399 entry | 
|---|
|  | 96 | L +^IBT(356,IBTRKRN):5 S IBLOCK2=$T | 
|---|
|  | 97 | S DIE="^IBT(356,",DA=IBTRKRN,IBCMT="Rx RTS - May Need Refund" | 
|---|
|  | 98 | S DR="1.08////"_IBCMT | 
|---|
|  | 99 | D ^DIE | 
|---|
|  | 100 | I IBLOCK2 L -^IBT(356,IBTRKRN) | 
|---|
|  | 101 | Q 1 | 
|---|
|  | 102 | ; | 
|---|
|  | 103 | BULL ; Generate a bulletin if there is an error in cancelling the claim. | 
|---|
|  | 104 | N IBC,IBT,IBPT,IBGRP,XMDUZ,XMTEXT,XMSUB,XMY | 
|---|
|  | 105 | ; | 
|---|
|  | 106 | S IBPT=$$PT^IBEFUNC(DFN) | 
|---|
|  | 107 | S XMSUB=$E($P(IBPT,"^"),1,14)_"  "_$P(IBPT,"^",3)_" - ERROR ENCOUNTERED" | 
|---|
|  | 108 | S XMDUZ="INTEGRATED BILLING PACKAGE",XMTEXT="IBT(" | 
|---|
|  | 109 | S XMY(IBDUZ)="" | 
|---|
|  | 110 | S XMY("G.IBCNR EPHARM")="" | 
|---|
|  | 111 | ; | 
|---|
|  | 112 | S IBT(1)="An error occurred while cancelling the Pharmacy claim from ECME" | 
|---|
|  | 113 | S IBT(2)="fiscal intermediary for the following patient:" | 
|---|
|  | 114 | S IBT(3)=" " S IBC=3 | 
|---|
|  | 115 | D PAT^IBAERR1 ; Accepts IBDUZ | 
|---|
|  | 116 | S IBC=IBC+1,IBT(IBC)="   Bill #: "_IBIL | 
|---|
|  | 117 | S IBC=IBC+1,IBT(IBC)=" " | 
|---|
|  | 118 | S IBC=IBC+1,IBT(IBC)="The following error was encountered:" | 
|---|
|  | 119 | S IBC=IBC+1,IBT(IBC)=" " | 
|---|
|  | 120 | D ERR^IBAERR1 | 
|---|
|  | 121 | S IBC=IBC+1,IBT(IBC)=" " | 
|---|
|  | 122 | S IBC=IBC+1,IBT(IBC)="Please review the circumstances surrounding this error and decrease" | 
|---|
|  | 123 | S IBC=IBC+1,IBT(IBC)="out this receivable in Accounts Receivable if necessary." | 
|---|
|  | 124 | D ^XMD | 
|---|
|  | 125 | Q | 
|---|
|  | 126 | ; | 
|---|
|  | 127 | GETRSN(DFN,IBRXN,IBFIL) ; | 
|---|
|  | 128 | ; retrieve charge removal reason from file 354.71 | 
|---|
|  | 129 | ; input - DFN,IBRXN=Rx ien,IBFIL=fill number | 
|---|
|  | 130 | ; output - charge removal reason | 
|---|
|  | 131 | N IBDT,IBDA,IBXRSN,IBRXFIL,IB0 | 
|---|
|  | 132 | S (IBDT,IBDA)=0,IBXRSN="" | 
|---|
|  | 133 | S IBRXFIL=$S('IBFIL:IBRXN,1:IBRXN_";"_IBFIL) | 
|---|
|  | 134 | F  S IBDT=$O(^IBAM(354.71,"AD",DFN,IBDT)) Q:'IBDT  Q:IBXRSN]""  D | 
|---|
|  | 135 | . F  S IBDA=$O(^IBAM(354.71,"AD",DFN,IBDT,IBDA)) Q:'IBDA  Q:IBXRSN]""  D | 
|---|
|  | 136 | . . S IB0=^IBAM(354.71,IBDA,0) | 
|---|
|  | 137 | . . Q:$P(IB0,"^",6)'[IBRXFIL | 
|---|
|  | 138 | . . S IBXRSN=$$GET1^DIQ(354.71,IBDA_",",.19) | 
|---|
|  | 139 | S:IBXRSN']"" IBXRSN="CHARGE REMOVAL REASON NOT FOUND" | 
|---|
|  | 140 | Q "Reversal Rej, no pymt due<>"_IBXRSN | 
|---|
|  | 141 | ; | 
|---|
|  | 142 | ;IBNCPDP3 | 
|---|