[796] | 1 | TMGSEQL3 ;TMG/kst/Code to interface with SequelSystems PMS ;03/25/06
|
---|
| 2 | ;;1.0;TMG-LIB;**1**;09/01/05
|
---|
| 3 |
|
---|
| 4 | ;"TMG SEQUEL IMPORT UTILITY FUNCTIONS
|
---|
| 5 | ;"Kevin Toppenberg MD
|
---|
| 6 | ;"GNU General Public License (GPL) applies
|
---|
| 7 | ;"1-9-2006
|
---|
| 8 |
|
---|
| 9 |
|
---|
| 10 | ;"=======================================================================
|
---|
| 11 | ;" API -- Public Functions.
|
---|
| 12 | ;"=======================================================================
|
---|
| 13 | ;"RPTSSNCF ;"i.e. Report SSN Conflict
|
---|
| 14 | ;"RPTDOBER ;"i.e. Report DOB Errors
|
---|
| 15 | ;"CLEARALL
|
---|
| 16 |
|
---|
| 17 |
|
---|
| 18 | ;"FIXERRORS --OLD
|
---|
| 19 | ;"FixOneError(OneLine,OneErr,OneChLog) -- OLD
|
---|
| 20 | ;"tempMakeAlerts
|
---|
| 21 |
|
---|
| 22 | ;"=======================================================================
|
---|
| 23 | ;"PRIVATE API FUNCTIONS
|
---|
| 24 | ;"=======================================================================
|
---|
| 25 | ;"ShowOneConflict(IEN,ErrMsg)
|
---|
| 26 | ;"$$QuietClear(DUZ)
|
---|
| 27 |
|
---|
| 28 |
|
---|
| 29 | ;"=======================================================================
|
---|
| 30 | ;"DEPENDENCIES
|
---|
| 31 | ;"TMGSEQL1
|
---|
| 32 | ;"TMGSEQL2
|
---|
| 33 | ;"TMGSTUTL
|
---|
| 34 | ;"TMGGDFN
|
---|
| 35 | ;"TMGDEBUG
|
---|
| 36 | ;"=======================================================================
|
---|
| 37 | ;"=======================================================================
|
---|
| 38 |
|
---|
| 39 |
|
---|
| 40 |
|
---|
| 41 | tempMakeAlerts
|
---|
| 42 | ;"Purpose: To creat alerts for all entries in file 22706
|
---|
| 43 | ;"Input: none
|
---|
| 44 | ;"Output: This will generate Alerts, sent to the current user (DUZ)
|
---|
| 45 | ;"Result: none
|
---|
| 46 |
|
---|
| 47 | new i,OneLine
|
---|
| 48 |
|
---|
| 49 | set i=$order(^TMG(22706,0))
|
---|
| 50 | if +i>0 for do quit:(+i'>0)
|
---|
| 51 | . new ref,IEN
|
---|
| 52 | . set IEN=i
|
---|
| 53 | . set i=$order(^TMG(22706,i))
|
---|
| 54 | . set ref="^TMG(22706,"_IEN_",2)"
|
---|
| 55 | . set OneLine=$$WPToStr^TMGSTUTL(ref)
|
---|
| 56 | . set Msg="Problem with upload of Sequel data"
|
---|
| 57 | . do MakeErrAlert^TMGSEQL2(IEN,DUZ,Msg)
|
---|
| 58 |
|
---|
| 59 | quit
|
---|
| 60 |
|
---|
| 61 |
|
---|
| 62 | FIXERRORS ;"NOTE-- this is an OLD function, not being used
|
---|
| 63 | ;"Purpose: To handles errors encountered during the ASKIMPORT function
|
---|
| 64 | ;"Input: none
|
---|
| 65 | ;"Output: the database is modified
|
---|
| 66 | ;"Results: none
|
---|
| 67 |
|
---|
| 68 | new index
|
---|
| 69 | new Abort set Abort=0
|
---|
| 70 | new NewArray,newI
|
---|
| 71 | new NewErrArray,NewChgLog
|
---|
| 72 | new MaxCount
|
---|
| 73 | new TMGRemSex
|
---|
| 74 | set TMGRemSex=$$GET1^DIQ(22711,"1,",6,"I") ;"6=PICK GENDER FROM NAME?
|
---|
| 75 |
|
---|
| 76 | new Ref set Ref=$name(^TMP("TMG","SEQUELIMPORT","ERRORS"))
|
---|
| 77 | set MaxCount=$order(@Ref@(""),-1)
|
---|
| 78 |
|
---|
| 79 | set index=$order(@Ref@(""))
|
---|
| 80 | if index'="" for do quit:(+index'>0)!(Abort)
|
---|
| 81 | . new result
|
---|
| 82 | . new OneErrArray,OneChLog
|
---|
| 83 | . merge OneErrArray=@Ref@(index)
|
---|
| 84 | . new OneLine set OneLine=$get(@Ref@(index))
|
---|
| 85 | . write "(",index,"/",MaxCount,") "
|
---|
| 86 | . set result=$$FixOneError^TMGSEQL2(OneLine,.OneErrArray,.OneChLog)
|
---|
| 87 | . if result=-1 set Abort=1 quit
|
---|
| 88 | . if result>0 do
|
---|
| 89 | . . ;"merge NewChgLog(index)=OneChLog
|
---|
| 90 | . . merge ^TMP("TMG","SEQUELIMPORT","CHANGES",$H,index)=OneChLog
|
---|
| 91 | . else do
|
---|
| 92 | . . kill @Ref@(index)
|
---|
| 93 | . . merge @Ref@(index)=OneErrArray(1)
|
---|
| 94 | . set index=$order(@Ref@(index))
|
---|
| 95 |
|
---|
| 96 | if 1=0 do
|
---|
| 97 | . set newI=$get(newI)+1
|
---|
| 98 | . set NewArray(newI)=OneLine
|
---|
| 99 | . if $$ProcessPt^TMGSEQL1(OneLine,.NewErrArray,.NewChgLog) do
|
---|
| 100 | . . MERGE ^TMP("TMG","SEQUELIMPORT","CHANGES",$H)=NewChgLog
|
---|
| 101 | . . if $data(NewErrArray) do
|
---|
| 102 | . . . MERGE ^TMP("TMG","SEQUELIMPORT","ERRORS")=NewErrArray
|
---|
| 103 | . . . write "Here is the info about adding that patient:",!
|
---|
| 104 | . . . zwr NewErrArray(*)
|
---|
| 105 | . . . write !!
|
---|
| 106 | . . . kill NewErrArray
|
---|
| 107 | . . ;"write "killing: ",Ref,"(",Idx,")",!
|
---|
| 108 | . . kill @Ref@(Idx)
|
---|
| 109 |
|
---|
| 110 |
|
---|
| 111 | write !,"Goodbye.",!
|
---|
| 112 | FEDone
|
---|
| 113 | quit
|
---|
| 114 |
|
---|
| 115 |
|
---|
| 116 | FixOneError(OneLine,OneErr,OneChLog) ;"NOTE-- this is an OLD function, not being used
|
---|
| 117 | ;"Purpose: to Fix one filing error
|
---|
| 118 | ;"Input: OneLine -- the original data line in CVS format.
|
---|
| 119 | ;" OneErr -- PASS BY REFERENCE
|
---|
| 120 | ;" coming in, it will pass the original error.
|
---|
| 121 | ;" passed back out, it will contain any new errors.
|
---|
| 122 | ;" OneChLog -- PASS BY REFERENCE
|
---|
| 123 | ;" This will contain messages about changes made.
|
---|
| 124 | ;" Note: uses var with global scipe: TMGRemSex
|
---|
| 125 | ;"Result: 1 = error fixed
|
---|
| 126 | ;" 0 = error NOT fixed
|
---|
| 127 | ;" -1 = aborted
|
---|
| 128 |
|
---|
| 129 | new Abort set Abort=0
|
---|
| 130 | new NewArray,newI
|
---|
| 131 | new NewErrArray,NewChgLog
|
---|
| 132 | new result set result=0
|
---|
| 133 |
|
---|
| 134 | new Len set Len=$length(OneLine)
|
---|
| 135 | if $extract(OneLine,Len)=$char(13) set OneLine=$extract(OneLine,1,Len-1)
|
---|
| 136 |
|
---|
| 137 | new Info merge Info=OneErr("INFO")
|
---|
| 138 | new DIERR merge DIERR=OneErr("INFO","DIERR")
|
---|
| 139 | if OneLine="" goto FOEDone
|
---|
| 140 |
|
---|
| 141 | new LName,FName,DOB,SID
|
---|
| 142 | set LName=$piece(OneLine,",",3)
|
---|
| 143 | set FName=$piece(OneLine,",",4)
|
---|
| 144 | set DOB=$piece($piece(OneLine,",",17)," ",1)
|
---|
| 145 | set SID=$piece(OneLine,",",5)
|
---|
| 146 | write FName," ",LName," ("_DOB_"); #",SID,"): "
|
---|
| 147 | new Prov set Prov=$piece(OneLine,",",14)
|
---|
| 148 | new skip set skip=0
|
---|
| 149 | new temp set temp=""
|
---|
| 150 |
|
---|
| 151 | if $$InvalPtName^TMGSEQL1(FName,LName) do goto FOEDone
|
---|
| 152 | . write !,"Skipping and deleting, because name is: ",FName," ",LName,!
|
---|
| 153 | . set result=0
|
---|
| 154 |
|
---|
| 155 | if $$InvalidProvider^TMGSEQL1(Prov) do goto FOEDone
|
---|
| 156 | . write !,"Skipping and deleting, because provider is: ",Prov,!
|
---|
| 157 | . set result=0
|
---|
| 158 |
|
---|
| 159 | if ($get(DIERR(1))=311)&($get(Info(0))="PATIENT NOT IN DATABASE")&($get(DIERR(1,"PARAM","FIELD"))=.02) do
|
---|
| 160 | . set temp=""
|
---|
| 161 | . for do quit:(temp'="")!(Abort=1)
|
---|
| 162 | . . set skip=0
|
---|
| 163 | . . if TMGRemSex=1 set temp=$$GetSex^TMGSEQL2(FName)
|
---|
| 164 | . . if temp="" read "MALE/FEMALE? ?// ",temp:$get(DTIME,3600)
|
---|
| 165 | . . if temp="" set temp="?"
|
---|
| 166 | . . set temp=$$UP^XLFSTR(temp)
|
---|
| 167 | . . if temp="?" do quit
|
---|
| 168 | . . . write "Options:",!
|
---|
| 169 | . . . write "-----------------",!
|
---|
| 170 | . . . write "M Name is MALE (and remember in future).",!
|
---|
| 171 | . . . write "F Name is FEMALE (and remember in future).",!
|
---|
| 172 | . . . write "D Show the data line from the other computer (Sequel)",!
|
---|
| 173 | . . . ;"write "S Turn automatic selecting SEX based on first name: "
|
---|
| 174 | . . . ;"write $select(TMGRemSex=1:"OFF",TMGRemSex=0:"ON"),!
|
---|
| 175 | . . . write "x Skip this patient.",!
|
---|
| 176 | . . . write "Q Query the database to see existing entries.",!
|
---|
| 177 | . . . write "^ Abort.",!
|
---|
| 178 | . . . set temp=""
|
---|
| 179 | . . if temp="Q" do quit
|
---|
| 180 | . . . new DIC set DIC=2
|
---|
| 181 | . . . set DIC(0)="AEQM"
|
---|
| 182 | . . . do ^DIC
|
---|
| 183 | . . . set temp=""
|
---|
| 184 | . . if temp="S" do quit
|
---|
| 185 | . . . ;"set TMGRemSex='TMGRemSex
|
---|
| 186 | . . if temp="D" do quit
|
---|
| 187 | . . . write !,OneLine,!
|
---|
| 188 | . . . set temp=""
|
---|
| 189 | . . if ("MALE"[temp)&(temp'="FEMALE") do quit
|
---|
| 190 | . . . write "MALE",!
|
---|
| 191 | . . . set OneLine=OneLine_"^MALE"
|
---|
| 192 | . . . if TMGRemSex=1 do
|
---|
| 193 | . . . . new temp
|
---|
| 194 | . . . . set temp=$$SetSex^TMGSEQL2(FName,"MALE")
|
---|
| 195 | . . else if "FEMALE"[temp do quit
|
---|
| 196 | . . . write "FEMALE",!
|
---|
| 197 | . . . set OneLine=OneLine_"^FEMALE"
|
---|
| 198 | . . . if TMGRemSex=1 do
|
---|
| 199 | . . . . new temp
|
---|
| 200 | . . . . set temp=$$SetSex^TMGSEQL2(FName,"FEMALE")
|
---|
| 201 | . . else if temp="^" do quit
|
---|
| 202 | . . . write "aborting..",!
|
---|
| 203 | . . . set Abort=1
|
---|
| 204 | . . else do quit
|
---|
| 205 | . . . write "skip...",!
|
---|
| 206 | . . . set skip=1,temp="x"
|
---|
| 207 | else do
|
---|
| 208 | . write "??",!
|
---|
| 209 | . write "Here is info array. I don't know how to fix this:",!
|
---|
| 210 | . zwr Info(*)
|
---|
| 211 | . set temp="?"
|
---|
| 212 | . for do quit:(temp'="")!(Abort=1)
|
---|
| 213 | . . set skip=0
|
---|
| 214 | . . if temp="?" do quit
|
---|
| 215 | . . . write "Options:",!
|
---|
| 216 | . . . write "-----------------",!
|
---|
| 217 | . . . write "D Show the data line from the other computer (Sequel)",!
|
---|
| 218 | . . . write "E Edit data line.",!
|
---|
| 219 | . . . write "x Skip this patient.",!
|
---|
| 220 | . . . write "Q Query the database to see existing entries.",!
|
---|
| 221 | . . . write "^ Abort.",!
|
---|
| 222 | . . . set temp=""
|
---|
| 223 | . . else if temp="Q" do quit
|
---|
| 224 | . . . new DIC set DIC=2
|
---|
| 225 | . . . set DIC(0)="AEQM"
|
---|
| 226 | . . . do ^DIC
|
---|
| 227 | . . . set temp=""
|
---|
| 228 | . . else if temp="S" do
|
---|
| 229 | . . . set TMGRemSex='TMGRemSex
|
---|
| 230 | . . else if temp="D" do quit
|
---|
| 231 | . . . write !,OneLine,!
|
---|
| 232 | . . . set temp=""
|
---|
| 233 | . . else if temp="E" do
|
---|
| 234 | . . . new r,NewLine
|
---|
| 235 | . . . set r=$$EditOneLine^TMGSEQL2(OneLine,NewLine)
|
---|
| 236 | . . . if r=1 set OneLine=NewLine ;"NOTE: later I will save old line to keep from having to process each update cycle
|
---|
| 237 | . . else if temp="^" do quit
|
---|
| 238 | . . . write "aborting..",!
|
---|
| 239 | . . . set Abort=1
|
---|
| 240 | . . else do quit
|
---|
| 241 | . . . write "skip...",!
|
---|
| 242 | . . . set skip=1
|
---|
| 243 | . . read !,"Enter Option: ?//",temp:$get(DTIME,3600),!
|
---|
| 244 | . . if temp="" set temp="?"
|
---|
| 245 | . . set temp=$$UP^XLFSTR(temp)
|
---|
| 246 |
|
---|
| 247 | if skip=0 do
|
---|
| 248 | . kill OneErr
|
---|
| 249 | . if $$ProcessPt^TMGSEQL1(OneLine,.OneErr,.OneChLog) do
|
---|
| 250 | . . if $data(OneErr) do
|
---|
| 251 | . . . write "Here is the info about adding that patient:",!
|
---|
| 252 | . . . zwr OneErr(*)
|
---|
| 253 | . . . write !!
|
---|
| 254 | . . else set result=1
|
---|
| 255 |
|
---|
| 256 | FOEDone
|
---|
| 257 | if Abort set result=-1
|
---|
| 258 | quit result
|
---|
| 259 |
|
---|
| 260 |
|
---|
| 261 |
|
---|
| 262 | RPTSSNCF ;"i.e. Report SSN Conflict
|
---|
| 263 | ;"Purpose: to output a report of all instances of conflicted SSNum's
|
---|
| 264 |
|
---|
| 265 | do RptMsg("CONFLICTING SS-NUMBERS")
|
---|
| 266 | quit
|
---|
| 267 |
|
---|
| 268 |
|
---|
| 269 | RPTDOBER ;"i.e. Report DOB Errors
|
---|
| 270 | ;"Purpose: to output a report of all instances of conflicted SSNum's
|
---|
| 271 |
|
---|
| 272 | do RptMsg("DOB")
|
---|
| 273 | quit
|
---|
| 274 |
|
---|
| 275 |
|
---|
| 276 | RptMsg(MatchMsg) ;"i.e. Alerts with matching message
|
---|
| 277 | ;"Purpose: to output a report of all instances of errors with matching message
|
---|
| 278 | ;"input: MatchMsg -- A message of error to match for.
|
---|
| 279 | ;" e.g. CONFLICTING SS-NUMBERS
|
---|
| 280 |
|
---|
| 281 | set %ZIS("A")="Enter output printer or device (^ to abort): "
|
---|
| 282 | do ^%ZIS
|
---|
| 283 | if POP do goto RpmDone
|
---|
| 284 | . write !,"Error selecting output printer or device. Aborting report.",!
|
---|
| 285 | use IO
|
---|
| 286 |
|
---|
| 287 | new IEN,count
|
---|
| 288 | set count=0
|
---|
| 289 | set IEN=$order(^TMG(22706,0))
|
---|
| 290 | if +IEN'=0 for do quit:(+IEN'>0)
|
---|
| 291 | . new Node0 set Node0=$get(^TMG(22706,IEN,0))
|
---|
| 292 | . new SQLNum set SQLNum=$piece(Node0,"^",1)
|
---|
| 293 | . new Msg set Msg=$piece(Node0,"^",2)
|
---|
| 294 | . if Msg[MatchMsg do
|
---|
| 295 | . . do ShowOneConflict(IEN,Msg)
|
---|
| 296 | . . set count=count+1
|
---|
| 297 | . set IEN=$order(^TMG(22706,IEN))
|
---|
| 298 |
|
---|
| 299 | write count," conflicts found."
|
---|
| 300 |
|
---|
| 301 | use IO(0)
|
---|
| 302 | do ^%ZISC
|
---|
| 303 |
|
---|
| 304 | RpmDone
|
---|
| 305 | write !,"Goodbye.",!
|
---|
| 306 | quit
|
---|
| 307 |
|
---|
| 308 |
|
---|
| 309 |
|
---|
| 310 |
|
---|
| 311 | ShowOneConflict(IEN,ErrMsg)
|
---|
| 312 | ;"Purpose: to output one conflict
|
---|
| 313 | ;"Input: IEN, the IEN from file 22706
|
---|
| 314 |
|
---|
| 315 | new OneLine,TMGWP,TMGMSG,PtInfo
|
---|
| 316 | new sqSSNum,vSSNum
|
---|
| 317 |
|
---|
| 318 | new x set x=$$GET1^DIQ(22706,IEN_",",2,"","TMGWP","TMGMSG")
|
---|
| 319 | if $data(TMGMSG("DIERR"))'=0 do goto SOCDone
|
---|
| 320 | . new PriorErrorFound
|
---|
| 321 | . do ShowDIERR^TMGDEBUG(.TMGMSG,.PriorErrorFound)
|
---|
| 322 | set OneLine=$$WPToStr^TMGSTUTL("TMGWP","")
|
---|
| 323 | if $$ParseLine^TMGSEQL1(OneLine,.PtInfo)=0 do goto SOCDone
|
---|
| 324 | . write "Error parsing Alert data into patient data.",!
|
---|
| 325 |
|
---|
| 326 | if $get(ErrMsg)="" goto SOCDone
|
---|
| 327 |
|
---|
| 328 | set sqSSN=$piece(ErrMsg,"Sequel#=",2)
|
---|
| 329 | set sqSSN=$piece(sqSSN," ",1)
|
---|
| 330 | set vSSN=$piece(ErrMsg,"VistA#=",2)
|
---|
| 331 | set vSSN=$piece(vSSN," ",1)
|
---|
| 332 |
|
---|
| 333 | new vFullName
|
---|
| 334 | do ;"get actual full name & DOB for VistA SSN
|
---|
| 335 | . new vName,vDOB
|
---|
| 336 | . new tempDFN set tempDFN=$$SSNumLookup^TMGGDFN(vSSN)
|
---|
| 337 | . new TMGMSG,TMGERR,IENS
|
---|
| 338 | . set IENS=+tempDFN_","
|
---|
| 339 | . do GETS^DIQ(2,IENS,".01;.03","E","TMGMSG","TMGERR")
|
---|
| 340 | . if $data(TMGERR("DIERR")) do
|
---|
| 341 | . . new PriorErrorFound
|
---|
| 342 | . . do ShowDIERR^TMGDEBUG(.TMGMSG,.PriorErrorFound)
|
---|
| 343 | . set vName=$get(TMGMSG(2,IENS,.01,"E"))
|
---|
| 344 | . set vDOB=$get(TMGMSG(2,IENS,.03,"E"))
|
---|
| 345 | . set vFullName=vName_" ("_vDOB_")"
|
---|
| 346 |
|
---|
| 347 | write sqSSN," is Sequel SSN for: ",$get(PtInfo("FULL NAME2"))," phone: ",$get(PtInfo("PHONE NUM")),!
|
---|
| 348 | write vSSN," is VistA SSN for: ",$get(vFullName),!
|
---|
| 349 | write !
|
---|
| 350 |
|
---|
| 351 | SOCDone
|
---|
| 352 | quit
|
---|
| 353 |
|
---|
| 354 |
|
---|
| 355 |
|
---|
| 356 | CLEARALL
|
---|
| 357 | ;"Purpose: Wrapper for QuietClear (which clears all entries in file 22706 and all alerts.)
|
---|
| 358 | ;"Input: none, DUZ (in global scope) is used
|
---|
| 359 | ;"Output: All entries in the file and all associated Alerts are deleted
|
---|
| 360 | ;"Results: none
|
---|
| 361 |
|
---|
| 362 | new TMGLIST
|
---|
| 363 | new i,count
|
---|
| 364 | set count=0
|
---|
| 365 |
|
---|
| 366 | write !,"-==Error Deleater==-",!
|
---|
| 367 | write "This will delete all error alerts related to",!
|
---|
| 368 | write "importing demographics from Sequel system",!!
|
---|
| 369 |
|
---|
| 370 | set count=$$QuietClear(DUZ)
|
---|
| 371 |
|
---|
| 372 | write count," data import errors "
|
---|
| 373 | if count>0 write "deleted.",!
|
---|
| 374 | else write "to delete.",!
|
---|
| 375 |
|
---|
| 376 | write !,"Goodbye.",!
|
---|
| 377 |
|
---|
| 378 | quit
|
---|
| 379 |
|
---|
| 380 |
|
---|
| 381 | QuietClear(DUZ)
|
---|
| 382 | ;"Purpose: To clear all entries in file 22706 and all alerts.
|
---|
| 383 | ;"Input: DUZ, the user to delete alerts for.
|
---|
| 384 | ;"Output: All entries in the file and all associated Alerts are deleted
|
---|
| 385 | ;"Results: count of errors deleted.
|
---|
| 386 |
|
---|
| 387 | new TMGLIST
|
---|
| 388 | new i,count
|
---|
| 389 | set count=0
|
---|
| 390 |
|
---|
| 391 | do USER^XQALERT("TMGLIST",DUZ)
|
---|
| 392 |
|
---|
| 393 | set i=$order(TMGLIST(""))
|
---|
| 394 | if i'="" for do quit:(+i'>0)
|
---|
| 395 | . new alertID,IEN,TMGDATA,line
|
---|
| 396 | . set line=$get(TMGLIST(i))
|
---|
| 397 | . set i=$order(TMGLIST(i))
|
---|
| 398 | . set alertID=$piece(line,"^",2)
|
---|
| 399 | . if $piece(alertID,";",1)'="TMGSQLIMPORT" quit
|
---|
| 400 | . new XQAID
|
---|
| 401 | . do GETACT^XQALERT(alertID) ;"loads XQADATA, XQAID
|
---|
| 402 | . if +XQADATA>0 do
|
---|
| 403 | . . new TMGERR,result
|
---|
| 404 | . . set count=count+1
|
---|
| 405 | . . ;"write "Deleting from file 22706, IEN=",XQADATA,!
|
---|
| 406 | . . set result=$$DelIEN^TMGDBAPI(22706,XQADATA,.TMGERR)
|
---|
| 407 | . . if result=0 do ShowDIERR^TMGDEBUG(.TMGERR)
|
---|
| 408 | . . else do
|
---|
| 409 | . . . ;"write $piece(line,"^",1),!!
|
---|
| 410 | . . . do DELETE^XQALERT
|
---|
| 411 | . ;"else write "?? XQADATA ??",!
|
---|
| 412 |
|
---|
| 413 | quit count
|
---|
| 414 |
|
---|
| 415 |
|
---|
| 416 |
|
---|
| 417 | Schedule(Time,Routine,Descr)
|
---|
| 418 | ;"Purpose: to schedule a task at the given time, to run the specified routine
|
---|
| 419 | ;"Input: Time: The time to run the task, in FileMan or $HOROLOG format
|
---|
| 420 | ;" Routine: the routine to run. E.g. "TEST^TMGSEQL3"
|
---|
| 421 | ;" Descr: Task description (don't include package name)
|
---|
| 422 | ;"Output: Will shedule the task with TaskMan
|
---|
| 423 | ;"Result: returns the task number
|
---|
| 424 |
|
---|
| 425 | new result
|
---|
| 426 | set result=""
|
---|
| 427 |
|
---|
| 428 | ;"New all vars used by taskman scheduler, to ensure to use of unexpected values
|
---|
| 429 | new ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTUCI,ZTCPU
|
---|
| 430 | new ZTPRI,ZTSAVE,ZTKIL,ZTSYNC
|
---|
| 431 |
|
---|
| 432 | set ZTRTN=$get(Routine)
|
---|
| 433 | set ZTDESC="TMG SEQUELIMPORTER "_$get(Descr)
|
---|
| 434 | set ZTDTH=$get(Time)
|
---|
| 435 | set ZTIO=""
|
---|
| 436 |
|
---|
| 437 | do ^%ZTLOAD
|
---|
| 438 |
|
---|
| 439 | set result=$get(ZTSK)
|
---|
| 440 |
|
---|
| 441 | SchDone
|
---|
| 442 | quit result
|
---|
| 443 |
|
---|
| 444 |
|
---|
| 445 | SHOWTIME
|
---|
| 446 | ;"Purpose: to show the last time that the import task was run
|
---|
| 447 | ;"Input: none
|
---|
| 448 | ;"Output: will write to screen
|
---|
| 449 | ;"Result: none
|
---|
| 450 |
|
---|
| 451 | new time
|
---|
| 452 |
|
---|
| 453 | write !!,"SEQUEL BILLING SYSTEM DEMOGRAPHICS IMPORT",!
|
---|
| 454 | write "Last demographics import date/time was: "
|
---|
| 455 | set time=$$GET1^DIQ(22711,"1,","LAST IMPORT DATE","I")
|
---|
| 456 | write $$FMTE^XLFDT(time,"P"),!
|
---|
| 457 |
|
---|
| 458 | new task
|
---|
| 459 | set task=$$GET1^DIQ(22711,"1,","TASK FOR NEXT RUN","I")
|
---|
| 460 | if +task>0 do
|
---|
| 461 | . write "Next demographics import date/time is: "
|
---|
| 462 | . set time=$$GET1^DIQ(14.4,task_",","Scheduled Run Time ($H)")
|
---|
| 463 | . write $$HTE^XLFDT(time,"P"),!
|
---|
| 464 |
|
---|
| 465 | quit
|
---|
| 466 |
|
---|