[796] | 1 | TMGIMPORT ;TMG/kst/Code for importing from legacy MEDIC PMS ;03/25/06
|
---|
| 2 | ;;1.0;TMG-LIB;**1**;11/01/04
|
---|
| 3 |
|
---|
| 4 | ;"Custom functions for importing data from legacy MEDIC system
|
---|
| 5 |
|
---|
| 6 | ImportLabels
|
---|
| 7 | ;"Purpose: To import a file with patient name, DOB etc, and
|
---|
| 8 | ;"register all these patients
|
---|
| 9 | ;
|
---|
| 10 | ;"This is an example entry:
|
---|
| 11 | ;"------------------------
|
---|
| 12 | ;"ADAM R JONES
|
---|
| 13 | ;"123 JONESS CREEK RD
|
---|
| 14 | ;"GREENEVILLE TN 37743
|
---|
| 15 | ;"423 666 6666 423 666 6667
|
---|
| 16 | ;" 123456 05151971M 040302
|
---|
| 17 |
|
---|
| 18 |
|
---|
| 19 |
|
---|
| 20 | new TMGDEBUG set TMGDEBUG=0 ;"Note: user could change this at runtime...
|
---|
| 21 | new DBIndent set DBIndent=0
|
---|
| 22 | new PriorErrorFound set PriorErrorFound=0
|
---|
| 23 |
|
---|
| 24 | new cGUI set cGUI="GUI"
|
---|
| 25 | new cCHUI set cCHUI="CHUI"
|
---|
| 26 | new cRoll set cRoll="Roll-n-Scroll"
|
---|
| 27 | new DModes
|
---|
| 28 | new cDialog set cDialog="UseDialog"
|
---|
| 29 | set DModes(0)="x"
|
---|
| 30 | set DModes(1)=cGUI
|
---|
| 31 | set DModes(2)=cCHUI
|
---|
| 32 | set DModes(3)=cRoll
|
---|
| 33 | set DModes(4)="x"
|
---|
| 34 |
|
---|
| 35 | new cTrue set cTrue=1
|
---|
| 36 | new cFalse set cFalse=0
|
---|
| 37 | new cdbNone set cdbNone=0
|
---|
| 38 | new cdbToScrn set cdbToScrn=1
|
---|
| 39 | new cdbToFile set cdbToFile=2
|
---|
| 40 | new cdbToTail set cdbToTail=3
|
---|
| 41 |
|
---|
| 42 | new cdbAbort set cdbAbort=-1
|
---|
| 43 | new cOKToCont set cOKToCont=1
|
---|
| 44 | new cAbort set cAbort=0
|
---|
| 45 |
|
---|
| 46 | new cName set cName="01. NAME"
|
---|
| 47 | new cDOB set cDOB="02. DOB"
|
---|
| 48 | new cSex set cSex="03. SEX"
|
---|
| 49 | new cStrAddr set cStrAddr="04. STREET ADDRESS"
|
---|
| 50 | new cCity set cCity="05. CITY"
|
---|
| 51 | new cState set cState="06. STATE"
|
---|
| 52 | new cZip set cZip="07. ZIP"
|
---|
| 53 | new cPhone1 set cPhone1="08. PHONE-1"
|
---|
| 54 | new cPhone2 set cPhone2="09. PHONE-2"
|
---|
| 55 | new cDateReg set cDateReg="10. DATE REGISTERED"
|
---|
| 56 | new cChartNum set cChartNum="11. CHARTNUM"
|
---|
| 57 |
|
---|
| 58 | new Filename
|
---|
| 59 | new DebugFPath
|
---|
| 60 | new DebugFName
|
---|
| 61 | new DebugFile
|
---|
| 62 | new LabelArray,PLabelArray
|
---|
| 63 | new FileHandle
|
---|
| 64 | new UserPath,UserFName
|
---|
| 65 |
|
---|
| 66 | new result
|
---|
| 67 | new FileSpec
|
---|
| 68 |
|
---|
| 69 | new line set line=""
|
---|
| 70 |
|
---|
| 71 | do DebugEntry^TMGDEBUG(.DBIndent,"Main Run")
|
---|
| 72 |
|
---|
| 73 | ;"A local code login function.
|
---|
| 74 | if $$XUP^TMGXUP()=0 do goto RunDone
|
---|
| 75 | . do ShowError^TMGDEBUG(.PriorErrorFound,"Error setting up a user privilages for configuration.")
|
---|
| 76 |
|
---|
| 77 | ;"------------------------------------------------------------------------------------
|
---|
| 78 | if ($data(DispMode)#10=0)!($get(DispMode)>3)!($get(DispMode)<1) do
|
---|
| 79 | . set DispMode=$$GetDispMode()
|
---|
| 80 | set DispMode=DModes(DispMode)
|
---|
| 81 | if DispMode="x" goto RunDone
|
---|
| 82 | set DispMode(cDialog)=(DispMode'=cRoll)
|
---|
| 83 | if ($data(DebugMode)#10=0)!($get(DebugMode)<0)!($get(DebugMode)>3)!(($get(DebugMode)=1)&(DispMode'=cGUI)) do
|
---|
| 84 | . set TMGDEBUG=$$GetDebugMode^TMGDEBUG(cdbNone)
|
---|
| 85 | else do
|
---|
| 86 | . set TMGDEBUG=DebugMode
|
---|
| 87 | if TMGDEBUG=cdbAbort goto RunDone
|
---|
| 88 |
|
---|
| 89 | do
|
---|
| 90 | . new DefPath set DefPath="/tmp/"
|
---|
| 91 | . new DefName set DefName="M_Import_DebugLog.tmp"
|
---|
| 92 | . new DefFName set DefFName=DefPath_DefName
|
---|
| 93 | . do OpenLogFile^TMGDEBUG(DefPath,DefName)
|
---|
| 94 | . if TMGDEBUG=cdbToTail do
|
---|
| 95 | . . set result=$$Tail^TMGXDLG(DefFName,0,0,0)
|
---|
| 96 |
|
---|
| 97 | ;"------------------------------------------------------------------------------------
|
---|
| 98 | if ($data(UserPath)#10=0)!($data(UserFName)#10=0) do
|
---|
| 99 | . set result=$$GetFName(.UserPath,.UserFName)
|
---|
| 100 | . if result=cAbort do PopupBox^TMGUSRIF("<!> No file selected.","Come back again soon!")
|
---|
| 101 | else do
|
---|
| 102 | . set result=cOKToCont
|
---|
| 103 | if (result=cAbort)!($data(UserPath)=0)!($data(UserFName)=0) goto RunDone
|
---|
| 104 | set Filename=UserPath_"/"_UserFName
|
---|
| 105 | ;"------------------------------------------------------------------------------------
|
---|
| 106 |
|
---|
| 107 | ;new Array
|
---|
| 108 | new InFile,RecNum,EOF
|
---|
| 109 | new counter set counter=0
|
---|
| 110 |
|
---|
| 111 | write "Please be patient...",!,!
|
---|
| 112 |
|
---|
| 113 | set InFile=Filename
|
---|
| 114 | open InFile:readonly:2
|
---|
| 115 | else do goto QLoad
|
---|
| 116 | . do ShowError^TMGDEBUG(.PriorErrorFound,"Error opening file: ",UserPath_"/"_UserFName)
|
---|
| 117 |
|
---|
| 118 | for RecNum=1:1 do quit:EOF
|
---|
| 119 | . ;"set EOF=$$GetRecord(.Array,RecNum)
|
---|
| 120 | . set EOF=$$GetRecord(.Array,1)
|
---|
| 121 | . set ArrayP=$name(Array(1))
|
---|
| 122 | . do ParseRecord(ArrayP,.Parsed)
|
---|
| 123 | . if $$ScreenParsed(.Parsed)=cOKToCont do
|
---|
| 124 | . . if $$FileParsed(.Parsed)=cOKToCont do
|
---|
| 125 | . . . write "."
|
---|
| 126 | . . else do
|
---|
| 127 | . . . write "!"
|
---|
| 128 | . else write "X"
|
---|
| 129 | . set counter=counter+1
|
---|
| 130 | . if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"Counter=",counter)
|
---|
| 131 | . if counter=80 do
|
---|
| 132 | . . ;"write @IOF
|
---|
| 133 | . . write !,RecNum," records processed so far.",!
|
---|
| 134 | . . set counter=0
|
---|
| 135 | . ;"write "hit key.."
|
---|
| 136 | . read *KeyPress:0
|
---|
| 137 | . if KeyPress=27 set EOF=1
|
---|
| 138 | . if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"End of loop. EOF=",EOF)
|
---|
| 139 |
|
---|
| 140 | close InFile
|
---|
| 141 |
|
---|
| 142 | write !,!,RecNum," Records processed.",!,!
|
---|
| 143 |
|
---|
| 144 | goto RunDone
|
---|
| 145 |
|
---|
| 146 | RunDone
|
---|
| 147 | write "Goodbye",!,!
|
---|
| 148 |
|
---|
| 149 | if $get(TMGDEBUG)>0 do DebugExit^TMGDEBUG(.DBIndent,"Main Run")
|
---|
| 150 |
|
---|
| 151 | quit
|
---|
| 152 |
|
---|
| 153 |
|
---|
| 154 |
|
---|
| 155 |
|
---|
| 156 | GetFName(Path,Filename)
|
---|
| 157 | ;"Purpose: Interact with user to get path and filename
|
---|
| 158 | ;"Input: Path--should be passed by reference, used to pass back result
|
---|
| 159 | ;" Filename--should be passed by reference, used to pass back result
|
---|
| 160 | ;"Output: Results passed in Path and Filename
|
---|
| 161 | ;" Function will result in 0 if user 'cancelled', 1 otherwise
|
---|
| 162 |
|
---|
| 163 | new result set result=cAbort
|
---|
| 164 | new FullNamePath
|
---|
| 165 | new PathNode
|
---|
| 166 | set Path="/"
|
---|
| 167 | set Filename=""
|
---|
| 168 |
|
---|
| 169 | if $get(TMGDEBUG)>0 do DebugEntry^TMGDEBUG(.DBIndent,"GetFName")
|
---|
| 170 |
|
---|
| 171 | if DispMode=cRoll goto GFNRoll
|
---|
| 172 |
|
---|
| 173 | if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"Calling $$FileSel()")
|
---|
| 174 | set FullNamePath=$$FileSel^TMGXDLG("Please select script to process . . .","~/MedicLabels")
|
---|
| 175 | if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"Results=",FullNamePath)
|
---|
| 176 | if FullNamePath="" goto GFNDone ;"result=cAbort still --> cancelled.
|
---|
| 177 |
|
---|
| 178 | ;"Separate path from filename
|
---|
| 179 | GFNL1
|
---|
| 180 | if '(FullNamePath["/") set Filename=FullNamePath goto GFNL2
|
---|
| 181 | set PathNode=$piece(FullNamePath,"/",1)
|
---|
| 182 | set Path=Path_PathNode_"/"
|
---|
| 183 | set $piece(FullNamePath,"/",1)=""
|
---|
| 184 | set FullNamePath=$extract(FullNamePath,2,255)
|
---|
| 185 | goto GFNL1
|
---|
| 186 | GFNL2
|
---|
| 187 | set result=cOKToCont
|
---|
| 188 | goto GFNDone
|
---|
| 189 |
|
---|
| 190 | GFNRoll
|
---|
| 191 | new DefFName set DefFName="MedicLabels"
|
---|
| 192 | new DefPath set DefPath="/home/kdt0p"
|
---|
| 193 | ;"write !,"------------------------------------------",!
|
---|
| 194 | write !
|
---|
| 195 | write "Enter filename with path:",!
|
---|
| 196 | write " ['^'] = Abort",!
|
---|
| 197 | write " [Enter] = '",DefPath,"/",DefFName,"'",!
|
---|
| 198 | write "> "
|
---|
| 199 | read Filename:240
|
---|
| 200 | write !
|
---|
| 201 | if Filename="^" goto GFNDone
|
---|
| 202 | if Filename="" do
|
---|
| 203 | . set Filename=DefFName
|
---|
| 204 | . set Path=DefPath
|
---|
| 205 | . write "Using default: ",Path,"/",Filename,!,!,!
|
---|
| 206 | set result=cOKToCont
|
---|
| 207 |
|
---|
| 208 | GFNDone
|
---|
| 209 | if $get(TMGDEBUG)>0 do DebugExit^TMGDEBUG(.DBIndent,"GetFName")
|
---|
| 210 | quit result
|
---|
| 211 |
|
---|
| 212 |
|
---|
| 213 |
|
---|
| 214 |
|
---|
| 215 |
|
---|
| 216 | GetDispMode()
|
---|
| 217 | ;"Purpose: To determine with form of input user wants
|
---|
| 218 | ;"Results: 1=GUI,2=CHUI,3=RollNScroll,0=abort
|
---|
| 219 | new Input
|
---|
| 220 | new result set result=cAbort
|
---|
| 221 | new Default set Default=3
|
---|
| 222 |
|
---|
| 223 | if $get(TMGDEBUG)>0 do DebugEntry^TMGDEBUG(.DBIndent,"GetDispMode")
|
---|
| 224 |
|
---|
| 225 | write "Select interface option:",!
|
---|
| 226 | write " 0. Quit. (Goodbye!)",!
|
---|
| 227 | write " 1. Linux X graphics/ 'GUI' (Recommended)",!
|
---|
| 228 | write " 2. Text graphics / 'CHUI' (Incomplete)",!
|
---|
| 229 | write " 3. Line-by-Line / 'Roll-and-scroll'",!
|
---|
| 230 |
|
---|
| 231 | write "Enter option number ("_Default_"): "
|
---|
| 232 | read Input,!
|
---|
| 233 | if Input="" do
|
---|
| 234 | . ;"write "Defaulting to: ",Default,!
|
---|
| 235 | . set Input=Default
|
---|
| 236 | else if +Input>4 do
|
---|
| 237 | . set Input=Default
|
---|
| 238 |
|
---|
| 239 | set result=+Input
|
---|
| 240 | if (Input=1)!(Input=2) do
|
---|
| 241 | . do SetupConsts^TMGXDLG()
|
---|
| 242 | . do SetGUI^TMGXDLG(Input=1)
|
---|
| 243 | ;"if Input=2 do goto GIMDone
|
---|
| 244 | ;". do SetupConsts^TMGXDLG()
|
---|
| 245 | ;". do SetGUI^TMGXDLG(0)
|
---|
| 246 |
|
---|
| 247 | GIMDone
|
---|
| 248 | if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"Display mode set at: ",result)
|
---|
| 249 | if $get(TMGDEBUG)>0 do DebugExit^TMGDEBUG(.DBIndent,"GetDispMode")
|
---|
| 250 | quit result
|
---|
| 251 |
|
---|
| 252 |
|
---|
| 253 | LogSkipped
|
---|
| 254 |
|
---|
| 255 | use OutFile
|
---|
| 256 |
|
---|
| 257 |
|
---|
| 258 |
|
---|
| 259 | GetRecord(Array,RecNum)
|
---|
| 260 | ;"Purpose:
|
---|
| 261 | ;"
|
---|
| 262 |
|
---|
| 263 | if $get(TMGDEBUG)>0 do DebugEntry^TMGDEBUG(.DBIndent,"GetRecord")
|
---|
| 264 |
|
---|
| 265 | new done,i
|
---|
| 266 | new BlankLine set BlankLine=""
|
---|
| 267 | new Parsed,ArrayP
|
---|
| 268 |
|
---|
| 269 | use InFile
|
---|
| 270 |
|
---|
| 271 | for i=1:1:6 do quit:($zeof)
|
---|
| 272 | . if line="" read line
|
---|
| 273 | . set Array(RecNum,i)=line
|
---|
| 274 | . set line=""
|
---|
| 275 | . if $zeof quit
|
---|
| 276 | . ;"read BlankLine ;"read and discard blank line
|
---|
| 277 | . ;"if BlankLine'="" set line=BlankLine
|
---|
| 278 |
|
---|
| 279 | ;"for do quit:($zeof)!(line'="")
|
---|
| 280 | ;". read line
|
---|
| 281 | ;". set line=$$Trim^TMGSTUTL(line)
|
---|
| 282 |
|
---|
| 283 | use 0
|
---|
| 284 |
|
---|
| 285 | QLoad
|
---|
| 286 | if $get(TMGDEBUG)>0 do DebugExit^TMGDEBUG(.DBIndent,"GetRecord")
|
---|
| 287 | quit $zeof
|
---|
| 288 |
|
---|
| 289 |
|
---|
| 290 |
|
---|
| 291 | ParseRecord(ArrayP,Parsed)
|
---|
| 292 |
|
---|
| 293 | if $get(TMGDEBUG)>0 do DebugEntry^TMGDEBUG(.DBIndent,"ParseRecord")
|
---|
| 294 |
|
---|
| 295 | new s,s1,s2
|
---|
| 296 | new NameArray
|
---|
| 297 | new MaxNode,i
|
---|
| 298 |
|
---|
| 299 | kill Parsed
|
---|
| 300 |
|
---|
| 301 | ;"temp
|
---|
| 302 | new tempDEBUG set tempDEBUG=$get(TMGDEBUG)
|
---|
| 303 | set TMGDEBUG=0
|
---|
| 304 |
|
---|
| 305 | set s=$get(@ArrayP@(1))
|
---|
| 306 | ;"if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"Init Name Line=",s)
|
---|
| 307 | if s'="" do
|
---|
| 308 | . new Suffix set Suffix=""
|
---|
| 309 | . do CleaveToArray^TMGSTUTL(s," ",.NameArray,1)
|
---|
| 310 | . if $get(NameArray(1))="BABY" quit
|
---|
| 311 | . set MaxNode=+$get(NameArray("MAXNODE"))
|
---|
| 312 | . if MaxNode'>0 do quit
|
---|
| 313 | . . if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"Error after CleaveToArray. Here is NameArray:")
|
---|
| 314 | . . if $get(TMGDEBUG)>0 do ArrayDump^TMGDEBUG("NameArray")
|
---|
| 315 | . if (NameArray(MaxNode)="JR")!(NameArray(MaxNode)="SR") do
|
---|
| 316 | . . set Suffix=NameArray(MaxNode)
|
---|
| 317 | . . kill NameArray(MaxNode)
|
---|
| 318 | . . set MaxNode=MaxNode-1
|
---|
| 319 | . set s1=NameArray(MaxNode)_","
|
---|
| 320 | . for i=1:1:MaxNode-1 do
|
---|
| 321 | . . set s1=s1_NameArray(i)_" "
|
---|
| 322 | . set s1=s1_Suffix
|
---|
| 323 | . set s1=$$Trim^TMGSTUTL(s1)
|
---|
| 324 | . if $extract(s1,1,2)="ZZ" set s1="" ;"DROP ZZ NAMES
|
---|
| 325 | . if (s1'["0")&(s1'["1")&(s1'["2")&(s1'["3")&(s1'["4")&(s1'["5")&(s1'["6")&(s1'["7")&(s1'["8")&(s1'["9") do
|
---|
| 326 | . . ;"if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"final Name Line=",s1)
|
---|
| 327 | . . if s1'="" set Parsed(cName)=s1
|
---|
| 328 |
|
---|
| 329 | set s=$get(@ArrayP@(2))
|
---|
| 330 | set s2=$$Trim^TMGSTUTL(s)
|
---|
| 331 | if $length(s2)>34 set s2=$extract(s2,1,34)
|
---|
| 332 | if $length(s2)<3 set s2=""
|
---|
| 333 | if s2'="" set Parsed(cStrAddr)=s2
|
---|
| 334 |
|
---|
| 335 | set s=$get(@ArrayP@(3))
|
---|
| 336 | set s1=$extract(s,1,16)
|
---|
| 337 | set s2=$$Trim^TMGSTUTL(s1)
|
---|
| 338 | if s2'="" set Parsed(cCity)=s2
|
---|
| 339 |
|
---|
| 340 | set s1=$extract(s,17,18)
|
---|
| 341 | set s2=$$Trim^TMGSTUTL(s1)
|
---|
| 342 | if $length(s2)'=2 set s2=""
|
---|
| 343 | if s2'="" set Parsed(cState)=s2
|
---|
| 344 |
|
---|
| 345 | set s1=$extract(s,19,256)
|
---|
| 346 | set s2=$$Trim^TMGSTUTL(s1)
|
---|
| 347 | if s2'="" set Parsed(cZip)=s2
|
---|
| 348 |
|
---|
| 349 | set s=$get(@ArrayP@(4))
|
---|
| 350 | set s2=$$Trim^TMGSTUTL($extract(s,1,12))
|
---|
| 351 | if s2="000 000 0000" set s2=""
|
---|
| 352 | if s2'="" set Parsed(cPhone1)=s2
|
---|
| 353 | set s2=$$Trim^TMGSTUTL($extract(s,16,27))
|
---|
| 354 | if s2="000 000 0000" set s2=""
|
---|
| 355 | if s2'="" set Parsed(cPhone2)=s2
|
---|
| 356 |
|
---|
| 357 | set s=$get(@ArrayP@(5))
|
---|
| 358 | set s1=$extract(s,1,10)
|
---|
| 359 | set s2=$$Trim^TMGSTUTL(s1)
|
---|
| 360 | set s2=$translate(s2,"DPWCI\*","") ;"Clean off alpha characters -- not needed.
|
---|
| 361 | if $extract(s2,1,2)="ZZ" set s2=""
|
---|
| 362 | if s2'="" set Parsed(cChartNum)=s2
|
---|
| 363 |
|
---|
| 364 | set s1=$extract(s,11,18)
|
---|
| 365 | set s1=$$FixDate(s1)
|
---|
| 366 | if s1'="" set Parsed(cDOB)=s1
|
---|
| 367 |
|
---|
| 368 | set s1=$extract(s,19,19)
|
---|
| 369 | if (s1'="M")&(s1'="F") do
|
---|
| 370 | . set s1="M" ;"NOTE, I AM SETTING ALL UNKNOWN SEX's TO MALE
|
---|
| 371 | if s1'="" set Parsed(cSex)=s1
|
---|
| 372 |
|
---|
| 373 | set s1=$extract(s,21,26)
|
---|
| 374 | set s1=$$FixDate(s1)
|
---|
| 375 | if s1'="" set Parsed(cDateReg)=s1
|
---|
| 376 |
|
---|
| 377 | ;"temp
|
---|
| 378 | set TMGDEBUG=tempDEBUG
|
---|
| 379 |
|
---|
| 380 | if $get(TMGDEBUG)>0 do DebugExit^TMGDEBUG(.DBIndent,"ParseRecord")
|
---|
| 381 |
|
---|
| 382 | quit
|
---|
| 383 |
|
---|
| 384 |
|
---|
| 385 | FixDate(Date)
|
---|
| 386 |
|
---|
| 387 | new Month,Day,Year
|
---|
| 388 | new result set result=""
|
---|
| 389 |
|
---|
| 390 | set Date=$$Trim^TMGSTUTL(Date)
|
---|
| 391 | set Month=$$Trim^TMGSTUTL($extract(Date,1,2))
|
---|
| 392 | if +Month>0 do
|
---|
| 393 | . set result=Month
|
---|
| 394 | . set Day=$$Trim^TMGSTUTL($extract(Date,3,4))
|
---|
| 395 | . if +Day>0 do
|
---|
| 396 | . . set result=result_"/"_Day
|
---|
| 397 | . . set Year=$$Trim^TMGSTUTL($extract(Date,5,8))
|
---|
| 398 | . . if +Year>0 do
|
---|
| 399 | . . . set result=result_"/"_Year
|
---|
| 400 |
|
---|
| 401 | quit result
|
---|
| 402 |
|
---|
| 403 |
|
---|
| 404 | ScreenParsed(Parsed)
|
---|
| 405 | ;"Purpose: Screen record. If not appropriate for filing, then
|
---|
| 406 | ;" Parsed(*) is emptied
|
---|
| 407 | ;"Result: 0 if Parsed is ok to file, 1 if killed
|
---|
| 408 |
|
---|
| 409 | if $get(Parsed(cName))="" do goto SPKill
|
---|
| 410 | . if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"No name found!")
|
---|
| 411 | if $get(Parsed(cChartNum))="" do goto SPKill
|
---|
| 412 | . if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"No chart number found!")
|
---|
| 413 | if $get(Parsed(cDOB))="" do goto SPKill
|
---|
| 414 | . if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"No DOB found!")
|
---|
| 415 |
|
---|
| 416 | quit cOKToCont
|
---|
| 417 |
|
---|
| 418 | SPKill
|
---|
| 419 | if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"Killing Parsed. Here it is first...")
|
---|
| 420 | if $get(TMGDEBUG)>0 do ArrayDump^TMGDEBUG("Parsed")
|
---|
| 421 | kill Parsed
|
---|
| 422 | quit cAbort
|
---|
| 423 |
|
---|
| 424 |
|
---|
| 425 |
|
---|
| 426 | FileParsed(Parsed)
|
---|
| 427 |
|
---|
| 428 | if $get(TMGDEBUG)>0 do DebugEntry^TMGDEBUG(.DBIndent,"FileParsed")
|
---|
| 429 |
|
---|
| 430 | new cOKToCont set cOKToCont=1
|
---|
| 431 | new cAbort set cAbort=0
|
---|
| 432 | new cFile set cFile="FILE"
|
---|
| 433 | new cEntries set cEntries="Entries"
|
---|
| 434 | new cMatchThis set cMatchThis="MATCHTHIS" ;"MatchThis"
|
---|
| 435 |
|
---|
| 436 | new result set result=cOKToCont
|
---|
| 437 | new Data
|
---|
| 438 |
|
---|
| 439 | ;"The Data array will be filed with data. (An example)
|
---|
| 440 | ;" Data(0,cFile)="1234.1" <-- "NEW PERSON" Note conversion
|
---|
| 441 | ;" Data(0,cFile,cGlobal)="^DIC(200)" <-- note, NOT "^DIC(200,"
|
---|
| 442 | ;" Data(0,cRecNum)=2 <-- only if user-specified.
|
---|
| 443 | ;" Data(0,cEntries)=1
|
---|
| 444 | ;" Data(1,".01")="MyData1"
|
---|
| 445 | ;" Data(1,".01",cMatchValue)="MyData1"
|
---|
| 446 | ;" Data(1,".01",cFlags)=any flags given (only present if user specified)
|
---|
| 447 | ;" Data(1,".02")="Bill"
|
---|
| 448 | ;" Data(1,".02",cMatchValue)="John"
|
---|
| 449 | ;" Data(1,".03")="MyData3"
|
---|
| 450 | ;" Data(1,".04")="MyData4"
|
---|
| 451 | ;" Data(1,".06")="MyData5" <-- note "NAME" was converted to ".06"
|
---|
| 452 | ;" Data(1,".07",0,cEntries)=2 <-- "ITEM" converted to ".07"
|
---|
| 453 | ;" Data(1,".07",0,cParentIENS)=",10033,"
|
---|
| 454 | ;" Data(1,".07",1,".01")="SubEntry1"
|
---|
| 455 | ;" Data(1,".07",1,".02")="SE1"
|
---|
| 456 | ;" Data(1,".07",1,".03")="'Some Info'"
|
---|
| 457 | ;" Data(1,".07",2,".01")="SubEntry2"
|
---|
| 458 | ;" Data(1,".07",2,".02")="SE2"
|
---|
| 459 | ;" Data(1,".07",2,".04",0,cEntries)=1 ;"TEXT converted to .04
|
---|
| 460 | ;" Data(1,".07",2,".04",0,cParentIENS)=",3,10033,"
|
---|
| 461 | ;" Data(1,".07",2,".04",1,".01")="JD"
|
---|
| 462 | ;" Data(1,".07",2,".04",1,".02")="DOE,JOHN"
|
---|
| 463 |
|
---|
| 464 |
|
---|
| 465 | if $get(Parsed(cName))="" do goto UploadDone
|
---|
| 466 | . if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"No name found!")
|
---|
| 467 | . set result=cAbort
|
---|
| 468 |
|
---|
| 469 | set Data(0,cFile)=2 ;"file 2=PATIENT file
|
---|
| 470 | set Data(0,cEntries)=1
|
---|
| 471 | if $data(Parsed(cName)) do
|
---|
| 472 | . set Data(1,.01)=Parsed(cName)
|
---|
| 473 | . set Data(1,.01,cMatchThis)=1
|
---|
| 474 | if $data(Parsed(cSex)) set Data(1,.02)=Parsed(cSex)
|
---|
| 475 | if $data(Parsed(cDOB)) set Data(1,.03)=Parsed(cDOB)
|
---|
| 476 | ;"if $data(Parsed(cDateReg)) set Data(1,.097)=Parsed(cDateReg) ;".097 = DATE ENTERED INTO FILE
|
---|
| 477 | if $data(Parsed(cStrAddr)) set Data(1,.111)=Parsed(cStrAddr) ;".111 = STREED ADDRESS [LINE 1]
|
---|
| 478 | if $data(Parsed(cZip)) set Data(1,.1112)=Parsed(cZip) ;".1112 = ZIP+4
|
---|
| 479 | if $data(Parsed(cCity)) set Data(1,.114)=Parsed(cCity)
|
---|
| 480 | if $data(Parsed(cState)) set Data(1,.115)=Parsed(cState)
|
---|
| 481 | if $data(Parsed(cPhone1)) set Data(1,.131)=Parsed(cPhone1) ;".131 = PHONE NUMBER [RESIDENCE]
|
---|
| 482 | if $data(Parsed(cPhone2)) set Data(1,.132)=Parsed(cPhone2) ;".132 = PHONE NUMBER [WORK]
|
---|
| 483 | if $data(Parsed(cChartNum)) set Data(1,22700)=Parsed(cChartNum);"22700 = MEDIC ACCOUNT NUMBER
|
---|
| 484 |
|
---|
| 485 |
|
---|
| 486 | new result
|
---|
| 487 |
|
---|
| 488 | new tempDebug set tempDebug=TMGDEBUG
|
---|
| 489 | set TMGDEBUG=0 ;"DISALLOW DEBUG OF UPLOAD -- TOO MUCH INFORMATION!
|
---|
| 490 | set result=$$UploadData^TMGDBAPI(.Data)
|
---|
| 491 | set TMGDEBUG=tempDebug
|
---|
| 492 |
|
---|
| 493 | if result=cAbort do
|
---|
| 494 | . if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"Error uploading record")
|
---|
| 495 | . if $get(TMGDEBUG)>0 do ArrayDump^TMGDEBUG("Data")
|
---|
| 496 |
|
---|
| 497 | UploadDone
|
---|
| 498 |
|
---|
| 499 | if result=cAbort do
|
---|
| 500 | . if $get(TMGDEBUG)>0 do DebugMsg^TMGDEBUG(DBIndent,"This record not uploaded")
|
---|
| 501 | . if $get(TMGDEBUG)>0 do ArrayDump^TMGDEBUG("Parsed")
|
---|
| 502 |
|
---|
| 503 | if $get(TMGDEBUG)>0 do DebugExit^TMGDEBUG(.DBIndent,"FileParsed")
|
---|
| 504 |
|
---|
| 505 | quit result
|
---|
| 506 |
|
---|
| 507 |
|
---|
| 508 | ;"=====================================================================================
|
---|
| 509 |
|
---|
| 510 | Purge
|
---|
| 511 | ;"ENTRY POINT...
|
---|
| 512 | ;"Purge: Purge duplicate records
|
---|
| 513 | new index
|
---|
| 514 | new CurPt
|
---|
| 515 | new Count set Count=0
|
---|
| 516 | new Inc set Inc=0
|
---|
| 517 |
|
---|
| 518 | kill ^TMP("TMG","DUPLICATE")
|
---|
| 519 | set ^TMP("TMG","DUPLICATE","NEXT")=1
|
---|
| 520 |
|
---|
| 521 | write !,!,"Starting to check for duplicate entries.",!,!
|
---|
| 522 | set index=$order(^DPT(0))
|
---|
| 523 |
|
---|
| 524 | for do quit:index=""
|
---|
| 525 | . set CurPt=$piece($get(^DPT(index,0)),"^",1)
|
---|
| 526 | . set index=$order(^DPT(index))
|
---|
| 527 | . set Count=Count+1
|
---|
| 528 | . set Inc=Inc+1
|
---|
| 529 | . if Inc>999 do
|
---|
| 530 | . . write !,Count," records processed so far. (",Count/69758*100,"%)",!
|
---|
| 531 | . . set Inc=0
|
---|
| 532 | . if CurPt="" quit
|
---|
| 533 | . ;"write "Considering ",CurPt,!
|
---|
| 534 | . write "."
|
---|
| 535 | . new lname,fname,PtName
|
---|
| 536 | . set lname=$piece(CurPt,",",1)
|
---|
| 537 | . set fname=$piece(CurPt,",",2)
|
---|
| 538 | . set fname=$extract(fname,1,3) ;"only check first 3 letters of first name
|
---|
| 539 | . set PtName=lname_","_fname
|
---|
| 540 | . ;"--------
|
---|
| 541 | . new Matches,TMGMsg
|
---|
| 542 | . new FileNumber,IENS,Fields,Flags,MatchValue,ScreenCode
|
---|
| 543 | . set FileNumber=2
|
---|
| 544 | . set IENS=""
|
---|
| 545 | . set Fields="@;.01;.02;.03;.09;22700"
|
---|
| 546 | . set Flags=""
|
---|
| 547 | . set MatchValue=PtName
|
---|
| 548 | . set ScreenCode=""
|
---|
| 549 | . ;"Call FIND^DIC
|
---|
| 550 | . ;"FILE,IENS,FIELDS,FLAGS,VALUE,NUMBER,INDEXES,SCREEN,IDENTIFIER,TARGET_ROOT,MSG_ROOTS
|
---|
| 551 | . do FIND^DIC(FileNumber,$get(IENS),Fields,Flags,MatchValue,"*",,ScreenCode,,"Matches","TMGMsg")
|
---|
| 552 | . ;"======================================================
|
---|
| 553 | . if $data(Matches("DILIST",0))'=0 do
|
---|
| 554 | . . new NumMatches set NumMatches=$piece(Matches("DILIST",0),"^",1)
|
---|
| 555 | . . if NumMatches>1 do
|
---|
| 556 | . . . if $$DoComp(.Matches)>0 do
|
---|
| 557 | . . . . ;"write "*** Multiple entries found!",!
|
---|
| 558 | . read *KeyPress:0
|
---|
| 559 | . if KeyPress=27 do quit:index=""
|
---|
| 560 | . . new Answer
|
---|
| 561 | . . write !
|
---|
| 562 | . . read "Do yu want to quit (y/n)?",Answer
|
---|
| 563 | . . if Answer="y" set index=""
|
---|
| 564 | . . write !,!
|
---|
| 565 |
|
---|
| 566 | zwr ^TMP("TMG","DUPLICATE",*)
|
---|
| 567 |
|
---|
| 568 | quit
|
---|
| 569 |
|
---|
| 570 | DoComp(Matches)
|
---|
| 571 | ;"Purpose: to find duplicate entries
|
---|
| 572 | ;"result 0=no duplicates, 1=duplicate 2=exact match found (and killed)
|
---|
| 573 |
|
---|
| 574 | new index1,index2
|
---|
| 575 | new result set result=0
|
---|
| 576 |
|
---|
| 577 | new MaxCount set MaxCount=$piece(Matches("DILIST",0),"^",1)
|
---|
| 578 | for index1=1:1:(MaxCount-1) do quit:(result>0)
|
---|
| 579 | . new A
|
---|
| 580 | . merge A=Matches("DILIST","ID",index1)
|
---|
| 581 | . set A("IEN")=Matches("DILIST",2,index1)
|
---|
| 582 | . for index2=index1+1:1:MaxCount do quit:(result>0)
|
---|
| 583 | . . new B
|
---|
| 584 | . . merge B=Matches("DILIST","ID",index2)
|
---|
| 585 | . . set B("IEN")=Matches("DILIST",2,index2)
|
---|
| 586 | . . set result=$$CompRecs(.A,.B)
|
---|
| 587 | . . if result>0 do
|
---|
| 588 | . . . ;"write !,"Duplicate found.",!
|
---|
| 589 | . . . new NextI set NextI=^TMP("TMG","DUPLICATE","NEXT")
|
---|
| 590 | . . . merge ^TMP("TMG","DUPLICATE",NextI,"A")=A
|
---|
| 591 | . . . merge ^TMP("TMG","DUPLICATE",NextI,"B")=B
|
---|
| 592 | . . . set ^TMP("TMG","DUPLICATE","NEXT")=NextI+1
|
---|
| 593 | . . . if result=1 do
|
---|
| 594 | . . . . new KeepRec set KeepRec=$$WhichToKeep(.A,.B)
|
---|
| 595 | . . . . if KeepRec=1 do MergeAIntoB(B("IEN"),A("IEN")) ;"Keep A & Kill B,
|
---|
| 596 | . . . . if KeepRec=2 do MergeAIntoB(A("IEN"),B("IEN")) ;"Keep B & Kill A,
|
---|
| 597 | . . . . if KeepRec=3 do
|
---|
| 598 | . . . . . do KillRec(B("IEN"))
|
---|
| 599 | . . . . . do KillRec(A("IEN"))
|
---|
| 600 | . . . . else write "?",KeepRec
|
---|
| 601 | . . . if result=2 do ;"exact match
|
---|
| 602 | . . . . do KillRec(B("IEN"))
|
---|
| 603 |
|
---|
| 604 | quit result
|
---|
| 605 |
|
---|
| 606 |
|
---|
| 607 | WhichToKeep(A,B)
|
---|
| 608 | ;"Purpose: Decide if to keep A or B
|
---|
| 609 | ;"ONLY LOOKS AT NAME
|
---|
| 610 | ;"Result: 0=Keep both
|
---|
| 611 | ;" 1=Keep A & Kill B,
|
---|
| 612 | ;" 2=Keep B & Kill A,
|
---|
| 613 | ;" 3=Kill both,
|
---|
| 614 |
|
---|
| 615 | new NameA,NameB
|
---|
| 616 | set NameA=$get(A(.01))
|
---|
| 617 | set NameB=$get(B(.01))
|
---|
| 618 | new lenA,lenB
|
---|
| 619 | set lenA=$length(NameA)
|
---|
| 620 | set lenB=$length(NameB)
|
---|
| 621 | new result set result=0
|
---|
| 622 |
|
---|
| 623 | if NameA["ZZ" set result=2 ;"(Kill A)
|
---|
| 624 | if NameB["ZZ" do
|
---|
| 625 | . if result=2 set result=3 ;"Kill (A & B)
|
---|
| 626 | . else set result=2 ;"(Kill A)
|
---|
| 627 | if result>0 goto WTKDone
|
---|
| 628 |
|
---|
| 629 | new aIEN,bIEN
|
---|
| 630 | set aIEN=$get(A("IEN"))
|
---|
| 631 | set bIEN=$get(B("IEN"))
|
---|
| 632 |
|
---|
| 633 | ;"Because record A or B might have already been killed as part of another set,
|
---|
| 634 | ;" Don't kill either if one already deleted.
|
---|
| 635 | if $data(^TMP("TMG","KILLED",aIEN))>0 set result=3 W "%" goto WTKDone ;"no killing
|
---|
| 636 | if $data(^TMP("TMG","KILLED",bIEN))>0 set result=3 W "%" goto WTKDone ;"no killing
|
---|
| 637 |
|
---|
| 638 | new AMainName,AInitial
|
---|
| 639 | new BMainName,BInitial
|
---|
| 640 | set AMainName=$piece(NameA," ",1)
|
---|
| 641 | set BMainName=$piece(NameB," ",1)
|
---|
| 642 | set AInitial=$piece(NameA," ",2)
|
---|
| 643 | set BInitial=$piece(NameB," ",2)
|
---|
| 644 |
|
---|
| 645 | if (lenA>lenB)&($extract(NameA,1,lenB)=NameB) set result=1 ;"kill B
|
---|
| 646 | else if (lenB>lenA)&($extract(NameB,1,lenA)=NameA) set result=2 ;"kill A
|
---|
| 647 | else if NameA=NameB do
|
---|
| 648 | . set result=1
|
---|
| 649 | else if (AMainName=BMainName)&($length(AInitial)=1)&($length(BInitial)=1) do
|
---|
| 650 | . ;"Names only differ by a one letter middle initial.
|
---|
| 651 | . ;"Arbitrarily kill B
|
---|
| 652 | . set result=1
|
---|
| 653 | else do
|
---|
| 654 | . new Answer
|
---|
| 655 | . write !,"Which record to KILL?",!
|
---|
| 656 | . write "a --> Kill: ",NameA,!
|
---|
| 657 | . write "b --> Kill: ",NameB,!
|
---|
| 658 | . write "x. --> Kill ",NameA,", but remember as ALIAS for ",NameB,!
|
---|
| 659 | . write "y. --> Kill ",NameB,", but remember as ALIAS for ",NameA,!
|
---|
| 660 | . write "^ --> KEEP BOTH",!
|
---|
| 661 | . read Answer
|
---|
| 662 | . if Answer="x" do AddAlias(NameA,bIEN) set Answer="a"
|
---|
| 663 | . if Answer="y" do AddAlias(NameB,aIEN) set Answer="b"
|
---|
| 664 | . if Answer="a" set result=2
|
---|
| 665 | . if Answer="b" set result=1
|
---|
| 666 |
|
---|
| 667 | WTKDone
|
---|
| 668 | ;"if result=0 do
|
---|
| 669 | ;". zwr A(*)
|
---|
| 670 | ;". zwr B(*)
|
---|
| 671 | ;". new temp
|
---|
| 672 | ;". read "Hit Enter",temp
|
---|
| 673 | quit result
|
---|
| 674 |
|
---|
| 675 |
|
---|
| 676 | AddAlias(AName,IEN)
|
---|
| 677 | ;"Put Alias Name into record IEN
|
---|
| 678 | new SubFNum set SubFNum=2.01 ;"Field 1 (alias) in File 2
|
---|
| 679 |
|
---|
| 680 | new TMGFDA,TMGMsg
|
---|
| 681 |
|
---|
| 682 | if $get(AName)'="" do
|
---|
| 683 | . set TMGFDA(SubFNum,"?+1,"_IEN_",",.01)=AName
|
---|
| 684 | . do UPDATE^DIE("EK","TMGFDA","TMGMsg")
|
---|
| 685 | . if $data(TMGMsg("DILIST")) zwr TMGMsg(*)
|
---|
| 686 | . set ^TMP("TMG","ALIAS-ADDED",IEN)=AName
|
---|
| 687 | quit
|
---|
| 688 |
|
---|
| 689 |
|
---|
| 690 | MergeAIntoB(DelRecN,SaveRecN)
|
---|
| 691 | ;"Put Chat number from record to be deleted into Saved record
|
---|
| 692 | ;" THEN delete the deletable record
|
---|
| 693 | new ChartNum
|
---|
| 694 | new TMGFDA
|
---|
| 695 | new SubFNum set SubFNum=2.227005 ;"Field 22700.5 in File 2
|
---|
| 696 |
|
---|
| 697 | set ChartNum=$piece($get(^DPT(DelRecN,"TMG")),"^",1)
|
---|
| 698 |
|
---|
| 699 | if +ChartNum>0 do
|
---|
| 700 | . set TMGFDA(SubFNum,"?+1,"_SaveRecN_",",.01)=ChartNum
|
---|
| 701 | . do UPDATE^DIE("EK","TMGFDA","TMGMsg")
|
---|
| 702 | . if $data(TMGMsg("DILIST")) zwr TMGMsg(*)
|
---|
| 703 |
|
---|
| 704 | do KillRec(DelRecN)
|
---|
| 705 |
|
---|
| 706 | quit
|
---|
| 707 |
|
---|
| 708 |
|
---|
| 709 |
|
---|
| 710 | KillRec(IEN)
|
---|
| 711 | new TMGFDA
|
---|
| 712 | write "#[",IEN,"]"
|
---|
| 713 | merge ^TMP("TMG","KILLED",IEN)=^DPT(IEN)
|
---|
| 714 |
|
---|
| 715 | set TMGFDA(2,IEN_",",.01)="@"
|
---|
| 716 | do FILE^DIE("EK","TMGFDA","TMGMsg")
|
---|
| 717 | write "#"
|
---|
| 718 | if $data(TMGMsg("DILIST")) write !,! zwr TMGMsg(*)
|
---|
| 719 | quit
|
---|
| 720 |
|
---|
| 721 |
|
---|
| 722 | CompRecs(A,B)
|
---|
| 723 | new result set result=0
|
---|
| 724 |
|
---|
| 725 | if $get(A(.03))=$get(B(.03)) do
|
---|
| 726 | . if $get(A(.02))=$get(B(.02)) do
|
---|
| 727 | . . set result=1
|
---|
| 728 | . . if $get(A(.01))=$get(B(.01)) do
|
---|
| 729 | . . . if $get(A(.09))=$get(B(.09)) do
|
---|
| 730 | . . . . set result=2 ;"exact match
|
---|
| 731 |
|
---|
| 732 |
|
---|
| 733 | quit result
|
---|
| 734 |
|
---|
| 735 |
|
---|
| 736 | FixFName(CurPt)
|
---|
| 737 |
|
---|
| 738 | new lname,fname,PtName
|
---|
| 739 | set lname=$piece(CurPt,",",1)
|
---|
| 740 | set fname=$piece(CurPt,",",2)
|
---|
| 741 | new name set name=$$FixName(.lname,.fname)
|
---|
| 742 |
|
---|
| 743 | quit name
|
---|
| 744 |
|
---|
| 745 |
|
---|
| 746 | FixName(lname,fname)
|
---|
| 747 | ;"Purpose: change III,ALLEN J BROWN to BROWN,ALLEN J III
|
---|
| 748 | ;"Results: returns BROWN,ALLEN J III
|
---|
| 749 | new NameArray
|
---|
| 750 | new MaxNode
|
---|
| 751 | new Suffix set Suffix=lname
|
---|
| 752 | new i,s
|
---|
| 753 |
|
---|
| 754 | set s=fname set fname=""
|
---|
| 755 | do CleaveToArray^TMGSTUTL(s," ",.NameArray,1)
|
---|
| 756 | set MaxNode=+$get(NameArray("MAXNODE"))
|
---|
| 757 | if MaxNode=0 goto FixDone
|
---|
| 758 | set lname=NameArray(MaxNode)
|
---|
| 759 | for i=1:1:MaxNode-1 do
|
---|
| 760 | . set fname=fname_NameArray(i)_" "
|
---|
| 761 | set fname=fname_Suffix
|
---|
| 762 |
|
---|
| 763 | new result
|
---|
| 764 | set result=lname_","_fname
|
---|
| 765 |
|
---|
| 766 | FixDone
|
---|
| 767 | quit result
|
---|
| 768 |
|
---|
| 769 |
|
---|
| 770 |
|
---|
| 771 | FixAllNames
|
---|
| 772 | ;"ENTRY POINT...
|
---|
| 773 | ;"Purge: To change all names that erroneously have a last name of "SR","JR","III","II"
|
---|
| 774 | new index
|
---|
| 775 | new PtName,index
|
---|
| 776 |
|
---|
| 777 | ;new Matches,TMGMsg
|
---|
| 778 | new FileNumber,IENS,Fields,Flags,MatchValue,ScreenCode
|
---|
| 779 | set FileNumber=2
|
---|
| 780 | set IENS=""
|
---|
| 781 | set Fields="@;.01;.02;.03;.09;22700"
|
---|
| 782 | set Flags=""
|
---|
| 783 | set ScreenCode=""
|
---|
| 784 |
|
---|
| 785 | for PtName="JR,","SR,","III,","II" do
|
---|
| 786 | . write "Looking for patients with a last name of: ",PtName,!
|
---|
| 787 | . set MatchValue=PtName
|
---|
| 788 | . ;"Call FIND^DIC
|
---|
| 789 | . ;"FILE,IENS,FIELDS,FLAGS,VALUE,NUMBER,INDEXES,SCREEN,IDENTIFIER,TARGET_ROOT,MSG_ROOTS
|
---|
| 790 | . do FIND^DIC(FileNumber,IENS,Fields,Flags,MatchValue,"*",,ScreenCode,,"Matches","TMGMsg")
|
---|
| 791 | . ;"======================================================
|
---|
| 792 | . if $data(Matches("DILIST",0))'=0 do
|
---|
| 793 | . . ;"write "Here are the names found:",!
|
---|
| 794 | . . ;"zwr Matches("DILIST",*)
|
---|
| 795 | . . new NumMatches set NumMatches=$piece(Matches("DILIST",0),"^",1)
|
---|
| 796 | . . write "Found "_NumMatches_" matches.",!
|
---|
| 797 | . . if NumMatches>1 for index=1:1:NumMatches do
|
---|
| 798 | . . . write "index=",index,!
|
---|
| 799 | . . . new IEN set IEN=Matches("DILIST",2,index)
|
---|
| 800 | . . . write "IEN=",IEN,!
|
---|
| 801 | . . . new OldName set OldName=$piece($get(^DPT(IEN,0)),"^",1)
|
---|
| 802 | . . . write "OldName=",OldName,!
|
---|
| 803 | . . . new NewName set NewName=$$FixFName(OldName)
|
---|
| 804 | . . . new IENS set IENS=IEN_","
|
---|
| 805 | . . . write "Changing "_OldName_" to "_NewName,!
|
---|
| 806 | . . . ;new TMGFDA
|
---|
| 807 | . . . set TMGFDA(FileNumber,IENS,.01)=NewName
|
---|
| 808 | . . . kill TMGMsg
|
---|
| 809 | . . . write "Calling FILE^DIE",!
|
---|
| 810 | . . . write "TMGFDA:",!
|
---|
| 811 | . . . zwr TMGFDA(*)
|
---|
| 812 | . . . do FILE^DIE("EK","TMGFDA","TMGMsg")
|
---|
| 813 | . . . write "Done Calling FILE^DIE",!
|
---|
| 814 | . . . if $data(TMGMsg) zwr TMGMsg(*)
|
---|
| 815 |
|
---|
| 816 | write !,!,!,"Done!",!
|
---|
| 817 |
|
---|
| 818 | quit
|
---|
| 819 |
|
---|