| 1 | IVMUM7 ;ALB/SEK,RTK - DELETE IVM MEANS TEST ; 23 JUNE 00
 | 
|---|
| 2 |  ;;2.0;INCOME VERIFICATION MATCH;**1,17,31**;21-OCT-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | EN ; this routine will process an IVM means test delete request
 | 
|---|
| 6 |  ; from the IVM Center.
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ; delete IVM mean test records in the following files:
 | 
|---|
| 9 |  ;     408.22
 | 
|---|
| 10 |  ;     408.21
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;     408.12 & 408.13 if IVM dependent
 | 
|---|
| 13 |  ;               or
 | 
|---|
| 14 |  ;     408.1275 if IVM & VAMC dependent (new 408.1275 record was
 | 
|---|
| 15 |  ;              created for each IVM dependent by upload). 
 | 
|---|
| 16 |  ;              change back the following fields to VAMC values
 | 
|---|
| 17 |  ;              from IVM values:
 | 
|---|
| 18 |  ;                 408.12  - relationship
 | 
|---|
| 19 |  ;                 408.13  - name, dob, ssn, sex
 | 
|---|
| 20 |  ;               or
 | 
|---|
| 21 |  ;     408.1275 if VAMC dependent (new inactivated 408.1275 record
 | 
|---|
| 22 |  ;              was created by upload).
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  ;     408.31
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  ; the "PRIM" node for the VAMC MT will be changed to 1 
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ; the event driver will be called twice
 | 
|---|
| 29 |  ;    DGMTACT="DUP"
 | 
|---|
| 30 |  ;    DGMTACT="DEL"
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  ;     Input       IVMMTDT      MT date
 | 
|---|
| 34 |  ;                 IVMMTIEN     primary MT IEN
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  ; check primary test is IVM
 | 
|---|
| 37 |  S IVMNO=$G(^DGMT(408.31,IVMMTIEN,0)) ; ivm mt 0th node  
 | 
|---|
| 38 |  S IVMSOT=$P($G(^DG(408.34,+$P(IVMNO,"^",23),0)),"^") ; source of test
 | 
|---|
| 39 |  I IVMSOT'="IVM" D  Q
 | 
|---|
| 40 |  .S HLERR="IVM means test for income year "_($E(DGLY,1,3)+1700)_" not found"
 | 
|---|
| 41 |  .D ACK^IVMPREC
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  ; get VAMC mt
 | 
|---|
| 44 |  S IVMVAMC=0 ; ivmvamc is vamc ien
 | 
|---|
| 45 |  F  S IVMVAMC=$O(^DGMT(408.31,"AD",1,DFN,IVMMTDT,IVMVAMC)) Q:'IVMVAMC  D  Q:$D(IVMVNO)
 | 
|---|
| 46 |  .S IVMVNO=$G(^DGMT(408.31,+IVMVAMC,0)) ; vamc 0th node
 | 
|---|
| 47 |  .S IVMSOT=$P($G(^DG(408.34,+$P(IVMVNO,"^",23),0)),"^") ; source of test
 | 
|---|
| 48 |  .I IVMSOT'="VAMC",IVMSOT'="DCD",IVMSOT'="OTHER FACILITY" K IVMVNO Q
 | 
|---|
| 49 |  I '$D(IVMVNO) D  Q
 | 
|---|
| 50 |  .S HLERR=IVMSOT_" means test for income year "_($E(DGLY,1,3)+1700)_" not found"
 | 
|---|
| 51 |  .D ACK^IVMPREC
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  ; get array dginc containing ien(s) of 408.21
 | 
|---|
| 54 |  ; get array dginr containing ien(s) of 408.22
 | 
|---|
| 55 |  D ALL^DGMTU21(DFN,"VSC",IVMMTDT,"IR",IVMMTIEN)
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  ; delete 408.22
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  S DA=$G(DGINR("V")) D
 | 
|---|
| 60 |  .Q:'DA  S DIK="^DGMT(408.22," D ^DIK
 | 
|---|
| 61 |  S DA=$G(DGINR("S")) D
 | 
|---|
| 62 |  .Q:'DA  S DIK="^DGMT(408.22," D ^DIK
 | 
|---|
| 63 |  S IVMN=0
 | 
|---|
| 64 |  F  S IVMN=$O(DGINR("C",IVMN)) Q:'IVMN  S DA=$G(DGINR("C",IVMN)),DIK="^DGMT(408.22," D ^DIK
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ; delete 408.21
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  S DA=$G(DGINC("V")) D
 | 
|---|
| 69 |  .Q:'DA  S DIK="^DGMT(408.21," D ^DIK
 | 
|---|
| 70 |  S DA=$G(DGINC("S")) D
 | 
|---|
| 71 |  .Q:'DA  S DIK="^DGMT(408.21," D ^DIK
 | 
|---|
| 72 |  S IVMN=0
 | 
|---|
| 73 |  F  S IVMN=$O(DGINC("C",IVMN)) Q:'IVMN  S DA=$G(DGINC("C",IVMN)),DIK="^DGMT(408.21," D ^DIK
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 |  ; logic for 408.12/408.1275 & 408.13
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  D SETUPAR^IVMUM8
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 |  ; no "AIVM" x-ref means
 | 
|---|
| 80 |  ;   no dependents
 | 
|---|
| 81 |  ;       or
 | 
|---|
| 82 |  ;   IVM v2.0 means test (no dependent difference)
 | 
|---|
| 83 |  ; only 408.22, 408.21, and 408.31 records will be deleted
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  S IVM12="" F  S IVM12=$O(^DGPR(408.12,"AIVM",IVMMTIEN,IVM12)) Q:'IVM12  D  Q:$D(IVMFERR)
 | 
|---|
| 86 |  .I $G(^DGPR(408.12,+IVM12,0))']"" D  Q
 | 
|---|
| 87 |  ..S (IVMTEXT(6),HLERR)="Can't find 408.12 record "_IVM12
 | 
|---|
| 88 |  ..D ERRBULL^IVMPREC7,MAIL^IVMUFNC()
 | 
|---|
| 89 |  ..S IVMFERR=""
 | 
|---|
| 90 |  ..D ACK^IVMPREC
 | 
|---|
| 91 |  ..Q
 | 
|---|
| 92 |  .;
 | 
|---|
| 93 |  .I $P($G(^DGPR(408.12,+IVM12,"E",0)),"^",4)=1 D  Q
 | 
|---|
| 94 |  ..; only 1 multiple record (408.1275) indicates IVM dependent
 | 
|---|
| 95 |  ..; delete 408.12 & 408.13 records for IVM dependent
 | 
|---|
| 96 |  ..S IVM13=$P($P($G(^DGPR(408.12,+IVM12,0)),"^",3),";") I $G(^DGPR(408.13,+IVM13,0))']"" D  Q
 | 
|---|
| 97 |  ...S (IVMTEXT(6),HLERR)="Can't find 408.13 record "_IVM13
 | 
|---|
| 98 |  ...D ERRBULL^IVMPREC7,MAIL^IVMUFNC()
 | 
|---|
| 99 |  ...S IVMFERR=""
 | 
|---|
| 100 |  ...D ACK^IVMPREC
 | 
|---|
| 101 |  ...Q
 | 
|---|
| 102 |  ..S DA=IVM12,DIK="^DGPR(408.12," D ^DIK K DA,DIK
 | 
|---|
| 103 |  ..S DA=IVM13,DIK="^DGPR(408.13," D ^DIK K DA,DIK
 | 
|---|
| 104 |  ..Q
 | 
|---|
| 105 |  .;
 | 
|---|
| 106 |  .; delete 408.1275 record for IVM dependent and
 | 
|---|
| 107 |  .; change demo data in 408.12 & 408.13 back to VAMC values
 | 
|---|
| 108 |  .;       or
 | 
|---|
| 109 |  .; delete 408.1275 record for inactivated VAMC dependent
 | 
|---|
| 110 |  .S IVM121="",IVM121=$O(^DGPR(408.12,"AIVM",IVMMTIEN,+IVM12,IVM121))
 | 
|---|
| 111 |  .I $G(^DGPR(408.12,+IVM12,"E",+IVM121,0))']"" D  Q
 | 
|---|
| 112 |  ..S (IVMTEXT(6),HLERR)="Can't find 408.1275 record "_IVM12_"  "_IVM121
 | 
|---|
| 113 |  ..D ERRBULL^IVMPREC7,MAIL^IVMUFNC()
 | 
|---|
| 114 |  ..S IVMFERR=""
 | 
|---|
| 115 |  ..D ACK^IVMPREC
 | 
|---|
| 116 |  ..Q
 | 
|---|
| 117 |  .S IVMVAMCA=$P(^(0),"^",2) ; dependent active?
 | 
|---|
| 118 |  .S DA(1)=IVM12,DA=IVM121,DIK="^DGPR(408.12,"_DA(1)_",""E"","
 | 
|---|
| 119 |  .D ^DIK K DA(1),DA,DIK
 | 
|---|
| 120 |  .Q:'IVMVAMCA  ; quit if inactivated VAMC dependent 
 | 
|---|
| 121 |  .S IVM13=+$P($P($G(^DGPR(408.12,+IVM12,0)),"^",3),";")
 | 
|---|
| 122 |  .D EN^IVMUM8
 | 
|---|
| 123 |  .Q
 | 
|---|
| 124 |  ;
 | 
|---|
| 125 |  Q:$D(IVMFERR)
 | 
|---|
| 126 |  D EN1^IVMUM8
 | 
|---|
| 127 |  Q
 | 
|---|