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