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