[613] | 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
|
---|