[796] | 1 | TMGNDF4B ;TMG/kst/FDA Import: Activation of POI's ;03/25/06
|
---|
| 2 | ;;1.0;TMG-LIB;**1**;11/21/06
|
---|
| 3 |
|
---|
| 4 | ;" FDA - NATIONAL DRUG FILES COMPILING FUNCTIONS
|
---|
| 5 | ;" Activation of records in PHARMACY ORDERABLE ITEM 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 | ;"ActivAll -- remove the inactive date for all records in 50.7
|
---|
| 16 | ;"Activ1TMG(IEN) -- activate records linked from 22706.9 in 50.7
|
---|
| 17 | ;"Activ1Rx(IEN50) -- activate records linked from 50 in 50.7
|
---|
| 18 |
|
---|
| 19 | ;"=======================================================================
|
---|
| 20 | ;" Private Functions.
|
---|
| 21 | ;"=======================================================================
|
---|
| 22 | ;"ActivDate(DateAfter) -- remove inactive date if inactive date on/after DateAfter
|
---|
| 23 | ;"XFormOff -- remove restrinction in input transform that prevents deletion.
|
---|
| 24 | ;"XFormOn -- restore the input transform to field .04 in file 50.7
|
---|
| 25 | ;"SetXForm(code) -- remove the old input transform, and replace with code
|
---|
| 26 |
|
---|
| 27 |
|
---|
| 28 | ;"=======================================================================
|
---|
| 29 |
|
---|
| 30 | Menu
|
---|
| 31 |
|
---|
| 32 | new Menu,UsrSlct
|
---|
| 33 | set Menu(0)="Pick Option to Activate PHARMACY ORDERABLE ITEMS (4B)"
|
---|
| 34 | set Menu(1)="Activate import PHARMACY ORDERABLE ITEMS."_$char(9)_"ActivateImports"
|
---|
| 35 | set Menu(2)="Inactivate POI's NOT from an active FDA import."_$char(9)_"InactivateNonImports"
|
---|
| 36 | set Menu(3)="Check for duplicate entries in POI file"_$char(9)_"Check4Dups"
|
---|
| 37 | set Menu(4)="Check for dangling entries in POI file"_$char(9)_"Check4Dangle"
|
---|
| 38 | set Menu("P")="Prev Stage"_$char(9)_"Prev"
|
---|
| 39 | set Menu("N")="Next Stage"_$char(9)_"Next"
|
---|
| 40 |
|
---|
| 41 | M1 write #
|
---|
| 42 | set UsrSlct=$$Menu^TMGUSRIF(.Menu,"^")
|
---|
| 43 |
|
---|
| 44 | if UsrSlct="ActivateImports" do ActivRecs(1) goto M1
|
---|
| 45 | if UsrSlct="InactivateNonImports" do InactivateNonImports("NOW") goto M1
|
---|
| 46 | if UsrSlct="Check4Dups" do Check4Dups goto M1
|
---|
| 47 | if UsrSlct="Check4Dangle" do Check4Dangle goto M1
|
---|
| 48 | if UsrSlct="Prev" goto Menu^TMGNDF4A ;"quit can occur from there...
|
---|
| 49 | if UsrSlct="Next" goto Menu^TMGNDF4C ;"quit can occur from there...
|
---|
| 50 | if UsrSlct="^" goto MenuDone
|
---|
| 51 | goto M1
|
---|
| 52 |
|
---|
| 53 | MenuDone
|
---|
| 54 | quit
|
---|
| 55 |
|
---|
| 56 | ;"=============================================================================
|
---|
| 57 |
|
---|
| 58 | ActivRecs(OnlyImports)
|
---|
| 59 | ;"Purpose: To activate records in 50.7 by removing the inactivation date
|
---|
| 60 | ;"Input: OnlyImports: if 1 then only records linked to a FDA import will be modified.
|
---|
| 61 | ;" if 0 then ALL records will be modified.
|
---|
| 62 | ;"Results: none
|
---|
| 63 |
|
---|
| 64 | new date,%T,X,Y
|
---|
| 65 | set X="1/1/1960"
|
---|
| 66 | do ^%DT
|
---|
| 67 | if Y'>0 goto AvADone
|
---|
| 68 | set date=Y
|
---|
| 69 |
|
---|
| 70 | do ActivateImports(date,OnlyImports)
|
---|
| 71 | AvADone
|
---|
| 72 | quit
|
---|
| 73 |
|
---|
| 74 |
|
---|
| 75 | Activ1TMG(IEN,Option)
|
---|
| 76 | ;"Purpose: To activate records linked from 22706.9 in 50.7 by removing the inactivation date
|
---|
| 77 | ;"Input: IEN -- IEN in 22706.9
|
---|
| 78 | ;"Get 22706.9 --> 50 --> 50.7
|
---|
| 79 | ;" --> 50 --> 50.7
|
---|
| 80 | new gIEN50,tIEN50
|
---|
| 81 | set tIEN50=+$piece($get(^TMG(22706.9,IEN,7)),"^",1)
|
---|
| 82 | set gIEN50=+$piece($get(^TMG(22706.9,IEN,7)),"^",2)
|
---|
| 83 | do Activ1Rx(tIEN50)
|
---|
| 84 | do Activ1Rx(gIEN50)
|
---|
| 85 |
|
---|
| 86 | quit
|
---|
| 87 |
|
---|
| 88 |
|
---|
| 89 | Activ1Rx(IEN50)
|
---|
| 90 | ;"Purpose: To activate records linked from 50 in 50.7 by removing the inactivation date
|
---|
| 91 | ;"Input: IEN -- IEN in 22706.9
|
---|
| 92 | ;"Result: none
|
---|
| 93 |
|
---|
| 94 | new date,%T,X,Y
|
---|
| 95 | set X="1/1/1960"
|
---|
| 96 | do ^%DT
|
---|
| 97 | if Y'>0 goto AvADone
|
---|
| 98 | set date=Y
|
---|
| 99 |
|
---|
| 100 | do XFormOff
|
---|
| 101 |
|
---|
| 102 | ;"Get 50 --> 50.7
|
---|
| 103 | if +$get(IEN50)'>0 goto A1RxDone
|
---|
| 104 | new IEN50d7
|
---|
| 105 | set IEN50d7=+$piece($get(^PSDRUG(IEN50,2)),"^",1)
|
---|
| 106 | if IEN50d7=0 quit
|
---|
| 107 | new temp set temp=$$Active1(IEN50d7,date)
|
---|
| 108 |
|
---|
| 109 | do XFormOn
|
---|
| 110 |
|
---|
| 111 | A1RxDone
|
---|
| 112 | quit
|
---|
| 113 |
|
---|
| 114 |
|
---|
| 115 | ActivateImports(DateAfter,OnlyImports)
|
---|
| 116 | ;"Purpose: To remove inactive date for all records in PHARMACY ORDERABLE ITEM
|
---|
| 117 | ;" having an inactive date on/after DateAfter
|
---|
| 118 | ;"Input: DateAfter -- the date to compare the inactive date with. If the
|
---|
| 119 | ;" inactive date is on/after DateAfter, then inactive date
|
---|
| 120 | ;" will be deleted.
|
---|
| 121 | ;" ** Must be in Fileman Date format
|
---|
| 122 | ;" OnlyImports: if 1 then only records linked to a FDA import will be modified.
|
---|
| 123 | ;" if 0 then ALL records will be modified.
|
---|
| 124 |
|
---|
| 125 | do XFormOff
|
---|
| 126 |
|
---|
| 127 | new Itr,IEN,Date,Y,X
|
---|
| 128 | new count set count=0
|
---|
| 129 | new abort set abort=0
|
---|
| 130 |
|
---|
| 131 | write !,!,"Scanning all PHARMACY ORDERABLE ITEMS to activate those",!
|
---|
| 132 | write " records linked to an active (non-skipped) FDA import...",!
|
---|
| 133 | set IEN=$$ItrInit^TMGITR(50.7,.Itr)
|
---|
| 134 | do PrepProgress^TMGITR(.Itr,20,0,"IEN")
|
---|
| 135 | if IEN'="" for do quit:($$ItrNext^TMGITR(.Itr,.IEN)'>0)!(abort>0)
|
---|
| 136 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 137 | . if (OnlyImports=1),($$IsImport^TMGNDFUT(IEN)=0) quit
|
---|
| 138 | . new temp set temp=$$Active1(IEN,DateAfter)
|
---|
| 139 | . if temp=2 set count=count+1
|
---|
| 140 | do ProgressDone^TMGITR(.Itr)
|
---|
| 141 |
|
---|
| 142 | do XFormOn
|
---|
| 143 | kill TMGXFORM
|
---|
| 144 |
|
---|
| 145 | write count," records modified.",!
|
---|
| 146 | do PressToCont^TMGUSRIF
|
---|
| 147 |
|
---|
| 148 | quit
|
---|
| 149 |
|
---|
| 150 |
|
---|
| 151 | Active1(IEN,DateAfter)
|
---|
| 152 | ;"Purpose: To remove inactive date for one records in PHARMACY ORDERABLE ITEM
|
---|
| 153 | ;" having an inactive date on/after DateAfter
|
---|
| 154 | ;"Input: IEN -- the IEN from file 50.7 to affect
|
---|
| 155 | ;" DateAfter -- the date to compare the inactive date with. If the
|
---|
| 156 | ;" inactive date is on/after DateAfter, then inactive date
|
---|
| 157 | ;" will be deleted.
|
---|
| 158 | ;" ** Must be in Fileman Date format
|
---|
| 159 | ;"Results: 1=OK, 0 error occurred, 2 if modification made
|
---|
| 160 | ;"NOTE: The XFormOff should be called before this is called, and XFormON called after
|
---|
| 161 |
|
---|
| 162 |
|
---|
| 163 | new Date,Y,X
|
---|
| 164 | new abort set abort=-5
|
---|
| 165 | new TMGFDA,TMGMSG
|
---|
| 166 | new X1,X2
|
---|
| 167 | new result set result=1
|
---|
| 168 |
|
---|
| 169 | set X2=$piece($get(^PS(50.7,IEN,0)),"^",4) ;"0;4 --> inactive date
|
---|
| 170 | if X2="" goto A1Done
|
---|
| 171 | ;"set X1=DateAfter
|
---|
| 172 | ;"do ^%DTC
|
---|
| 173 | set TMGFDA(50.7,IEN_",",.04)="" ;"kill inactive date
|
---|
| 174 | new $etrap set $etrap="W ""??ERROR TRAPPED??"",! Q"
|
---|
| 175 | do FILE^DIE("K","TMGFDA","TMGMSG")
|
---|
| 176 | new PriorErrorFound
|
---|
| 177 | if $$ShowIfError^TMGDBAPI(.TMGMSG,.PriorErrorFound) set result=0 goto A1Done
|
---|
| 178 | set X2=$piece($get(^PS(50.7,IEN,0)),"^",4) ;"0;4 --> inactive date
|
---|
| 179 | if X2'="" do goto A1Done
|
---|
| 180 | . write "Deletion of 50.7 inactivation date (",X2,") FAILED in record: ",IEN,!
|
---|
| 181 | . set result=0
|
---|
| 182 |
|
---|
| 183 | set result=2
|
---|
| 184 | A1Done
|
---|
| 185 | quit result
|
---|
| 186 |
|
---|
| 187 |
|
---|
| 188 | InactivateNonImports(Date)
|
---|
| 189 | ;"Purpose: To inactive records in PHARMACY ORDERABLE ITEM not linked to a FDA import
|
---|
| 190 | ;"Input: DateAfter -- OPTIONAL. Default is "NOW"
|
---|
| 191 | ;" The date to to use for the inactivation
|
---|
| 192 | ;" ** Must be in EXTERNAL format
|
---|
| 193 | ;"Results: none
|
---|
| 194 |
|
---|
| 195 | do XFormOff
|
---|
| 196 |
|
---|
| 197 | new Itr,IEN,Date,Y,X
|
---|
| 198 | set Date=$get(Date,"NOW")
|
---|
| 199 | new abort set abort=0
|
---|
| 200 | new count set count=0
|
---|
| 201 |
|
---|
| 202 | write !,!,"Scanning all PHARMACY ORDERABLE ITEMS to inactivate those NOT",!
|
---|
| 203 | write " linked to an active (i.e. non-skipped) FDA import...",!
|
---|
| 204 | set IEN=$$ItrInit^TMGITR(50.7,.Itr)
|
---|
| 205 | do PrepProgress^TMGITR(.Itr,20,0,"IEN")
|
---|
| 206 | if IEN'="" for do quit:($$ItrNext^TMGITR(.Itr,.IEN)'>0)!(abort>0)
|
---|
| 207 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 208 | . if $$IsImport^TMGNDFUT(IEN)=1 quit
|
---|
| 209 | . new temp set temp=$$InActv1(IEN,Date)
|
---|
| 210 | . if temp=2 set count=count+1
|
---|
| 211 | do ProgressDone^TMGITR(.Itr)
|
---|
| 212 |
|
---|
| 213 | do XFormOn
|
---|
| 214 | kill TMGXFORM
|
---|
| 215 |
|
---|
| 216 | ;"Now check that all skipped imports don't point to POI records.
|
---|
| 217 | ;"And that pointers point to valid records.
|
---|
| 218 | new ChangeCt set ChangeCt=0
|
---|
| 219 | new Itr,IEN22706d9
|
---|
| 220 | new abort set abort=0
|
---|
| 221 | write !,"Checking Imports for links to bad POI records",!
|
---|
| 222 | set IEN22706d9=$$ItrInit^TMGITR(22706.9,.Itr)
|
---|
| 223 | do PrepProgress^TMGITR(.Itr,20,0,"IEN22706d9")
|
---|
| 224 | if IEN22706d9'="" for do quit:($$ItrNext^TMGITR(.Itr,.IEN22706d9)'>0)!abort
|
---|
| 225 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 226 | . new tIEN50d7 set tIEN50d7=$piece($get(^TMG(22706.9,IEN22706d9,8)),"^",3)
|
---|
| 227 | . set count=count+$$Verify1(IEN22706d9,tIEN50d7,"TRADE")
|
---|
| 228 | . new gIEN50d7 set gIEN50d7=$piece($get(^TMG(22706.9,IEN22706d9,8)),"^",4)
|
---|
| 229 | . set count=count+$$Verify1(IEN22706d9,gIEN50d7,"GENERIC")
|
---|
| 230 | do ProgressDone^TMGITR(.Itr)
|
---|
| 231 |
|
---|
| 232 | write count," records modified.",!
|
---|
| 233 | do PressToCont^TMGUSRIF
|
---|
| 234 |
|
---|
| 235 | quit
|
---|
| 236 |
|
---|
| 237 |
|
---|
| 238 | Verify1(IEN22706d9,IEN50d7,mode)
|
---|
| 239 | ;"To Verify one
|
---|
| 240 | ;"Input: IEN22706d9
|
---|
| 241 | ;" IEN50 -- link to PHARMACY ORDERABLE ITEM file (either for Generic Drug, or Trade Drug)
|
---|
| 242 | ;" mode - "GENERIC" or "TRADE"
|
---|
| 243 | ;"Result: 0 -- no change, 1= change made
|
---|
| 244 |
|
---|
| 245 | new result set result=0
|
---|
| 246 | new field50d7 set field50d7=""
|
---|
| 247 | new fieldName set fieldName=""
|
---|
| 248 | new node,pce set (node,pce)=""
|
---|
| 249 | if mode="GENERIC" do
|
---|
| 250 | . set field50d7=5.71
|
---|
| 251 | . set fieldName=.075
|
---|
| 252 | . set node=7,pce=4
|
---|
| 253 | else if mode="TRADE" do
|
---|
| 254 | . set field50d7=5.61
|
---|
| 255 | . set fieldName=.055
|
---|
| 256 | . set node=7,pce=3
|
---|
| 257 | if (field50d7="") goto V1Done
|
---|
| 258 | if (IEN50d7="") goto V1Done
|
---|
| 259 |
|
---|
| 260 | new drugName set drugName=$piece($get(^PS(50.7,IEN50d7,0)),"^",1)
|
---|
| 261 | new TMGName set TMGName=$piece($get(^TMG(22706.9,IEN22706d9,node)),"^",pce)
|
---|
| 262 | set TMGName=$translate(TMGName,";",":")
|
---|
| 263 |
|
---|
| 264 | if $data(^PS(50.7,+$get(IEN50d7)))=0 do
|
---|
| 265 | . write "Bad pointer: ",IEN50d7
|
---|
| 266 | . set IEN50d7=0
|
---|
| 267 |
|
---|
| 268 | if drugName'=TMGName do
|
---|
| 269 | . write IEN22706d9," (",$extract(mode,1),"): Name mismatch: ",drugName," vs ",TMGName,!
|
---|
| 270 | . if TMGName="" set IEN50d7=0
|
---|
| 271 |
|
---|
| 272 | if $get(IEN50d7)=0 do goto V1Done
|
---|
| 273 | . new TMGFDA,TMGMSG
|
---|
| 274 | . set TMGFDA(22706.9,IEN22706d9_",",field50d7)="@"
|
---|
| 275 | . do UPDATE^DIE("","TMGFDA","TMGMSG")
|
---|
| 276 | . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 277 | . write " ... fixed.",!
|
---|
| 278 | . set result=1
|
---|
| 279 | V1Done
|
---|
| 280 | quit result
|
---|
| 281 |
|
---|
| 282 |
|
---|
| 283 | InActv1(IEN,Date)
|
---|
| 284 | ;"Purpose: To set inactive date for one records in PHARMACY ORDERABLE ITEM
|
---|
| 285 | ;" having no inactive date
|
---|
| 286 | ;"Input: IEN -- the IEN from file 50.7 to affect
|
---|
| 287 | ;" Date -- the date to set inactive date to. Should be EXTERNAL FORMAT
|
---|
| 288 | ;"Results: 1=OK, 0 error occurred, 2 if record modified
|
---|
| 289 | ;"NOTE: The XFormOff should be called before this is called, and XFormON called after
|
---|
| 290 |
|
---|
| 291 | new abort set abort=-5
|
---|
| 292 | new TMGFDA,TMGMSG
|
---|
| 293 | new X1,X2
|
---|
| 294 | new result set result=1
|
---|
| 295 |
|
---|
| 296 | set X2=$piece($get(^PS(50.7,IEN,0)),"^",4) ;"0;4 --> inactive date
|
---|
| 297 | if X2'="" goto IA1Done
|
---|
| 298 | set TMGFDA(50.7,IEN_",",.04)=Date ;"new inactive date
|
---|
| 299 | new $etrap set $etrap="W ""??ERROR TRAPPED??"",! Q"
|
---|
| 300 | do FILE^DIE("EK","TMGFDA","TMGMSG")
|
---|
| 301 | new PriorErrorFound
|
---|
| 302 | if $$ShowIfError^TMGDBAPI(.TMGMSG,.PriorErrorFound) set result=0 goto IA1Done
|
---|
| 303 | set result=2
|
---|
| 304 | IA1Done
|
---|
| 305 | quit result
|
---|
| 306 |
|
---|
| 307 |
|
---|
| 308 | XFormOff
|
---|
| 309 | ;"Purpose: to remove restrinction in input transform that prevents deletion.
|
---|
| 310 |
|
---|
| 311 | ;"new TMGXFORM ;NOTE: NO new -- will be killed later
|
---|
| 312 | set TMGXFORM=$piece($get(^DD(50.7,.04,0)),"^",5,99)
|
---|
| 313 | merge ^TMG("TMP","XREF",50.7,.04,1)=^DD(50.7,.04,1)
|
---|
| 314 | kill ^DD(50.7,.04,1) ;"kill off the screening xref code
|
---|
| 315 | do SetXForm("W !,X,! S %DT=""E"" D ^%DT S X=Y S:Y<1 X=""""")
|
---|
| 316 |
|
---|
| 317 | quit
|
---|
| 318 |
|
---|
| 319 |
|
---|
| 320 | XFormOn
|
---|
| 321 | ;"Purpose: to restore the input transform to field .04 in file 50.7
|
---|
| 322 |
|
---|
| 323 | set TMGXFORM=$get(TMGXFORM,"S %DT=""EX"" D ^%DT S X=Y K:Y<1 X")
|
---|
| 324 | do SetXForm(TMGXFORM)
|
---|
| 325 | kill ^DD(50.7,.04,1)
|
---|
| 326 | merge ^DD(50.7,.04,1)=^TMG("TMP","XREF",50.7,.04,1) ;"restore screening xref code
|
---|
| 327 | quit
|
---|
| 328 |
|
---|
| 329 |
|
---|
| 330 | SetXForm(code)
|
---|
| 331 | ;"Purpose: to remove the old input transform, and replace with code
|
---|
| 332 |
|
---|
| 333 | set $piece(^DD(50.7,.04,0),"^",5,99)="" ;"clear out old stuff
|
---|
| 334 | set $piece(^DD(50.7,.04,0),"^",5)=code
|
---|
| 335 | ;"zwr ^DD(50.7,.04,0)
|
---|
| 336 | quit
|
---|
| 337 |
|
---|
| 338 |
|
---|
| 339 | Check4Dups
|
---|
| 340 | ;"Purpose: to ensure that there are not two entries in the PHARMACY ORDERABLE ITEM
|
---|
| 341 | ;" file with the same name.
|
---|
| 342 |
|
---|
| 343 | new array,dupArray
|
---|
| 344 |
|
---|
| 345 | new Itr,IEN
|
---|
| 346 | new abort set abort=0
|
---|
| 347 | set IEN=$$ItrInit^TMGITR(50.7,.Itr)
|
---|
| 348 | do PrepProgress^TMGITR(.Itr,20,0,"IEN")
|
---|
| 349 | if IEN'="" for do quit:(+$$ItrNext^TMGITR(.Itr,.IEN)'>0)!abort
|
---|
| 350 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 351 | . new name set name=$piece($get(^PS(50.7,IEN,0)),"^",1)
|
---|
| 352 | . new priorIEN set priorIEN=+$order(array(name,""))
|
---|
| 353 | . if priorIEN'=0 do
|
---|
| 354 | . . write !,name," previously found...",!
|
---|
| 355 | . . set dupArray(name,priorIEN)=""
|
---|
| 356 | . . set dupArray(name,IEN)=""
|
---|
| 357 | . set array(name,IEN)=""
|
---|
| 358 | do ProgressDone^TMGITR(.Itr)
|
---|
| 359 |
|
---|
| 360 | new count set count=0
|
---|
| 361 | new fixName set fixName=""
|
---|
| 362 | for set fixName=$order(dupArray(fixName)) quit:(fixName="") do
|
---|
| 363 | . new keepIEN set keepIEN=$order(dupArray(fixName,""))
|
---|
| 364 | . new IEN50d7 set IEN50d7=keepIEN
|
---|
| 365 | . for set IEN50d7=$order(dupArray(fixName,IEN50d7)) quit:(IEN50d7="") do
|
---|
| 366 | . . new IEN50Array
|
---|
| 367 | . . do GetpDRUGs^TMGNDFUT(IEN50d7,.IEN50Array)
|
---|
| 368 | . . new IEN50 set IEN50=""
|
---|
| 369 | . . for set IEN50=+$order(IEN50Array(IEN50)) quit:(IEN50=0) do
|
---|
| 370 | . . . new TMGFDA,TMGMSG
|
---|
| 371 | . . . set TMGFDA(50,IEN50_",",2.1)=keepIEN ;"redirect to ONE kept record
|
---|
| 372 | . . . do FILE^DIE("S","TMGFDA","TMGMSG")
|
---|
| 373 | . . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 374 | . . kill TMGFDA,TMGMSG
|
---|
| 375 | . . set TMGFDA(50.7,IEN50d7_",",.01)="@" ;"kill duplicate record
|
---|
| 376 | . . do FILE^DIE("S","TMGFDA","TMGMSG")
|
---|
| 377 | . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 378 | . . set count=count+1
|
---|
| 379 |
|
---|
| 380 | write !,count," Modifications Made.",!
|
---|
| 381 |
|
---|
| 382 | do PressToCont^TMGUSRIF
|
---|
| 383 | quit
|
---|
| 384 |
|
---|
| 385 |
|
---|
| 386 | Check4Dangle
|
---|
| 387 | ;"Purpose: to ensure that there are no dangling entries in the PHARMACY
|
---|
| 388 | ;" ORDERABLE ITEM file
|
---|
| 389 |
|
---|
| 390 | new fixArray
|
---|
| 391 |
|
---|
| 392 | new goodCount set goodCount=0
|
---|
| 393 | new badCount set badCount=0
|
---|
| 394 | new count set count=0
|
---|
| 395 | new Itr,IEN50d7
|
---|
| 396 | new abort set abort=0
|
---|
| 397 | set IEN50d7=$$ItrInit^TMGITR(50.7,.Itr)
|
---|
| 398 | do PrepProgress^TMGITR(.Itr,20,0,"IEN50d7")
|
---|
| 399 | if IEN50d7'="" for do quit:(+$$ItrNext^TMGITR(.Itr,.IEN50d7)'>0)!abort
|
---|
| 400 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 401 | . new dangle set dangle=1 ;"default to dangle
|
---|
| 402 | .
|
---|
| 403 | . new tempC,tempA,IEN50
|
---|
| 404 | . merge tempA=^PSDRUG("ASP",IEN50d7)
|
---|
| 405 | . do GetpDRUGs^TMGNDFUT(IEN50d7,.tempC,1)
|
---|
| 406 | .
|
---|
| 407 | . set IEN50=""
|
---|
| 408 | . for set IEN50=$order(tempC(IEN50)) quit:(IEN50="") kill tempA(IEN50)
|
---|
| 409 | . set IEN50="" for set IEN50=$order(tempA(IEN50)) quit:(IEN50="") do
|
---|
| 410 | . . if $piece($get(^PSDRUG(IEN50,"I")),"^",1)'="" kill tempA(IEN50)
|
---|
| 411 | .
|
---|
| 412 | . set IEN50=""
|
---|
| 413 | . for set IEN50=$order(tempA(IEN50)) quit:(IEN50="") do
|
---|
| 414 | . . write "50 #",IEN50," (",$$GET1^DIQ(50,IEN50_",",.01),") found that",!
|
---|
| 415 | . . write " --> POI #",IEN50d7,$$GET1^DIQ(50.7,IEN50d7_",",.01),")",!
|
---|
| 416 | . . new IEN22706d9
|
---|
| 417 | . . set IEN22706d9=$order(^TMG(22706.9,"DRUGT",IEN50,""))
|
---|
| 418 | . . if IEN22706d9="" do
|
---|
| 419 | . . . write "But there is no entry in 22706.9 pointing to this #50 record.",!
|
---|
| 420 | . . . write " ... deleting.",!
|
---|
| 421 | . . . do KillPOI^TMGNDFUT(IEN50d7)
|
---|
| 422 | . . else do
|
---|
| 423 | . . . if $piece($get(^TMG(22706.9,IEN22706d9,1)),"^",4)=1 do quit; 1= SKIP
|
---|
| 424 | . . . . write "But the 22706.9 entry pointing to this is SKIPPED",!
|
---|
| 425 | . . . else do
|
---|
| 426 | . . . . write "Here is the 22706.9 pointing to it: #",IEN22706d9," ",$$GET1^DIQ(22706.9,IEN22706d9_",",.056),")",!
|
---|
| 427 | . . . . new POI set POI=+$piece($get(^TMG(22706.9,IEN22706d9,8)),"^",3)
|
---|
| 428 | . . . . write "And this record points to POI #",POI," ",$$GET1^DIQ(50.7,POI_",",.01),")",!
|
---|
| 429 | . . set IEN22706d9=$order(^TMG(22706.9,"DRUGG",IEN50,""))
|
---|
| 430 | . . if IEN22706d9="" do
|
---|
| 431 | . . . write "But there is no entry in 22706.9 pointing to this #50 record.",!
|
---|
| 432 | . . else do
|
---|
| 433 | . . . if $piece($get(^TMG(22706.9,IEN22706d9,1)),"^",4)=1 do quit; 1= SKIP
|
---|
| 434 | . . . . write "But the 22706.9 entry pointing to this is SKIPPED",!
|
---|
| 435 | . . . else do
|
---|
| 436 | . . . . write "Here is the 22706.9 pointing to it: #",IEN22706d9," ",$$GET1^DIQ(22706.9,IEN22706d9_",",.056),")",!
|
---|
| 437 | . . . . new POI set POI=+$piece($get(^TMG(22706.9,IEN22706d9,8)),"^",4)
|
---|
| 438 | . . . . write "And this record points to POI #",POI," ",$$GET1^DIQ(50.7,POI_",",.01),")",!
|
---|
| 439 | .
|
---|
| 440 | .
|
---|
| 441 | . ;"--------Check trade drug links------------
|
---|
| 442 | . new tempA
|
---|
| 443 | . merge tempA=^TMG(22706.9,"POIT",IEN50d7)
|
---|
| 444 | . new IEN22706d9 set IEN22706d9=""
|
---|
| 445 | . for set IEN22706d9=$order(tempA(IEN22706d9)) quit:(IEN22706d9="") do
|
---|
| 446 | . . set dangle=0 ;"at least one link was found, so not dangling.
|
---|
| 447 | . . if $piece($get(^TMG(22706.9,IEN22706d9,1)),"^",4)=1 do quit; 1= SKIP
|
---|
| 448 | . . . write "?? PHARMACY ORDERABLE ITEM #",IEN50d7," points to skipped record!",!
|
---|
| 449 | . . . set fixArray(IEN50d7)=""
|
---|
| 450 | . . new tIEN50 set tIEN50=+$piece($get(^TMG(22706.9,IEN22706d9,7)),"^",1)
|
---|
| 451 | . . if tIEN50=0 write "??!!??",! quit
|
---|
| 452 | . . new tempIEN set tempIEN=+$piece($get(^PSDRUG(tIEN50,2)),"^",1)
|
---|
| 453 | . . if tempIEN=IEN50d7 quit
|
---|
| 454 | . . write !,"22706.9 #",IEN22706d9," (T) ",$$GET1^DIQ(22706.9,IEN22706d9_",",.056),")",!
|
---|
| 455 | . . write " --> POI #",IEN50d7," (",$$GET1^DIQ(50.7,IEN50d7_",",.01),")",!
|
---|
| 456 | . . write " --> 50 #",tIEN50," (",$$GET1^DIQ(50,tIEN50_",",.01),")",!
|
---|
| 457 | . . write " ---> POI #",tempIEN," (",$$GET1^DIQ(50.7,tempIEN_",",.01),")",!
|
---|
| 458 | . . write " Fixing this...",!
|
---|
| 459 | . . new TMGFDA,TMGMSG
|
---|
| 460 | . . set TMGFDA(50,tIEN50_",",2.1)=IEN50d7
|
---|
| 461 | . . do FILE^DIE("","TMGFDA","TMGMSG")
|
---|
| 462 | . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 463 | . . set count=count+1
|
---|
| 464 | . ;"--------Now check generic drug links------------
|
---|
| 465 | . kill tempA
|
---|
| 466 | . merge tempA=^TMG(22706.9,"POIG",IEN50d7)
|
---|
| 467 | . new IEN22706d9 set IEN22706d9=""
|
---|
| 468 | . for set IEN22706d9=$order(tempA(IEN22706d9)) quit:(IEN22706d9="") do
|
---|
| 469 | . . set dangle=0 ;"at least one link was found, so not dangling.
|
---|
| 470 | . . if $piece($get(^TMG(22706.9,IEN22706d9,1)),"^",4)=1 do quit; 1= SKIP
|
---|
| 471 | . . . write "?? PHARMACY ORDERABLE ITEM #",IEN50d7," points to skipped 22706.9 record!",!
|
---|
| 472 | . . . set fixArray(IEN50d7)=""
|
---|
| 473 | . . new gIEN50 set gIEN50=+$piece($get(^TMG(22706.9,IEN22706d9,7)),"^",2)
|
---|
| 474 | . . if gIEN50=0 write "??!!??",! quit
|
---|
| 475 | . . new tempIEN set tempIEN=+$piece($get(^PSDRUG(gIEN50,2)),"^",1)
|
---|
| 476 | . . if tempIEN=IEN50d7 quit
|
---|
| 477 | . . write "22706.9 #",IEN22706d9," (T) ",$$GET1^DIQ(22706.9,IEN22706d9_",",.056),")",!
|
---|
| 478 | . . write " --> POI #",IEN50d7,$$GET1^DIQ(50.7,IEN50d7_",",.01),")",!
|
---|
| 479 | . . write " --> 50 #",gIEN50," (",$$GET1^DIQ(50,gIEN50_",",.01),")",!
|
---|
| 480 | . . write " ---> POI #",tempIEN," (",$$GET1^DIQ(50.7,tempIEN_",",.01),")",!
|
---|
| 481 | . . write " Fixing this...",!
|
---|
| 482 | . . new TMGFDA,TMGMSG
|
---|
| 483 | . . set TMGFDA(50,gIEN50_",",2.1)=IEN50d7
|
---|
| 484 | . . do FILE^DIE("","TMGFDA","TMGMSG")
|
---|
| 485 | . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 486 | . . set count=count+1
|
---|
| 487 | . if dangle=1 set badCount=badCount+1
|
---|
| 488 |
|
---|
| 489 | do ProgressDone^TMGITR(.Itr)
|
---|
| 490 |
|
---|
| 491 | ;"remove this line later
|
---|
| 492 | set abort=0
|
---|
| 493 |
|
---|
| 494 | write "Scanning 22706.9 for pointers to non-existant generic POI records",!
|
---|
| 495 | new IEN50d7 set IEN50d7=""
|
---|
| 496 | set IEN50d7=$$ItrAInit^TMGITR($name(^TMG(22706.9,"POIG")),.Itr)
|
---|
| 497 | do PrepProgress^TMGITR(.Itr,20,1,"IEN50d7")
|
---|
| 498 | if IEN50d7'="" for do quit:($$ItrANext^TMGITR(.Itr,.IEN50d7)="")!abort
|
---|
| 499 | . new Itr2
|
---|
| 500 | . set IEN22706d9=$$ItrAInit^TMGITR($name(^TMG(22706.9,"POIG",IEN50d7)),.Itr2)
|
---|
| 501 | . if IEN22706d9'="" for do quit:($$ItrANext^TMGITR(.Itr2,.IEN22706d9)="")!abort
|
---|
| 502 | . . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 503 | . . if $data(^PS(50.7,IEN50d7))=0 do
|
---|
| 504 | . . . write !,"Dangling pointer in 22706.9 #",IEN22706d9," (G)",!
|
---|
| 505 | . . . write " .. Deleting",!
|
---|
| 506 | . . . do KillPOI^TMGNDFUT(IEN50d7)
|
---|
| 507 | . . . set count=count+1
|
---|
| 508 |
|
---|
| 509 | write "Scanning 22706.9 for pointers to non-existant trade POI records",!
|
---|
| 510 | kill Itr
|
---|
| 511 | new IEN50d7 set IEN50d7=""
|
---|
| 512 | set IEN50d7=$$ItrAInit^TMGITR($name(^TMG(22706.9,"POIT")),.Itr)
|
---|
| 513 | do PrepProgress^TMGITR(.Itr,20,1,"IEN50d7")
|
---|
| 514 | if IEN50d7'="" for do quit:($$ItrANext^TMGITR(.Itr,.IEN50d7)="")!abort
|
---|
| 515 | . new Itr2
|
---|
| 516 | . set IEN22706d9=$$ItrAInit^TMGITR($name(^TMG(22706.9,"POIT",IEN50d7)),.Itr2)
|
---|
| 517 | . if IEN22706d9'="" for do quit:($$ItrANext^TMGITR(.Itr2,.IEN22706d9)="")!abort
|
---|
| 518 | . . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 519 | . . if $data(^PS(50.7,IEN50d7))=0 do
|
---|
| 520 | . . . write !,"Dangling pointer in 22706.9 #",IEN22706d9," (T)",!
|
---|
| 521 | . . . write " .. Deleting",!
|
---|
| 522 | . . . do KillPOI^TMGNDFUT(IEN50d7)
|
---|
| 523 | . . . set count=count+1
|
---|
| 524 |
|
---|
| 525 | goto C4D2 ;"xref not missing it after all. This step not needed
|
---|
| 526 | ;"For some reason xref is missing a record, so will do brute force search
|
---|
| 527 | write "Brute force scan of 22706.9...",!
|
---|
| 528 | kill Itr
|
---|
| 529 | set IEN22706d9=$$ItrInit^TMGITR(22706.9,.Itr)
|
---|
| 530 | do PrepProgress^TMGITR(.Itr,20,0,"IEN22706d9")
|
---|
| 531 | if IEN22706d9'="" for do quit:(+$$ItrNext^TMGITR(.Itr,.IEN22706d9)'>0)!abort
|
---|
| 532 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 533 | . new tIEN50d7,gIEN50d7
|
---|
| 534 | . set tIEN50d7=+$piece($get(^TMG(22706.9,IEN22706d9,8)),"^",3)
|
---|
| 535 | . set gIEN50d7=+$piece($get(^TMG(22706.9,IEN22706d9,8)),"^",4)
|
---|
| 536 | . if (tIEN50d7>0),$data(^PS(50.7,tIEN50d7))=0 do
|
---|
| 537 | . . write !,"Dangling pointer in 22706.9 #",IEN22706d9," (T)",!
|
---|
| 538 | . . write " .. Deleting",!
|
---|
| 539 | . . do KillPOI^TMGNDFUT(tIEN50d7)
|
---|
| 540 | . . set count=count+1
|
---|
| 541 | . . set tIEN50d7=0
|
---|
| 542 | . if (gIEN50d7>0),$data(^PS(50.7,gIEN50d7))=0 do
|
---|
| 543 | . . write !,"Dangling pointer in 22706.9 #",IEN22706d9," (G)",!
|
---|
| 544 | . . write " .. Deleting",!
|
---|
| 545 | . . do KillPOI^TMGNDFUT(gIEN50d7)
|
---|
| 546 | . . set count=count+1
|
---|
| 547 | . . set gIEN50d7=0
|
---|
| 548 | . new TMGFDA,TMGMSG
|
---|
| 549 | . if tIEN50d7=0 set TMGFDA(22706.9,IEN22706d9_",",5.61)="@"
|
---|
| 550 | . if gIEN50d7=0 set TMGFDA(22706.9,IEN22706d9_",",5.71)="@"
|
---|
| 551 | . if $data(TMGFDA) do
|
---|
| 552 | . . do FILE^DIE("","TMGFDA","TMGMSG")
|
---|
| 553 | . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 554 | . . set count=count+1
|
---|
| 555 | do ProgressDone^TMGITR(.Itr)
|
---|
| 556 | C4D2
|
---|
| 557 | write "Scanning 22706.9 for pointers to non-existant generic OI records",!
|
---|
| 558 | new IEN101d43 set IEN101d43=""
|
---|
| 559 | set IEN101d43=$$ItrAInit^TMGITR($name(^TMG(22706.9,"OIG")),.Itr)
|
---|
| 560 | do PrepProgress^TMGITR(.Itr,20,1,"IEN101d43")
|
---|
| 561 | if IEN101d43'="" for do quit:($$ItrANext^TMGITR(.Itr,.IEN101d43)="")!abort
|
---|
| 562 | . new Itr2
|
---|
| 563 | . set IEN22706d9=$$ItrAInit^TMGITR($name(^TMG(22706.9,"OIG",IEN101d43)),.Itr2)
|
---|
| 564 | . if IEN22706d9'="" for do quit:($$ItrANext^TMGITR(.Itr2,.IEN22706d9)="")!abort
|
---|
| 565 | . . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 566 | . . if $data(^ORD(101.43,IEN101d43))=0 do
|
---|
| 567 | . . . write !,"Dangling pointer in 22706.9 #",IEN22706d9," (G)",!
|
---|
| 568 | . . . write " ... Deleting",!
|
---|
| 569 | . . . set TMGFDA(22706.9,IEN22706d9_",",5.711)="@"
|
---|
| 570 | . . . do FILE^DIE("","TMGFDA","TMGMSG")
|
---|
| 571 | . . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 572 | . . . set count=count+1
|
---|
| 573 |
|
---|
| 574 | write "Scanning 22706.9 for pointers to non-existant trade OI records",!
|
---|
| 575 | new IEN101d43 set IEN101d43=""
|
---|
| 576 | set IEN101d43=$$ItrAInit^TMGITR($name(^TMG(22706.9,"OIT")),.Itr)
|
---|
| 577 | do PrepProgress^TMGITR(.Itr,20,1,"IEN101d43")
|
---|
| 578 | if IEN101d43'="" for do quit:($$ItrANext^TMGITR(.Itr,.IEN101d43)="")!abort
|
---|
| 579 | . new Itr2
|
---|
| 580 | . set IEN22706d9=$$ItrAInit^TMGITR($name(^TMG(22706.9,"OIT",IEN101d43)),.Itr2)
|
---|
| 581 | . if IEN22706d9'="" for do quit:($$ItrANext^TMGITR(.Itr2,.IEN22706d9)="")!abort
|
---|
| 582 | . . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 583 | . . if $data(^ORD(101.43,IEN101d43))=0 do
|
---|
| 584 | . . . write !,"Dangling pointer in 22706.9 #",IEN22706d9," (T)",!
|
---|
| 585 | . . . write " .. Deleting",!
|
---|
| 586 | . . . set TMGFDA(22706.9,IEN22706d9_",",5.611)="@"
|
---|
| 587 | . . . do FILE^DIE("","TMGFDA","TMGMSG")
|
---|
| 588 | . . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 589 | . . . set count=count+1
|
---|
| 590 |
|
---|
| 591 | write "Scanning 50 for pointers to non-existant POI records",!
|
---|
| 592 | new IEN50d7 set IEN50d7=""
|
---|
| 593 | set IEN50d7=$$ItrAInit^TMGITR($name(^PSDRUG("ASP")),.Itr)
|
---|
| 594 | do PrepProgress^TMGITR(.Itr,20,1,"IEN50d7")
|
---|
| 595 | if IEN50d7'="" for do quit:($$ItrANext^TMGITR(.Itr,.IEN50d7)="")!abort
|
---|
| 596 | . new Itr2
|
---|
| 597 | . set IEN50=$$ItrAInit^TMGITR($name(^PSDRUG("ASP",IEN50d7)),.Itr2)
|
---|
| 598 | . if IEN50'="" for do quit:($$ItrANext^TMGITR(.Itr2,.IEN50)="")!abort
|
---|
| 599 | . . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 600 | . . if $data(^PS(50.7,IEN50d7))=0 do
|
---|
| 601 | . . . write !,"Dangling pointer in 50 #",IEN50,!
|
---|
| 602 | . . . write " .. Deleting",!
|
---|
| 603 | . . . do KillPOI^TMGNDFUT(IEN50d7)
|
---|
| 604 | . . . set count=count+1
|
---|
| 605 |
|
---|
| 606 | write "Scanning 101.43 for pointers to non-existant POI records",!
|
---|
| 607 | new ID set ID=""
|
---|
| 608 | set ID=$$ItrAInit^TMGITR($name(^ORD(101.43,"ID")),.Itr)
|
---|
| 609 | do PrepProgress^TMGITR(.Itr,20,1,"ID")
|
---|
| 610 | if ID'="" for do quit:($$ItrANext^TMGITR(.Itr,.ID)="")!abort
|
---|
| 611 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 612 | . set IEN50d7=$piece(ID,";",1)
|
---|
| 613 | . if $data(^PS(50.7,IEN50d7))=0 do
|
---|
| 614 | . . write !,"Dangling pointer in 101.43 #",IEN50,!
|
---|
| 615 | . . write " .. Deleting",!
|
---|
| 616 | . . do KillPOI^TMGNDFUT(IEN50d7)
|
---|
| 617 | . . set count=count+1
|
---|
| 618 |
|
---|
| 619 | do ProgressDone^TMGITR(.Itr)
|
---|
| 620 |
|
---|
| 621 | ;"write goodCount," entries are not dangling.",!
|
---|
| 622 | write badCount," entries are dangling",!
|
---|
| 623 |
|
---|
| 624 | set IEN50d7=""
|
---|
| 625 | for set IEN50d7=$order(fixArray(IEN50d7)) quit:(IEN50d7="")!abort do
|
---|
| 626 | . if $$UserAborted^TMGUSRIF set abort=1 quit
|
---|
| 627 | . write "Checking POI# ",IEN50d7,!
|
---|
| 628 | . new temp merge temp=^PSDRUG("ASP",IEN50d7)
|
---|
| 629 | . new IEN50 set IEN50=""
|
---|
| 630 | . for set IEN50=$order(temp(IEN50)) quit:(IEN50="") do
|
---|
| 631 | . . new name set name=$$GET1^DIQ(50,IEN50_",",.01) quit:(name="")
|
---|
| 632 | . . write " POI #",IEN50d7," IS pointed to from DRUG file, record #",IEN50," ",name,!
|
---|
| 633 | . . if $$IsImport^TMGNDFUT(IEN50d7) do quit
|
---|
| 634 | . . . write " (This record IS an active import)",!
|
---|
| 635 | . . . new tempA
|
---|
| 636 | . . . merge tempA=^TMG(22706.9,"POIG",IEN50d7)
|
---|
| 637 | . . . merge tempA=^TMG(22706.9,"POIT",IEN50d7)
|
---|
| 638 | . . . new IEN22706d9 set IEN22706d9=""
|
---|
| 639 | . . . for set IEN22706d9=$order(tempA(IEN22706d9)) quit:(IEN22706d9="") do
|
---|
| 640 | . . . . if $piece($get(^TMG(22706.9,IEN22706d9,1)),"^",4)=1 do quit; 1= SKIP
|
---|
| 641 | . . . . . write "?? PHARMACY ORDERABLE ITEM #",IEN50d7," points to skipped record!",!
|
---|
| 642 | . . . . new tIEN50,gIEN50
|
---|
| 643 | . . . . set tIEN50=+$piece($get(^TMG(22706.9,IEN22706d9,7)),"^",1)
|
---|
| 644 | . . . . if tIEN50>0 do
|
---|
| 645 | . . . . . write "22706.9 #",IEN22706d9," points to this from trade link",!
|
---|
| 646 | . . . . set gIEN50=+$piece($get(^TMG(22706.9,IEN22706d9,7)),"^",2)
|
---|
| 647 | . . . . if gIEN50>0 do
|
---|
| 648 | . . . . . write "22706.9 #",IEN22706d9," points to this from generic link",!
|
---|
| 649 | . . else do
|
---|
| 650 | . . . write " (This record is NOT an active import)",!
|
---|
| 651 | . . . new TMGFDA,TMGMSG
|
---|
| 652 | . . . set TMGFDA(50,IEN50_",",.01)="@"
|
---|
| 653 | . . . do Unlock50^TMGNDFUT
|
---|
| 654 | . . . do FILE^DIE("","TMGFDA","TMGMSG")
|
---|
| 655 | . . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 656 | . . . do Lock50^TMGNDFUT
|
---|
| 657 | . . . write "Dangling entry in file 50 REMOVED.",!
|
---|
| 658 | . . . set count=count+1
|
---|
| 659 | . new TMGFDA,TMGMSG
|
---|
| 660 | . set TMGFDA(50.7,IEN50d7_",",.01)="@"
|
---|
| 661 | . do FILE^DIE("","TMGFDA","TMGMSG")
|
---|
| 662 | . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 663 | . write "Dangling entries in file 50.7 REMOVED.",!
|
---|
| 664 | . set count=count+1
|
---|
| 665 |
|
---|
| 666 |
|
---|
| 667 | write !,count," Modifications Made.",!
|
---|
| 668 | if count>0 write "Please run this process AGAIN.",!
|
---|
| 669 |
|
---|
| 670 | do PressToCont^TMGUSRIF
|
---|
| 671 | quit
|
---|