1 | EASUM7 ;ALB/GN,EG - DELETE IVM MEANS TEST ; 07/07/2006
|
---|
2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**42,74**;21-OCT-94;Build 6
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ;EAS*1*42 This routine patterned after IVMUM7.
|
---|
6 | ;
|
---|
7 | EN ; this routine will process an IVM MT/CT delete request
|
---|
8 | ; from the IVM Center.
|
---|
9 | ;
|
---|
10 | ; delete IVM MT/CT records in the following files:
|
---|
11 | ; 408.22
|
---|
12 | ; 408.21
|
---|
13 | ;
|
---|
14 | ; 408.12 & 408.13 if IVM dependent
|
---|
15 | ; or
|
---|
16 | ; 408.1275 if IVM & VAMC dependent (new 408.1275 record was
|
---|
17 | ; created for each IVM dependent by upload).
|
---|
18 | ; change back the following fields to VAMC values
|
---|
19 | ; from IVM values:
|
---|
20 | ; 408.12 - relationship
|
---|
21 | ; 408.13 - name, dob, ssn, sex
|
---|
22 | ; or
|
---|
23 | ; 408.1275 if VAMC dependent (new inactivated 408.1275 record
|
---|
24 | ; was created by upload).
|
---|
25 | ;
|
---|
26 | ; 408.31
|
---|
27 | ;
|
---|
28 | ; the "PRIM" node for the VAMC MT will be changed to 1
|
---|
29 | ;
|
---|
30 | ; the event driver will be called twice
|
---|
31 | ; DGMTACT="DUP"
|
---|
32 | ; DGMTACT="DEL"
|
---|
33 | ;
|
---|
34 | ;
|
---|
35 | ; Input IVMMTDT MT date
|
---|
36 | ; IVMMTIEN primary MT IEN
|
---|
37 | ;
|
---|
38 | ; check primary test is IVM
|
---|
39 | S IVMNO=$G(^DGMT(408.31,IVMMTIEN,0)) ; ivm mt 0th node
|
---|
40 | S IVMSOT=$P($G(^DG(408.34,+$P(IVMNO,"^",23),0)),"^") ; source of test
|
---|
41 | I IVMSOT'="IVM" D Q
|
---|
42 | .S HLERR="IVM "_^DG(408.33,DGMTYPT,0)_" for income year "_($E(DGLY,1,3)+1700)_" not found"
|
---|
43 | .D ACK^IVMPREC
|
---|
44 | ;
|
---|
45 | ; get VAMC MT/CT via AD xref (by type) to be re-instated ;EAS*1*42
|
---|
46 | S IVMVAMC="A" ; ivmvamc is vamc ien
|
---|
47 | ;make sure you get the latest test of that type for that date first
|
---|
48 | F S IVMVAMC=$O(^DGMT(408.31,"AD",DGMTYPT,DFN,IVMMTDT,IVMVAMC),-1) Q:'IVMVAMC D Q:$D(IVMVNO)
|
---|
49 | . S IVMVNO=$G(^DGMT(408.31,+IVMVAMC,0)) ; vamc 0th node
|
---|
50 | . S IVMSOT=$P($G(^DG(408.34,+$P(IVMVNO,"^",23),0)),"^") ; source of test
|
---|
51 | . I IVMSOT'="VAMC",IVMSOT'="DCD",IVMSOT'="OTHER FACILITY" K IVMVNO Q
|
---|
52 | . Q
|
---|
53 | ;
|
---|
54 | ; if no previous VAMC RXCT (type 2) on file, then ;EAS*1*42
|
---|
55 | ; simply delete the IVM RX converted 408.31 record
|
---|
56 | I '$D(IVMVNO),DGMTYPT=2 D EN1^EASUM8 Q
|
---|
57 | ;
|
---|
58 | ; if no VAMC MT type 1, then error
|
---|
59 | I '$D(IVMVNO) D Q
|
---|
60 | .S HLERR=IVMSOT_^DG(408.33,DGMTYPT,0)_" for income year "_($E(DGLY,1,3)+1700)_" not found"
|
---|
61 | .D ACK^IVMPREC
|
---|
62 | ;
|
---|
63 | ; get array dginc containing ien(s) of 408.21
|
---|
64 | ; get array dginr containing ien(s) of 408.22
|
---|
65 | D ALL^DGMTU21(DFN,"VSC",IVMMTDT,"IR",IVMMTIEN)
|
---|
66 | ;
|
---|
67 | ; delete 408.22
|
---|
68 | ;
|
---|
69 | S DA=$G(DGINR("V")) D
|
---|
70 | .Q:'DA S DIK="^DGMT(408.22," D ^DIK
|
---|
71 | S DA=$G(DGINR("S")) D
|
---|
72 | .Q:'DA S DIK="^DGMT(408.22," D ^DIK
|
---|
73 | S IVMN=0
|
---|
74 | F S IVMN=$O(DGINR("C",IVMN)) Q:'IVMN S DA=$G(DGINR("C",IVMN)),DIK="^DGMT(408.22," D ^DIK
|
---|
75 | ;
|
---|
76 | ; delete 408.21
|
---|
77 | ;
|
---|
78 | S DA=$G(DGINC("V")) D
|
---|
79 | .Q:'DA S DIK="^DGMT(408.21," D ^DIK
|
---|
80 | S DA=$G(DGINC("S")) D
|
---|
81 | .Q:'DA S DIK="^DGMT(408.21," D ^DIK
|
---|
82 | S IVMN=0
|
---|
83 | F S IVMN=$O(DGINC("C",IVMN)) Q:'IVMN S DA=$G(DGINC("C",IVMN)),DIK="^DGMT(408.21," D ^DIK
|
---|
84 | ;
|
---|
85 | ; logic for 408.12/408.1275 & 408.13
|
---|
86 | ;
|
---|
87 | D SETUPAR^EASUM8
|
---|
88 | ;
|
---|
89 | ; no "AIVM" x-ref means
|
---|
90 | ; no dependents
|
---|
91 | ; or
|
---|
92 | ; IVM v2.0 means test (no dependent difference)
|
---|
93 | ; only 408.22, 408.21, and 408.31 records will be deleted
|
---|
94 | ;
|
---|
95 | S IVM12="" F S IVM12=$O(^DGPR(408.12,"AIVM",IVMMTIEN,IVM12)) Q:'IVM12 D Q:$D(IVMFERR)
|
---|
96 | .I $G(^DGPR(408.12,+IVM12,0))']"" D Q
|
---|
97 | ..S (IVMTEXT(6),HLERR)="Can't find 408.12 record "_IVM12
|
---|
98 | ..D ERRBULL^IVMPREC7,MAIL^IVMUFNC()
|
---|
99 | ..S IVMFERR=""
|
---|
100 | ..D ACK^IVMPREC
|
---|
101 | ..Q
|
---|
102 | .;
|
---|
103 | .I $P($G(^DGPR(408.12,+IVM12,"E",0)),"^",4)=1 D Q
|
---|
104 | ..; only 1 multiple record (408.1275) indicates IVM dependent
|
---|
105 | ..; delete 408.12 & 408.13 records for IVM dependent
|
---|
106 | ..S IVM13=$P($P($G(^DGPR(408.12,+IVM12,0)),"^",3),";") I $G(^DGPR(408.13,+IVM13,0))']"" D Q
|
---|
107 | ...S (IVMTEXT(6),HLERR)="Can't find 408.13 record "_IVM13
|
---|
108 | ...D ERRBULL^IVMPREC7,MAIL^IVMUFNC()
|
---|
109 | ...S IVMFERR=""
|
---|
110 | ...D ACK^IVMPREC
|
---|
111 | ...Q
|
---|
112 | ..S DA=IVM12,DIK="^DGPR(408.12," D ^DIK K DA,DIK
|
---|
113 | ..S DA=IVM13,DIK="^DGPR(408.13," D ^DIK K DA,DIK
|
---|
114 | ..Q
|
---|
115 | .;
|
---|
116 | .; delete 408.1275 record for IVM dependent and
|
---|
117 | .; change demo data in 408.12 & 408.13 back to VAMC values
|
---|
118 | .; or
|
---|
119 | .; delete 408.1275 record for inactivated VAMC dependent
|
---|
120 | .S IVM121="",IVM121=$O(^DGPR(408.12,"AIVM",IVMMTIEN,+IVM12,IVM121))
|
---|
121 | .I $G(^DGPR(408.12,+IVM12,"E",+IVM121,0))']"" D Q
|
---|
122 | ..S (IVMTEXT(6),HLERR)="Can't find 408.1275 record "_IVM12_" "_IVM121
|
---|
123 | ..D ERRBULL^IVMPREC7,MAIL^IVMUFNC()
|
---|
124 | ..S IVMFERR=""
|
---|
125 | ..D ACK^IVMPREC
|
---|
126 | ..Q
|
---|
127 | .S IVMVAMCA=$P(^(0),"^",2) ; dependent active?
|
---|
128 | .S DA(1)=IVM12,DA=IVM121,DIK="^DGPR(408.12,"_DA(1)_",""E"","
|
---|
129 | .D ^DIK K DA(1),DA,DIK
|
---|
130 | .Q:'IVMVAMCA ; quit if inactivated VAMC dependent
|
---|
131 | .S IVM13=+$P($P($G(^DGPR(408.12,+IVM12,0)),"^",3),";")
|
---|
132 | .D EN^EASUM8
|
---|
133 | .Q
|
---|
134 | ;
|
---|
135 | Q:$D(IVMFERR)
|
---|
136 | D EN1^EASUM8
|
---|
137 | Q
|
---|
138 | ;
|
---|
139 | ERRBULL ; build mail message for transmission to IVM mail group notifying site
|
---|
140 | ; of upload error.
|
---|
141 | S IVMPAT=$$PT^IVMUFNC4(DFN)
|
---|
142 | S XMSUB="IVM - MEANS TEST UPLOAD"
|
---|
143 | S IVMTEXT(1)="The following error occured when an Income Verification Match"
|
---|
144 | S IVMTEXT(2)="verified Means Test was being uploaded for the following patient:"
|
---|
145 | S IVMTEXT(3)=" "
|
---|
146 | S IVMTEXT(4)=" NAME: "_$P(IVMPAT,"^")
|
---|
147 | S IVMTEXT(5)=" ID: "_$P(IVMPAT,"^",2)
|
---|
148 | S IVMTEXT(6)=" ERROR: "_IVMTEXT(6)
|
---|
149 | Q
|
---|
150 | ;
|
---|
151 | MTBULL ; build mail message for transmission to IVM mail group notifying them
|
---|
152 | ; an IVM verified MT/CT has been uploaded into DHCP for a patient.
|
---|
153 | ;
|
---|
154 | S IVMPAT=$$PT^IVMUFNC4(DFN)
|
---|
155 | S XMSUB="IVM - INCOME TEST UPLOAD for "_$P($P(IVMPAT,"^"),",")_" ("_$P(IVMPAT,"^",3)_")"
|
---|
156 | S IVMTEXT(1)="An Income Verification Match verified "
|
---|
157 | S IVMTEXT(1)=IVMTEXT(1)_^DG(408.33,DGMTYPT,0)_" has been uploaded"
|
---|
158 | S IVMTEXT(2)="for the following patient:"
|
---|
159 | S IVMTEXT(3)=" "
|
---|
160 | S IVMTEXT(4)=" NAME: "_$P(IVMPAT,"^")
|
---|
161 | S IVMTEXT(5)=" ID: "_$P(IVMPAT,"^",2)
|
---|
162 | S Y=IVMMTDT X ^DD("DD")
|
---|
163 | S IVMTEXT(6)=" DATE OF TEST: "_Y
|
---|
164 | ;set previous sts from previous 408.31 or previous RX sts
|
---|
165 | S IVMTEXT(7)=" PREV CATEGORY: "
|
---|
166 | I DGMTYPT=2 D
|
---|
167 | . S IVMTEXT(7)=IVMTEXT(7)_IVMCEB
|
---|
168 | E D
|
---|
169 | . S IVMTEXT(7)=IVMTEXT(7)_$P($G(^DG(408.32,+$P(IVMMT31,"^",3),0)),"^",1)
|
---|
170 | ;
|
---|
171 | S IVMTEXT(8)=" NEW CATEGORY: "_DGCAT
|
---|
172 | I IVM5 S Y=IVM5 X ^DD("DD") S IVMTEXT(9)=" DATE/TIME OF ADJUDICATION: "_Y
|
---|
173 | Q
|
---|