| 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
 | 
|---|