| [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) | 
|---|