1 | TMGNDF2H ;TMG/kst/FDA Import: Fill VA Product entries ;03/25/06
|
---|
2 | ;;1.0;TMG-LIB;**1**;11/21/06
|
---|
3 |
|
---|
4 | ;" FDA - NATIONAL DRUG FILES COMPILING FUNCTIONS
|
---|
5 | ;" Addition of records from TMG FDA IMPORT COMPILED into VA PRODUCT file.
|
---|
6 | ;"Kevin Toppenberg MD
|
---|
7 | ;"GNU General Public License (GPL) applies
|
---|
8 | ;"11-21-2006
|
---|
9 |
|
---|
10 | ;"=======================================================================
|
---|
11 | ;" API -- Public Functions.
|
---|
12 | ;"=======================================================================
|
---|
13 | ;"Menu
|
---|
14 |
|
---|
15 | ;"=======================================================================
|
---|
16 | ;"Link2VAP -- fill file 22706.9, field 5.5 in with link 50.68 with SAME NDC
|
---|
17 | ;"Batch2VAP -- Batch add drugs to VA PRODUCT file (50.68) and NDC/UPC
|
---|
18 |
|
---|
19 | ;"=======================================================================
|
---|
20 | ;" Private Functions.
|
---|
21 | ;"=======================================================================
|
---|
22 | ;"Add2VAProd(IEN,Quiet)
|
---|
23 | ;"EnsureNDC(IEN) Make record in NDC/UPN file (50.67).
|
---|
24 | ;"EnsureUnits(UnitS) -- ensure that the UnitS is valid in file 50.607
|
---|
25 | ;"Unlock50dot607
|
---|
26 | ;"Lock50dot607
|
---|
27 |
|
---|
28 |
|
---|
29 | ;"=======================================================================
|
---|
30 | ;"=======================================================================
|
---|
31 |
|
---|
32 | Menu
|
---|
33 | new Menu,UsrSlct
|
---|
34 | set Menu(0)="Pick Option to Add imports to VA PRODUCT & NDC/UPN file (2H)"
|
---|
35 | set Menu(1)="Link imports to VA PRODUCT via NDC-- *DO THIS FIRST*"_$char(9)_"Link2VAP"
|
---|
36 | set Menu(2)="ADD unlinked imports to VA PRODUCT file."_$char(9)_"Batch2VAP"
|
---|
37 | set Menu(3)="Synchronize VA PRODUCT file with import data."_$char(9)_"Sync2VAP"
|
---|
38 | ;"set Menu(3)="Fix Names with '...'s (SHOULD run AFTER Batch Add)"_$char(9)_"FixNames"
|
---|
39 | ;"set Menu(4)="Check/Fix ALL Names (May be run AFTER Batch Add)"_$char(9)_"FixNames2"
|
---|
40 | set Menu("P")="Prev Stage"_$char(9)_"Prev"
|
---|
41 | set Menu("N")="Next Stage"_$char(9)_"Next"
|
---|
42 |
|
---|
43 | M1 write #
|
---|
44 | set UsrSlct=$$Menu^TMGUSRIF(.Menu,"^")
|
---|
45 |
|
---|
46 | if UsrSlct="Link2VAP" do Link2VAP goto M1
|
---|
47 | if UsrSlct="Batch2VAP" do Batch2VAP goto M1
|
---|
48 | if UsrSlct="Sync2VAP" do Sync2VAP goto M1
|
---|
49 | ;"if UsrSlct="FixNames" do FixNames(0) goto M1
|
---|
50 | ;"if UsrSlct="FixNames2" do FixNames(1) goto M1
|
---|
51 | if UsrSlct="Prev" goto Menu^TMGNDF2G ;"quit can occur from there...
|
---|
52 | if UsrSlct="Next" goto Menu^TMGNDF3A ;"quit can occur from there...
|
---|
53 | if UsrSlct="^" goto MenuDone
|
---|
54 | goto M1
|
---|
55 |
|
---|
56 | MenuDone
|
---|
57 | quit
|
---|
58 |
|
---|
59 |
|
---|
60 | ;"==========================================================================
|
---|
61 |
|
---|
62 |
|
---|
63 | Batch2VAP
|
---|
64 | ;"Purpose: To scan through all records in TMG FDA IMPORT COMPILED, and create an array of
|
---|
65 | ;" possible entries for addition to VA PRODUCT, also creating an entry in
|
---|
66 | ;" the NDC/UPC file.
|
---|
67 | ;"Input: none
|
---|
68 | ;"Output: database will be filled with data (records added to VA PRODUCT file)
|
---|
69 | ;"Results: none
|
---|
70 |
|
---|
71 | ;"Note: After making this function, I changed the function MakeName such that it is better
|
---|
72 | ;" at shortening long names to fit into the field limits.
|
---|
73 | ;" So I wrote the code FixNames to go back and correct the names for better fits.
|
---|
74 | ;" The problem is that it takes user interaction to do this well (asking for abbreviations etc)
|
---|
75 | ;" And this is best done in a batch manner (i.e. not asking each drug, one at a time).
|
---|
76 | ;" So this function was modified such that it shortens the names non-interactively
|
---|
77 | ;" (i.e. AllowCut=1), and then FixNames can be run to review all of the abbreviations
|
---|
78 | ;" are appropriate
|
---|
79 |
|
---|
80 |
|
---|
81 | new AddList
|
---|
82 | do GetAddList(.AddList)
|
---|
83 | new count set count=$$ListCt^TMGMISC("AddList")
|
---|
84 | if count=0 do goto B2VDone
|
---|
85 | . write "No entries need to be be added to VA PRODUCT file.",!
|
---|
86 | . do PressToCont^TMGUSRIF
|
---|
87 | write count," entries will now be added to VA PRODUCT file.",!
|
---|
88 | new % set %=1
|
---|
89 | write "Continue" do YN^DICN write !
|
---|
90 | if %=1 do DoAdd(.AddList)
|
---|
91 | B2VDone
|
---|
92 | quit
|
---|
93 |
|
---|
94 |
|
---|
95 | Check1(IEN)
|
---|
96 | ;"Purpose: to check one record in TMG FDA IMPORT COMPILED (22706.9)
|
---|
97 | ;"NOTE: this just checks if one exists, NOT if correct link is present.
|
---|
98 | ;"Input: IEN -- IEN in 22706.9
|
---|
99 |
|
---|
100 | new AddList,vapIEN,syncList
|
---|
101 |
|
---|
102 | set vapIEN=+$piece($get(^TMG(22706.9,IEN,6)),"^",2)
|
---|
103 | set AddList(IEN)=""
|
---|
104 | if vapIEN=0 set vapIEN=$$Add2VAProd(IEN)
|
---|
105 | set syncList(IEN)=vapIEN
|
---|
106 | do DoSync(.syncList)
|
---|
107 |
|
---|
108 | C1Done quit
|
---|
109 |
|
---|
110 |
|
---|
111 | Sync2VAP
|
---|
112 | ;"Purpose: To scan through all records in TMG FDA IMPORT COMPILED (22706.9)
|
---|
113 | ;" and synchronize data with records in VA PRODUCT.
|
---|
114 | ;"Input: none
|
---|
115 | ;"Output: database will be modified with data from 22706.9
|
---|
116 | ;"Results: none
|
---|
117 |
|
---|
118 | new SyncList
|
---|
119 | do GetSyncList(.SyncList)
|
---|
120 | new count set count=$$ListCt^TMGMISC("SyncList")
|
---|
121 | if count=0 do goto S2VDone
|
---|
122 | . write "No entries available to update VA PRODUCT file with.",!
|
---|
123 | . do PressToCont^TMGUSRIF
|
---|
124 | write count," entries will now be used to update VA PRODUCT file.",!
|
---|
125 | new % set %=1
|
---|
126 | write "Continue" do YN^DICN write !
|
---|
127 | if %=1 do DoSync(.SyncList)
|
---|
128 | S2VDone
|
---|
129 | quit
|
---|
130 |
|
---|
131 |
|
---|
132 | GetAddList(AddList)
|
---|
133 | ;"Purpose: to create a list of IEN's that need addition
|
---|
134 | ;"Input: AddList-- PASS BY REFERENCE. An OUT PARAMETER.
|
---|
135 | ;"Output: AddList is filled: Format:
|
---|
136 | ;" AddList(IEN)="" ;IEN is from file 22706.9
|
---|
137 | ;" AddList(IEN)=""
|
---|
138 | ;"Results: none.
|
---|
139 |
|
---|
140 | write "Scanning for imports to be added into VA PRODUCT file...",!
|
---|
141 | new Itr,IEN,success
|
---|
142 | new abort set abort=0
|
---|
143 | set IEN=$$ItrInit^TMGITR(22706.9,.Itr)
|
---|
144 | do PrepProgress^TMGITR(.Itr,20,0,"IEN")
|
---|
145 | if IEN'="" for do quit:($$ItrNext^TMGITR(.Itr,.IEN)'>0)!abort
|
---|
146 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
147 | . if $piece($get(^TMG(22706.9,IEN,1)),"^",4)=1 quit ;"1=SKIP
|
---|
148 | . if $piece($get(^TMG(22706.9,IEN,6)),"^",2)>0 quit ;"IEN of linked entry in 50.68
|
---|
149 | . set AddList(IEN)=""
|
---|
150 | do ProgressDone^TMGITR(.Itr)
|
---|
151 |
|
---|
152 | quit
|
---|
153 |
|
---|
154 |
|
---|
155 | GetSyncList(SyncList)
|
---|
156 | ;"Purpose: to create a list of IEN's can be used for syncing data
|
---|
157 | ;"Input: SyncList-- PASS BY REFERENCE. An OUT PARAMETER.
|
---|
158 | ;"Output: SyncList is filled: Format:
|
---|
159 | ;" SyncList(IEN22706d9)=vapIEN
|
---|
160 | ;"Results: none.
|
---|
161 |
|
---|
162 | write "Scanning for imports to be synchronized with VA PRODUCT file...",!
|
---|
163 | new Itr,IEN,success
|
---|
164 | new abort set abort=0
|
---|
165 | set IEN=$$ItrInit^TMGITR(22706.9,.Itr)
|
---|
166 | do PrepProgress^TMGITR(.Itr,20,0,"IEN")
|
---|
167 | if IEN'="" for do quit:($$ItrNext^TMGITR(.Itr,.IEN)'>0)!abort
|
---|
168 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
169 | . if $piece($get(^TMG(22706.9,IEN,1)),"^",4)=1 quit ;"1=SKIP
|
---|
170 | . new vapIEN set vapIEN=$piece($get(^TMG(22706.9,IEN,6)),"^",2) ;"IEN of linked entry in 50.68
|
---|
171 | . if vapIEN=0 quit
|
---|
172 | . set SyncList(IEN)=vapIEN
|
---|
173 | do ProgressDone^TMGITR(.Itr)
|
---|
174 |
|
---|
175 | quit
|
---|
176 |
|
---|
177 |
|
---|
178 | DoAdd(AddList)
|
---|
179 | ;"Purpose: To process the AddList, doing actual adds.
|
---|
180 | ;"Input: AddList-- PASS BY REFERENCE. Format:
|
---|
181 | ;" AddList(IEN)="" ;IEN is from file 22706.9
|
---|
182 | ;" AddList(IEN)=""
|
---|
183 | ;"Results: none.
|
---|
184 |
|
---|
185 | do Unlock50dot607
|
---|
186 | do Unlock50^TMGNDF3C
|
---|
187 |
|
---|
188 | write "Adding records into VA PRODUCT file from import information...",!
|
---|
189 | new count set count=0
|
---|
190 | new Itr,IEN,success,addedIEN
|
---|
191 | new abort set abort=0
|
---|
192 | set IEN=$$ItrAInit^TMGITR("AddList",.Itr)
|
---|
193 | do PrepProgress^TMGITR(.Itr,1,1,"IEN")
|
---|
194 | if IEN'="" for do quit:($$ItrANext^TMGITR(.Itr,.IEN)="")!abort
|
---|
195 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
196 | L1 . set addedIEN=$$Add2VAProd(IEN,0,1) ;"0=not quiet, 1=quiet,Allow Cut automatically
|
---|
197 | . if addedIEN>0 do
|
---|
198 | . . set count=count+1
|
---|
199 | . . new TMGFDA,TMGMSG
|
---|
200 | . . set TMGFDA(22706.9,IEN_",",5.5)=addedIEN
|
---|
201 | . . do FILE^DIE("K","TMGFDA","TMGMSG")
|
---|
202 | . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
203 | . else do
|
---|
204 | . . write !,"Unable to add record# ",IEN," from file 22706.9 to file 50.68.",!
|
---|
205 | do ProgressDone^TMGITR(.Itr)
|
---|
206 |
|
---|
207 | do Lock50dot607
|
---|
208 | do Lock50^TMGNDF3C
|
---|
209 |
|
---|
210 | write count," imports added to VA PRODUCT (file 50.68 )",!
|
---|
211 | do PressToCont^TMGUSRIF
|
---|
212 |
|
---|
213 | quit
|
---|
214 |
|
---|
215 |
|
---|
216 | DoSync(SyncList)
|
---|
217 | ;"Purpose: To process the SyncList, doing actual synchronization.
|
---|
218 | ;"Input: SyncList-- PASS BY REFERENCE. Format:
|
---|
219 | ;" SyncList(IEN)=vapIEN ;IEN is from file 22706.9; vapIEN=IEN 50.68
|
---|
220 | ;"Results: none.
|
---|
221 |
|
---|
222 | do Unlock50dot607
|
---|
223 | do Unlock50^TMGNDF3C
|
---|
224 |
|
---|
225 | write "Synchronizing VA PRODUCT file from import information...",!
|
---|
226 | new count set count=0
|
---|
227 | new Itr,IEN,success
|
---|
228 | new abort set abort=0
|
---|
229 | set IEN=$$ItrAInit^TMGITR("SyncList",.Itr)
|
---|
230 | do PrepProgress^TMGITR(.Itr,1,1,"IEN")
|
---|
231 | if IEN'="" for do quit:($$ItrANext^TMGITR(.Itr,.IEN)="")!abort
|
---|
232 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
233 | . new vapIEN set vapIEN=+$get(SyncList(IEN))
|
---|
234 | . if +vapIEN=0 quit
|
---|
235 | . set success=$$Sync1Rec(IEN,vapIEN)
|
---|
236 | do ProgressDone^TMGITR(.Itr)
|
---|
237 |
|
---|
238 | do Lock50dot607
|
---|
239 | do Lock50^TMGNDF3C
|
---|
240 |
|
---|
241 | do PressToCont^TMGUSRIF
|
---|
242 |
|
---|
243 | quit
|
---|
244 |
|
---|
245 |
|
---|
246 | Add2VAProd(IEN,Quiet,AllowCut)
|
---|
247 | ;"Purpose: to take drug information from Array and use this to create a new entry
|
---|
248 | ;" in file #50.68 (VA PRODUCT)--and any supporting files needed.
|
---|
249 | ;"Input: IEN -- IEN from file 22706.9 (TMG FDA IMPORT COMPILED) to add
|
---|
250 | ;" Quiet -- OPTIONAL -- default = 1 (quiet), if 1 no output generated to console.
|
---|
251 | ;" AllowCut -- OPTIONAL -- default = 0 (no cut).
|
---|
252 | ;" If value=1 then names will be shortened to needed length without
|
---|
253 | ;" asking user for abbreviations etc.
|
---|
254 | ;"Output: A new record will be created in 50.68, and any supporint files (such as
|
---|
255 | ;" drug manufacturer, package type etc if needed)
|
---|
256 | ;"Result: the IEN in 50.68 of added record, 0 if error
|
---|
257 |
|
---|
258 |
|
---|
259 | new TMGFDA,TMGIEN,TMGMSG
|
---|
260 | set IENS="+1,"
|
---|
261 | do SetupFDA(IEN,IENS,.TMGFDA)
|
---|
262 |
|
---|
263 | ALabel
|
---|
264 | do UPDATE^DIE("E","TMGFDA","TMGIEN","TMGMSG")
|
---|
265 | if $data(TMGMSG("DIERR")) do goto A2VPDone
|
---|
266 | . set result=0
|
---|
267 | . if Quiet=1 quit
|
---|
268 | . write !,"Error adding new record to 50.68",!
|
---|
269 | . new PriorErrorFound
|
---|
270 | . do ShowDIERR^TMGDEBUG(.TMGMSG,.PriorErrorFound)
|
---|
271 |
|
---|
272 | ;"Check that record was added, then then add subfile entries: active ingredients...
|
---|
273 | new AddedIEN set AddedIEN=$get(TMGIEN(1)) ;"also used to create NDC/UPC record;
|
---|
274 | if +AddedIEN=0 do goto A2VPDone
|
---|
275 | . set result=0 if Quiet=1 quit
|
---|
276 | . write !,"Can't find record number of added record to 50.68",!
|
---|
277 | . do PressToCont^TMGUSRIF
|
---|
278 |
|
---|
279 | set result=$$EnsureIngredients(IEN,AddedIEN) if result=0 goto A2VPDone
|
---|
280 |
|
---|
281 | BLabel ;"set result=$$Add2NDC(IEN,.DrugInfo)
|
---|
282 | set result=$$EnsureNDC(IEN) if result=0 goto A2VPDone
|
---|
283 |
|
---|
284 | A2VPDone
|
---|
285 | ;"1=OK to continue, 0 if error
|
---|
286 | if result=1 set result=+$get(AddedIEN)
|
---|
287 | quit result ;"changed to return IEN in 50.68
|
---|
288 |
|
---|
289 |
|
---|
290 | Sync1Rec(IEN,vapIEN)
|
---|
291 | ;"Purpose: to take drug information from Array and use this to create a new entry
|
---|
292 | ;" in file #50.68 (VA PRODUCT)--and any supporting files needed.
|
---|
293 | ;"Input: IEN -- IEN from file 22706.9 (TMG FDA IMPORT COMPILED) to add
|
---|
294 | ;" vapIEN -- IEN in 50.68 that is the target of the synchronization.
|
---|
295 | ;"Output: data in VA PRODUCT will be updated as needed to match the info in
|
---|
296 | ;" file 22706.9
|
---|
297 | ;"Result: 1 if OK, 0 if error
|
---|
298 |
|
---|
299 | new result set result=0
|
---|
300 | new TMGFDA,TMGIEN,TMGMSG
|
---|
301 | set IENS=vapIEN_","
|
---|
302 | do SetupFDA(IEN,IENS,.TMGFDA)
|
---|
303 | new temp set temp=$$TrimFDA^TMGDBAPI(.TMGFDA)
|
---|
304 |
|
---|
305 | if $data(TMGFDA) do
|
---|
306 | . do FILE^DIE("EK","TMGFDA","TMGMSG")
|
---|
307 | . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
308 |
|
---|
309 | set result=$$EnsureIngredients(IEN,vapIEN)
|
---|
310 | if result=0 goto S2VPDone
|
---|
311 | set result=$$EnsureNDC(IEN) if result=0 goto S2VPDone
|
---|
312 | S2VPDone
|
---|
313 | quit result ;"changed to return IEN in 50.68
|
---|
314 |
|
---|
315 |
|
---|
316 | SetupFDA(IEN,IENS,TMGFDA,vapIEN)
|
---|
317 | ;"Purpose: to set up FDA for data in a#50.68 (VA PRODUCT) entry
|
---|
318 | ;"Input: IEN -- IEN from file 22706.9 (TMG FDA IMPORT COMPILED) to add
|
---|
319 | ;" IENS -- a standard FM IENS for FDA to use
|
---|
320 | ;" TMGFDA -- PASS BY REFEERNCE. A standard FM FDA
|
---|
321 | ;" vapIEN -- OPTIONAL. If provided, then the FDA wil be trimmed to contain
|
---|
322 | ;" only those fields that need to be changed
|
---|
323 | ;"Output: TMGFDA is filled
|
---|
324 | ;"Result: none
|
---|
325 |
|
---|
326 | ;"NOTE: this function will create an FDA in EXTERNAL form
|
---|
327 |
|
---|
328 | ;"VA PRODUCT FILE RECORD STRUCTURE
|
---|
329 | ;"-----------------------------------
|
---|
330 | ;" .01 NAME [RFa]
|
---|
331 | ;" e.g. NAME: DILTIAZEM (CARDIZEM CD) 240MG SA CAP
|
---|
332 | ;" .05 VA GENERIC NAME <-Pntr [P50.6'a]
|
---|
333 | ;" e.g. VA GENERIC NAME: DILTIAZEM
|
---|
334 | ;" 1 DOSAGE FORM <-Pntr [P50.606'a]
|
---|
335 | ;" e.g. DOSAGE FORM: CAP,SA
|
---|
336 | ;" 2 STRENGTH [Fa]
|
---|
337 | ;" e.g. STRENGTH: 240
|
---|
338 | ;" 3 UNITS <-Pntr [P50.607'a]
|
---|
339 | ;" e.g. UNITS: MG
|
---|
340 | ;" 4 NATIONAL FORMULARY NAME [Fa]
|
---|
341 | ;" e.g. NATIONAL FORMULARY NAME: DILTIAZEM CAP,SA
|
---|
342 | ;" 5 VA PRINT NAME [Fa]
|
---|
343 | ;" e.g. VA PRINT NAME: DILTIAZEM (CARDIZEM CD) 240MG SA CAP
|
---|
344 | ;" 6 VA PRODUCT IDENTIFIER [Fa] <--- will use to store "0^TMG ADDED"
|
---|
345 | ;" e.g. VA PRODUCT IDENTIFIER: D0230
|
---|
346 | ;" 8 VA DISPENSE UNIT <-Pntr [P50.64a]
|
---|
347 | ;" e.g. VA DISPENSE UNIT: CAPNSE UNIT <-Pntr [P50.64a] <-- plan to leave blank, for CMOP use
|
---|
348 | ;" 14 ACTIVE INGREDIENTS W:^ D:^ <-Mult [50.6814P]
|
---|
349 | ;" .01 -ACTIVE INGREDIENTS <-Pntr [P50.416'Xa]
|
---|
350 | ;" e.g. ACTIVE INGREDIENTS: DILTIAZEM HYDROCHLORIDE
|
---|
351 | ;" 1 -STRENGTH [Fa]
|
---|
352 | ;" e.g. STRENGTH: 240
|
---|
353 | ;" 2 -UNITS <-Pntr [P50.607'a]
|
---|
354 | ;" e.g. UNITS: MG
|
---|
355 | ;" 15 PRIMARY VA DRUG CLASS <-Pntr [P50.605'a]
|
---|
356 | ;" e.g. PRIMARY VA DRUG CLASS: CV200
|
---|
357 | ;" 16 SECONDARY VA DRUG CLASS W:^ D:^ <-Mult [50.6816P]
|
---|
358 | ;" .01 -SECONDARY VA DRUG CLASS <-Pntr [MP50.605'aX]
|
---|
359 | ;" 17 NATIONAL FORMULARY INDICATOR [Sa]
|
---|
360 | ;" e.g. NATIONAL FORMULARY INDICATOR: NO
|
---|
361 | ;" 18 NATIONAL FORMULARY RESTRICTIONW:^ D:^ <-WP [50.6818]
|
---|
362 | ;" .01 -NATIONAL FORMULARY RESTRICTION [W]
|
---|
363 | ;" 19 CS FEDERAL SCHEDULE [Sa]
|
---|
364 | ;" 20 SINGLE/MULTI SOURCE PRODUCT [Sa]
|
---|
365 | ;" 21 INACTIVATION DATE [Da]
|
---|
366 | ;" 23 EXCLUDE DRG-DRG INTERACTION CK [S]
|
---|
367 | ;" 25 MAX SINGLE DOSE [NJ13,4a]
|
---|
368 | ;" 26 MIN SINGLE DOSE [NJ13,4a]
|
---|
369 | ;" 27 MAX DAILY DOSE [NJ13,4a]
|
---|
370 | ;" 28 MIN DAILY DOSE [NJ13,4a]
|
---|
371 | ;" 29 MAX CUMULATIVE DOSE [NJ13,4a]
|
---|
372 | ;" 30 DSS NUMBER [NJ6,0a]
|
---|
373 |
|
---|
374 | ;"---------------------------------------------------------
|
---|
375 |
|
---|
376 |
|
---|
377 | ;"File: TMG FDA IMPORT COMPILED Branch: 1
|
---|
378 | ;"REF NODE;PIECE FLD NUM FIELD NAME
|
---|
379 | ;"===============================================================================
|
---|
380 | ;" 1 0;1 .01 TMG FDA LISTING ENTRY <-Pntr [RP22706.5']
|
---|
381 | ;" e.g. TMG FDA LISTING ENTRY: 154001
|
---|
382 | ;" 2 0;4 .05 TRADENAME [F]
|
---|
383 | ;" e.g. TRADENAME: DILTIAZEM HCL SR CAPSULES
|
---|
384 | ;" 3 0;6 .07 GENERIC NAME [F]
|
---|
385 | ;" 4 1;3 .08 VA GENERIC <-Pntr [P50.6']
|
---|
386 | ;" 5 1;5 .09 VA DRUG CLASS <-Pntr [P50.605']
|
---|
387 | ;" 6 0;2 1 STRENGTH [F]
|
---|
388 | ;" e.g. STRENGTH: 240
|
---|
389 | ;" 7 0;3 2 UNIT [F]
|
---|
390 | ;" e.g. UNIT: MG
|
---|
391 | ;" 8 0;5 3 ROUTE [F]
|
---|
392 | ;" e.g. ???
|
---|
393 | ;" 9 0;7 3.5 DOSAGE FORM <-Pntr [P50.606]
|
---|
394 | ;" 9 1;1 4 NDC [F]
|
---|
395 | ;" e.g. NDC: 053978-3062-*3
|
---|
396 | ;" 10 1;2 5 NDC 12-DIGIT [F]
|
---|
397 | ;" e.g. NDC: 0539783062*3
|
---|
398 | ;" 11 1;4 6 SKIP THIS RECORD [S]
|
---|
399 | ;" 12 1;7 7 DONE ADDING TO 50.68 [S]
|
---|
400 | ;" 2;0 14 VA PRODUCT MATCHES <-Mult [22706.914P]
|
---|
401 | ;" 13 -0;1 .01 -ONE MATCH <-Pntr [P50.68']
|
---|
402 | ;" e.g. ONE MATCH: DILTIAZEM (DILACOR XR) 240MG SA CAP
|
---|
403 | ;" e.g. ONE MATCH: DILTIAZEM (CARDIZEM CD) 240MG SA CAP
|
---|
404 | ;" e.g. ONE MATCH: DILTIAZEM (TIAZAC) 240MG SA CAP
|
---|
405 | ;" e.g. ONE MATCH: DILTIAZEM (WATSON-XR) 240MG SA CAP
|
---|
406 | ;" e.g. ONE MATCH: DILTIAZEM (TIAZAC) 240MG SA CAP,UD
|
---|
407 | ;" e.g. ONE MATCH: DILTIAZEM (CARDIZEM CD) 240MG SA CAP,UD
|
---|
408 | ;" 3;0 15 VA PRODUCT POSS MATCH <-Mult [22706.915P]
|
---|
409 | ;" 14 -0;1 .01 -POSS MATCH <-Pntr [P50.68']
|
---|
410 | ;" 4;0 16 INGREDIENTS <-Mult [22706.916]
|
---|
411 | ;" 15 -0;1 .01 -NUMBER [NJ3,0]
|
---|
412 | ;" e.g. NUMBER: 1
|
---|
413 | ;" 17 -0;3 2 -INGREDIENT <-Pntr [P50.416']
|
---|
414 | ;" e.g. INGREDIENT: DILTIAZEM HYDROCHLORIDE
|
---|
415 | ;" 18 -0;4 3 -STRENGTH [F]
|
---|
416 | ;" e.g. STRENGTH: 240
|
---|
417 | ;" 19 -0;6 5 -UNIT <-Pntr [P50.607']
|
---|
418 | ;" e.g. ???
|
---|
419 | ;"
|
---|
420 | ;"===============================================================================
|
---|
421 | ;"<> 'n',I=FldDD DA=Data F=Find G=Goto N=Node P=Pointer VGL=VGL ?=Help
|
---|
422 | ;"
|
---|
423 |
|
---|
424 | ;"new FDAitemNum
|
---|
425 | ;"set FDAitemNum=$$GET1^DIQ(22706.9,IEN,.01)
|
---|
426 | ;"new DrugInfo
|
---|
427 | ;"set result=$$GetDrugInfo^TMGNDF1A(FDAitemNum,.DrugInfo,"",1)
|
---|
428 | ;"if result=0 do goto A2VPDone
|
---|
429 | ;". if Quiet=1 quit
|
---|
430 | ;". write !,"Unable to Get Drug Info for record: ",FDAitemNum,!
|
---|
431 |
|
---|
432 | ;".01 NAME [RFa]
|
---|
433 | ;" e.g. NAME: DILTIAZEM (CARDIZEM CD) 240MG SA CAP
|
---|
434 | set tempS=$piece($get(^TMG(22706.9,IEN,7)),"^",6) ;"7;6= field .04 LONG NAME
|
---|
435 | set TMGFDA(50.68,IENS,.01)=tempS ;".01 NAME [RFa] ;e.g. NAME: DILTIAZEM (CARDIZEM CD) 240MG SA CAP
|
---|
436 | ;"set DrugInfo("ADDED","GENERIC+BRAND")=tempS
|
---|
437 |
|
---|
438 | ;".05 VA GENERIC NAME <-Pntr [P50.6'a]
|
---|
439 | ;" e.g. VA GENERIC NAME: DILTIAZEM
|
---|
440 | set TMGFDA(50.68,IENS,.05)=$$GET1^DIQ(22706.9,IEN,.08)
|
---|
441 |
|
---|
442 | ;"1 DOSAGE FORM <-Pntr [P50.606'a]
|
---|
443 | ;" e.g. DOSAGE FORM: CAP,SA
|
---|
444 | set TMGFDA(50.68,IENS,1)=$$GET1^DIQ(22706.9,IEN,3.5)
|
---|
445 |
|
---|
446 | ;"2 STRENGTH [Fa]
|
---|
447 | ;" e.g. STRENGTH: 240
|
---|
448 | set TMGFDA(50.68,IENS,2)=$$GET1^DIQ(22706.9,IEN,1)
|
---|
449 |
|
---|
450 | ;"3 UNITS <-Pntr [P50.607'a]
|
---|
451 | ;" e.g. UNITS: MG
|
---|
452 | new tempUnits set tempUnits=$$GET1^DIQ(22706.9,IEN,2)
|
---|
453 | if tempUnits'="" do
|
---|
454 | . do EnsureUnits(tempUnits)
|
---|
455 | . set TMGFDA(50.68,IENS,3)=tempUnits
|
---|
456 |
|
---|
457 | ;"5 VA PRINT NAME [Fa]
|
---|
458 | ;" e.g. VA PRINT NAME: DILTIAZEM (CARDIZEM CD) 240MG SA CAP
|
---|
459 | ;"set tempS=$$MakeName(IEN,40,AllowCut)
|
---|
460 | ;"if tempS="^" set result=0 goto A2VPDone
|
---|
461 | set tempS=$piece($get(^TMG(22706.9,IEN,7)),"^",3) ;"7;3 = .055 TRADEBANE - 40
|
---|
462 | set TMGFDA(50.68,IENS,5)=tempS ;" 5=VA PRINT NAME
|
---|
463 |
|
---|
464 | ;"6 VA PRODUCT IDENTIFIER [Fa] <--- will use to store "0;TMG"
|
---|
465 | ;" e.g. VA PRODUCT IDENTIFIER: D0230
|
---|
466 | set TMGFDA(50.68,IENS,6)="0;TMG"
|
---|
467 |
|
---|
468 | ;"14 ACTIVE INGREDIENTS W:^ D:^ <-Mult [50.6814P]
|
---|
469 | ;"(multiple/subfile, add after this record added)
|
---|
470 |
|
---|
471 | ;"15 PRIMARY VA DRUG CLASS <-Pntr [P50.605'a]
|
---|
472 | ;" e.g. PRIMARY VA DRUG CLASS: CV200
|
---|
473 | set TMGFDA(50.68,IENS,15)=$$GET1^DIQ(22706.9,IEN,.09)
|
---|
474 |
|
---|
475 | quit
|
---|
476 |
|
---|
477 |
|
---|
478 | EnsureIngredients(fdaIEN,vapIEN)
|
---|
479 | ;"Purpose: to ensure that all the ingredients from the FDA record (22706.9) are in the
|
---|
480 | ;" VA PRODUCT record (50.68)
|
---|
481 | ;"Input: fdaIEN -- the IEN from 22706.9
|
---|
482 | ;" vapIEN -- the target IEN in 50.68
|
---|
483 | ;"result: 1= OK to continue, 0=error
|
---|
484 |
|
---|
485 | new result set result=1 ;"default to success
|
---|
486 | new recNum set recNum=1
|
---|
487 | ;"new IENS set IENS=fdaIEN_","
|
---|
488 | new IENS set IENS=vapIEN_","
|
---|
489 | new TMGFDA,TMGMSG,TMGIEN
|
---|
490 |
|
---|
491 | new subIEN set subIEN=0 ;"INGREDIENTS
|
---|
492 | for set subIEN=+$order(^TMG(22706.9,fdaIEN,4,subIEN)) quit:(+subIEN'>0) do
|
---|
493 | . new node set node=$get(^TMG(22706.9,fdaIEN,4,subIEN,0))
|
---|
494 | . new pIngredients,strength,units
|
---|
495 | . set pIngredients=$piece(node,"^",3) ;"INGREDIENTS (a POINTER)
|
---|
496 | . set strength=$piece(node,"^",4) ;"STRENGTH
|
---|
497 | . set units=$piece(node,"^",6) ;"UNITS
|
---|
498 | . ;"First search to ensure ingredient is not already present.
|
---|
499 | . new subIEN2 set subIEN2=0
|
---|
500 | . new found set found=0
|
---|
501 | . for set subIEN2=$order(^PSNDF(50.68,vapIEN,2,subIEN2)) quit:(+subIEN2'>0)!found do
|
---|
502 | . . new ptr set ptr=$piece($get(^PSNDF(50.68,vapIEN,2,subIEN2,0)),"^",1)
|
---|
503 | . . if ptr=pIngredients set found=1
|
---|
504 | . if found=1 quit
|
---|
505 | . if pIngredients="" do quit
|
---|
506 | . . write !,"Ingredient entry is missing actual ingredient, so that subpart was DELETED.",!
|
---|
507 | . . new TMGFDA,TMGMSG
|
---|
508 | . . set TMGFDA(22706.916,subIEN_","_fdaIEN_",",.01)="@" ;"delete entry.
|
---|
509 | . . do FILE^DIE("E","TMGFDA","TMGMSG")
|
---|
510 | . . do ShowDIERR^TMGDEBUG(.TMGMSG,.PriorErrorFound)
|
---|
511 | . set TMGFDA(50.6814,"+"_recNum_","_IENS,.01)=pIngredients
|
---|
512 | . if strength'="" set TMGFDA(50.6814,"+"_recNum_","_IENS,1)=strength
|
---|
513 | . if units'="" set TMGFDA(50.6814,"+"_recNum_","_IENS,2)=units
|
---|
514 | . set recNum=recNum+1
|
---|
515 |
|
---|
516 | if $data(TMGFDA)=0 goto EIDone
|
---|
517 | do UPDATE^DIE("S","TMGFDA","TMGIEN","TMGMSG")
|
---|
518 | if $data(TMGMSG("DIERR")) do goto A2VPDone
|
---|
519 | . set result=0 if $get(Quiet)=1 quit
|
---|
520 | . write !,"Error adding ingredients subrecord. IEN in 22706.9=",fdaIEN,!
|
---|
521 | . new PriorErrorFound
|
---|
522 | . do ShowDIERR^TMGDEBUG(.TMGMSG,.PriorErrorFound)
|
---|
523 | EIDone
|
---|
524 | quit result
|
---|
525 |
|
---|
526 |
|
---|
527 | EnsureNDC(IEN)
|
---|
528 | ;"Purpose: Ensure record exists in NDC/UPN file (50.67).
|
---|
529 | ;"Input: IEN -- IEN from file 22706.9 (TMG FDA IMPORT COMPILED) to add from
|
---|
530 | ;"Output: An entry to be added to file 50.67
|
---|
531 | ;"Result: 1=OK to continue, 0 if error
|
---|
532 |
|
---|
533 | ;"Make record in NDC/UPN file (50.67).
|
---|
534 | ;"File: NDC/UPN Branch: 1
|
---|
535 | ;"REF NODE;PIECE FLD NUM FIELD NAME
|
---|
536 | ;"===============================================================================
|
---|
537 | ;" 1 0;1 .01 SEQUENCE NUMBER [RNJ9,0aX]
|
---|
538 | ;" 2 0;2 1 NDC [Fa]
|
---|
539 | ;" 3 0;3 2 UPN [Fa]
|
---|
540 | ;" 4 0;4 3 MANUFACTURER <-Pntr [P55.95'a]
|
---|
541 | ;" 5 0;5 4 TRADE NAME [Fa]
|
---|
542 | ;" 6 0;6 5 VA PRODUCT NAME <-Pntr [P50.68'a]
|
---|
543 | ;" 1;0 6 ROUTE OF ADMINISTRATION W:^ D:^ <-Mult [50.676A]
|
---|
544 | ;" 7 -0;1 .01 -ROUTE OF ADMINISTRATION [FaX]
|
---|
545 | ;" 8 0;7 7 INACTIVATION DATE [Da]
|
---|
546 | ;" 9 0;8 8 PACKAGE SIZE <-Pntr [P50.609'a]
|
---|
547 | ;" 10 0;9 9 PACKAGE TYPE <-Pntr [P50.608'a]
|
---|
548 | ;" 11 0;10 10 OTX/RX INDICATOR [Sa]
|
---|
549 | ;" 2;0 11 PREVIOUS NDC W:^ D:^ <-Mult [50.6711A]
|
---|
550 | ;" 12 -0;1 .01 -PREVIOUS NDC [Fa]
|
---|
551 | ;" 3;0 12 PREVIOUS UPN W:^ D:^ <-Mult [50.6712A]
|
---|
552 | ;" 13 -0;1 .01 -PREVIOUS UPN [Fa]
|
---|
553 | ;" <> <> <>
|
---|
554 |
|
---|
555 | new result set result=0 ;" default to failure
|
---|
556 |
|
---|
557 | new TMGFDA,TMGMSG,TMGIEN
|
---|
558 |
|
---|
559 | new NDC set NDC=$piece($get(^TMG(22706.9,IEN,1)),"^",2) ;"1;2= field 5, NDC 12 digit
|
---|
560 | new ndcIEN set ndcIEN=$order(^PSNDF(50.67,"NDC",NDC,""))
|
---|
561 | if +ndcIEN>0 set IENS=ndcIEN_"," goto EN1
|
---|
562 |
|
---|
563 | ;"Below is for NEW records. DINUM at play here...
|
---|
564 | new newIEN set newIEN=""
|
---|
565 | for set newIEN=$order(^PSNDF(50.67,newIEN),-1) quit:(+newIEN=newIEN)!(newIEN="")
|
---|
566 | if +newIEN=0 do write "Unable to create NDF entry for ",IEN,! goto ENDone
|
---|
567 | set newIEN=newIEN+1
|
---|
568 | set TMGFDA(50.67,IENS,.01)=newIEN ;" .01 SEQUENCE NUMBER
|
---|
569 | set IENS="+1,"
|
---|
570 |
|
---|
571 | EN1 if NDC'="" set TMGFDA(50.67,IENS,1)=NDC ;"1=NDC
|
---|
572 |
|
---|
573 | ;"**Must add manufacturer if to be used!
|
---|
574 | ;" 3 MANUFACTURER <-Pntr [P55.95'a]
|
---|
575 | ;"new Firm set Firm=$get(DrugInfo("FIRM","NAME"))
|
---|
576 | ;"if Firm'="" set TMGFDA(50.67,IENS,3)=Firm
|
---|
577 |
|
---|
578 | new tName set tName=$piece($get(^TMG(22706.9,IEN,7)),"^",3) ;"7;3 = TRADE NAME - 40
|
---|
579 | if tName'="" set TMGFDA(50.67,IENS,4)=tName ;" 4 TRADE NAME
|
---|
580 |
|
---|
581 | new vapIEN set vapIEN=+$piece($get(^TMG(22706.9,IEN,6)),"^",2) ;"6;2=field 5.5, VA PRODUCT LINK
|
---|
582 | if vapIEN>0 set TMGFDA(50.67,IENS,5)=vapIEN;" 5 VA PRODUCT NAME --pointer to newly added 50.68 record
|
---|
583 |
|
---|
584 | ;" 10 OTX/RX INDICATOR
|
---|
585 | new codeOTC set codeOTC=$piece($get(^TMG(22706.9,IEN,7)),"^",5) ;"7;5= field 7, RX or OTC
|
---|
586 | if codeOTC'="" set TMGFDA(50.67,IENS,10)=codeOTC
|
---|
587 |
|
---|
588 | ;"If I decide to add this, must do it after adding parent record.
|
---|
589 | ;" 1;0 6 ROUTE OF ADMINISTRATION W:^ D:^ <-Mult [50.676A]
|
---|
590 | ;" 7 -0;1 .01 -ROUTE OF ADMINISTRATION [FaX]
|
---|
591 |
|
---|
592 | if IENS'["+" do goto EN2 ;"update existing record
|
---|
593 | . new temp set temp=$$TrimFDA^TMGDBAPI(.TMGFDA)
|
---|
594 | . if $data(TMGFDA)=0 quit
|
---|
595 | . do FILE^DIE("K","TMGFDA","TMGMSG") ;"FDA is in INTERNAL format
|
---|
596 |
|
---|
597 | else do ;"add new record
|
---|
598 | . do UPDATE^DIE("","TMGFDA","TMGIEN","TMGMSG")
|
---|
599 | EN2
|
---|
600 | if $data(TMGMSG("DIERR")) do goto ENDone
|
---|
601 | . set result=0
|
---|
602 | . new PriorErrorFound
|
---|
603 | . do ShowDIERR^TMGDEBUG(.TMGMSG,.PriorErrorFound)
|
---|
604 |
|
---|
605 | set result=1 ;"ensure we are at success.
|
---|
606 |
|
---|
607 | ENDone
|
---|
608 | quit result
|
---|
609 |
|
---|
610 |
|
---|
611 | ;"==========================================================
|
---|
612 | ;"==========================================================
|
---|
613 | EnsureUnits(UnitS)
|
---|
614 | ;"Purpose: to ensure that the UnitS is valid in file 50.607
|
---|
615 | ;"Input: UnitS -- the string such as "mg;mg"
|
---|
616 | ;"Output: If UnitS is not found in 50.607, then it will be added
|
---|
617 | ;"Results: none
|
---|
618 |
|
---|
619 | new TMGROOT,TMGMSG
|
---|
620 |
|
---|
621 | ;"Finish later...
|
---|
622 |
|
---|
623 | ;"do FIND^DIC(50.607,"","","",UnitS,"*",,,,"TMGROOT","TMGMSG")
|
---|
624 | ;"if +$get(TMGROOT("DILIST",0))=1 goto EUDone
|
---|
625 | ;"goto EUDone
|
---|
626 |
|
---|
627 | ;"Note: if there are duplicate entries (i.e. 2 entries for MG/0.5ML), then Y=-1
|
---|
628 | new X,Y,DIC
|
---|
629 | set DIC=50.607
|
---|
630 | set DIC(0)="XML"
|
---|
631 | set X=UnitS
|
---|
632 | do ^DIC
|
---|
633 | if +Y'>0 do
|
---|
634 | . if $get(Quiet)=1 quit
|
---|
635 | . write !,"Can't find or add: ",UnitS,!
|
---|
636 |
|
---|
637 | EUDone
|
---|
638 | quit
|
---|
639 |
|
---|
640 | Unlock50dot607
|
---|
641 | ;"Purpose to allow deletion in file 50.607
|
---|
642 |
|
---|
643 | kill ^DD(50.607,.01,8.5)
|
---|
644 | kill ^DD(50.607,.01,9)
|
---|
645 |
|
---|
646 | quit
|
---|
647 |
|
---|
648 | Lock50dot607
|
---|
649 | ;"Purpose: to restore lock on file 50.607
|
---|
650 |
|
---|
651 | set ^DD(50.607,.01,8.5)="^"
|
---|
652 | set ^DD(50.607,.01,9)="^"
|
---|
653 |
|
---|
654 | quit
|
---|
655 |
|
---|
656 | Link2VAP
|
---|
657 | ;"Purpose: to fill file 22706.9, field 5.5 in with link to a record
|
---|
658 | ;" in VA PRODUCT file (50.68) that has the SAME national drug
|
---|
659 | ;" code (NDC). It checks for and handles situations where there
|
---|
660 | ;" are multiple entries in 50.68 with the same NDC. It picks
|
---|
661 | ;" the entry with the closest name as the one to use.
|
---|
662 | ;" --It also removes such a link from the VA PRODUCT SIMILAR MATCHES
|
---|
663 | ;" field. I.e. it is not a 'similar' match if it is an exact match.
|
---|
664 | ;" --It also removes such a link from the VA PRODUCT POSSIBLE MATCHES
|
---|
665 | ;" field. I.e. it is not a 'possible' match if it is an exact match.
|
---|
666 | ;"Results: none.
|
---|
667 |
|
---|
668 | ;"new pNDCIndex
|
---|
669 | ;"set pNDCIndex=$name(^TMG("TMP","INDEX NDC-->VAP"))
|
---|
670 | set pNDCIndex=$name(^PSNDF(50.67,"NDC"))
|
---|
671 |
|
---|
672 | new Itr,IEN,success
|
---|
673 | new abort set abort=0
|
---|
674 | new modCount set modCount=0
|
---|
675 | set IEN=$$ItrInit^TMGITR(22706.9,.Itr)
|
---|
676 | do PrepProgress^TMGITR(.Itr,20,0,"IEN")
|
---|
677 | if IEN'="" for do quit:($$ItrNext^TMGITR(.Itr,.IEN)'>0)!abort
|
---|
678 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
679 | . if $piece($get(^TMG(22706.9,IEN,1)),"^",4)=1 quit ;"1=SKIP THIS RECORD
|
---|
680 | . new NDC set NDC=$piece($get(^TMG(22706.9,IEN,1)),"^",2)
|
---|
681 | . if NDC="" quit ;"Can't link if no NDC. Fix later?
|
---|
682 | . new count set count=$$ListCt^TMGMISC($name(@pNDCIndex@(NDC)))
|
---|
683 | . new VAP set VAP=0
|
---|
684 | . if count=1 do
|
---|
685 | . . new ndcP1
|
---|
686 | . . set ndcP1=+$order(@pNDCIndex@(NDC,""))
|
---|
687 | . . set VAP=+$piece($get(^PSNDF(50.67,ndcP1,0)),"^",6)
|
---|
688 | . else do
|
---|
689 | . . new vap1,s1,fdaS,ndcP1
|
---|
690 | . . new bestScore set bestScore=0
|
---|
691 | . . new bestVAP set bestVAP=0
|
---|
692 | . . new bestS set bestS=""
|
---|
693 | . . set fdaS=$piece($get(^TMG(22706.9,IEN,0)),"^",4) ;"TradeName, field .05
|
---|
694 | . . set ndcP1=+$order(@pNDCIndex@(NDC,""))
|
---|
695 | . . for do set ndcP1=+$order(@pNDCIndex@(NDC,ndcP1)) quit:(+ndcP1'>0)
|
---|
696 | . . . set vap1=+$piece($get(^PSNDF(50.67,ndcP1,0)),"^",6)
|
---|
697 | . . . set s1=$piece($get(^PSNDF(50.68,vap1,0)),"^",1)
|
---|
698 | . . . new tempScore set tempScore=$$Comp2Strs^TMGSTUTL(fdaS,s1)
|
---|
699 | . . . if tempScore>bestScore set bestScore=tempScore,bestVAP=vap1,bestS=s1
|
---|
700 | . . if bestScore'>1 set bestVAP=0
|
---|
701 | . . set VAP=bestVAP
|
---|
702 | . if VAP=0 quit
|
---|
703 | . if $piece($get(^TMG(22706.9,IEN,6)),"^",2)'=VAP do
|
---|
704 | . . new TMGFDA,TMGMSG
|
---|
705 | . . set TMGFDA(22706.9,IEN_",",5.5)=VAP
|
---|
706 | . . do FILE^DIE("K","TMGFDA","TMGMSG")
|
---|
707 | . . do ShowIfDIERR^TMGDEBUG("TMGMSG")
|
---|
708 | . . set modCount=modCount+1
|
---|
709 | . new subIEN set subIEN=0
|
---|
710 | . for set subIEN=$order(^TMG(22706.9,IEN,2,subIEN)) quit:(+subIEN'>0) do
|
---|
711 | . . new nearVAP set nearVAP=$piece($get(^TMG(22706.9,IEN,2,subIEN,0)),"^",1)
|
---|
712 | . . if nearVAP'=VAP quit
|
---|
713 | . . ;"write "SIMILAR MATCH contains this link. Deleting...",!
|
---|
714 | . . new TMGFDA,TMGMSG
|
---|
715 | . . set TMGFDA(22706.914,subIEN_","_IEN_",",.01)="@"
|
---|
716 | . . do FILE^DIE("K","TMGFDA","TMGMSG")
|
---|
717 | . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
718 | . . set modCount=modCount+1
|
---|
719 | . for set subIEN=$order(^TMG(22706.9,IEN,3,subIEN)) quit:(+subIEN'>0) do
|
---|
720 | . . new nearVAP set nearVAP=$piece($get(^TMG(22706.9,IEN,3,subIEN,0)),"^",1)
|
---|
721 | . . if nearVAP'=VAP quit
|
---|
722 | . . ;"write "POSS SIMILAR MATCH contains this link. Deleting...",!
|
---|
723 | . . new TMGFDA,TMGMSG
|
---|
724 | . . set TMGFDA(22706.915,subIEN_","_IEN_",",.01)="@"
|
---|
725 | . . do FILE^DIE("K","TMGFDA","TMGMSG")
|
---|
726 | . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
727 | . . set modCount=modCount+1
|
---|
728 | do ProgressDone^TMGITR(.Itr)
|
---|
729 |
|
---|
730 | write modCount," modifications made.",!
|
---|
731 | do PressToCont^TMGUSRIF
|
---|
732 | quit
|
---|
733 |
|
---|