1 | TMGNDF1F ;TMG/kst/FDA Import: Work with drug ROUTES ;03/25/06
|
---|
2 | ;;1.0;TMG-LIB;**1**;02/26/07
|
---|
3 |
|
---|
4 | ;" FDA - NATIONAL DRUG FILES COMPILING FUNCTIONS
|
---|
5 | ;" -- Working with Dosage ROUTES
|
---|
6 | ;"Kevin Toppenberg MD
|
---|
7 | ;"GNU General Public License (GPL) applies
|
---|
8 | ;"2-26-07
|
---|
9 |
|
---|
10 | ;"=======================================================================
|
---|
11 | ;" API -- Public Functions.
|
---|
12 | ;"=======================================================================
|
---|
13 | ;"Menu
|
---|
14 |
|
---|
15 | ;"=======================================================================
|
---|
16 | ;" Private Functions.
|
---|
17 | ;"=======================================================================
|
---|
18 |
|
---|
19 | ;"=======================================================================
|
---|
20 | ;"=======================================================================
|
---|
21 |
|
---|
22 | ;"ScrnAll -- Fix missing Dose ROUTES from DRUG file
|
---|
23 |
|
---|
24 | ;"=======================================================================
|
---|
25 | ;" Private Functions.
|
---|
26 | ;"=======================================================================
|
---|
27 | Menu
|
---|
28 | ;"Purpose: Provide menu to entry points of main routines
|
---|
29 |
|
---|
30 | new Menu,UsrSlct
|
---|
31 | set Menu(0)="Pick Option for Ensuring correct DOSE ROUTES (1F)"
|
---|
32 |
|
---|
33 | new i set i=1
|
---|
34 | set Menu(i)="Find new import ROUTES"_$char(9)_"FINDNEW" set i=i+1
|
---|
35 | set Menu(i)="Match imports ROUTE --> VA ROUTE"_$char(9)_"MATCH" set i=i+1
|
---|
36 | set Menu(i)="Fix imports with missing ROUTE"_$char(9)_"FixMissingRoute" set i=i+1
|
---|
37 | set Menu(i)="Screen ALL imports for INCORRECT ROUTE"_$char(9)_"ScreenAll" set i=i+1
|
---|
38 | set Menu(i)="Edit match file (IF NEEDED)"_$char(9)_"EditMatch" set i=i+1
|
---|
39 | set Menu(i)="Edit VA ROUTES (file 51.2) (ONLY IF NEEDED)"_$char(9)_"EDITVA" set i=i+1
|
---|
40 | set Menu(i)="USE links for import ROUTE --> VA ROUTE (DO THIS LAST)"_$char(9)_"FillVARoute" set i=i+1
|
---|
41 |
|
---|
42 | set Menu("P")="Prev Stage"_$char(9)_"Prev"
|
---|
43 | set Menu("N")="Next Stage"_$char(9)_"Next"
|
---|
44 |
|
---|
45 | MC1 write #
|
---|
46 | set UsrSlct=$$Menu^TMGUSRIF(.Menu,"^")
|
---|
47 | if UsrSlct="^" goto MCDone
|
---|
48 | if UsrSlct=0 set UsrSlct=""
|
---|
49 |
|
---|
50 | if UsrSlct="FixMissingRoute" do FixMissingRoute goto MC1
|
---|
51 | if UsrSlct="ScreenAll" do ScrnAll goto MC1
|
---|
52 |
|
---|
53 | if UsrSlct="FillVARoute" do FillVARoute goto MC1
|
---|
54 | if UsrSlct="EditMatch" do EditMatchFile goto MC1
|
---|
55 | if UsrSlct="FINDNEW" do FindUnmatched goto MC1
|
---|
56 | if UsrSlct="MATCH" do HandleLinks goto MC1
|
---|
57 | if UsrSlct="EDITVA" do EditVARoutes goto MC1
|
---|
58 |
|
---|
59 |
|
---|
60 | if UsrSlct="Prev" goto Menu^TMGNDF1E ;"quit can occur from there...
|
---|
61 | if UsrSlct="Next" goto Menu^TMGNDF2A ;"quit can occur from there...
|
---|
62 | goto MC1
|
---|
63 |
|
---|
64 | MCDone
|
---|
65 | quit
|
---|
66 |
|
---|
67 | ;"=======================================================================
|
---|
68 |
|
---|
69 |
|
---|
70 | ScrnAll
|
---|
71 | ;"Purpose: Fix missing or screen for Dose ROUTES from DRUG file
|
---|
72 | ;"Results -- none.
|
---|
73 |
|
---|
74 | write "Scanning for records to display...",!
|
---|
75 | do SelEdRArray()
|
---|
76 | quit
|
---|
77 |
|
---|
78 |
|
---|
79 | FixMissingRoute
|
---|
80 | ;"Purpose: Fix missing or screen for Dose ROUTES from DRUG file
|
---|
81 | ;"Results: none
|
---|
82 |
|
---|
83 | new PreSelArray,JustSelected
|
---|
84 | set JustSelected=0
|
---|
85 |
|
---|
86 | write "Scanning for entries with no DOSE ROUTE...",!
|
---|
87 | do GetFldVScreen^TMGSELED(22706.9,3,"$$ScrnTest^TMGNDF1F","PreSelArray")
|
---|
88 |
|
---|
89 | write "Show just those preselected? (Faster)"
|
---|
90 | new % set %=1 do YN^DICN write !
|
---|
91 | if %=1 set JustSelected=1
|
---|
92 | else write "Now scanning for the rest of the entries...",!
|
---|
93 | do SelEdRArray(.PreSelArray,JustSelected)
|
---|
94 |
|
---|
95 | do FindUnmatched
|
---|
96 | quit
|
---|
97 |
|
---|
98 |
|
---|
99 | ScrnTest()
|
---|
100 | ;"Purpose: this is a callback function for GetFldVScreen^TMGSELED
|
---|
101 | ;" Screen out if value is null (i.e. LOOK FOR MISSING VALUES),
|
---|
102 | ;" or SKIP=true,
|
---|
103 | ;"Input: None. But following global-scope variables will be available for use
|
---|
104 | ;" File -- the File name or number
|
---|
105 | ;" FieldNum -- the field number
|
---|
106 | ;" IEN -- the IEN of the current record.
|
---|
107 | ;" RecValue -- the current value of the field
|
---|
108 | ;"Results: 1 if should be skipped, 0 if should be keps
|
---|
109 |
|
---|
110 | new result set result=1;" default to SKIP
|
---|
111 | if RecValue'="" goto STDone ;"if not null, then skip
|
---|
112 | ;"Now see if 22706.9 is marked for SKIP
|
---|
113 | if $piece($get(^TMG(22706.9,IEN,1)),"^",4)=1 goto STDone ;"1;4=SKIP field, 1=SKIP
|
---|
114 | set result=0 ;"keep
|
---|
115 | STDone
|
---|
116 | quit result
|
---|
117 |
|
---|
118 |
|
---|
119 | Scrn2Test()
|
---|
120 | ;"Purpose: this is a callback function for GetFldVScreen^TMGSELED
|
---|
121 | ;" Screen out if record in 22706.9=SKIP,
|
---|
122 | ;"Input: None. But following global-scope variables will be available for use
|
---|
123 | ;" File -- the File name or number
|
---|
124 | ;" FieldNum -- the field number
|
---|
125 | ;" IEN -- the IEN of the current record.
|
---|
126 | ;" RecValue -- the current value of the field
|
---|
127 | ;"Results: 1 if should be skipped, 0 if should be keps
|
---|
128 |
|
---|
129 | new result set result=1;" default to SKIP
|
---|
130 | ;"Now see if matching record in 22706.9 is marked for SKIP
|
---|
131 | if $piece($get(^TMG(22706.9,IEN,1)),"^",4)=1 goto ST2Done ;"1;4=SKIP field, 1=SKIP
|
---|
132 | if $data(^TMG(22706.9,IEN))=0 goto ST2Done ;"if null record (for some reason)
|
---|
133 | set result=0 ;"keep
|
---|
134 | ST2Done
|
---|
135 | quit result
|
---|
136 |
|
---|
137 |
|
---|
138 |
|
---|
139 | SelEdRArray(SelArray,JustSelected)
|
---|
140 | ;"Purpose: Fix missing or screen for Dose ROUTES from DRUG file
|
---|
141 | ;"Input: SelList -- PASS BY REFERENCE. An OUT PARAMETER. Format
|
---|
142 | ;" List(IEN)=""
|
---|
143 | ;" List(IEN)="" <-- IEN in 50 that was selected.
|
---|
144 | ;" Mode -- 0 for missing routes, or "ALL" for screening all
|
---|
145 | ;"Results: none
|
---|
146 |
|
---|
147 | new Options,IEN
|
---|
148 | set Options("FIELDS",1)=".05^TRADENAME^40"
|
---|
149 | set Options("FIELDS",1,"NO EDIT")=1 ;"i.e. show for browsing, but don't allow edit
|
---|
150 | set Options("FIELDS",2)="3.4^FDA DOSAGE FORM^15"
|
---|
151 | ;"set Options("FIELDS",2,"NO EDIT")=1 ;"i.e. show for browsing, but don't allow edit
|
---|
152 | set Options("FIELDS",3)="3^FDA ROUTE^15"
|
---|
153 | ;"set Options("FIELDS",4)="3.1^VA ROUTE^15"
|
---|
154 | set Options("FIELDS","MAX NUM")=3
|
---|
155 | set Options("FILE")="22706.9^TMG FDA IMPORT COMPILED"
|
---|
156 | ;"Get all records with SKIP THIS RECORD = 0 (KEEP)
|
---|
157 |
|
---|
158 | if +$get(JustSelected)=0 do
|
---|
159 | . do GetFldVScreen^TMGSELED(22706.9,3,"$$Scrn2Test^TMGNDF1F",$name(Options("IEN LIST")))
|
---|
160 | else do
|
---|
161 | . merge Options("IEN LIST")=SelArray
|
---|
162 | . kill SelArray
|
---|
163 |
|
---|
164 | SE1 if $data(SelArray) do
|
---|
165 | . set IEN=""
|
---|
166 | . for set IEN=$order(SelArray(IEN)) quit:(IEN="") do
|
---|
167 | . . if $data(Options("IEN LIST",IEN))>0 do
|
---|
168 | . . . set Options("IEN LIST",IEN,"SEL")=""
|
---|
169 |
|
---|
170 | if $$SELED^TMGSELED(.Options)'=2 goto SERDone
|
---|
171 | if $$GetIENs^TMGSELED(.Options)=0 goto SERDone
|
---|
172 | goto SE1
|
---|
173 |
|
---|
174 | SERDone quit
|
---|
175 |
|
---|
176 |
|
---|
177 |
|
---|
178 | ;"=======================================================================
|
---|
179 |
|
---|
180 |
|
---|
181 | FindUnmatched
|
---|
182 | ;"Purpose: Find new, unhandled, FDA dosage forms, and create a new record in
|
---|
183 | ;" TMG NDF FORMS VISTA EQUIVALENTS
|
---|
184 |
|
---|
185 | new Array
|
---|
186 | write !,"Checking compiled FDA import records for new FDA drug ROUTES...",!
|
---|
187 | do GetFDARoute(.Array)
|
---|
188 | do TrimFoundRoutes(.Array)
|
---|
189 | if $data(Array) do
|
---|
190 | . write $$ListCt^TMGMISC("Array")," new drug ROUTES found. Adding now...",!
|
---|
191 | . do StubInNewRec(.Array)
|
---|
192 | . do HandleLinks
|
---|
193 | . write "Done.",!
|
---|
194 | else do
|
---|
195 | . write !,"No new FDA drug ROUTES found",!
|
---|
196 |
|
---|
197 | do PressToCont^TMGUSRIF
|
---|
198 |
|
---|
199 | quit
|
---|
200 |
|
---|
201 |
|
---|
202 | GetFDARoute(Array)
|
---|
203 | ;"Purpose: to scan file 22706.9 (TMG FDA IMPORT COMPILED) and compile a list of all ROUTES
|
---|
204 | ;"Input: Array -- PASS BY REFERENCE. An OUT PARAMETER. Prior entries will be killed
|
---|
205 | ;"Results: Data passed back as follows:
|
---|
206 | ;" Array(Route)=""
|
---|
207 | ;" Array(Route)=""
|
---|
208 | ;"Result: none.
|
---|
209 |
|
---|
210 | new Itr,IEN
|
---|
211 | set IEN=$$ItrInit^TMGITR(22706.9,.Itr)
|
---|
212 | do PrepProgress^TMGITR(.Itr,20,0,"IEN")
|
---|
213 | if IEN'="" for do quit:($$ItrNext^TMGITR(.Itr,.IEN)'>0)
|
---|
214 | . if $piece($get(^TMG(22706.9,IEN,1)),"^",4)=1 quit ;"1=SKIP
|
---|
215 | . new Route
|
---|
216 | . set Route=$piece($get(^TMG(22706.9,IEN,0)),"^",5)
|
---|
217 | . if Route="" quit
|
---|
218 | . set Array(Route)=IEN
|
---|
219 | do ProgressDone^TMGITR(.Itr)
|
---|
220 |
|
---|
221 |
|
---|
222 | quit
|
---|
223 |
|
---|
224 |
|
---|
225 | TrimFoundRoutes(Array)
|
---|
226 | ;"Purpose: To remove entries from Array, for which mapping to a VistA equivilent
|
---|
227 | ;" has already ben created
|
---|
228 | ;"Input: Array -- PASS BY REFERENCE. Array as created by GetFDARoute
|
---|
229 | new Form set Form=""
|
---|
230 | for set Form=$order(Array(Form)) quit:(Form="") do
|
---|
231 | . new shortForm set shortForm=$extract(Form,1,30)
|
---|
232 | . if $order(^TMG(22706.82,"B",shortForm,""))'="" kill Array(Form)
|
---|
233 | quit
|
---|
234 |
|
---|
235 |
|
---|
236 | StubInNewRec(Array)
|
---|
237 | ;"Purpose: To create new entries in 22706.8 for FDA forms not yet added.
|
---|
238 | ;"Input: Array -- PASS BY REFERENCE. An array of Forms to be added, as created
|
---|
239 | ;" by GetFDARoute.
|
---|
240 | ;"NOTE: ALL entries in Array will be added as new records. Thus, screening for
|
---|
241 | ;" prior entries must be performed, such as through TrimFoundRoutes()
|
---|
242 |
|
---|
243 | new TMGFDA,TMGMSG,TMGIEN
|
---|
244 | new Form set Form=""
|
---|
245 | for set Form=$order(Array(Form)) quit:(Form="") do
|
---|
246 | . set TMGFDA(22706.82,"+1,",.01)=Form
|
---|
247 | . kill TMGMSG,TMGIEN
|
---|
248 | . do UPDATE^DIE("K","TMGFDA","TMGIEN","TMGMSG")
|
---|
249 | . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
250 | quit
|
---|
251 |
|
---|
252 |
|
---|
253 |
|
---|
254 | DisplayRoutes(Answers)
|
---|
255 | ;"Purpose: to display the list of Dosage forms that don't have a corresponding VA DOSE FORM
|
---|
256 | ;"Input: Answers -- PASS BY REFERENCE, and OUT PARAMETER. Old values killed.
|
---|
257 | ;"Output: Answers filled in as follows:
|
---|
258 | ;" Answers(n)=RxRoute^IEN in 22706.82
|
---|
259 | ;" Answers(n)=RxRoute^IEN in 22706.82
|
---|
260 | ;"Results: None
|
---|
261 |
|
---|
262 | kill Answers
|
---|
263 | new count set count=0
|
---|
264 | new Itr,IEN
|
---|
265 | set IEN=$$ItrInit^TMGITR(22706.82,.Itr)
|
---|
266 | if IEN'="" for do quit:($$ItrNext^TMGITR(.Itr,.IEN)'>0)
|
---|
267 | . new VARouteIEN set VARouteIEN=+$piece($get(^TMG(22706.82,IEN,0)),"^",2)
|
---|
268 | . if VARouteIEN'=0 quit
|
---|
269 | . new FDARoute set FDARoute=$piece($get(^TMG(22706.82,IEN,0)),"^",1)
|
---|
270 | . set count=count+1
|
---|
271 | . write count,". ",FDARoute," --> ??",!
|
---|
272 | . set Answers(count)=FDARoute_"^"_IEN
|
---|
273 | if count=0 do
|
---|
274 | . write " -- List is Empty --",!
|
---|
275 |
|
---|
276 | quit
|
---|
277 |
|
---|
278 |
|
---|
279 | HandleLinks
|
---|
280 | ;"Purpose: To interact with user and find a link between FDA dosage forms, and VA dosage forms
|
---|
281 | ;"Input: none
|
---|
282 | ;"Output: results are stored in 22706.8
|
---|
283 | ;"Results: none
|
---|
284 |
|
---|
285 | new Answers
|
---|
286 | new done set done=0
|
---|
287 | new input set input="R"
|
---|
288 | new LastNum
|
---|
289 | new VAPIndex
|
---|
290 |
|
---|
291 | for do quit:(done=1)
|
---|
292 | . if input="R" do
|
---|
293 | . . write !!
|
---|
294 | . . write "-------------------------------------------------------------------",!
|
---|
295 | . . write "Specify which Dosage ROUTE to Look up",!
|
---|
296 | . . write "-------------------------------------------------------------------",!
|
---|
297 | . . do DisplayRoutes(.Answers)
|
---|
298 | . . set LastNum=$order(Answers(""),-1)
|
---|
299 | . . if LastNum="" set LastNum="^"
|
---|
300 | . . write "-------------------------------------------------------------------",!
|
---|
301 | . . write "Specify which Dosage ROUTE to Look up",!
|
---|
302 | . . write "-------------------------------------------------------------------",!
|
---|
303 | . write " R to refresh, E show Examples",!
|
---|
304 | . write " ^ to continue",!
|
---|
305 | . write "Enter number to Lookup (or codes listed above): ",LastNum,"//"
|
---|
306 | . read input
|
---|
307 | . if input="" set input=LastNum write LastNum
|
---|
308 | . write !
|
---|
309 | . ;"if input="" set input="^"
|
---|
310 | . if input="" set input=LastNum write LastNum
|
---|
311 | . set input=$$UP^XLFSTR(input)
|
---|
312 | . if input="^" set done=1
|
---|
313 | . if +input=input do
|
---|
314 | . . do DoLink(input,.Answers)
|
---|
315 | . . set input="R"
|
---|
316 | . if input="E" do
|
---|
317 | . . write "...Enter number to show examples for: "_LastNum_"//"
|
---|
318 | . . read input,!
|
---|
319 | . . if input="" set input=LastNum
|
---|
320 | . . do ShowExamples(+input,.Answers,.VAPIndex)
|
---|
321 | . . set input="R"
|
---|
322 |
|
---|
323 | quit
|
---|
324 |
|
---|
325 |
|
---|
326 | DoLink(InputNum,Answers)
|
---|
327 | ;"Purpose: To try to establish a link between 1 FDA ROUTE and a VA ROUTE
|
---|
328 | ;"Input: InputNum -- the number that the user chose to fix.
|
---|
329 | ;" Answers -- PASS BY REFERENCE. Array as put out by DisplayRoutes
|
---|
330 | ;"Output: if link is established then it will be store in 22706.8
|
---|
331 | ;"Results: none
|
---|
332 |
|
---|
333 | new RxRoute,IEN
|
---|
334 | set RxRoute=$piece($get(Answers(InputNum)),"^",1)
|
---|
335 | set IEN=$piece($get(Answers(InputNum)),"^",2)
|
---|
336 | if RxRoute="" goto DLDone
|
---|
337 | new done set done=0
|
---|
338 |
|
---|
339 | new VistaIEN set VistaIEN=0
|
---|
340 | new DIC,X,Y
|
---|
341 | set DIC=51.2
|
---|
342 | set X=RxRoute
|
---|
343 | set DIC(0)="M"
|
---|
344 | do ^DIC
|
---|
345 | if +Y>0 do
|
---|
346 | . write !,"Match automatically found...",!
|
---|
347 | . write "Use '",$piece(Y,"^",2),"' for '",RxRoute,"'"
|
---|
348 | . new % set %=1 do YN^DICN
|
---|
349 | . if %'=1 quit
|
---|
350 | . set VistaIEN=+Y
|
---|
351 | if VistaIEN'=0 goto DL2
|
---|
352 |
|
---|
353 | set DIC(0)="AEQML"
|
---|
354 | set DIC("A")="Enter VA DOSE FORM name: // "
|
---|
355 | write !,"Enter name to match '"_RxRoute_"'"
|
---|
356 | do ^DIC write !
|
---|
357 | if +Y>0 do
|
---|
358 | . write "Use '",$piece(Y,"^",2),"' for '",RxRoute,"'"
|
---|
359 | . new % set %=1 do YN^DICN
|
---|
360 | . if %'=1 quit
|
---|
361 | . set VistaIEN=+Y
|
---|
362 |
|
---|
363 | DL2 if VistaIEN'=0 do
|
---|
364 | . new TMGFDA,TMGMSG
|
---|
365 | . set TMGFDA(22706.82,IEN_",",1)=VistaIEN
|
---|
366 | . do FILE^DIE("K","TMGFDA","TMGMSG")
|
---|
367 | . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
368 |
|
---|
369 | DLDone
|
---|
370 | quit
|
---|
371 |
|
---|
372 |
|
---|
373 | ShowExamples(InputNum,Answers,Index)
|
---|
374 | ;"Purpose: To show all entries using dosage form specified
|
---|
375 | ;"Input: InputNum -- the input number from user to show
|
---|
376 | ;" Answers -- PASS BY REFERENCE, array as put out by DisplayForms
|
---|
377 | ;" Index -- OPTIONAL. An index of VAProduct
|
---|
378 |
|
---|
379 | new RxRoute
|
---|
380 | set RxRoute=$piece($get(Answers(InputNum)),"^",1)
|
---|
381 | if RxRoute="" goto SEDone
|
---|
382 |
|
---|
383 | new count set count=0
|
---|
384 | new IEN set IEN=0
|
---|
385 | new abort set abort=0
|
---|
386 | for set IEN=$order(^TMG(22706.9,"ROUTE",RxRoute,IEN)) quit:(+IEN'>0)!abort do
|
---|
387 | . write "#",IEN,": "
|
---|
388 | . do DumpRec2^TMGDEBUG(22706.9,IEN_",")
|
---|
389 | . set count=count+1
|
---|
390 | . write " -- Press ENTER to Continue (ESC to quit) --"
|
---|
391 | . new ch set ch=$$KeyPressed^TMGUSRIF(0,60)
|
---|
392 | . write !
|
---|
393 | . if ch=27 set abort=1 quit
|
---|
394 |
|
---|
395 | if count=0 do
|
---|
396 | . write !,"Couldn't find any examples (error occurred).",!
|
---|
397 |
|
---|
398 | do PressToCont^TMGUSRIF
|
---|
399 | SEDone
|
---|
400 | quit
|
---|
401 |
|
---|
402 |
|
---|
403 | ;"========================================
|
---|
404 | EditVARoutes
|
---|
405 | ;"Purpose: To edit Vista Routes file file 51.2
|
---|
406 |
|
---|
407 | new Options,IEN
|
---|
408 | set Options("FIELDS",1)=".01^NAME^30"
|
---|
409 | set Options("FIELDS",1,"NO EDIT")=1 ;"i.e. show for browsing, but don't allow edit
|
---|
410 | set Options("FIELDS",2)="1^ABBREVIATION^15"
|
---|
411 | set Options("FIELDS",3)="3^PACKAGE USE^10"
|
---|
412 | set Options("FIELDS",4)="5^INACTIVATION DATE^10"
|
---|
413 | set Options("FIELDS",5)="6^IV FLAG^5"
|
---|
414 | set Options("FIELDS","MAX NUM")=5
|
---|
415 | set Options("FILE")="51.2^MEDICATION ROUTE"
|
---|
416 |
|
---|
417 | do GetFldValue^TMGSELED(51.2,.01,"ALL",$name(Options("IEN LIST")))
|
---|
418 |
|
---|
419 | EF1
|
---|
420 | if $$SELED^TMGSELED(.Options)'=2 goto EFDone
|
---|
421 | if $$GetIENs^TMGSELED(.Options)=0 goto EFDone
|
---|
422 | goto EF1
|
---|
423 |
|
---|
424 | EFDone quit
|
---|
425 |
|
---|
426 | ;"========================================
|
---|
427 |
|
---|
428 | FillVARoute
|
---|
429 | ;"Purpose: To ensure that there is a entry in the VA ROUTE field
|
---|
430 | ;" in all records in TMG FDA IMPORT COMPILED
|
---|
431 | ;" (that are not marked to be skipped)
|
---|
432 |
|
---|
433 | new Itr,IEN,abort,count,missingRoute
|
---|
434 | set abort=0,count=0,missingRoute=0
|
---|
435 |
|
---|
436 | write "Scanning through all imports and applying matches from ROUTE --> VA ROUTE...",!
|
---|
437 | set IEN=$$ItrInit^TMGITR(22706.9,.Itr)
|
---|
438 | do PrepProgress^TMGITR(.Itr,20,0,"IEN")
|
---|
439 | if IEN'="" for do quit:($$ItrNext^TMGITR(.Itr,.IEN)'>0)!abort
|
---|
440 | . if $piece($get(^TMG(22706.9,IEN,1)),"^",4)=1 quit ;"1=SKIP
|
---|
441 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
442 | . new FDARoute set FDARoute=$piece($get(^TMG(22706.9,IEN,0)),"^",5)
|
---|
443 | . new VARouteIEN set VARouteIEN=+$piece($get(^TMG(22706.9,IEN,7)),"^",7)
|
---|
444 | . if FDARoute="" do quit
|
---|
445 | . . if VARouteIEN'=0 quit
|
---|
446 | . . ;"write !,"No FDA drug ROUTE found for drug in record #",IEN,!
|
---|
447 | . . set missingRoute=missingRoute+1
|
---|
448 | . new mapIEN set mapIEN=+$order(^TMG(22706.82,"B",$extract(FDARoute,1,30),""))
|
---|
449 | . new VistaIEN set VistaIEN=+$piece($get(^TMG(22706.82,mapIEN,0)),"^",2)
|
---|
450 | . if (VARouteIEN=VistaIEN)&(VistaIEN'=0) quit ;"already set properly
|
---|
451 | . if VistaIEN=0 do quit
|
---|
452 | . . write !,"Mapping to VA ROUTE incomplete: ",FDARoute," --> ??. Edit Match File.",!
|
---|
453 | . new TMGFDA,TMGMSG
|
---|
454 | . set TMGFDA(22706.9,IEN_",",3.1)=VistaIEN
|
---|
455 | . do FILE^DIE("K","TMGFDA","TMGMSG")
|
---|
456 | . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
457 | . ;"write !,IEN," field 3.1 set to `",VistaIEN,!
|
---|
458 | . set count=count+1
|
---|
459 |
|
---|
460 | write !,count," records changed",!
|
---|
461 | if missingRoute>0 write missingRoute," imports are missing a specified ROUTE",!
|
---|
462 | do PressToCont^TMGUSRIF
|
---|
463 |
|
---|
464 | FRFDone
|
---|
465 | quit
|
---|
466 |
|
---|
467 | ;"========================================
|
---|
468 |
|
---|
469 | EditMatchFile
|
---|
470 | ;"Purpose: use Selector to browse and edit TMG FDA ROUTE VISTA EQUIVALENTS (22706.82)
|
---|
471 |
|
---|
472 | new Options,IEN
|
---|
473 | set Options("FIELDS",1)=".01^FDA ROUTE^25"
|
---|
474 | set Options("FIELDS",1,"NO EDIT")=1 ;"i.e. show for browsing, but don't allow edit
|
---|
475 | set Options("FIELDS",2)="1^VISTA ROUTE^25"
|
---|
476 | set Options("FIELDS","MAX NUM")=2
|
---|
477 | set Options("FILE")="22706.82^TMG FDA ROUTES VISTA EQUIVALENTS"
|
---|
478 |
|
---|
479 | do GetFldValue^TMGSELED(22706.82,.01,"ALL",$name(Options("IEN LIST")))
|
---|
480 |
|
---|
481 | SFM1
|
---|
482 | if $$SELED^TMGSELED(.Options)'=2 goto SFMDone
|
---|
483 | if $$GetIENs^TMGSELED(.Options)=0 goto SFMDone
|
---|
484 | goto SFM1
|
---|
485 |
|
---|
486 | SFMDone quit
|
---|
487 |
|
---|
488 |
|
---|
489 |
|
---|
490 |
|
---|