| [613] | 1 | RORHDTAC ;HCIOFO/SG - DATA EXTRACTION ACTION CONFIRMATIONS ; 3/14/06 11:07am
 | 
|---|
 | 2 |  ;;1.5;CLINICAL CASE REGISTRIES;**1**;Feb 17, 2006;Build 24
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  Q
 | 
|---|
 | 5 |  ;
 | 
|---|
 | 6 |  ;***** CONFIRMATION TO CREATE A NEW TASK TABLE
 | 
|---|
 | 7 |  ;
 | 
|---|
 | 8 |  ; HDEIEN        Data Extract IEN
 | 
|---|
 | 9 |  ;
 | 
|---|
 | 10 |  ; Return Values:
 | 
|---|
 | 11 |  ;       <0  Error code
 | 
|---|
 | 12 |  ;        0  Ok
 | 
|---|
 | 13 |  ;        1  Cancel
 | 
|---|
 | 14 |  ;
 | 
|---|
 | 15 | CREATE(HDEIEN) ;
 | 
|---|
 | 16 |  N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,IENS,RC,RORBUF,RORMSG,X,Y
 | 
|---|
 | 17 |  ;--- Display status of the data extract
 | 
|---|
 | 18 |  S RC=$$STATUS^RORHDT01(HDEIEN)  Q:RC<0 RC
 | 
|---|
 | 19 |  ;--- Check if registry task table is not empty
 | 
|---|
 | 20 |  S IENS=","_(+HDEIEN)_","
 | 
|---|
 | 21 |  D LIST^DIC(799.64,IENS,"@","Q",1,,,"B",,,"RORBUF","RORMSG")
 | 
|---|
 | 22 |  Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,799.64,IENS)
 | 
|---|
 | 23 |  ;--- Ask for a confirmation to overwrite
 | 
|---|
 | 24 |  I $G(RORBUF("DILIST",0))>0  D  Q:RC 1
 | 
|---|
 | 25 |  . K DIR  S DIR(0)="Y"
 | 
|---|
 | 26 |  . S DIR("A")="Overwrite the existing task table"
 | 
|---|
 | 27 |  . S DIR("B")="NO"
 | 
|---|
 | 28 |  . W !  D ^DIR  S RC=$D(DIRUT)!'$G(Y)
 | 
|---|
 | 29 |  Q 0
 | 
|---|
 | 30 |  ;
 | 
|---|
 | 31 |  ;***** CONFIRMATIONS TO START THE TASK
 | 
|---|
 | 32 |  ;
 | 
|---|
 | 33 |  ; HDEIEN        Data Extract IEN
 | 
|---|
 | 34 |  ; TASKIEN       Task IEN
 | 
|---|
 | 35 |  ; .FAM          File Access Mode is returned via this parameter
 | 
|---|
 | 36 |  ; .SDT          Start Date/Time is returned via this parameter
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 |  ; Return Values:
 | 
|---|
 | 39 |  ;       <0  Error code
 | 
|---|
 | 40 |  ;        0  Ok
 | 
|---|
 | 41 |  ;        1  Cancel
 | 
|---|
 | 42 |  ;
 | 
|---|
 | 43 | START(HDEIEN,TASKIEN,FAM,SDT) ;
 | 
|---|
 | 44 |  N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,FILE,OUTDIR,RC,RORDST,RORSRC,STATUS,X,Y
 | 
|---|
 | 45 |  S FAM="",SDT=""
 | 
|---|
 | 46 |  ;--- Check status of the task
 | 
|---|
 | 47 |  S STATUS=+$$TASKSTAT^RORHDTUT(HDEIEN,TASKIEN)
 | 
|---|
 | 48 |  I STATUS=1  D  Q:RC $S(RC<0:RC,1:1)
 | 
|---|
 | 49 |  . K DIR  S DIR(0)="Y"
 | 
|---|
 | 50 |  . S DIR("A")="The task is pending. Do you want to reschedule it"
 | 
|---|
 | 51 |  . S DIR("B")="NO"
 | 
|---|
 | 52 |  . D ^DIR  S RC=$D(DIRUT)!'$G(Y)
 | 
|---|
 | 53 |  . S:'RC RC=$$STOP^RORHDT03(HDEIEN,TASKIEN)
 | 
|---|
 | 54 |  I STATUS=2  D  Q 1
 | 
|---|
 | 55 |  . W !,"The task is running already"
 | 
|---|
 | 56 |  I STATUS=3  D  Q:RC 1
 | 
|---|
 | 57 |  . K DIR  S DIR(0)="Y"
 | 
|---|
 | 58 |  . S DIR("A")="The task is completed. Do you want to rerun it"
 | 
|---|
 | 59 |  . S DIR("B")="NO"
 | 
|---|
 | 60 |  . D ^DIR  S RC=$D(DIRUT)!'$G(Y)
 | 
|---|
 | 61 |  ;--- Ask the user for the start date/time
 | 
|---|
 | 62 |  K DIR
 | 
|---|
 | 63 |  S X=$$FMADD^XLFDT($$DT^XLFDT,30)
 | 
|---|
 | 64 |  S DIR(0)="D^NOW:"_X_":AEFNRSX",DIR("B")="NOW"
 | 
|---|
 | 65 |  S DIR("A")="Run the task"
 | 
|---|
 | 66 |  D ^DIR  Q:$D(DIRUT)!'$G(Y) 1
 | 
|---|
 | 67 |  S SDT=+Y
 | 
|---|
 | 68 |  ;--- Check if the output file exists already
 | 
|---|
 | 69 |  S RC=$$TASKFILE^RORHDTUT(HDEIEN,TASKIEN,.OUTDIR,.FILE)  Q:RC<0 RC
 | 
|---|
 | 70 |  S RORSRC(FILE)=""
 | 
|---|
 | 71 |  S RC=$$LIST^%ZISH(OUTDIR,"RORSRC","RORDST")
 | 
|---|
 | 72 |  I RC  S:$D(RORDST)>1 FAM="N"
 | 
|---|
 | 73 |  ;--- Generate the new file name
 | 
|---|
 | 74 |  I FAM["N"  D  Q:RC<0 RC
 | 
|---|
 | 75 |  . S RC=$$NEWFILE^RORHDTUT(HDEIEN,TASKIEN,.FILE)
 | 
|---|
 | 76 |  . W:'RC !,"Data will be written to the '"_FILE_"' file."
 | 
|---|
 | 77 |  ;---
 | 
|---|
 | 78 |  Q 0
 | 
|---|
 | 79 |  ;
 | 
|---|
 | 80 |  ;***** CONFIRMATION TO STOP THE TASK
 | 
|---|
 | 81 |  ;
 | 
|---|
 | 82 |  ; HDEIEN        Data Extract IEN
 | 
|---|
 | 83 |  ; TASKIEN       Task IEN
 | 
|---|
 | 84 |  ;
 | 
|---|
 | 85 |  ; Return Values:
 | 
|---|
 | 86 |  ;       <0  Error code
 | 
|---|
 | 87 |  ;        0  Stop the task
 | 
|---|
 | 88 |  ;        1  Cancel
 | 
|---|
 | 89 |  ;
 | 
|---|
 | 90 | STOP(HDEIEN,TASKIEN) ;
 | 
|---|
 | 91 |  N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,IENS,STATUS,X,Y,ZTSK
 | 
|---|
 | 92 |  ;--- Check status of the task
 | 
|---|
 | 93 |  S STATUS=+$$TASKSTAT^RORHDTUT(HDEIEN,TASKIEN)
 | 
|---|
 | 94 |  ;--- Quit if the task is not running, pending, nor suspended
 | 
|---|
 | 95 |  Q:(STATUS'=1)&(STATUS'=2)&(STATUS'=102) 1
 | 
|---|
 | 96 |  ;--- Get the task number
 | 
|---|
 | 97 |  S IENS=(+TASKIEN)_","_(+HDEIEN)_","
 | 
|---|
 | 98 |  S ZTSK=$$GET1^DIQ(799.64,IENS,.02,,,"RORMSG")
 | 
|---|
 | 99 |  Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,799.64,IENS)
 | 
|---|
 | 100 |  ;--- Ask for the final confirmation
 | 
|---|
 | 101 |  K DIR  S DIR(0)="Y"
 | 
|---|
 | 102 |  S DIR("A")=$S(STATUS=1:"Dequeue",1:"Stop")_" the task #"_ZTSK
 | 
|---|
 | 103 |  S DIR("B")="NO"
 | 
|---|
 | 104 |  D ^DIR
 | 
|---|
 | 105 |  Q $D(DIRUT)!'$G(Y)
 | 
|---|