[613] | 1 | EASECPC1 ;ALB/LBD,CKN - LTC CoPayment Report continuation ; 6-FEB-2002
|
---|
| 2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**7,24,40**;Mar 15, 2001
|
---|
| 3 | ;
|
---|
| 4 | ; This routine is a continuation of EASECPC.
|
---|
| 5 | ;
|
---|
| 6 | ; Input: DFN - Patient file IEN
|
---|
| 7 | ; DGMTI - LTC Copay Test IEN (file #408.31)
|
---|
| 8 | ; DGMTDT - LTC Copay Test Date
|
---|
| 9 | ; MAXRT - Maximum daily copay rates for LTC (OP^IP)
|
---|
| 10 | ; EASRPT - Report type: 1=Institutional (IP)
|
---|
| 11 | ; 2=Non-Institutional (OP)
|
---|
| 12 | ; EASRDT - Report start date
|
---|
| 13 | ; EASADM - LTC admission date (only if EASRPT=1)
|
---|
| 14 | ;
|
---|
| 15 | START ; Generate Report
|
---|
| 16 | N ARRY,IPRPT,DGSP,SRIC,LSEP,DECINF,AGRPAY,ERR
|
---|
| 17 | I $G(ZTSK) S ZTREQ="@"
|
---|
| 18 | D INIT(EASRDT,.ARRY)
|
---|
| 19 | D BLDTBL(.ARRY) Q:$G(ERR)
|
---|
| 20 | D PRINT
|
---|
| 21 | Q
|
---|
| 22 | PRINT ; Print the Report
|
---|
| 23 | N CRT,PAGE,RPTDT,LINE,HDR,CALC1,CALC2,SIDX,EIDX,MNTH,NAME,SSN,DOB,LOS
|
---|
| 24 | D PRTVAR
|
---|
| 25 | U IO
|
---|
| 26 | D HEADER
|
---|
| 27 | W !,$S(DGSP:"MARRIED",LSEP:"LEGALLY SEPARATED",1:"SINGLE")
|
---|
| 28 | W:SRIC ?15,"SPOUSE RESIDING IN THE COMMUNITY"
|
---|
| 29 | I DECINF,AGRPAY W !,"*** DECLINED TO PROVIDE INCOME INFORMATION -- AGREED TO PAY COPAYMENTS ***"
|
---|
| 30 | I AGRPAY=0 W !,"*** VETERAN IS INELIGIBLE FOR LTC SERVICES -- REFUSED TO SIGN 10-10EC ***"
|
---|
| 31 | W !,"LTC COPAY TEST DATE: ",$$FMTE^XLFDT(DGMTDT)
|
---|
| 32 | W:$G(EASADM) ?47,"LTC ADMISSION DATE: ",$$FMTE^XLFDT(EASADM)
|
---|
| 33 | W !!!,"LTC COPAYMENT CALCULATION"_$S(IPRPT:"S:",1:":")
|
---|
| 34 | W ! W:IPRPT "FOR DAYS 1-180 " W CALC1
|
---|
| 35 | I IPRPT W !,"FOR DAYS 181+ " W CALC2
|
---|
| 36 | ;
|
---|
| 37 | S SIDX=1,EIDX=6
|
---|
| 38 | W !!," "
|
---|
| 39 | F MNTH=1:1:6 W $J($P(ARRY(MNTH),"^"),11)
|
---|
| 40 | I IPRPT D PRINTROW("TOT ASSETS ",SIDX,EIDX,9)
|
---|
| 41 | D PRINTROW("TOT INCOME ",SIDX,EIDX,3)
|
---|
| 42 | I 'IPRPT!($G(LOS)<181)!(DGSP&(SRIC)) D PRINTROW("TOT EXPENSES ",SIDX,EIDX,4)
|
---|
| 43 | D PRINTROW("TOT ALLOWANCE ",SIDX,EIDX,5)
|
---|
| 44 | W ! D PRINTROW("CALC COPAY ",SIDX,EIDX,6)
|
---|
| 45 | D PRINTROW("MAX COPAY ",SIDX,EIDX,7)
|
---|
| 46 | W !,LINE
|
---|
| 47 | D PRINTROW("VET COPAY ",SIDX,EIDX,8)
|
---|
| 48 | W !,LINE
|
---|
| 49 | ;
|
---|
| 50 | S SIDX=7,EIDX=12
|
---|
| 51 | W !!," "
|
---|
| 52 | F MNTH=7:1:12 W $J($P(ARRY(MNTH),"^"),11)
|
---|
| 53 | I IPRPT D PRINTROW("TOT ASSETS ",SIDX,EIDX,9)
|
---|
| 54 | D PRINTROW("TOT INCOME ",SIDX,EIDX,3)
|
---|
| 55 | I 'IPRPT!(DGSP&(SRIC)) D PRINTROW("TOT EXPENSES ",SIDX,EIDX,4)
|
---|
| 56 | D PRINTROW("TOT ALLOWANCE ",SIDX,EIDX,5)
|
---|
| 57 | W ! D PRINTROW("CALC COPAY ",SIDX,EIDX,6)
|
---|
| 58 | D PRINTROW("MAX COPAY ",SIDX,EIDX,7)
|
---|
| 59 | W !,LINE
|
---|
| 60 | D PRINTROW("VET COPAY ",SIDX,EIDX,8)
|
---|
| 61 | W !,LINE
|
---|
| 62 | ;
|
---|
| 63 | I CRT Q:$$PAUSE(0)
|
---|
| 64 | D:CRT HEADER
|
---|
| 65 | D NOTETXT
|
---|
| 66 | I CRT Q:$$PAUSE(0)
|
---|
| 67 | I IPRPT D HEADER,SPNDDWN I CRT Q:$$PAUSE(0)
|
---|
| 68 | Q
|
---|
| 69 | PRINTROW(TEXT,SIDX,EIDX,NODE) ; Print the Rows
|
---|
| 70 | N MNTH
|
---|
| 71 | W !,TEXT
|
---|
| 72 | F MNTH=SIDX:1:EIDX W $J($S($P(ARRY(MNTH),"^",NODE)[".":$P($P(ARRY(MNTH),"^",NODE),"."),1:$P(ARRY(MNTH),"^",NODE)),11)
|
---|
| 73 | Q
|
---|
| 74 | PRTVAR ; Set up variables needed to print report
|
---|
| 75 | N PAT0
|
---|
| 76 | S CRT=$S($E(IOST,1,2)="C-":1,1:0)
|
---|
| 77 | S PAGE=0,RPTDT=$$FMTE^XLFDT(DT)
|
---|
| 78 | S LINE="",$P(LINE,"-",81)=""
|
---|
| 79 | S HDR=$$CJ^XLFSTR("LONG TERM CARE ESTIMATED COPAYMENTS FOR "_$S('IPRPT:"NON-",1:"")_"INSTITUTIONAL SERVICES",80)
|
---|
| 80 | S PAT0=$G(^DPT(DFN,0)),NAME=$P(PAT0,"^"),DOB=$P(PAT0,"^",3)
|
---|
| 81 | S SSN=$P(PAT0,"^",9),SSN=$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)
|
---|
| 82 | S CALC1="TOTAL INCOME - TOTAL EXPENSES - TOTAL ALLOWANCE"
|
---|
| 83 | I DGSP,SRIC S CALC2="(TOTAL ASSETS + TOTAL INCOME) - TOTAL EXPENSES - TOTAL ALLOWANCE"
|
---|
| 84 | E S CALC2="(TOTAL ASSETS + TOTAL INCOME) - TOTAL ALLOWANCE"
|
---|
| 85 | S:$G(EASADM) LOS=$$FMDIFF^XLFDT(EASRDT,EASADM)
|
---|
| 86 | Q
|
---|
| 87 | HEADER ; Print the header
|
---|
| 88 | S PAGE=PAGE+1
|
---|
| 89 | W @IOF
|
---|
| 90 | W RPTDT,?71,"Page: ",$J(PAGE,3)
|
---|
| 91 | W !!,HDR
|
---|
| 92 | W !!,NAME,?35,SSN,?62,"DOB: ",$$FMTE^XLFDT(DOB)
|
---|
| 93 | Q
|
---|
| 94 | PAUSE(RESP) ; Prompt user for next page or quit
|
---|
| 95 | N DIR,DIRUT,DUOUT,DTOUT,U,X,Y
|
---|
| 96 | S DIR(0)="E"
|
---|
| 97 | D ^DIR
|
---|
| 98 | I 'Y S RESP=1
|
---|
| 99 | Q RESP
|
---|
| 100 | ;
|
---|
| 101 | INIT(DATE,ARRY) ; Initialize the Month/Year Table
|
---|
| 102 | N IDX,MNYR
|
---|
| 103 | S MNYR=$E(DATE,1,5)_"00"
|
---|
| 104 | F IDX=1:1:12 D
|
---|
| 105 | .S ARRY(IDX)=$$UP^XLFSTR($$FMTE^XLFDT(MNYR))
|
---|
| 106 | .S ARRY(IDX)=$P(ARRY(IDX)," ")_"'"_$E($P(ARRY(IDX)," ",2),3,4)
|
---|
| 107 | .S $P(ARRY(IDX),"^",2)=MNYR
|
---|
| 108 | .S MNYR=MNYR+100
|
---|
| 109 | .S:$E(MNYR,4,5)=13 MNYR=$E(MNYR,1,3)+1_"0100"
|
---|
| 110 | Q
|
---|
| 111 | BLDTBL(ARRY) ; Get the veteran's financial data, do the copay calculations,
|
---|
| 112 | ; build the data table
|
---|
| 113 | ;
|
---|
| 114 | N DGDC,DGDEP,DGERR,DGFL,DGIN0,DGIN1,DGIN2,DGINI,DGIRI,DGDET,DGINT,DGNWT
|
---|
| 115 | N DGPRI,DGNC,DGND,DGNWTF,DGVINI,DGVIR0,DGVIRI,DGVPRI,DGINTF,CPYFLG,IDX
|
---|
| 116 | N OVR180,TAST,TINC,TEXP,ALLOW,CALCCPY,DAYS,MAXCPY,VETMAX,IPDR,OPDR,LOS
|
---|
| 117 | ;
|
---|
| 118 | S ERR=0
|
---|
| 119 | S DGPRI=$O(^DGPR(408.12,"C",DFN_";DPT(",0)) I 'DGPRI S ERR=1 Q
|
---|
| 120 | D GETIENS^EASECU2(DFN,DGPRI,DGMTDT) I '$G(DGIRI),'$G(DGINI) S ERR=1 Q
|
---|
| 121 | S DGVIRI=DGIRI,DGVINI=DGINI
|
---|
| 122 | D DEP^EASECSU3,INC^EASECSU3
|
---|
| 123 | S IPRPT=$S(EASRPT=1:1,1:0)
|
---|
| 124 | S CPYFLG=0
|
---|
| 125 | S DECINF=$P($G(^DGMT(408.31,DGMTI,0)),"^",14)
|
---|
| 126 | S AGRPAY=$P($G(^DGMT(408.31,DGMTI,0)),"^",11)
|
---|
| 127 | I DECINF=1!(AGRPAY=0) S CPYFLG=1
|
---|
| 128 | S SRIC=$P(DGVIR0,U,16),LSEP=$P(DGVIR0,U,17)
|
---|
| 129 | S OPDR=$P(MAXRT,U),IPDR=$P(MAXRT,U,2)
|
---|
| 130 | I IPRPT S LOS=$$FMDIFF^XLFDT(EASRDT,EASADM)+1
|
---|
| 131 | ;
|
---|
| 132 | S OVR180=$S($G(LOS)>180:1,1:0)
|
---|
| 133 | S TINC=DGINT/12,TEXP=DGDET/12
|
---|
| 134 | I OVR180,('DGSP!('SRIC)) S TEXP=0
|
---|
| 135 | S TAST=DGNWT I OVR180 S TAST=$$ASSET
|
---|
| 136 | ;
|
---|
| 137 | ; Build data table
|
---|
| 138 | F IDX=1:1:12 D
|
---|
| 139 | .S DAYS=$$DOM($P(ARRY(IDX),"^",2))
|
---|
| 140 | .D CALCALL
|
---|
| 141 | .S $P(ARRY(IDX),"^",3)=TINC
|
---|
| 142 | .S $P(ARRY(IDX),"^",4)=TEXP
|
---|
| 143 | .S $P(ARRY(IDX),"^",5)=ALLOW
|
---|
| 144 | .S $P(ARRY(IDX),"^",6)=CALCCPY
|
---|
| 145 | .S $P(ARRY(IDX),"^",7)=MAXCPY
|
---|
| 146 | .S $P(ARRY(IDX),"^",8)=VETMAX
|
---|
| 147 | .S $P(ARRY(IDX),"^",9)=$S(OVR180:TAST,1:"-")
|
---|
| 148 | .S:OVR180 TAST=$$ASTSPD
|
---|
| 149 | .I $G(LOS) D
|
---|
| 150 | ..S LOS=LOS+DAYS
|
---|
| 151 | ..S:'OVR180 OVR180=$S(LOS>180:1,1:0)
|
---|
| 152 | ..I OVR180,('DGSP!'(SRIC)) S:TEXP TEXP=0
|
---|
| 153 | Q
|
---|
| 154 | ;
|
---|
| 155 | CALCALL ; Calculate the allowance and all the copayment amounts
|
---|
| 156 | S ALLOW=20*DAYS*(1+SRIC) S:CPYFLG ALLOW=0
|
---|
| 157 | S CALCCPY=$$CALCCPY
|
---|
| 158 | S MAXCPY=$$CALCMAX(DAYS)
|
---|
| 159 | S VETMAX=$$VETMAX(CALCCPY,MAXCPY)
|
---|
| 160 | Q
|
---|
| 161 | ASSET() ; Initialize asset amount by applying spend-down
|
---|
| 162 | N NUM,MNYR,J,DONE,DAYS,ALLOW,CALCCPY,MAXCPY,VETMAX
|
---|
| 163 | S DONE=0
|
---|
| 164 | ; Calculate number of months to spend down the assets
|
---|
| 165 | S NUM=(LOS-180)\30
|
---|
| 166 | ; Get month to start spend down
|
---|
| 167 | S MNYR=$$FMADD^XLFDT(EASADM,180)
|
---|
| 168 | I NUM>0 F J=1:1:NUM D Q:DONE
|
---|
| 169 | .S DAYS=$$DOM(MNYR)
|
---|
| 170 | .D CALCALL
|
---|
| 171 | .S TAST=$$ASTSPD I TAST=0 S DONE=1 Q
|
---|
| 172 | .S MNYR=MNYR+100 S:$E(MNYR,4,5)=13 MNYR=$E(MNYR,1,3)+1_"0100"
|
---|
| 173 | Q TAST
|
---|
| 174 | ASTSPD() ;Asset Spend down for 180+ days
|
---|
| 175 | Q:CPYFLG TAST
|
---|
| 176 | I (TINC-TEXP-ALLOW)'>VETMAX D
|
---|
| 177 | . I DGSP,SRIC S TAST=TAST-(VETMAX-(TINC-TEXP-ALLOW))
|
---|
| 178 | . E S TAST=TAST-(VETMAX-(TINC-ALLOW))
|
---|
| 179 | . S:TAST<0 TAST=0
|
---|
| 180 | Q TAST
|
---|
| 181 | ;
|
---|
| 182 | CALCCPY() ; Calculate the Co-Pay Amount
|
---|
| 183 | ;
|
---|
| 184 | Q:CPYFLG 0
|
---|
| 185 | Q:OVR180 TAST+TINC-ALLOW-TEXP
|
---|
| 186 | Q TINC-ALLOW-TEXP
|
---|
| 187 | DOM(MNYR) ; Days in Month
|
---|
| 188 | ; Returns: number of days in a month
|
---|
| 189 | N DAYS,MN,YR
|
---|
| 190 | S MN=+$E(MNYR,4,5)
|
---|
| 191 | I "^4^6^9^11^"[("^"_MN_"^") S DAYS=30 Q DAYS
|
---|
| 192 | I MN=2 D Q DAYS
|
---|
| 193 | .S DAYS=28
|
---|
| 194 | .S YR=$E(MNYR,1,3)+1700
|
---|
| 195 | .S:YR#4=0 DAYS=29
|
---|
| 196 | S DAYS=31
|
---|
| 197 | Q DAYS
|
---|
| 198 | CALCMAX(DAYS) ; Calculate the Maximum Co-Pay Amount
|
---|
| 199 | ;
|
---|
| 200 | Q $S(IPRPT:IPDR,1:OPDR)*DAYS
|
---|
| 201 | VETMAX(CALCCPY,MAXCPY) ; Calculate the Veteran Maximum Co-Pay Amount
|
---|
| 202 | ;
|
---|
| 203 | Q:CPYFLG MAXCPY
|
---|
| 204 | Q:CALCCPY<0 0
|
---|
| 205 | Q:CALCCPY<MAXCPY CALCCPY
|
---|
| 206 | Q MAXCPY
|
---|
| 207 | ;
|
---|
| 208 | NOTETXT ; Write the Note message
|
---|
| 209 | W !!,"IMPORTANT NOTICE: The copayment amounts shown in this report are"
|
---|
| 210 | W " estimates",!,"based on calculations of the copayment amount for "
|
---|
| 211 | W "an entire month. The",!,"copayment amounts will be adjusted to "
|
---|
| 212 | W "reflect the actual start date of LTC",!,"services and the "
|
---|
| 213 | W "copayment exemption for the first 21 days of service. The VET",!
|
---|
| 214 | W "COPAY amount is based on the assumption that the veteran "
|
---|
| 215 | W "will be responsible",!,"to pay the lesser of EITHER the calculated"
|
---|
| 216 | W " copayment (CALC COPAY) OR the",!,"maximum copayment (MAX COPAY). "
|
---|
| 217 | W "In the event that the calculated copayment",!,"(CALC COPAY) is a "
|
---|
| 218 | W "negative figure, the veteran copayment (VET COPAY)",!
|
---|
| 219 | W "will be adjusted to zero (0). If the veteran declined to provide"
|
---|
| 220 | W " income",!,"information, the veteran will be obligated to pay the"
|
---|
| 221 | W " maximum copayment."
|
---|
| 222 | Q
|
---|
| 223 | ;
|
---|
| 224 | SPNDDWN ; Text of message to explain the asset spend down
|
---|
| 225 | W !!,"EXPLANATION OF ASSET SPEND DOWN CALCULATION:"
|
---|
| 226 | W !,"============================================"
|
---|
| 227 | W !,"The veteran's assets are included in the calculation of copayments"
|
---|
| 228 | W !,"after 180 days of institutional LTC services. The assets then may"
|
---|
| 229 | W !,"be reduced each month according to the following formula:"
|
---|
| 230 | W !
|
---|
| 231 | W !,"Single Veteran:"
|
---|
| 232 | W !
|
---|
| 233 | W !," TOTAL ASSETS-(VET COPAY-(INCOME-ALLOWANCE))"
|
---|
| 234 | W !
|
---|
| 235 | W !,"Married Veteran (spouse residing in the community):"
|
---|
| 236 | W !
|
---|
| 237 | W !," TOTAL ASSETS-(VET COPAY-(INCOME-EXPENSES-ALLOWANCE))"
|
---|
| 238 | W !
|
---|
| 239 | W !,"In other words, the assets will be reduced by the amount of the"
|
---|
| 240 | W !,"veteran's copayment that is not covered by the veteran's income "
|
---|
| 241 | W !,"after all expenses and allowances are subtracted. If the amount"
|
---|
| 242 | W !,"of the veteran's income after all expenses and allowances are"
|
---|
| 243 | W !,"subtracted is greater than the veteran's copayment then the assets"
|
---|
| 244 | W !,"will not be reduced."
|
---|
| 245 | W !
|
---|
| 246 | Q
|
---|