1 | IBAMTED1 ;ALB/AAS - MEANS TEST EVENT DRIVER - EXEMPTION PROCESSING ; 18-DEC-92
|
---|
2 | ;;2.0;INTEGRATED BILLING;**15,112,153**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | EN N IBAD,IBADDE,IBADD,IBDT,IBEXREA,IBAUTO,IBAX,IBAX1,IBOLDAUT,IBWHER,IBEXERR,IBJOB,IBON
|
---|
6 | N IBAFY,IBATYP,IBBDT,IBCANDT,IBCHRG,IBCODA,IBCODP,IBCRES,IBDEPEN,IBFAC,IBIL,IBL,IBAST,IBLDT,IBN,IBND,IBNN,IBNOW,IBPARNT,IBPARNT1,IBSEQNO,IBSITE,IBUNIT
|
---|
7 | N DA,DR,DIC,DIE,I,J,X,Y,X1
|
---|
8 | ;
|
---|
9 | S IBON=$$ON^IBARXEU0 I IBON<1 G ENQ
|
---|
10 | S IBJOB=12,IBWHER=13
|
---|
11 | ;
|
---|
12 | ; -- quit if nothing different (except completion date)
|
---|
13 | Q:'$D(DGMTA)!('$D(DGMTP))
|
---|
14 | I $P(DGMTA,"^",1,5)=$P(DGMTP,"^",1,5),$P(DGMTA,"^",10,20)=$P(DGMTP,"^",10,20) Q
|
---|
15 | I DGMTA]"",DGMTP]"",DGMTACT="DEL" Q ; IVM 'delete' transmission
|
---|
16 | ;
|
---|
17 | ; -- quit if invoked from ib=>mt=>ib
|
---|
18 | Q:$D(IBEVT)
|
---|
19 | ;
|
---|
20 | ; -- quit if before start date
|
---|
21 | I +DGMTA G ENQ:+$$PLUS^IBARXEU0(+DGMTA)<$$STDATE^IBARXEU
|
---|
22 | I +DGMTP G ENQ:+$$PLUS^IBARXEU0(+DGMTP)<$$STDATE^IBARXEU
|
---|
23 | ;
|
---|
24 | ;
|
---|
25 | I '$D(ZTQUEUED),$D(IBTALK) W !,"Determining Medication Co-Payment Exemption"
|
---|
26 | ;
|
---|
27 | ; -- if no patient add patient
|
---|
28 | I '+$G(^IBA(354,DFN,0)) D ADDP^IBAUTL6 I $G(IBEXERR) G ENQ
|
---|
29 | ;
|
---|
30 | D AUTO I IBAUTO'="" G ENQ
|
---|
31 | ;
|
---|
32 | ; -- not auto exempt any more see if is more current auto status
|
---|
33 | S X=$$LSTAC^IBARXEU0(DFN) I $L(+X)=2,$P(X,"^",2)>+DGMTA S IBOLDAUT=$P(X,"^",2)
|
---|
34 | ; -- if mean test is required or no longer required
|
---|
35 | ; or copay test is incomplete or no longer applicable
|
---|
36 | ; add exemption of no income data
|
---|
37 | S X=$P(DGMTA,"^",3) I X=1!(X=3)!(X=10)!(X=9)!($P(DGMTA,"^",14)) D AEX G ENQ
|
---|
38 | ;
|
---|
39 | I "^ADD^DEL^EDT^ADJ^STA^CAT^COM^UPL^DUP^"[DGMTACT D @DGMTACT
|
---|
40 | ;
|
---|
41 | ENQ ; -- exit copay exemption creation
|
---|
42 | I $G(IBEXERR) D ^IBAERR
|
---|
43 | I $D(IBADDE),$D(IBTALK) W !!,"Medication Copayment Exemption Status Updated: ",$P(^IBE(354.2,+IBADDE,0),"^")," ",$$DAT1^IBOUTL($P(IBADDE,"^",2))
|
---|
44 | Q
|
---|
45 | ;
|
---|
46 | ADD ; -- adding a new test
|
---|
47 | I DGMTACT="ADD" D AEX
|
---|
48 | ;
|
---|
49 | ADDQ Q
|
---|
50 | ;
|
---|
51 | AEX ; -- add exemption logic
|
---|
52 | ; DO NOT USER FOR AUTOMATICS
|
---|
53 | ;
|
---|
54 | S IBEXREA=""
|
---|
55 | ;
|
---|
56 | ; -- if means test required, no longer required,
|
---|
57 | ; or copay test incomplete or no longer applicable
|
---|
58 | ; set up no income data exemption if not automatic.
|
---|
59 | ;
|
---|
60 | S X=$P(DGMTA,"^",3) I X=1!(X=3)!(X=10)!(X=9)!($P(DGMTA,"^",14)) S IBEXREA=$O(^IBE(354.2,"ACODE",$S($P(DGMTA,"^",14):110,1:210),0))
|
---|
61 | ;
|
---|
62 | ;
|
---|
63 | I $$NETW^IBARXEU1,'IBEXREA S IBEXREA=+$$MTCOMP^IBARXEU5($$INCDT^IBARXEU1(DGMTA),DGMTA)
|
---|
64 | I '$$NETW^IBARXEU1,'IBEXREA S IBEXREA=+$P($$INCDT^IBARXEU1(DGMTA),"^",3)
|
---|
65 | ;
|
---|
66 | ; -- make sure more recent exemption than current test date is inactivetd
|
---|
67 | D MOSTR^IBARXEU5(+DGMTA,+IBEXREA)
|
---|
68 | D ADDEX^IBAUTL6(+IBEXREA,+DGMTA,1,1,$G(IBOLDAUT))
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | UPL ; -- uploading an IVM-verified means test
|
---|
72 | DUP ; -- deleting an IVM-verified means test
|
---|
73 | EDT ; -- editing an old means test
|
---|
74 | ; if data different attempt to add new test
|
---|
75 | I DGMTA=DGMTP G EDITQ
|
---|
76 | D AEX
|
---|
77 | EDITQ Q
|
---|
78 | ;
|
---|
79 | DEL ; -- means test deleted
|
---|
80 | ; find exemption for date and inactivate
|
---|
81 | ; update current exemption status
|
---|
82 | ;
|
---|
83 | N IBFORCE
|
---|
84 | Q:'$D(^IBA(354.1,"AIVDT",1,DFN,-DGMTP))
|
---|
85 | S IBFORCE=+DGMTP ; force inactivate entries for deleted date
|
---|
86 | ;
|
---|
87 | S IBEXREA=$$STATUS^IBARXEU1(DFN,+DGMTP),IBSTAT=$P($G(^IBE(354.2,+IBEXREA,0)),"^",4)
|
---|
88 | ;
|
---|
89 | ; -- cancel prior exemption with a no data exemption if last date older than 1 year
|
---|
90 | I $$PLUS^IBARXEU0($P(IBEXREA,"^",2))<DT D ADDEX^IBAUTL6(+$O(^IBE(354.2,"ACODE",210,0)),+DGMTP) G DELQ
|
---|
91 | ;
|
---|
92 | ; -- add correct exemption and update current status
|
---|
93 | D ADDEX^IBAUTL6(+IBEXREA,+$P(IBEXREA,"^",2))
|
---|
94 | DELQ Q
|
---|
95 | ;
|
---|
96 | COM ; -- complete a required means test
|
---|
97 | CAT ; -- category change
|
---|
98 | STA ; -- status change
|
---|
99 | ADJ ; -- means test adjudication
|
---|
100 | ;
|
---|
101 | S IBAX1=$$CODE(DGMTP),IBAX=$$CODE(DGMTA)
|
---|
102 | ;
|
---|
103 | I $$NETW^IBARXEU1,IBAX1="P",IBAX'="P" D G ADJQ ;treat as an adjudication
|
---|
104 | .I $P(DGMTA,"^",19)=1 S IBEXREA=$S(IBAX="C":140,IBAX="A":150,1:"") ; means test codes
|
---|
105 | .I $P(DGMTA,"^",19)=2 S IBEXREA=$S(IBAX="N":140,IBAX="E":150,1:"") ; copay exemption test
|
---|
106 | .S IBEXREA=$O(^IBE(354.2,"ACODE",+IBEXREA,0))
|
---|
107 | .Q:'$G(IBEXREA)
|
---|
108 | .D ADDEX^IBAUTL6(IBEXREA,+DGMTA,1,1)
|
---|
109 | .Q
|
---|
110 | ;
|
---|
111 | ;I $P(DGMTA,"^",19)=1,IBAX1="C",IBAX="A" D ADDEX^IBAUTL6($O(^IBE(354.2,"ACODE",2010,0)),+DGMTA) G ADJQ ;is a means test hardship
|
---|
112 | ;
|
---|
113 | I $P(DGMTA,"^",19)=2,IBAX1="N",IBAX="E" D ADDEX^IBAUTL6($O(^IBE(354.2,"ACODE",2010,0)),+DGMTA) G ADJQ ;is income test hardship
|
---|
114 | ;
|
---|
115 | D AEX
|
---|
116 | ;
|
---|
117 | ADJQ Q
|
---|
118 | ;
|
---|
119 | CODE(TEST) ; -- return means test status
|
---|
120 | I '$G(TEST) S TEST=""
|
---|
121 | Q $P($G(^DG(408.32,+$P(TEST,"^",3),0)),"^",2)
|
---|
122 | ;
|
---|
123 | AUTO ; -- if auto status patient
|
---|
124 | ; add auto exemption if needed
|
---|
125 | S IBDT=$S(+DGMTA:+DGMTA,+DGMTP:+DGMTP,1:"")
|
---|
126 | S IBAUTO=$$AUTOST^IBARXEU1(DFN,IBDT) I IBAUTO'="" D G AUTOQ
|
---|
127 | .S X=$$RXST^IBARXEU(DFN,IBDT)
|
---|
128 | .I X=""!($$PLUS^IBARXEU0($P(X,"^",5))<DT) S IBAD=1 D ADDEX^IBAUTL6(+IBAUTO,DT) Q ; add exemption if none or old
|
---|
129 | .I $P(X,"^",3)'=$P($G(^IBE(354.2,+IBAUTO,0)),"^",5) S IBAD=1 D ADDEX^IBAUTL6(+IBAUTO,IBDT) Q ; if computes different add new exemption
|
---|
130 | ;
|
---|
131 | AUTOQ Q
|
---|