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
|
---|