1 | XUMF416 ;ISS/RAM - Load NPI;12/15/05
|
---|
2 | ;;8.0;KERNEL;**416**;Jul 10, 1995;Build 5
|
---|
3 | ;
|
---|
4 | ; $$PARAM^HLCS2 call supported by IA #3552
|
---|
5 | ;
|
---|
6 | Q
|
---|
7 | ;
|
---|
8 | BG ; -- background job
|
---|
9 | ;
|
---|
10 | N ZTRTN,ZTDESC,ZTDTH
|
---|
11 | ;
|
---|
12 | S ZTRTN="EN^XUMF416"
|
---|
13 | S ZTDESC="XUMF Load NPI"
|
---|
14 | S ZTDTH=$$NOW^XLFDT
|
---|
15 | S ZTIO=""
|
---|
16 | ;
|
---|
17 | D ^%ZTLOAD
|
---|
18 | ;
|
---|
19 | Q
|
---|
20 | ;
|
---|
21 | EN ; -- entry point
|
---|
22 | ;
|
---|
23 | K ^TMP("XUMF ARRAY",$J)
|
---|
24 | ;
|
---|
25 | N PARAM,XUMFLAG,ERROR,TEST
|
---|
26 | ;
|
---|
27 | S (ERROR,XUMFLAG,TEST)=0
|
---|
28 | ;
|
---|
29 | I $P($$PARAM^HLCS2,U,3)="T" S TEST=1
|
---|
30 | ;
|
---|
31 | L +^TMP("XUMF ARRAY",$J):0 D:'$T
|
---|
32 | .S ERROR="1^another process is using the Master File Server"
|
---|
33 | ;
|
---|
34 | I ERROR D EXIT Q
|
---|
35 | ;
|
---|
36 | D MFS0
|
---|
37 | ;
|
---|
38 | I ERROR D EXIT Q
|
---|
39 | ;
|
---|
40 | I '$D(^TMP("XUMF ARRAY",$J)) D
|
---|
41 | .S ERROR="1^Connection to master file server failed!"
|
---|
42 | ;
|
---|
43 | I ERROR D EXIT Q
|
---|
44 | ;
|
---|
45 | D NPI
|
---|
46 | ;
|
---|
47 | D EXIT
|
---|
48 | ;
|
---|
49 | Q
|
---|
50 | ;
|
---|
51 | MFS0 ; -- get NPI from Institution Master File
|
---|
52 | ;
|
---|
53 | S PARAM("CDSYS")="NPI"
|
---|
54 | S PARAM("LLNK")="XUMF MFR^XUMF "_$S('TEST:"FORUM",1:"TEST")
|
---|
55 | S PARAM("PROTOCOL")=$O(^ORD(101,"B","XUMF MFQ",0))
|
---|
56 | ;
|
---|
57 | D MAIN^XUMFP(4,"ALL",7,.PARAM,.ERROR) Q:ERROR
|
---|
58 | D MAIN^XUMFI(4,"ALL",7,.PARAM,.ERROR) Q:ERROR
|
---|
59 | D MAIN^XUMFH
|
---|
60 | ;
|
---|
61 | Q
|
---|
62 | ;
|
---|
63 | EXIT ; -- cleanup and quit
|
---|
64 | ;
|
---|
65 | I '$$FIND1^DIC(4,,"BX","BONHAM PHARMACY") D EM
|
---|
66 | ;
|
---|
67 | K ^TMP("XUMF ARRAY",$J),^TMP("XUMF MFS",$J),^TMP("DIERR",$J)
|
---|
68 | ;
|
---|
69 | L -^TMP("XUMF ARRAY",$J)
|
---|
70 | ;
|
---|
71 | S ZTREQ="@"
|
---|
72 | ;
|
---|
73 | Q
|
---|
74 | ;
|
---|
75 | NPI ; -- add NPI ID to Institution file
|
---|
76 | ;
|
---|
77 | N ID,FDA,ERROR,IEN,IENS,HLNODE,ARRAY,XUMF,STANUM,TAX,TAXPC,TAXSTAT,NPI,NPIDT,NPISTAT,X,ERR,VISN
|
---|
78 | N NAME,OFNME,AGENCY,FACTYP,STREET,CITY,STATE,ZIP,FDA,PARENT,STRT1,CITY1,STATE1,ZIP1,INACTIVE
|
---|
79 | ;
|
---|
80 | S XUMF=1
|
---|
81 | ;
|
---|
82 | S ID=""
|
---|
83 | F S ID=$O(^TMP("XUMF ARRAY",$J,ID)) Q:ID="" D
|
---|
84 | .K HLNODE
|
---|
85 | .M HLNODE=^TMP("XUMF ARRAY",$J,ID)
|
---|
86 | .D UPDATE
|
---|
87 | ;
|
---|
88 | Q
|
---|
89 | ;
|
---|
90 | UPDATE ;
|
---|
91 | ;
|
---|
92 | D SEGPRSE^XUMFXHL7("HLNODE","ARRAY")
|
---|
93 | ;
|
---|
94 | S NAME=ARRAY(1)
|
---|
95 | S STANUM=ARRAY(2)
|
---|
96 | S FACTYP=$P(ARRAY(4),"~",1)
|
---|
97 | S OFNME=ARRAY(5)
|
---|
98 | S INACTIVE=ARRAY(6)
|
---|
99 | S STATE=ARRAY(7)
|
---|
100 | S VISN=ARRAY(8)
|
---|
101 | S PARENT=ARRAY(9)
|
---|
102 | S STREET=$P(ARRAY(14),"~",2)
|
---|
103 | S CITY=$P(ARRAY(14),"~",3)
|
---|
104 | S ZIP=$P(ARRAY(14),"~",5)
|
---|
105 | S STRT1=$P(ARRAY(15),"~",2)
|
---|
106 | S CITY1=$P(ARRAY(15),"~",3)
|
---|
107 | S STATE1=$P(ARRAY(15),"~",4)
|
---|
108 | S ZIP1=$P(ARRAY(15),"~",5)
|
---|
109 | S AGENCY=$P(ARRAY(16),"~")
|
---|
110 | S NPIDT=$$FMDATE^HLFNC(ARRAY(17))
|
---|
111 | S NPISTAT=ARRAY(18)
|
---|
112 | S NPI=ARRAY(19)
|
---|
113 | S TAX=ARRAY(20)
|
---|
114 | S TAXPC=ARRAY(21)
|
---|
115 | S TAXSTAT=ARRAY(22)
|
---|
116 | ;
|
---|
117 | S IEN=$$IEN^XUMF(4,"NPI",ID)
|
---|
118 | I 'IEN,$G(STANUM)'="" S IEN=$O(^DIC(4,"D",STANUM,0))
|
---|
119 | I 'IEN,$D(^DIC(4,"B",NAME)) S IEN=$O(^DIC(4,"B",NAME,0))
|
---|
120 | ;
|
---|
121 | I 'IEN D Q:'IEN
|
---|
122 | .N X,Y S X=NAME
|
---|
123 | .K DIC S DIC=4,DIC(0)="F"
|
---|
124 | .D FILE^DICN K DIC
|
---|
125 | .S IEN=$S(Y="-1":0,1:+Y)
|
---|
126 | ;
|
---|
127 | S IENS=IEN_","
|
---|
128 | ;
|
---|
129 | K FDA
|
---|
130 | S FDA(4,IENS,.01)=NAME
|
---|
131 | S FDA(4,IENS,13)=FACTYP
|
---|
132 | S FDA(4,IENS,1.01)=STREET
|
---|
133 | S FDA(4,IENS,1.03)=CITY
|
---|
134 | S FDA(4,IENS,1.04)=ZIP
|
---|
135 | S FDA(4,IENS,.02)=STATE
|
---|
136 | S FDA(4,IENS,4.01)=STRT1
|
---|
137 | S FDA(4,IENS,4.03)=CITY1
|
---|
138 | S FDA(4,IENS,4.04)=STATE1
|
---|
139 | S FDA(4,IENS,4.05)=ZIP1
|
---|
140 | S FDA(4,IENS,11)="National"
|
---|
141 | S FDA(4,IENS,100)=OFNME
|
---|
142 | S FDA(4,IENS,101)=INACTIVE
|
---|
143 | S FDA(4,IENS,95)=AGENCY
|
---|
144 | D FILE^DIE("E","FDA","ERR")
|
---|
145 | ;
|
---|
146 | K FDA
|
---|
147 | S IENS="?+1,"_IEN_","
|
---|
148 | S FDA(4.014,IENS,.01)="VISN"
|
---|
149 | S FDA(4.014,IENS,1)=VISN
|
---|
150 | D UPDATE^DIE("E","FDA")
|
---|
151 | ;
|
---|
152 | K FDA
|
---|
153 | S IENS="?+2,"_IEN_","
|
---|
154 | S FDA(4.014,IENS,.01)="PARENT FACILITY"
|
---|
155 | S FDA(4.014,IENS,1)=PARENT
|
---|
156 | D UPDATE^DIE("E","FDA")
|
---|
157 | ;
|
---|
158 | S X=$$NPI^XUSNPI("Organization_ID",IEN,NPIDT)
|
---|
159 | I $S(X=0:1,$$UP^XLFSTR($P(X,U,3))'=NPISTAT:1,NPI'=+X:1,1:0) D
|
---|
160 | .S X=$$ADDNPI^XUSNPI("Organization_ID",IEN,NPI,NPIDT,$S(NPISTAT="ACTIVE":1,1:0))
|
---|
161 | ;
|
---|
162 | S IENS="?+1,"_IEN_","
|
---|
163 | K FDA
|
---|
164 | S FDA(4.9999,IENS,.01)="NPI"
|
---|
165 | S FDA(4.9999,IENS,.02)=NPI
|
---|
166 | D UPDATE^DIE("E","FDA",,"ERR")
|
---|
167 | ;
|
---|
168 | K FDA
|
---|
169 | S IENS="?+1,"_IEN_","
|
---|
170 | S FDA(4.043,IENS,.01)=TAX
|
---|
171 | S FDA(4.043,IENS,.02)=TAXPC
|
---|
172 | S FDA(4.043,IENS,.03)=TAXSTAT
|
---|
173 | D UPDATE^DIE("E","FDA",,"ERR")
|
---|
174 | ;
|
---|
175 | Q
|
---|
176 | ;
|
---|
177 | POST ;
|
---|
178 | ;
|
---|
179 | D TAX,STA,OPT
|
---|
180 | ;
|
---|
181 | Q
|
---|
182 | ;
|
---|
183 | TAX ;
|
---|
184 | ;
|
---|
185 | N IENS,FDA
|
---|
186 | ;
|
---|
187 | S IENS="?+954,"
|
---|
188 | K FDA
|
---|
189 | S FDA(8932.1,IENS,.01)="General Acute Care Hospital"
|
---|
190 | S FDA(8932.1,IENS,6)="282N00000X"
|
---|
191 | S FDA(8932.1,IENS,90002)="NON-INDIVIDUAL"
|
---|
192 | D UPDATE^DIE("E","FDA","IEN","ERR")
|
---|
193 | ;
|
---|
194 | S IENS="?+955,"
|
---|
195 | K FDA
|
---|
196 | S FDA(8932.1,IENS,.01)="VA FACILITY"
|
---|
197 | S FDA(8932.1,IENS,6)="261QV0200X"
|
---|
198 | S FDA(8932.1,IENS,90002)="NON-INDIVIDUAL"
|
---|
199 | D UPDATE^DIE("E","FDA","IEN","ERR")
|
---|
200 | ;
|
---|
201 | S IENS="?+956,"
|
---|
202 | K FDA
|
---|
203 | S FDA(8932.1,IENS,.01)="Department of Veterans Affairs (VA) Pharmacy"
|
---|
204 | S FDA(8932.1,IENS,6)="332100000X"
|
---|
205 | S FDA(8932.1,IENS,90002)="NON-INDIVIDUAL"
|
---|
206 | D UPDATE^DIE("E","FDA","IEN","ERR")
|
---|
207 | ;
|
---|
208 | Q
|
---|
209 | ;
|
---|
210 | OPT ;
|
---|
211 | ;
|
---|
212 | N IEN,FDA,IENS
|
---|
213 | ;
|
---|
214 | S IEN=$$FIND1^DIC(19,,"B","XUKERNEL")
|
---|
215 | K FDA
|
---|
216 | S IENS="?+1,"_IEN_","
|
---|
217 | S FDA(19.01,IENS,.01)="XUMF LOAD NPI"
|
---|
218 | D UPDATE^DIE("E","FDA")
|
---|
219 | ;
|
---|
220 | Q
|
---|
221 | ;
|
---|
222 | STA ;
|
---|
223 | ;
|
---|
224 | N STA,IEN,IENS,FDA,FTYP,XUMF
|
---|
225 | ;
|
---|
226 | S XUMF=1
|
---|
227 | ;
|
---|
228 | S STA=""
|
---|
229 | F S STA=$O(^DIC(4,"D",STA)) Q:STA="" D
|
---|
230 | .S IEN=$O(^DIC(4,"D",STA,0))
|
---|
231 | .S IENS="?+1,"_IEN_","
|
---|
232 | .K FDA
|
---|
233 | .S FDA(4.9999,IENS,.01)="VASTANUM"
|
---|
234 | .S FDA(4.9999,IENS,.02)=STA
|
---|
235 | .D
|
---|
236 | ..N IEN,STA
|
---|
237 | ..D UPDATE^DIE("E","FDA")
|
---|
238 | ;
|
---|
239 | Q
|
---|
240 | ;
|
---|
241 | DEL ;USE EXTREME CAUTION!!!!
|
---|
242 | ;
|
---|
243 | N IEN,NPI,IEN1,FDA,ERR
|
---|
244 | ;
|
---|
245 | S IEN=0
|
---|
246 | F S IEN=$O(^DIC(4,IEN)) Q:'IEN D
|
---|
247 | .;Q:'$G(^DIC(4,IEN,99))
|
---|
248 | .S NPI=$G(^DIC(4,IEN,"NPI")) ;Q:'NPI
|
---|
249 | .K ^DIC(4,"ANPI",+NPI,IEN)
|
---|
250 | .K ^DIC(4,"NPI42",+NPI,IEN)
|
---|
251 | .K ^DIC(4,IEN,"NPI")
|
---|
252 | .K ^DIC(4,IEN,"NPISTATUS")
|
---|
253 | .K ^DIC(4,IEN,"TAXONOMY")
|
---|
254 | .K ^DIC(4,"TAXSTATUS","A",IEN)
|
---|
255 | ;
|
---|
256 | XXX ;
|
---|
257 | ;
|
---|
258 | S NPI=0
|
---|
259 | F S NPI=$O(^DIC(4,"XUMFIDX","NPI",NPI)) Q:'NPI D
|
---|
260 | .S IEN=$O(^DIC(4,"XUMFIDX","NPI",NPI,0)) Q:'IEN
|
---|
261 | .S IEN1=$O(^DIC(4,"XUMFIDX","NPI",NPI,IEN,0)) Q:'IEN1
|
---|
262 | .;Q:'$G(^DIC(4,IEN,99))
|
---|
263 | .K FDA
|
---|
264 | .S FDA(4.9999,IEN1_","_IEN_",",.01)="@"
|
---|
265 | .D FILE^DIE("E","FDA","ERR")
|
---|
266 | ;
|
---|
267 | YYY ;
|
---|
268 | ;
|
---|
269 | S IEN=$$FIND1^DIC(870,,"BX","XUMF FORUM")
|
---|
270 | S IENS=IEN_","
|
---|
271 | ;
|
---|
272 | K FDA
|
---|
273 | S FDA(870,IENS,4.5)=1
|
---|
274 | S FDA(870,IENS,200.04)=60
|
---|
275 | S FDA(870,IENS,200.05)=60
|
---|
276 | D UPDATE^DIE(,"FDA")
|
---|
277 | ;
|
---|
278 | Q
|
---|
279 | ;
|
---|
280 | EM ;
|
---|
281 | ;
|
---|
282 | N X,XMTEXT,XMDUZ,XMSUB
|
---|
283 | ;
|
---|
284 | S X(1)="The post install of patch XU*8*416 has completed but the NPI values"
|
---|
285 | S X(2)="did not get updated in your INSTITUTION (#4) file. Check your HL LOGICAL"
|
---|
286 | S X(3)="LINK (#870) 'XUMF FORUM.' You should be able to PING the link -- stop/start"
|
---|
287 | S X(4)="the link if necessary.",X(4.5)=""
|
---|
288 | S X(5)="After you have verified your XUMF FORUM link use the 'Load Institution"
|
---|
289 | S X(6)="NPI values' [XUMF LOAD NPI] in the [XUKERNEL] menu to load the NPI values."
|
---|
290 | S X(7)=""
|
---|
291 | S X(8)="NOTE: If you are installing in a TEST ACCOUNT then you may disregard this"
|
---|
292 | S X(9)="message. If you do need to install the NPI values in a test/development"
|
---|
293 | S X(10)="environment then you must set up the 'XUMF TEST' logical link to connect"
|
---|
294 | S X(11)="to a test server environment. Hospitals will most likely not wish to update"
|
---|
295 | S X(12)="the Institution file using HL7 messaging but rather wait until the mirror"
|
---|
296 | S X(13)="image overwrites the file normally. If you do need to update the test or"
|
---|
297 | S X(14)="development account and you don't have a test server available then you'll"
|
---|
298 | S X(16)="need to contact the Institution file developer."
|
---|
299 | ;
|
---|
300 | S XMSUB="XUMF NPI ERROR/WARNING/INFO"
|
---|
301 | S XMY("G.XUMF NPI")="",XMY(DUZ)="",XMDUZ=.5
|
---|
302 | S XMTEXT="X("
|
---|
303 | ;
|
---|
304 | D ^XMD
|
---|
305 | ;
|
---|
306 | Q
|
---|
307 | ;
|
---|