| [613] | 1 | IBARXEL1 ;ALB/CPM - RX COPAY EXEMPTION REMINDER REPRINT ;14-APR-95 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**34,199,217**;21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | REPR ; Reprint a single income test reminder letter. | 
|---|
|  | 6 | S IBLET=$O(^IBE(354.6,"B","IB INCOME TEST REMINDER",0)) | 
|---|
|  | 7 | I 'IBLET W !!,"You do not have the Income Test Reminder letter defined!" G REPRQ | 
|---|
|  | 8 | ; | 
|---|
|  | 9 | S DIC="^DPT(",DIC("S")="I $D(^IBA(354,+Y,0))",DIC(0)="AEQMZ",DIC("A")="Select BILLING PATIENT: " | 
|---|
|  | 10 | N DPTNOFZY S DPTNOFZY=1  ;Suppress PATIENT file fuzzy lookups | 
|---|
|  | 11 | D ^DIC K DIC S DFN=+Y G:Y<0 REPRQ | 
|---|
|  | 12 | ; | 
|---|
|  | 13 | ; - find the most recent active exemption | 
|---|
|  | 14 | S IBEX=+$O(^(+$O(^IBA(354.1,"AIVDT",1,DFN,-(DT+.00001))),0)) | 
|---|
|  | 15 | S IBEXD=$G(^IBA(354.1,IBEX,0)) | 
|---|
|  | 16 | I 'IBEXD W !!,"This veteran has never had an active copayment exemption status!" G REPR | 
|---|
|  | 17 | ; | 
|---|
|  | 18 | I $G(^DPT(DFN,.35)) W !!,*7,"Please note that this veteran died on ",$$DAT1^IBOUTL(+^(.35)),"." | 
|---|
|  | 19 | ; | 
|---|
|  | 20 | ; - display the veteran's current exemption status | 
|---|
|  | 21 | S IBEXREA=$$ACODE^IBARXEU0(IBEXD) | 
|---|
|  | 22 | W !!,$TR($J("",80)," ","=") | 
|---|
|  | 23 | W !?10,"Exemption Status: ",$$TEXT^IBARXEU0(+$P(IBEXD,"^",4)),"  (",$P($G(^IBE(354.2,+$P(IBEXD,"^",5),0)),"^"),")" | 
|---|
|  | 24 | W !?12,"Exemption Date: ",$$DAT1^IBOUTL(+IBEXD) | 
|---|
|  | 25 | ; | 
|---|
|  | 26 | ; - display the previous status if the veteran has not reported income | 
|---|
|  | 27 | I IBEXREA=210 D | 
|---|
|  | 28 | .S IBCHK=1 | 
|---|
|  | 29 | .S IBEX=+$O(^(+$O(^IBA(354.1,"AIVDT",1,DFN,-IBEXD)),0)) | 
|---|
|  | 30 | .S IBEXD=$G(^IBA(354.1,IBEX,0)) Q:'IBEXD | 
|---|
|  | 31 | .S IBEXREA=$$ACODE^IBARXEU0(IBEXD) | 
|---|
|  | 32 | .W !!?4,"Prior Exemption Status: ",$$TEXT^IBARXEU0(+$P(IBEXD,"^",4)),"  (",$P($G(^IBE(354.2,+$P(IBEXD,"^",5),0)),"^"),")" | 
|---|
|  | 33 | .W !?6,"Prior Exemption Date: ",$$DAT1^IBOUTL(+IBEXD) | 
|---|
|  | 34 | ; | 
|---|
|  | 35 | ; - if a letter has already been printed, display the print date | 
|---|
|  | 36 | I $P(IBEXD,"^",16) D | 
|---|
|  | 37 | .W !!?12,"Letter Printed: ",$$DAT1^IBOUTL($P(IBEXD,"^",16)) | 
|---|
|  | 38 | .S X=$P($$LST^DGMTCOU1(DFN,$$FMADD^XLFDT(DT,60),3),"^",2) | 
|---|
|  | 39 | .W ?41,"Current Income Test Date: ",$S(X:$$DAT1^IBOUTL(X),1:"<none>") | 
|---|
|  | 40 | W !,$TR($J("",80)," ","=") | 
|---|
|  | 41 | ; | 
|---|
|  | 42 | ; - exemption must be based on income | 
|---|
|  | 43 | I IBEXREA'=110,IBEXREA'=120 W !!,"You may only generate a letter for an exemption based on income!",! K IBCHK G REPR | 
|---|
|  | 44 | ; | 
|---|
|  | 45 | I '$G(IBCHK),+IBEXD>$$FMADD^XLFDT(DT,-305) W !!,"Please note that this exemption is not due to expire for ",$$FMDIFF^XLFDT(+IBEXD+10000,DT)," days!" | 
|---|
|  | 46 | ; | 
|---|
|  | 47 | ; check for Cat C or Pending Adj. and has agreed to pay deductible | 
|---|
|  | 48 | I $$BIL^DGMTUB(DFN,DT) W !!,"**Please note that this veteran no longer requires a Means Test**" | 
|---|
|  | 49 | ; | 
|---|
|  | 50 | ; - okay to print letter? | 
|---|
|  | 51 | S DIR(0)="Y",DIR("A")="Okay to print the reminder letter",DIR("?")="To print the income test reminder letter, answer 'YES.'  Otherwise, answer 'NO.'" | 
|---|
|  | 52 | W ! D ^DIR K DIR,DIRUT,DTOUT,DUOUT,DIROUT I 'Y G REPRQ | 
|---|
|  | 53 | ; | 
|---|
|  | 54 | W !!,"*** Please note that the reminder letter prints in 80 columns. ***",! | 
|---|
|  | 55 | S %ZIS="QM" D ^%ZIS G:POP REPRQ | 
|---|
|  | 56 | I $D(IO("Q")) D  G REPRQ | 
|---|
|  | 57 | .S ZTRTN="DQ^IBARXEL1",ZTDESC="IB - PRINT INCOME TEST REMINDER LETTER" | 
|---|
|  | 58 | .F I="IBEX","IBLET" S ZTSAVE(I)="" | 
|---|
|  | 59 | .D ^%ZTLOAD K IO("Q") D HOME^%ZIS | 
|---|
|  | 60 | .W !!,$S($D(ZTSK):"This job has been queued as task #"_ZTSK_".",1:"Unable to queue this job.") | 
|---|
|  | 61 | .K ZTSK,IO("Q") | 
|---|
|  | 62 | ; | 
|---|
|  | 63 | U IO | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | DQ ; Queued entry point. | 
|---|
|  | 66 | D PRINT^IBARXEL | 
|---|
|  | 67 | I $D(ZTQUEUED) S ZTREQ="@" Q | 
|---|
|  | 68 | ; | 
|---|
|  | 69 | REPRQ D ^%ZISC | 
|---|
|  | 70 | K DFN,IBLET,IBEX,IBEXD,IBEXREA,IBCHK,IBEXPD,IBQUIT,IBDATA,IBNAM,IBALIN | 
|---|
|  | 71 | Q | 
|---|