1 | IBARXEC3 ;ALB/AAS -RX CO-PAY INCOME EXEMPTION CONVERSION ; 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 | DQ ; -- run background sweep
|
---|
6 | ;
|
---|
7 | U IO
|
---|
8 | S IBJOB=11
|
---|
9 | I $G(IBDONE)=1 G REPORT
|
---|
10 | S (IBTCNT,IBTECNT,IBTNCNT,IBTAMT,IBTEAMT,IBTNAMT,IBTCECNT,IBTCEAMT,IBTNECNT,IBTBCNT,IBTCBCNT,IBQUIT)=0
|
---|
11 | I IBARXJOB>1 S X=^IBE(350.9,1,3) D GET ; -- set variables to previous amounts
|
---|
12 | ;
|
---|
13 | ; -- Don't allow multiple conversion to run
|
---|
14 | D CHK G:IBQUIT DQEND
|
---|
15 | ;
|
---|
16 | ; -- Start with last patient processed
|
---|
17 | S DFN=+$P(^IBE(350.9,1,3),"^",4)
|
---|
18 | ;
|
---|
19 | S IBDT=$S(IBDT<$$STDATE^IBARXEU:$$STDATE^IBARXEU,1:IBDT)
|
---|
20 | F S DFN=$O(^IB("APTDT",DFN)) Q:'DFN D CHK Q:IBQUIT I $O(^IB("APTDT",DFN,(IBDT-.01)))'>IBEDT D PAT I '$D(ZTQUEUED),'(IBTCNT#10) D READ W "."
|
---|
21 | I DFN="" S IBDONE=1 D
|
---|
22 | .; --set done flag once completed
|
---|
23 | .D NOW^%DTC S $P(^IBE(350.9,1,3),"^",14)=%
|
---|
24 | .;
|
---|
25 | .D ^IBARXEC2 ;send mail message if done
|
---|
26 | .Q
|
---|
27 | ;
|
---|
28 | REPORT ; -- start the report process here
|
---|
29 | D:$G(IBDONE)=1 REPORT^IBARXEC1
|
---|
30 | DQEND D END^IBARXEC ;conversion all done
|
---|
31 | Q
|
---|
32 | ;
|
---|
33 | PAT ; -- process one patient
|
---|
34 | ;
|
---|
35 | K ^TMP($J,"IBARRY") D KVAR^VADPT
|
---|
36 | S (IBCNT,IBECNT,IBCECNT,IBNCNT,IBAMT,IBEAMT,IBCEAMT,IBNAMT,IBNECNT,IBBCNT,IBCBCNT)=0
|
---|
37 | S IBCNT=1 ;one patient checked
|
---|
38 | S IBSTAT=$$RXEXMT^IBARXEU0(DFN,DT) ;get current status
|
---|
39 | S:IBSTAT IBECNT=1 S:'IBSTAT IBNCNT=1 ; current status count
|
---|
40 | ;
|
---|
41 | ; -- must check each charge even if patient is exempt
|
---|
42 | D CANCEL^IBARXECA(DFN,IBDT,IBEDT) ;cancel IB charges for patient from beg to end
|
---|
43 | D COUNTS
|
---|
44 | D CANDT^IBARXEU4 ;see if converted on the fly
|
---|
45 | D ARCAN^IBARXEU4(DFN,IBSTAT,$P(IBCANDT,"^"),$P(IBCANDT,"^",2))
|
---|
46 | ;
|
---|
47 | PATQ Q
|
---|
48 | ;
|
---|
49 | ;
|
---|
50 | COUNTS ; -- update the counts - Variables by:
|
---|
51 | ;
|
---|
52 | ; Patient Totals Represents
|
---|
53 | ; ------- ------ ----------
|
---|
54 | ; 5 ibcnt ibtcnt = : total patient count checked
|
---|
55 | ; 6 ibecnt ibtecnt = : total exempt patients
|
---|
56 | ; 7 ibncnt ibtncnt = : total non-exempt patients
|
---|
57 | ; 8 ibcecnt ibtcecnt = : total count of exempt charges (rx's)
|
---|
58 | ; 9 ibamt ibtamt = : total dollar amount checked
|
---|
59 | ; 10 ibeamt ibteamt = : total exempt dollar amount
|
---|
60 | ; 11 ibnamt ibtnamt = : total non-exempt dollar amount
|
---|
61 | ; 12 ibceamt ibtceamt = : total cancelled charges amount
|
---|
62 | ; 15 ibnecnt ibtnecnt = : total non-exempt count
|
---|
63 | ; 16 ibbcnt ibtbcnt = : total bills checked
|
---|
64 | ; 17 ibcbcnt ibtcbcnt = : total number of cancelled bills
|
---|
65 | ;
|
---|
66 | S IBTCNT=IBTCNT+IBCNT
|
---|
67 | S IBTECNT=IBTECNT+IBECNT
|
---|
68 | S IBTNCNT=IBTNCNT+IBNCNT
|
---|
69 | S IBTCECNT=IBTCECNT+IBCECNT
|
---|
70 | S IBTAMT=IBTAMT+IBAMT
|
---|
71 | S IBTEAMT=IBTEAMT+IBEAMT
|
---|
72 | S IBTNAMT=IBTNAMT+IBNAMT
|
---|
73 | S IBTCEAMT=IBTCEAMT+IBCEAMT
|
---|
74 | S IBTNECNT=IBTNECNT+IBNECNT
|
---|
75 | S IBTBCNT=IBTBCNT+IBBCNT
|
---|
76 | S IBTCBCNT=IBTCBCNT+IBCBCNT
|
---|
77 | Q:'$D(IBCONVER)
|
---|
78 | ;
|
---|
79 | ; -- set run paramters for conversion
|
---|
80 | S $P(^IBE(350.9,1,3),"^",4,12)=DFN_U_IBTCNT_U_IBTECNT_U_IBTNCNT_U_IBTCECNT_U_IBTAMT_U_IBTEAMT_U_IBTNAMT_U_IBTCEAMT,$P(^(3),"^",15,17)=IBTNECNT_U_IBTBCNT_U_IBTCBCNT
|
---|
81 | Q
|
---|
82 | ;
|
---|
83 | CHK ; -- Don't allow multiple conversion to run
|
---|
84 | I IBARXJOB'=$P(^IBE(350.9,1,3),"^",3) W !!,"The Integrated Billing Check of Pharmacy Copay Exemption due to Income",!,"was terminated. Appears to be already running!" S IBQUIT=1
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | READ ; -- pause, check for an excape
|
---|
88 | N X,IBSHOW F R X:1 Q:'$T I X["^" D:'$D(IBSHOW) QUIC^IBARXEC1 S IBSHOW=""
|
---|
89 | Q
|
---|
90 | ;
|
---|
91 | GET ; -- set initialization variable if restarting
|
---|
92 | S IBTCNT=$P(X,"^",5)
|
---|
93 | S IBTECNT=$P(X,"^",6)
|
---|
94 | S IBTNCNT=$P(X,"^",7)
|
---|
95 | S IBTCECNT=$P(X,"^",8)
|
---|
96 | S IBTAMT=$P(X,"^",9)
|
---|
97 | S IBTEAMT=$P(X,"^",10)
|
---|
98 | S IBTNAMT=$P(X,"^",11)
|
---|
99 | S IBTCEAMT=$P(X,"^",12)
|
---|
100 | S IBTNECNT=$P(X,"^",15)
|
---|
101 | S IBTBCNT=$P(X,"^",16)
|
---|
102 | S IBTCBCNT=$P(X,"^",17)
|
---|
103 | Q
|
---|