| 1 | IVMUM6 ;ALB/SEK - COMPLETE MEANS TEST ; 23 MAY 94 | 
|---|
| 2 | ;;2.0;INCOME VERIFICATION MATCH;**1,3,17**;21-OCT-94 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | EN ; this routine will call MAS routines to determine the following: | 
|---|
| 6 | ;        total dependents | 
|---|
| 7 | ;        income | 
|---|
| 8 | ;        net worth | 
|---|
| 9 | ;        deductible expenses | 
|---|
| 10 | ;        thresholds | 
|---|
| 11 | ;        category | 
|---|
| 12 | ; | 
|---|
| 13 | ; the above will be added in the ANNUAL MEANS TEST file(#408.31) | 
|---|
| 14 | ; | 
|---|
| 15 | ; s dgcomf=1 to indicate completing means test which will update | 
|---|
| 16 | ; means test ien (field 31) in individual annual income file (408.21) | 
|---|
| 17 | ; when called SET^DGMTSCU2 | 
|---|
| 18 | S DGCOMF=1 | 
|---|
| 19 | ; | 
|---|
| 20 | ; get DGMTPAR - annual means test parameters 0 node from ^DG(43,1,"MT" | 
|---|
| 21 | ; if current year parameters are not available DGMTPAR will contain | 
|---|
| 22 | ; previous year income parameters and DGMTPAR("PREV") will be defined | 
|---|
| 23 | ; indicating such. | 
|---|
| 24 | D PAR^DGMTSCU | 
|---|
| 25 | ; | 
|---|
| 26 | ; d set^dgmtscu2 will create the following variables to update | 
|---|
| 27 | ; annual means test file (408.31): | 
|---|
| 28 | ;      dgmts - means test status(.03) | 
|---|
| 29 | ;      dgint - income(.04) | 
|---|
| 30 | ;      dgnwt - net worth(.05) | 
|---|
| 31 | ;      dgtha - threshold a(.12) | 
|---|
| 32 | ;      dgthb - threshold b(.13) | 
|---|
| 33 | ;      dgdet - deductible expenses(.15) | 
|---|
| 34 | ;      dgmtpar("prev") - previous years threshold(.16)  (if defined) | 
|---|
| 35 | ;      dgnd  - total dependents(.18) | 
|---|
| 36 | ; | 
|---|
| 37 | D SET^DGMTSCU2 | 
|---|
| 38 | ; | 
|---|
| 39 | ; setup other variables for 408.31 | 
|---|
| 40 | S IVMDA1=IVMDAZ D GET^IVMUM1 ; get ZMT segment | 
|---|
| 41 | S IVM1=$$FMDATE^HLFNC($P(IVMSEG,"^",10)) ; dt/time completed | 
|---|
| 42 | S IVM2=$P(IVMSEG,"^",7) ; agree to pay deductible | 
|---|
| 43 | S IVM3=$$FMDATE^HLFNC($P(IVMSEG,"^",15)) ; dt verified test sign | 
|---|
| 44 | S IVM4=$P(IVMSEG,"^",16) ; declines to give income info field | 
|---|
| 45 | S IVM5=$$FMDATE^HLFNC($P(IVMSEG,"^",6)) ; dt/time of adjudication | 
|---|
| 46 | S IVM6=$$FMDATE^HLFNC($P(IVMSEG,"^",20)) ; dt ivm verified mt completed | 
|---|
| 47 | S IVM7=$P(IVMSEG,"^",21) ; refuse to sign | 
|---|
| 48 | S IVMSTAT=$P(IVMSEG,"^",3) ; means test status | 
|---|
| 49 | ; | 
|---|
| 50 | I IVM4 S DGCAT="C" D STA^DGMTSCU2 ; make cat C if declines to give income info | 
|---|
| 51 | ; | 
|---|
| 52 | I DGTYC="M",(DGNWT+DGINT-DGDET)>$P(DGMTPAR,"^",8) S DGCAT="C" D STA^DGMTSCU2 ; if cat A for income make cat C if high assets | 
|---|
| 53 | ; | 
|---|
| 54 | ; add to annual means test file | 
|---|
| 55 | S:'$D(DGTHB) DGTHB="" | 
|---|
| 56 | S DA=DGMTI,DIE="^DGMT(408.31," | 
|---|
| 57 | S DR=".03////^S X=DGMTS;.04////^S X=DGINT;.05////^S X=DGNWT;.06////^S X=DUZ;.07////^S X=IVM1;.11////^S X=IVM2;.12////^S X=DGTHA;.13////^S X=DGTHB;.14////^S X=IVM4;.15////^S X=DGDET;.18////^S X=DGND;.23////2;.24////^S X=IVM3" | 
|---|
| 58 | I $D(DGMTPAR("PREV")) S DR=DR_";.16////1" | 
|---|
| 59 | D ^DIE K DR | 
|---|
| 60 | S DR=".1////^S X=IVM5;.25////^S X=IVM6;.26////^S X=IVM7" | 
|---|
| 61 | D ^DIE K DA,DIE,DR | 
|---|
| 62 | ; | 
|---|
| 63 | ; if ivm mt cat diff then calculated cat or still cat a ack msg is | 
|---|
| 64 | ; sent to ivm center | 
|---|
| 65 | ; dgcat (mt cat) is also created by d set^dgmtscu2 | 
|---|
| 66 | I IVMSTAT'=DGCAT D  G MTDRIVER | 
|---|
| 67 | .S HLERR="Uploaded mt cat should be "_DGCAT | 
|---|
| 68 | I DGCAT="A" D | 
|---|
| 69 | .S HLERR="Uploaded mt cat is still A" | 
|---|
| 70 | ; | 
|---|
| 71 | MTDRIVER ; call means test event driver | 
|---|
| 72 | S DGMTACT="UPL" | 
|---|
| 73 | D AFTER^DGMTEVT | 
|---|
| 74 | S DGMTINF=1 ; non-interactive flag | 
|---|
| 75 | D EN^DGMTEVT | 
|---|
| 76 | ; | 
|---|
| 77 | ; close IVM case record for patient | 
|---|
| 78 | D CLOSE^IVMPTRN1(DGLY,DFN,1,1) | 
|---|
| 79 | ; | 
|---|
| 80 | ; Get copay exemption status (IVMCEA) and means test status (IVMMTA | 
|---|
| 81 | ; after upload.  If different from before upload and send notification | 
|---|
| 82 | ; mail message to the site.  Also, send notification mail message if | 
|---|
| 83 | ; patient doesn't agree to pay deductible. | 
|---|
| 84 | S IVMCNTR=10 | 
|---|
| 85 | S IVMCEA=$P($$RXST^IBARXEU(DFN),"^",2) | 
|---|
| 86 | I IVMCEA'=IVMCEB D | 
|---|
| 87 | .S IVMTEXT(10)="" | 
|---|
| 88 | .S IVMTEXT(11)="The patient is now "_IVMCEA_" from the prescription copayment." | 
|---|
| 89 | .S IVMCNTR=12 | 
|---|
| 90 | S IVMMTA=$P($$LST^DGMTU(DFN),"^",3) | 
|---|
| 91 | I IVMMTA'=IVMMTB D | 
|---|
| 92 | .S IVMTEXT(IVMCNTR)="" | 
|---|
| 93 | .S IVMTEXT(IVMCNTR+1)="The patient's current Means Test status is now "_IVMMTA_"." | 
|---|
| 94 | .S IVMCNTR=IVMCNTR+2 | 
|---|
| 95 | I 'IVM2 D | 
|---|
| 96 | .S IVMTEXT(IVMCNTR)="" | 
|---|
| 97 | .I IVM2=0 D  Q | 
|---|
| 98 | ..S IVMTEXT(IVMCNTR+1)="The patient is CATEGORY C and doesn't agree to pay the deductible." | 
|---|
| 99 | .S IVMTEXT(IVMCNTR+1)="The patient is CATEGORY C and didn't answer agree to pay the deductible." | 
|---|
| 100 | D MTBULL,MAIL^IVMUFNC() | 
|---|
| 101 | ; | 
|---|
| 102 | ; cleanup | 
|---|
| 103 | K DGCAT,DGCOMF,DGMTACT,DGMTI,DGMTINF,DGMTPAR,DGTHB | 
|---|
| 104 | K IVM1,IVM2,IVM3,IVM4,IVM5,IVM6,IVM7,IVMCEA,IVMCEB,IVMMTA | 
|---|
| 105 | Q | 
|---|
| 106 | ; | 
|---|
| 107 | MTBULL ; build mail message for transmission to IVM mail group notifying them | 
|---|
| 108 | ; an IVM verified means test has been uploaded into DHCP for a patient. | 
|---|
| 109 | ; | 
|---|
| 110 | S IVMPAT=$$PT^IVMUFNC4(DFN) | 
|---|
| 111 | S XMSUB="IVM - MEANS TEST UPLOAD for "_$P($P(IVMPAT,"^"),",")_" ("_$P(IVMPAT,"^",3)_")" | 
|---|
| 112 | S IVMTEXT(1)="An Income Verification Match verified Means Test has been uploaded" | 
|---|
| 113 | S IVMTEXT(2)="for the following patient:" | 
|---|
| 114 | S IVMTEXT(3)=" " | 
|---|
| 115 | S IVMTEXT(4)="  NAME:           "_$P(IVMPAT,"^") | 
|---|
| 116 | S IVMTEXT(5)="  ID:             "_$P(IVMPAT,"^",2) | 
|---|
| 117 | S Y=IVMMTDT X ^DD("DD") | 
|---|
| 118 | S IVMTEXT(6)="  DATE OF TEST:   "_Y | 
|---|
| 119 | S IVMTEXT(7)="  PREV CATEGORY:  "_$P($G(^DG(408.32,+$P(IVMMT31,"^",3),0)),"^",2) | 
|---|
| 120 | S IVMTEXT(8)="  NEW CATEGORY:   "_DGCAT | 
|---|
| 121 | I IVM5 S Y=IVM5 X ^DD("DD") S IVMTEXT(9)="  DATE/TIME OF ADJUDICATION:  "_Y | 
|---|
| 122 | Q | 
|---|