Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RORHDT03

RORHDT03.m

Go to the documentation of this file.
  1. RORHDT03 ;HCIOFO/SG - MANIPULATIONS WITH EXTRACTION TASKS ; 1/23/06 8:40am
  1. ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
  1. ;
  1. Q
  1. ;
  1. ;***** STARTS THE DATA EXTRACTION TASK
  1. ;
  1. ; HDEIEN Data Extract IEN
  1. ; TASKIEN Task IEN
  1. ; FAM File Access Mode:
  1. ; "A" Append new messages to the file
  1. ; "O" Overwrite the file
  1. ; "N" Modify file name and create a new file
  1. ; [ZTDTH] Start date/time
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; 0 Ok
  1. ; 1 Start time has not been entered
  1. ; 2 Already running or pending
  1. ;
  1. START(HDEIEN,TASKIEN,FAM,ZTDTH) ;
  1. N IENS,PARAMS,RC,RORFDA,RORMSG,STATUS,TASK,TMP
  1. N ZTCPU,ZTDESC,ZTIO,ZTKIL,ZTPRI,ZTRTN,ZTSAVE,ZTSK,ZTSYNC,ZTUCI
  1. ;--- Check status of the task
  1. S STATUS=+$$TASKSTAT^RORHDTUT(HDEIEN,TASKIEN,3)
  1. Q:(STATUS=1)!(STATUS=2)!(STATUS=102) 2
  1. ;--- Start/schedule the task
  1. S PARAMS("PARAMS","HDEIEN")=HDEIEN
  1. S PARAMS("PARAMS","TASKIEN")=TASKIEN
  1. S PARAMS("PARAMS","FAM")=FAM
  1. S ZTDESC="CCR HDE Task #"_TASKIEN
  1. S TASK=$$CREATE^RORTSK(1,"TASK^RORHDT03",,,,,.PARAMS)
  1. Q:TASK<0 TASK
  1. W !,"Task #"_TASK_" has been scheduled."
  1. ;--- Update task number
  1. S IENS=(+TASKIEN)_","_(+HDEIEN)_","
  1. S RORFDA(799.64,IENS,.02)=TASK
  1. D FILE^DIE(,"RORFDA","RORMSG")
  1. Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,799.64,IENS)
  1. ;--- Update the last known task status
  1. S TMP=$$TASKSTAT^RORHDTUT(HDEIEN,TASKIEN)
  1. ;--- Success
  1. Q 0
  1. ;
  1. ;***** STOPS THE DATA EXTRACTION TASK
  1. ;
  1. ; HDEIEN Data Extract IEN
  1. ; TASKIEN Task IEN
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; 0 Ok
  1. ;
  1. STOP(HDEIEN,TASKIEN) ;
  1. N RC,STATUS,TASK,TMP
  1. ;--- Get status of the task
  1. S STATUS=+$$TASKSTAT^RORHDTUT(HDEIEN,TASKIEN)
  1. Q:STATUS<0 STATUS
  1. ;--- Stop the task if it is running, pending, or suspended
  1. I (STATUS=1)!(STATUS=2)!(STATUS=102) D Q:$G(RC)<0 RC
  1. . S TASK=$$TASKNUM^RORHDTUT(HDEIEN,TASKIEN)
  1. . I TASK<0 S RC=+TASK Q
  1. . S RC=$$DEQUEUE^RORTSK(TASK)
  1. . W:'RC !,"The task #"_TASK_" has been stopped/unscheduled."
  1. . ;--- Update the last known task status
  1. . S STATUS=+$$TASKSTAT^RORHDTUT(HDEIEN,TASKIEN)
  1. ;--- Task is stopping
  1. D:STATUS=103
  1. . W !,"The task #"_TASK_" has not responded to the stop request yet."
  1. Q 0
  1. ;
  1. ;***** HISTORICAL DATA EXTRACTION TASK
  1. ;
  1. ; RORTSK Task number and task parameters
  1. ;
  1. TASK ;
  1. N RORERRDL ; Default error location
  1. N RORERROR ; Error processing data
  1. N RORLOG ; Log susbsystem data
  1. N RORPARM ; Application parameters
  1. ;
  1. N BUF,COUNTERS,FAM,HDEIEN,I,IENS,INFO,RC,REGLST,REGNAME,RORBUF,RORMSG,TASKIEN,TMP
  1. S RORTSK=ZTSK
  1. S HDEIEN=+$$PARAM^RORTSK01("HDEIEN")
  1. S TASKIEN=+$$PARAM^RORTSK01("TASKIEN")
  1. ;--- Initialize constants and variables
  1. D INIT^RORUTL01("RORHDT"),CLEAR^RORERR("TASK^RORHDT03")
  1. ;S RORPARM("DEBUG")=1 ; Remove the first ';' to start in debug mode
  1. S RORPARM("ERR")=1 ; Enable enhanced error processing
  1. S RORPARM("LOG")=1 ; Enable error recording
  1. ;--- Wait until the task record is created
  1. S TMP=$$TRWAIT^RORTSK01(RORTSK)
  1. ;--- Open the task log
  1. S TMP=$$SETUP^RORLOG()
  1. S TMP=$$OPEN^RORLOG(,4,"HDE TASK #"_RORTSK_" STARTED")
  1. D
  1. . ;--- Initialize the task
  1. . S RC=$$INIT^RORTSK01(RORTSK,$$LOGIEN^RORLOG) Q:RC<0
  1. . ;--- Load parameters of the data extraction
  1. . S IENS=(+HDEIEN)_","
  1. . D GETS^DIQ(799.6,IENS,"3*","I","RORBUF","RORMSG")
  1. . D:$G(DIERR) DBS^RORERR("RORMSG",-9,,,799.6,IENS)
  1. . ;--- Compile the list of registries
  1. . S I=""
  1. . F S I=$O(RORBUF(799.63,I)) Q:I="" D
  1. . . S REGNAME=$G(RORBUF(799.63,I,.01,"I")) Q:REGNAME=""
  1. . . S TMP=$$REGIEN^RORUTL02(REGNAME)
  1. . . S:TMP>0 REGLST(REGNAME)=TMP
  1. . ;--- Associate the log with the registries
  1. . S RC=$$SETRGLST^RORLOG(.REGLST)
  1. . ;---
  1. . S TMP=$$PARAM^RORTSK01("FAM")
  1. . S RC=$$EXTRACT^RORHDT04(.REGLST,HDEIEN,TASKIEN,TMP)
  1. . S:RC'<0 COUNTERS=RC
  1. ;
  1. ;--- Post-processing
  1. S TMP=$$EXIT^RORTSK01(RC)
  1. ;--- Close the log
  1. S TMP="HDE TASK #"_RORTSK_$S(RC<0:" ABORTED",1:" COMPLETED")
  1. D CLOSE^RORLOG(TMP,$G(COUNTERS))
  1. D:'$G(RORPARM("DEBUG")) INIT^RORUTL01("RORHDT")
  1. Q