1 | EASECCAL ;ALB/LBD - Calculate LTC copayment ;27 AUG 2001
|
---|
2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**5,7,19,34,39,40**;Mar 15, 2001
|
---|
3 | ;
|
---|
4 | ; Input -- DFN Patient IEN
|
---|
5 | ; MNTH Last day of month for the LTC copay calculation
|
---|
6 | ; in FM format (e.g. 3020131)
|
---|
7 | ; LOS (Length of stay) The number of days in the patient's
|
---|
8 | ; LTC episode
|
---|
9 | ; Output -- COPAY String containing copayment calculation
|
---|
10 | ; = 0: no completed LTC copay test on file
|
---|
11 | ; piece 1: LTC copay test status
|
---|
12 | ; (1=Exempt; 2=Non-Exempt)
|
---|
13 | ; 2: If Exempt, Reason for Exemption
|
---|
14 | ; (IEN to file #714.1)
|
---|
15 | ; 3: Calculated LTC copayment for IP
|
---|
16 | ; (1-180 days)
|
---|
17 | ; 4: Calculated LTC copayment for IP
|
---|
18 | ; (181+ days)
|
---|
19 | ; 5: Calculated LTC copayment for OP
|
---|
20 | ;
|
---|
21 | COPAY(DFN,MNTH,LOS) ;
|
---|
22 | N COPAY,DAYS,MX,IPDR,OPDR,IPMAX,OPMAX,LST,DGMT,DGMTI,DGMTDT,DGSTA,DGEXR
|
---|
23 | N ERR,X1,X2,INC,EXP,AST,ALLOW,DGSP,SRIC
|
---|
24 | S COPAY=0
|
---|
25 | I 'DFN!('MNTH) G Q
|
---|
26 | S LOS=+$G(LOS),DAYS=$E(MNTH,6,7)
|
---|
27 | ; Get maximum daily rate for LTC copayments
|
---|
28 | ; DBIA #3717
|
---|
29 | S MX=$$MAXRATE^IBAECU(MNTH),OPDR=$P(MX,U),IPDR=$P(MX,U,2) I 'OPDR!('IPDR) G Q
|
---|
30 | ; Calculate maximum copayment for the month
|
---|
31 | S OPMAX=DAYS*OPDR,IPMAX=DAYS*IPDR
|
---|
32 | ; Get last completed LTC copay test
|
---|
33 | S LST=$$LST^EASECU(DFN,MNTH,3) I +LST=0 G Q
|
---|
34 | S DGMTI=$P(LST,U),DGMT(0)=$G(^DGMT(408.31,DGMTI,0)) I 'DGMT(0) G Q
|
---|
35 | S DGMTDT=+DGMT(0),DGSTA=$P($G(^DG(408.32,+$P(DGMT(0),U,3),0)),U,1)
|
---|
36 | S DGEXR=$P($G(^DGMT(408.31,DGMTI,2)),U,7)
|
---|
37 | ; If LTC copay test status is neither NON-EXEMPT nor EXEMPT, quit
|
---|
38 | I DGSTA'="NON-EXEMPT",DGSTA'="EXEMPT" G Q
|
---|
39 | ; If LTC copay test is more than a year old and the veteran does
|
---|
40 | ; not have an exemption for eligibility (Compensable SC) or LTC
|
---|
41 | ; before 11/30/99, quit (Added for LTC Phase III - EAS*1*34)
|
---|
42 | ;S X1=MNTH,X2=DGMTDT D ^%DTC I X>365,"^1^4^"'[(U_DGEXR_U) G Q
|
---|
43 | S COPAY=$S(DGSTA="EXEMPT":1,1:2)_U
|
---|
44 | ; If test status = 'EXEMPT', get Reason for Exemption
|
---|
45 | I DGSTA="EXEMPT" S COPAY=COPAY_DGEXR
|
---|
46 | ; If veteran declined to give financial info, copay = max monthly copay
|
---|
47 | I $P(DGMT(0),U,14) S COPAY=COPAY_U_IPMAX_U_IPMAX_U_OPMAX G Q
|
---|
48 | ; Get total income, assets and expenses for veteran (and spouse)
|
---|
49 | D FINTOT I $G(ERR) D G Q
|
---|
50 | .I +COPAY=1 Q
|
---|
51 | .;no financial data but veteran agreed to pay copayments, copay = max
|
---|
52 | .I $P(DGMT(0),U,11) S COPAY=COPAY_U_IPMAX_U_IPMAX_U_OPMAX Q
|
---|
53 | .S COPAY=0
|
---|
54 | ; Calculate copayments
|
---|
55 | D CALC
|
---|
56 | Q ; Quit and return COPAY
|
---|
57 | Q COPAY
|
---|
58 | ;
|
---|
59 | FINTOT ; Get total income, assets and expenses for veteran (and spouse)
|
---|
60 | N DGDC,DGDEP,DGDET,DGERR,DGIN0,DGIN1,DGIN2,DGINI,DGINT,DGINTF,DGIRI
|
---|
61 | N DGNC,DGND,DGNWT,DGNWTF,DGPRI,DGVINI,DGVIR0,DGVIRI
|
---|
62 | S ERR=0
|
---|
63 | S DGPRI=$O(^DGPR(408.12,"C",DFN_";DPT(",0)) I 'DGPRI S ERR=1 Q
|
---|
64 | D GETIENS^EASECU2(DFN,DGPRI,DGMTDT) I '$G(DGIRI),'$G(DGINI) S ERR=1 Q
|
---|
65 | S DGVIRI=DGIRI,DGVINI=DGINI
|
---|
66 | D DEP^EASECSU3
|
---|
67 | D INC^EASECSU3
|
---|
68 | I DGINT=0,DGDET=0,DGNWT=0 S ERR=1 Q
|
---|
69 | ; Does spouse reside in community?
|
---|
70 | S SRIC=$P(DGVIR0,U,16)
|
---|
71 | ; Divide income and expense totals by 12 to get monthly amounts
|
---|
72 | S INC=DGINT/12,EXP=DGDET/12,AST=DGNWT
|
---|
73 | ; Calculate total monthly allowance:
|
---|
74 | ; 20*number of days in month*(veteran+spouse(if married and spouse
|
---|
75 | ; resides in the community))
|
---|
76 | S ALLOW=20*DAYS*(1+SRIC)
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | CALC ; Calculate copayments
|
---|
80 | N CCPY,OPCPY,IPCPY1,IPCPY2,TINC,TEXP,TAST,OVR180,IPRPT,CPYFLG,EASADM
|
---|
81 | ; Calculation for IP services up to 180 days and OP services:
|
---|
82 | ; Income-Allowance-Expenses
|
---|
83 | S CCPY=INC-ALLOW-EXP
|
---|
84 | S (OPCPY,IPCPY1)=$S(CCPY>0:(CCPY+.5)\1,1:0)
|
---|
85 | ; Calculation for IP services 181+ days, add in assets
|
---|
86 | S IPCPY2=0 I LOS>180 D
|
---|
87 | . S TEXP=0 I DGSP,SRIC S TEXP=TEXP+EXP
|
---|
88 | . S TINC=INC,TAST=AST,(OVR180,IPRPT)=1,CPYFLG=0
|
---|
89 | . S EASADM=$$FMADD^XLFDT(MNTH,-LOS)
|
---|
90 | . ; Get value of assets after spenddown is applied
|
---|
91 | . S TAST=$$ASSET^EASECPC1
|
---|
92 | . S CCPY=CCPY+TAST
|
---|
93 | . ;If veteran is single or spouse does not reside in the community,
|
---|
94 | . ;add expenses back in
|
---|
95 | . I 'DGSP!('SRIC) S CCPY=CCPY+EXP
|
---|
96 | . S IPCPY2=(CCPY+.5)\1 I IPCPY2<0 S IPCPY2=0
|
---|
97 | S COPAY=COPAY_U_IPCPY1_U_IPCPY2_U_OPCPY
|
---|
98 | Q
|
---|