[613] | 1 | IBARXECA ;ALB/AAS -RX CO-PAY INCOME EXEMPTION CANCEL OLD BILLS ; 2-NOV-92
|
---|
| 2 | ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | % ; -- count variables
|
---|
| 6 | ; Patient Totals Represents
|
---|
| 7 | ; ------- ------ ----------
|
---|
| 8 | ; 5 ibcnt ibtcnt = : total patient count checked
|
---|
| 9 | ; 6 ibecnt ibtecnt = : total exempt patients
|
---|
| 10 | ; 7 ibncnt ibtncnt = : total non-exempt patients
|
---|
| 11 | ; 8 ibcecnt ibtcecnt = : total count of exempt charges (rx's)
|
---|
| 12 | ; 9 ibamt ibtamt = : total dollar amount checked
|
---|
| 13 | ; 10 ibeamt ibteamt = : total exempt dollar amount
|
---|
| 14 | ; 11 ibnamt ibtnamt = : total non-exempt dollar amount
|
---|
| 15 | ; 12 ibceamt ibtceamt = : total cancelled charges amount
|
---|
| 16 | ; 15 ibnecnt ibtnecnt = : total non-exempt count
|
---|
| 17 | ; 16 ibbcnt ibtbcnt = : total bills checked
|
---|
| 18 | ; 17 ibcbcnt ibtcbcnt = : total number of cancelled bills
|
---|
| 19 | ;
|
---|
| 20 | CANCEL(DFN,IBDT,IBEDT) ; -- cancel all charges for a patient for a date range
|
---|
| 21 | ; do not pass to ar as its done, call all at once later.
|
---|
| 22 | ;
|
---|
| 23 | D ARPARM^IBAUTL
|
---|
| 24 | S IBBDT=IBDT-.00001
|
---|
| 25 | F S IBBDT=$O(^IB("APTDT",DFN,IBBDT)) Q:'IBBDT!((IBEDT+.9)<IBBDT) S IBN=0 F S IBN=$O(^IB("APTDT",DFN,IBBDT,IBN)) Q:'IBN D BILL
|
---|
| 26 | ;
|
---|
| 27 | Q
|
---|
| 28 | ;
|
---|
| 29 | BILL ; -- process cancelling one bill
|
---|
| 30 | S X=$G(^IB(IBN,0)) Q:X=""
|
---|
| 31 | Q:+$P(X,"^",4)'=52 ;quit if not pharmacy co-pay
|
---|
| 32 | ; find parent
|
---|
| 33 | S IBPARNT=$P(X,"^",9) Q:$D(^TMP($J,"IBARRY",DFN,IBPARNT)) ;don't keep checking modifications to charge already checked
|
---|
| 34 | ;
|
---|
| 35 | S ^TMP($J,"IBARRY",DFN,IBPARNT)=""
|
---|
| 36 | S IBPARDT=$P($G(^IB(IBPARNT,1)),"^",2) ; get date of parent charge
|
---|
| 37 | I $S(IBPARDT="":1,IBPARDT<IBDT:1,IBPARDT>IBEDT:1,1:0) ; ignore charges started before or after date range
|
---|
| 38 | ;
|
---|
| 39 | ; -- get exemption status on date of charge
|
---|
| 40 | ; (NOT NECESSARY, conversion will use only current exemption
|
---|
| 41 | ;S IBSTAT=$$RXEXMT^IBARXEU0(DFN,IBPARDT)
|
---|
| 42 | ;
|
---|
| 43 | ; -- get must recent ibaction
|
---|
| 44 | S IBPARNT1=IBPARNT F S IBPARNT1=$P($G(^IB(IBPARNT,0)),"^",9) Q:IBPARNT1=IBPARNT S IBPARNT=IBPARNT1 ;gets parent of parents, makes sure old bug where parents get lost isn't a problem
|
---|
| 45 | D LAST
|
---|
| 46 | ;
|
---|
| 47 | ; -- add charge amounts to corrct variable
|
---|
| 48 | S IBND=$G(^IB(IBLAST,0)),IBBCNT=IBBCNT+1,IBAMT=IBAMT+$P(IBND,"^",7)
|
---|
| 49 | S:IBSTAT IBCECNT=IBCECNT+1,IBEAMT=IBEAMT+$P(IBND,"^",7)
|
---|
| 50 | S:'IBSTAT IBNECNT=IBNECNT+1,IBNAMT=IBNAMT+$P(IBND,"^",7)
|
---|
| 51 | ;
|
---|
| 52 | Q:'IBSTAT ;quit if non-exempt
|
---|
| 53 | Q:$P(^IBE(350.1,$P(^IB(IBLAST,0),"^",3),0),"^",5)=2 ;quit if already cancelled
|
---|
| 54 | ;
|
---|
| 55 | ; -- add cancellation charge for amount
|
---|
| 56 | S IBCEAMT=IBCEAMT+$P(IBND,"^",7),IBCBCNT=IBCBCNT+1 ;counts of amount of actual cancellations
|
---|
| 57 | S IBCRES=$O(^IBE(350.3,"B","RX COPAY INCOME EXEMPTION",0)) ; get cancellation reason
|
---|
| 58 | ;
|
---|
| 59 | D CANRX^IBARXEU3
|
---|
| 60 | Q
|
---|
| 61 | ;
|
---|
| 62 | END ;K VARIABLES
|
---|
| 63 | Q
|
---|
| 64 | ;
|
---|
| 65 | LAST ; -- find most recent (the last) entry for a parent action
|
---|
| 66 | S IBLAST=""
|
---|
| 67 | S IBLDT=$O(^IB("APDT",IBPARNT,"")) I +IBLDT F IBL=0:0 S IBL=$O(^IB("APDT",IBPARNT,IBLDT,IBL)) Q:'IBL S IBLAST=IBL
|
---|
| 68 | I IBLAST="" S IBLAST=IBPARNT
|
---|
| 69 | Q
|
---|