1 | SDAMOW ;ALB/CAW - Waiting Time Report ; 12/1/91
|
---|
2 | ;;5.3;Scheduling;**12**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | EN ; main entry point
|
---|
5 | N DIC,SDBEG,SDEND,SDSEL,VAUTD,VAUTC,SDSORT,SDAMLIST
|
---|
6 | EN1 I '$$INIT G ENQ
|
---|
7 | I '$$RANGE G ENQ
|
---|
8 | I '$$SELECT G ENQ
|
---|
9 | I '$$SORT G ENQ
|
---|
10 | EN2 I '$$DIV G ENQ
|
---|
11 | I SDSORT=5 S (VAUTS,VAUTC)=1 G EN3
|
---|
12 | I SDSORT=1!(SDSORT=2) G ENQ:'$$CLINIC
|
---|
13 | I SDSORT=3!(SDSORT=4) G ENQ:'$$STOP
|
---|
14 | EN3 I '$$ASK G EN1
|
---|
15 | W !!,$$LINE("Device Selection")
|
---|
16 | W !!,"This output requires 132 columns.",!!
|
---|
17 | S %ZIS="PMQ" D ^%ZIS I POP G ENQ
|
---|
18 | I '$D(IO("Q")) D START^SDAMOW1 G ENQ
|
---|
19 | S Y=$$QUE
|
---|
20 | ENQ D:'$D(ZTQUEUED) ^%ZISC
|
---|
21 | K VAUTD,VAUTC,VAUTS Q
|
---|
22 | ;
|
---|
23 | INIT() ; -- init vars
|
---|
24 | Q 1
|
---|
25 | ;
|
---|
26 | RANGE() ; select date range
|
---|
27 | ; input: none
|
---|
28 | ; output: SDBEG := begin date
|
---|
29 | ; SDEND := end date
|
---|
30 | ; return: was selection made [ 1|yes 0|no]
|
---|
31 | ;
|
---|
32 | W !!,$$LINE("Date Range Selection")
|
---|
33 | Q $$RANGE^SDAMQ(.SDBEG,.SDEND)
|
---|
34 | ;
|
---|
35 | SELECT() ; -- get selection criteria
|
---|
36 | ; input: none
|
---|
37 | ; output: SDSEL := criteria selected
|
---|
38 | ; return: was selection made [ 1|yes 0|no]
|
---|
39 | ;
|
---|
40 | W !!,$$LINE("Type of Report Criteria")
|
---|
41 | S X="S^"
|
---|
42 | S X=X_"1:Full Report;"
|
---|
43 | S X=X_"2:Totals Only;"
|
---|
44 | S DIR(0)=X,DIR("A")="Which Report",DIR("B")="Totals Only"
|
---|
45 | D ^DIR K DIR S SDSEL=$S($D(DIRUT):0,1:+Y)
|
---|
46 | Q SDSEL>0
|
---|
47 | ;
|
---|
48 | SORT() ; -- how to sort
|
---|
49 | ; input: none
|
---|
50 | ; output: SDSORT := sort selected
|
---|
51 | ; return: was selection made [ 1|yes 0|no]
|
---|
52 | ;
|
---|
53 | W !!,$$LINE("Sort Selection")
|
---|
54 | W !!,"Note: Top level sort will always be by Division."
|
---|
55 | S X="S^"
|
---|
56 | S X=X_"1:Clinic, then by Patient;"
|
---|
57 | S X=X_"2:Clinic, then by Appointment Date/Time;"
|
---|
58 | S X=X_"3:Stop Code, then by Clinic;"
|
---|
59 | S X=X_"4:Stop Code, then by Patient;"
|
---|
60 | S X=X_"5:Patient then by Appointment Date/Time;"
|
---|
61 | S DIR(0)=X,DIR("A")="Within Division Sort By",DIR("B")="Clinic, then by Patient"
|
---|
62 | D ^DIR K DIR S SDSORT=$S($D(DIRUT):0,1:+Y)
|
---|
63 | Q SDSORT>0
|
---|
64 | ;
|
---|
65 | DIV() ; -- get division data
|
---|
66 | ; input: none
|
---|
67 | ; output: VAUTD := divs selected (VAUTD=1 for all)
|
---|
68 | ; return: was selection made [ 1|yes 0|no]
|
---|
69 | ;
|
---|
70 | W:$P($G(^DG(43,1,"GL")),U,2) !!,$$LINE("Division Selection")
|
---|
71 | D ASK2^SDDIV I Y<0 K VAUTD
|
---|
72 | Q $D(VAUTD)>0
|
---|
73 | ;
|
---|
74 | CLINIC() ; -- get clinic data
|
---|
75 | ; input: VAUTD := divisions selected
|
---|
76 | ; output: VAUTC := clinic selected (VAUTC=1 for all)
|
---|
77 | ; return: was selection made [ 1|yes 0|no]
|
---|
78 | ;
|
---|
79 | W !!,$$LINE("Clinic Selection")
|
---|
80 | D CLINIC^SDAMO0
|
---|
81 | I Y<0 K VAUTC
|
---|
82 | CLINICQ Q $D(VAUTC)>0
|
---|
83 | ;
|
---|
84 | STOP() ; -- get stop code data
|
---|
85 | ; output: VAUTS := stop codes selected (VAUTS=1 for all)
|
---|
86 | ; return: was selection made [ 1|yes 0|no]
|
---|
87 | ;
|
---|
88 | W !!,$$LINE("Stop Codes Selection")
|
---|
89 | S DIC="^DIC(40.7,",VAUTSTR="stop code",VAUTVB="VAUTS",VAUTNI=2
|
---|
90 | D FIRST^VAUTOMA
|
---|
91 | I Y<0 K VAUTS
|
---|
92 | STOPQ Q $D(VAUTS)>0
|
---|
93 | ;
|
---|
94 | ;
|
---|
95 | LINE(STR) ; -- print line
|
---|
96 | ; input: STR := text to insert
|
---|
97 | ; output: none
|
---|
98 | ; return: text to use
|
---|
99 | ;
|
---|
100 | N X
|
---|
101 | S:STR]"" STR=" "_STR_" "
|
---|
102 | S $P(X,"_",(IOM/2)-($L(STR)/2))=""
|
---|
103 | Q X_STR_X
|
---|
104 | ;
|
---|
105 | QUE() ; -- que job
|
---|
106 | ; return: did job que [ 1|yes 0|no ]
|
---|
107 | ;
|
---|
108 | K ZTSK,IO("Q")
|
---|
109 | S ZTDESC="Appointment Management Report",ZTRTN="START^SDAMOW1"
|
---|
110 | F X="VAUTD(","VAUTC(","SDSORT","SDSEL","SDBEG","SDEND","VAUTD","VAUTC","VAUTS","VAUTS(" S ZTSAVE(X)=""
|
---|
111 | D ^%ZTLOAD W:$D(ZTSK) " (Task: ",ZTSK,")"
|
---|
112 | Q $D(ZTSK)
|
---|
113 | ;
|
---|
114 | ASK() ; -- ask if ok to use specs
|
---|
115 | ; input: all selection variables
|
---|
116 | ; output: none
|
---|
117 | ; return: ok to continue [ 1|yes 0|no]
|
---|
118 | ;
|
---|
119 | I '$$DISP^SDAMOW1 S Y=0 G ASKQ
|
---|
120 | S DIR(0)="Y",DIR("A")="Continue",DIR("B")="Yes" D ^DIR K DIR
|
---|
121 | ASKQ Q $S($D(DIRUT):0,1:Y)
|
---|