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

RORHDTAC.m

Go to the documentation of this file.
  1. RORHDTAC ;HCIOFO/SG - DATA EXTRACTION ACTION CONFIRMATIONS ; 3/14/06 11:07am
  1. ;;1.5;CLINICAL CASE REGISTRIES;**1**;Feb 17, 2006;Build 24
  1. ;
  1. Q
  1. ;
  1. ;***** CONFIRMATION TO CREATE A NEW TASK TABLE
  1. ;
  1. ; HDEIEN Data Extract IEN
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; 0 Ok
  1. ; 1 Cancel
  1. ;
  1. CREATE(HDEIEN) ;
  1. N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,IENS,RC,RORBUF,RORMSG,X,Y
  1. ;--- Display status of the data extract
  1. S RC=$$STATUS^RORHDT01(HDEIEN) Q:RC<0 RC
  1. ;--- Check if registry task table is not empty
  1. S IENS=","_(+HDEIEN)_","
  1. D LIST^DIC(799.64,IENS,"@","Q",1,,,"B",,,"RORBUF","RORMSG")
  1. Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,799.64,IENS)
  1. ;--- Ask for a confirmation to overwrite
  1. I $G(RORBUF("DILIST",0))>0 D Q:RC 1
  1. . K DIR S DIR(0)="Y"
  1. . S DIR("A")="Overwrite the existing task table"
  1. . S DIR("B")="NO"
  1. . W ! D ^DIR S RC=$D(DIRUT)!'$G(Y)
  1. Q 0
  1. ;
  1. ;***** CONFIRMATIONS TO START THE TASK
  1. ;
  1. ; HDEIEN Data Extract IEN
  1. ; TASKIEN Task IEN
  1. ; .FAM File Access Mode is returned via this parameter
  1. ; .SDT Start Date/Time is returned via this parameter
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; 0 Ok
  1. ; 1 Cancel
  1. ;
  1. START(HDEIEN,TASKIEN,FAM,SDT) ;
  1. N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,FILE,OUTDIR,RC,RORDST,RORSRC,STATUS,X,Y
  1. S FAM="",SDT=""
  1. ;--- Check status of the task
  1. S STATUS=+$$TASKSTAT^RORHDTUT(HDEIEN,TASKIEN)
  1. I STATUS=1 D Q:RC $S(RC<0:RC,1:1)
  1. . K DIR S DIR(0)="Y"
  1. . S DIR("A")="The task is pending. Do you want to reschedule it"
  1. . S DIR("B")="NO"
  1. . D ^DIR S RC=$D(DIRUT)!'$G(Y)
  1. . S:'RC RC=$$STOP^RORHDT03(HDEIEN,TASKIEN)
  1. I STATUS=2 D Q 1
  1. . W !,"The task is running already"
  1. I STATUS=3 D Q:RC 1
  1. . K DIR S DIR(0)="Y"
  1. . S DIR("A")="The task is completed. Do you want to rerun it"
  1. . S DIR("B")="NO"
  1. . D ^DIR S RC=$D(DIRUT)!'$G(Y)
  1. ;--- Ask the user for the start date/time
  1. K DIR
  1. S X=$$FMADD^XLFDT($$DT^XLFDT,30)
  1. S DIR(0)="D^NOW:"_X_":AEFNRSX",DIR("B")="NOW"
  1. S DIR("A")="Run the task"
  1. D ^DIR Q:$D(DIRUT)!'$G(Y) 1
  1. S SDT=+Y
  1. ;--- Check if the output file exists already
  1. S RC=$$TASKFILE^RORHDTUT(HDEIEN,TASKIEN,.OUTDIR,.FILE) Q:RC<0 RC
  1. S RORSRC(FILE)=""
  1. S RC=$$LIST^%ZISH(OUTDIR,"RORSRC","RORDST")
  1. I RC S:$D(RORDST)>1 FAM="N"
  1. ;--- Generate the new file name
  1. I FAM["N" D Q:RC<0 RC
  1. . S RC=$$NEWFILE^RORHDTUT(HDEIEN,TASKIEN,.FILE)
  1. . W:'RC !,"Data will be written to the '"_FILE_"' file."
  1. ;---
  1. Q 0
  1. ;
  1. ;***** CONFIRMATION TO STOP THE TASK
  1. ;
  1. ; HDEIEN Data Extract IEN
  1. ; TASKIEN Task IEN
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; 0 Stop the task
  1. ; 1 Cancel
  1. ;
  1. STOP(HDEIEN,TASKIEN) ;
  1. N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,IENS,STATUS,X,Y,ZTSK
  1. ;--- Check status of the task
  1. S STATUS=+$$TASKSTAT^RORHDTUT(HDEIEN,TASKIEN)
  1. ;--- Quit if the task is not running, pending, nor suspended
  1. Q:(STATUS'=1)&(STATUS'=2)&(STATUS'=102) 1
  1. ;--- Get the task number
  1. S IENS=(+TASKIEN)_","_(+HDEIEN)_","
  1. S ZTSK=$$GET1^DIQ(799.64,IENS,.02,,,"RORMSG")
  1. Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,799.64,IENS)
  1. ;--- Ask for the final confirmation
  1. K DIR S DIR(0)="Y"
  1. S DIR("A")=$S(STATUS=1:"Dequeue",1:"Stop")_" the task #"_ZTSK
  1. S DIR("B")="NO"
  1. D ^DIR
  1. Q $D(DIRUT)!'$G(Y)