| 1 | EASECPC ;ALB/PHH,CKN,LBD,AMA,SCK - LTC Copayment Report; 29-AUG-2001 | 
|---|
| 2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**5,7,19,24,34,40,79**;Mar 15, 2001;Build 3 | 
|---|
| 3 | ; | 
|---|
| 4 | ; This routine prints a report of calculated LTC copayments for a veteran. | 
|---|
| 5 | ; It is called by menu option EASEC LTC COPAY PRINT | 
|---|
| 6 | ; | 
|---|
| 7 | EN N DFN,EASRPT,EASADM,EASRDT,MAXRT,DGMTI,DGMTDT | 
|---|
| 8 | ; Select which report to print (1=Institutional (IP); 2=Non-Institutional (OP)) | 
|---|
| 9 | S EASRPT=$$RPT Q:'EASRPT | 
|---|
| 10 | ; Select Patient | 
|---|
| 11 | S DFN=$$GETDFN Q:'DFN | 
|---|
| 12 | S EASADM="" | 
|---|
| 13 | ; Get the LTC admission date (if EASRPT=1) | 
|---|
| 14 | I EASRPT=1 S EASADM=$$ADMDT Q:'EASADM | 
|---|
| 15 | ;E  S EASADM=""   ;EAS*1.0*79 | 
|---|
| 16 | ; Get start date for report | 
|---|
| 17 | S EASRDT=$$RPTDT Q:'EASRDT | 
|---|
| 18 | ;EAS*1.0*79 - moved from 4 lines up, and added EASADM as a parameter | 
|---|
| 19 | ;Set EASADM to the report date for Non-Institutional (OP) reports | 
|---|
| 20 | I EASRPT=2 S EASADM=EASRDT | 
|---|
| 21 | ; Get most recent LTC Copay Test for patient and set up LTC variables | 
|---|
| 22 | I '$$GETLTC(DFN,EASADM) Q | 
|---|
| 23 | ; Run the report | 
|---|
| 24 | D QUE | 
|---|
| 25 | Q | 
|---|
| 26 | RPT() ; Select which report to print | 
|---|
| 27 | ; Input:   None | 
|---|
| 28 | ; Output:  Y - Report Type (1=Institutional (IP); 2=Non-Institutional (OP); 0=Quit) | 
|---|
| 29 | N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT | 
|---|
| 30 | W !!,"Report of Calculated Long Term Care Copayments" | 
|---|
| 31 | W !,"==============================================" | 
|---|
| 32 | S DIR(0)="S^1:Institutional (Inpatient);2:Non-Institutional (Outpatient)" | 
|---|
| 33 | S DIR("A")="Enter 1 or 2" | 
|---|
| 34 | D ^DIR I 'Y!($D(DTOUT))!($D(DUOUT)) Q 0 | 
|---|
| 35 | Q Y | 
|---|
| 36 | GETDFN() ; Get the veteran's DFN | 
|---|
| 37 | N DIC,DTOUT,DUOUT,X,Y | 
|---|
| 38 | W ! | 
|---|
| 39 | S DIC="^DPT(",DIC(0)="AEMZQ",DIC("S")="I $D(^DGMT(408.31,""AID"",3,+Y))" | 
|---|
| 40 | D ^DIC | 
|---|
| 41 | Q:$D(DTOUT)!($D(DUOUT)) 0 | 
|---|
| 42 | Q:Y<0 0 | 
|---|
| 43 | Q +Y | 
|---|
| 44 | ;EAS*1.0*79 - added EASADM as a parameter | 
|---|
| 45 | GETLTC(DFN,EASADM) ; Get the most recent LTC copay test.  If no completed test on | 
|---|
| 46 | ; file, test status is exempt or LTC copay rates not defined, quit 0 | 
|---|
| 47 | ; Input:   DFN - Patient file IEN | 
|---|
| 48 | ;          EASADM - LTC Admission Date | 
|---|
| 49 | ; Output:  DGMTI - LTC Copay Test IEN (file #408.31) | 
|---|
| 50 | ;          DGMTDT - LTC Copay Test Date | 
|---|
| 51 | ;          MAXRT - Maximum daily copay rates for OP and IP LTC | 
|---|
| 52 | ;          1=OK to continue; 0=Not OK to continue | 
|---|
| 53 | N LTC,STAT | 
|---|
| 54 | ;EAS*1.0*79 - added EASADM to $$LST call, and text in WRITE line following | 
|---|
| 55 | S LTC=$$LST^EASECU(DFN,EASADM),DGMTI=+LTC | 
|---|
| 56 | I 'DGMTI W !!,"No LTC Copayment Test on file for this veteran for that LTC admission date!" Q 0 | 
|---|
| 57 | S DGMTDT=$P(LTC,U,2),STAT=$P(LTC,U,3) | 
|---|
| 58 | ; Get the maximum daily copay rate for outpatient and inpatient LTC | 
|---|
| 59 | ; DBIA #3717 | 
|---|
| 60 | S MAXRT=$$MAXRATE^IBAECU(DGMTDT) | 
|---|
| 61 | I '$P(MAXRT,U)!('$P(MAXRT,U,2)) W !!,"Copayment rates for LTC are not available at this time.",!! Q 0 | 
|---|
| 62 | ; Check test status, if anything other than Non-Exempt don't continue | 
|---|
| 63 | D DISDT^EASECU(DFN,EASADM)   ;EAS*1.0*79 | 
|---|
| 64 | I STAT="NON-EXEMPT" Q 1 | 
|---|
| 65 | I STAT="" W !!,"The LTC Copayment Test is incomplete!" Q 0 | 
|---|
| 66 | I STAT="EXEMPT" W !!,"This veteran is Exempt from LTC copayments!" Q 0 | 
|---|
| 67 | W !!,"This LTC Copayment Test contains an invalid status!" | 
|---|
| 68 | Q 0 | 
|---|
| 69 | ADMDT() ; Get the LTC admission date (for IP report only) | 
|---|
| 70 | N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT | 
|---|
| 71 | W ! | 
|---|
| 72 | S DIR(0)="D^::EX" | 
|---|
| 73 | S DIR("A")="Enter the LTC Admission Date" | 
|---|
| 74 | S DIR("?",1)="Enter the admission date for the current institutional" | 
|---|
| 75 | S DIR("?")="Long Term Care episode." | 
|---|
| 76 | D ^DIR I 'Y!($D(DTOUT))!($D(DUOUT)) Q 0 | 
|---|
| 77 | Q Y | 
|---|
| 78 | RPTDT() ; Get the start date for the report | 
|---|
| 79 | N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,DAYS | 
|---|
| 80 | RD W ! | 
|---|
| 81 | S DIR(0)="D^::EMX" | 
|---|
| 82 | S DIR("A")="Enter the Report Start Date (Month/Year)" | 
|---|
| 83 | S DIR("?",1)="Enter the starting date for the report in the format month/year (e.g. 9/03)." | 
|---|
| 84 | S DIR("?",2)="The report will print 12 months of copayments starting with the" | 
|---|
| 85 | S DIR("?")="month and year entered." | 
|---|
| 86 | D ^DIR I 'Y!($D(DTOUT))!($D(DUOUT)) Q 0 | 
|---|
| 87 | S DAYS=$$DOM^EASECPC1(Y) | 
|---|
| 88 | I (Y+DAYS)<$G(EASADM) W !!,*7,"Report Start Date cannot be before LTC Admission Date!" G RD | 
|---|
| 89 | Q Y+DAYS | 
|---|
| 90 | ; | 
|---|
| 91 | QUE ; Get report device. Queue report if requested. | 
|---|
| 92 | N POP,ZTRTN,ZTDESC,ZTSAVE | 
|---|
| 93 | K IOP,%ZIS | 
|---|
| 94 | S %ZIS="MQ" | 
|---|
| 95 | W ! | 
|---|
| 96 | D ^%ZIS I POP W !!,"Report Cancelled!" Q | 
|---|
| 97 | I $D(IO("Q")) D  Q | 
|---|
| 98 | . S ZTRTN="START^EASECPC1" | 
|---|
| 99 | . S ZTDESC="LTC Copay Calculation Report" | 
|---|
| 100 | . S (ZTSAVE("DFN"),ZTSAVE("DGMTI"),ZTSAVE("DGMTDT"),ZTSAVE("MAXRT"))="" | 
|---|
| 101 | . S (ZTSAVE("EASRPT"),ZTSAVE("EASRDT"))="",ZTSAVE("EASADM")=$G(EASADM) | 
|---|
| 102 | . D ^%ZTLOAD | 
|---|
| 103 | . W !!,"Report "_$S($D(ZTSK):"Queued!",1:"Cancelled!") | 
|---|
| 104 | . D HOME^%ZIS | 
|---|
| 105 | D START^EASECPC1,^%ZISC | 
|---|
| 106 | Q | 
|---|