1 | QACCSSTD ;WCIOFO/ERC - Routine for CSS totals ;8/16/97
|
---|
2 | ;;2.0;Patient Representative;**3,5,7,9,12**;07/25/1995
|
---|
3 | DATE ; Establish date range
|
---|
4 | K QACDVTOT
|
---|
5 | N QACCSS,QACDC,QACDFLG,QACISS,QACNODIV,QACSFLG,QACSRV,QACSV,QACYES
|
---|
6 | S QACRTN="QACCSSTD"
|
---|
7 | S QACDESC="Customer Service Standards Totals"
|
---|
8 | S (QACSUM,QACYES)=0
|
---|
9 | S DIR(0)="SOA^D:Detailed;S:Summary"
|
---|
10 | S DIR("A")="Select report format: "
|
---|
11 | S DIR("A",1)="Report Format (D)etailed or (S)ummary:"
|
---|
12 | S DIR("?")="Select ""D"" for detailed or ""S"" for summary."
|
---|
13 | D ^DIR Q:$D(DIRUT)
|
---|
14 | K DIR
|
---|
15 | I Y="S" S QACSUM=1
|
---|
16 | D DATDIV^QACUTL0 Q:$G(QAQPOP)=1
|
---|
17 | I $G(QACDV)=0!($G(QACDV)']"") S QACNODIV=1
|
---|
18 | I $G(QACSUM)=1 G TASK
|
---|
19 | S DIR(0)="YOA"
|
---|
20 | S DIR("A")="Do you want to print this report for just one Discipline? "
|
---|
21 | S DIR("B")="No"
|
---|
22 | S DIR("?")="Enter 'YES' if you prefer to print this report for one specific Discipline."
|
---|
23 | D ^DIR Q:$D(DIRUT) I Y=1 D DISC
|
---|
24 | I QACYES=0 D
|
---|
25 | . S DIR("A")="Do you want to print this report for just one Service/Discipline? "
|
---|
26 | . S DIR("B")="No"
|
---|
27 | . S DIR("?")="Enter 'Yes' if you prefer to print this report for one Service/Discipline."
|
---|
28 | . D ^DIR Q:$D(DIRUT)
|
---|
29 | . I Y=1 D SERV
|
---|
30 | Q:$D(DIRUT)
|
---|
31 | TASK ;
|
---|
32 | K %ZIS,IOP S %ZIS="MQ" W ! D ^%ZIS G:POP EXIT
|
---|
33 | I $D(IO("Q")) D G EXIT
|
---|
34 | . S (ZTSAVE("QACD0"),ZTSAVE("QAISS"),ZTSAVE("QACISSC"))=""
|
---|
35 | . S ZTSAVE("QACSTD")=""
|
---|
36 | . S (ZTSAVE("QACSFLG"),ZTSAVE("QACDFLG"))=""
|
---|
37 | . S (ZTSAVE("QACDIS"),ZTSAVE("QACSVD"))=""
|
---|
38 | . S ZTDESC=QACDESC
|
---|
39 | . S ZTSAVE("QACCSS")=""
|
---|
40 | . S ZTSAVE("QACRTN")=""
|
---|
41 | . S ZTSAVE("QACSTD")=""
|
---|
42 | . S ZTSAVE("QAQRANG")=""
|
---|
43 | . S ZTSAVE("QACSUM")=""
|
---|
44 | . S ZTSAVE("QACEE")=""
|
---|
45 | . S ZTRTN="TSK^QACCSSTD"
|
---|
46 | . D TASK^QACUTL0
|
---|
47 | . Q
|
---|
48 | TSK ; Get data for totaling
|
---|
49 | U IO
|
---|
50 | INIT ; set up counters for each CSS, discipline and for the total count
|
---|
51 | D SETUP^QACEMPE
|
---|
52 | ;set up local array for CSS in external format
|
---|
53 | S QACAA=0
|
---|
54 | F S QACAA=$O(^QA(745.6,QACAA)) Q:QACAA'>0 D
|
---|
55 | . S QACSTD(QACAA)=$P(^QA(745.6,QACAA,0),U,2)
|
---|
56 | S QACROU="SET^QACCSSTD"
|
---|
57 | ;loop through "D" cross-reference (date)
|
---|
58 | D LOOP1^QACSPRD(QACROU,QAQNBEG,QAQNEND,.QACD0)
|
---|
59 | I $G(QACSUM)=1 D PRINTSUM D EXIT Q
|
---|
60 | D PRINT
|
---|
61 | D EXIT
|
---|
62 | Q
|
---|
63 | SET ;
|
---|
64 | S QACDDV=$P(^QA(745.1,QACD0,0),U,16)
|
---|
65 | D INST^QACUTL0(QACDDV,.QACDDD)
|
---|
66 | I $G(QAC1DIV)]"" I $G(QAC1DIV)'=$G(QACDDV) Q
|
---|
67 | S QACDDV=QACDDD
|
---|
68 | ;if not integrated division set to 0 for sorting purposes in ^TMP
|
---|
69 | S QACDDV=$S($G(QACNODIV)'=1:$G(QACDDV,"Unknown"),1:0)
|
---|
70 | ;loops through the issue code multiple
|
---|
71 | K QACIC
|
---|
72 | D ISSLOOP^QACBYLOC
|
---|
73 | I '$D(QACIC) Q
|
---|
74 | S QACAA=0
|
---|
75 | F S QACAA=$O(QACIC(QACAA)) Q:QACAA'>0 D
|
---|
76 | . Q:'$D(^QA(745.2,QACIC(QACAA),0))
|
---|
77 | . S QACCSS=$P(^QA(745.2,QACIC(QACAA),0),U,7) Q:QACCSS']""
|
---|
78 | . S QACCSS=$P(^QA(745.6,QACCSS,0),U,2)
|
---|
79 | . I $G(QACSUM)=1 D COUNTSUM Q
|
---|
80 | . S QACBB=0,QACQUT=""
|
---|
81 | . F S QACBB=$O(^QA(745.1,QACD0,3,QACAA,3,QACBB)) Q:(QACBB'>0)&(QACBB]"") Q:$G(QACQUT) D
|
---|
82 | . . I $G(QACBB)'>0 I ($G(QACDFLG)=1!$G(QACSFLG)=1) S QACQUT=1 Q
|
---|
83 | . . I $G(QACBB)'>0 S (QACSVD,QACDIS)="Unknown",QACQUT=1 G COUNT
|
---|
84 | . . S QACNODE=^QA(745.1,QACD0,3,QACAA,3,QACBB,0)
|
---|
85 | . . S QACSVD=$P(^QA(745.55,$P(QACNODE,U),0),U) Q:$G(QACSVD)']""
|
---|
86 | . . I $G(QACSFLG)=1 I $G(QACSRV)'=$P(QACNODE,U) Q
|
---|
87 | . . I $P(QACNODE,U,2)]"" S QACDIS=$P(^QA(745.5,$P(QACNODE,U,2),0),U,2) Q:$G(QACDIS)']""
|
---|
88 | . . I $P(QACNODE,U,2)']"" S QACDIS="Unknown"
|
---|
89 | . . I $P(QACNODE,U,2)']"",($G(QACDISC)]"") Q ;if discipline
|
---|
90 | . . ;is unknown, there will be no match with the one discipline
|
---|
91 | . . ;in variable QACDISC
|
---|
92 | . . I $G(QACDFLG)=1 I $G(QACDISC)'=$P(^QA(745.5,$P(QACNODE,U,2),0),U) Q
|
---|
93 | COUNT . . ;counts for detailed report
|
---|
94 | . . S QACTOT=$G(QACTOT)+1
|
---|
95 | . . I $G(QACDDV)]"" S QACDVTOT(QACDDV)=$G(QACDVTOT(QACDDV))+1
|
---|
96 | . . S ^TMP(QACRTN,$J,QACDDV,QACSVD,QACDIS,QACCSS)=$G(^TMP(QACRTN,$J,QACDDV,QACSVD,QACDIS,QACCSS))+1
|
---|
97 | . . S ^TMP(QACRTN,$J,"COUNT",QACDDV,QACSVD)=$G(^TMP(QACRTN,$J,"COUNT",QACDDV,QACSVD))+1
|
---|
98 | . .S ^TMP(QACRTN,$J,"COUNT",QACDDV,QACSVD,QACDIS)=$G(^TMP(QACRTN,$J,"COUNT",QACDDV,QACSVD,QACDIS))+1
|
---|
99 | Q
|
---|
100 | PRINT ;print routine for detailed report
|
---|
101 | U IO
|
---|
102 | S QACEE=""
|
---|
103 | F S QACEE=$O(^TMP(QACRTN,$J,QACEE)) Q:QACEE']"" D Q:QACQUIT
|
---|
104 | . I QACEE="COUNT" Q
|
---|
105 | . S QACFF=""
|
---|
106 | . F S QACFF=$O(^TMP(QACRTN,$J,QACEE,QACFF)) Q:QACFF']"" D Q:QACQUIT
|
---|
107 | . . D HEAD
|
---|
108 | . . I $G(QACEE)'=0 W !?5,"Total for Division: "_QACEE_" "_QACDVTOT(QACEE)
|
---|
109 | . . I $G(QACFF)'=0 W !?5,"Total for Service/Discipline: "_QACFF_" "_^TMP(QACRTN,$J,"COUNT",QACEE,QACFF)
|
---|
110 | . . S QACGG=""
|
---|
111 | . . F S QACGG=$O(^TMP(QACRTN,$J,QACEE,QACFF,QACGG)) Q:QACGG']"" D Q:QACQUIT
|
---|
112 | . . . I $G(QACGG)'=0 W !?5,"Total for Discipline: "_QACGG_" "_^TMP(QACRTN,$J,"COUNT",QACEE,QACFF,QACGG),!
|
---|
113 | . . . S QACHH=""
|
---|
114 | . . . F S QACHH=$O(QACSTD(QACHH)) Q:QACHH']"" D Q:QACQUIT
|
---|
115 | . . . . I $Y>(IOSL-6) D HEAD Q:QACQUIT I $G(QACEE)'=0 W !?5,"Division: ",QACEE
|
---|
116 | . . . . W !?10,QACSTD(QACHH),?50,$G(^TMP(QACRTN,$J,QACEE,QACFF,QACGG,QACSTD(QACHH)),0)
|
---|
117 | W:$G(QACTOT)>0 !!?20,"Grand Total: "_QACTOT
|
---|
118 | I '$D(^TMP(QACRTN,$J)) D
|
---|
119 | . D HEAD
|
---|
120 | . W !!!?25,"No data to report."
|
---|
121 | Q
|
---|
122 | HEAD ;
|
---|
123 | S QACPAGE=$G(QACPAGE)+1
|
---|
124 | I QACPAGE>1 D Q:QACQUIT
|
---|
125 | . W $C(7)
|
---|
126 | . I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR S QACQUIT=$S(Y'>0:1,1:0)
|
---|
127 | W:$E(IOST)="C"!(QACPAGE>1) @IOF
|
---|
128 | W !,QACDESC,?48,QACTODAY,?70,"PAGE ",QACPAGE
|
---|
129 | W !,"Date "_QAQRANG
|
---|
130 | W !,$S($G(QACSUM)=1:"SUMMARY",1:"DETAILED")," Report"
|
---|
131 | W !?51,"NUMBER OF"
|
---|
132 | W !?10,"CUSTOMER SERVICE STANDARD",?50,"OCCURRENCES"
|
---|
133 | W !,QACUNDL,!
|
---|
134 | Q
|
---|
135 | EXIT ;
|
---|
136 | W ! D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
|
---|
137 | K ^TMP(QACRTN,$J)
|
---|
138 | K QAC1DIV,QACCSS,QACD0,QACDCNT,QACDESC,QACDDD,QACDDV,QACDFLG,QACDV
|
---|
139 | K QACDVTOT,QACDIS,QACDISC,QACIC,QACNODE,QACPAGE,QACQUIT,QACQUT
|
---|
140 | K QACROU,QACRTN,QACSFLG,QACSTD,QACSUM,QACSVD,QACTODAY,QACTOT,QACUNDL
|
---|
141 | K QACAA,QACBB,QACDD,QACEE,QACFF,QACGG,QACHH
|
---|
142 | K QAQNBEG,QAQNEND,QAQPOP,QAQRANG
|
---|
143 | K DIR,DIRUT,POP,ZTSAVE,ZTDESC,ZTRTN
|
---|
144 | D K^QAQDATE
|
---|
145 | Q
|
---|
146 | DISC ; Select one discipline for this report
|
---|
147 | K DIR
|
---|
148 | S DIR(0)="FAO^^K:X'?2U X"
|
---|
149 | S DIR("A")="Enter the Discipline as a two letter abbreviation: "
|
---|
150 | D ^DIR K DIR Q:$D(DIRUT)!($D(DIROUT))
|
---|
151 | I $O(^QA(745.5,"B",Y,0)) S QACDISC=Y,QACDFLG=1,QACYES=1
|
---|
152 | E D G DISC
|
---|
153 | . W !!,"Not a valid Discipline, choose from:"
|
---|
154 | . S QACEE=0
|
---|
155 | . F S QACEE=$O(^QA(745.5,QACEE)) Q:QACEE'>0 D
|
---|
156 | . . W !?5,$P(^QA(745.5,QACEE,0),U)," (",$P(^QA(745.5,QACEE,0),U,2),")"
|
---|
157 | Q
|
---|
158 | SERV ; Select one Service/Discipline for this report
|
---|
159 | K DIR
|
---|
160 | S DIR(0)="POA^745.55:EMZ"
|
---|
161 | S DIR("A")="Enter the Service/Discipline: "
|
---|
162 | D ^DIR K DIR Q:$D(DIRUT)!($D(DIROUT))
|
---|
163 | I $G(^QA(745.55,+Y,0))]"" S QACSRV=+Y,QACSFLG=1
|
---|
164 | E D G SERV
|
---|
165 | . W !!,"Not a valid service/discipline. Try again."
|
---|
166 | Q
|
---|
167 | COUNTSUM ;counts for summary report
|
---|
168 | S QACBB=0
|
---|
169 | F S QACBB=$O(^QA(745.1,QACD0,3,QACAA,3,QACBB)) Q:QACBB'>0 D
|
---|
170 | . S ^TMP(QACRTN,$J,"TOT")=$G(^TMP(QACRTN,$J,"TOT"))+1
|
---|
171 | . S ^TMP(QACRTN,$J,"TOT",QACDDV)=$G(^TMP(QACRTN,$J,"TOT",QACDDV))+1
|
---|
172 | . S ^TMP(QACRTN,$J,"SUM",QACDDV,QACCSS)=$G(^TMP(QACRTN,$J,"SUM",QACDDV,QACCSS))+1
|
---|
173 | . S ^TMP(QACRTN,$J,"SUMCSS",QACCSS)=$G(^TMP(QACRTN,$J,"SUMCSS",QACCSS))+1
|
---|
174 | Q
|
---|
175 | PRINTSUM ;print routine for summary report
|
---|
176 | U IO
|
---|
177 | D HEAD
|
---|
178 | I '$D(^TMP(QACRTN,$J)) D Q
|
---|
179 | . W !!!?25,"No data to report."
|
---|
180 | S QACDCN=0,QACEE=""
|
---|
181 | F S QACEE=$O(^TMP(QACRTN,$J,"SUM",QACEE)) Q:QACEE']"" D Q:QACQUIT
|
---|
182 | . S QACDCNT=$G(QACDCNT)+1
|
---|
183 | . I $G(QACEE)=0,($D(QAC1DIV)) W !?5,"For all Divisions"
|
---|
184 | . I $G(QACEE)'=0 W !?5,"Division: ",QACEE
|
---|
185 | . S QACGG=""
|
---|
186 | . F S QACGG=$O(QACSTD(QACGG)) Q:QACGG']"" D
|
---|
187 | . . I $Y>(IOSL-6) D HEAD Q:QACQUIT I $G(QACEE)'=0 W !?5,"Division: ",QACEE
|
---|
188 | . . W !?10,QACSTD(QACGG),?55,$G(^TMP(QACRTN,$J,"SUM",QACEE,QACSTD(QACGG)),0)
|
---|
189 | . W !?53,"-----"
|
---|
190 | . W !?45,"TOTAL:",?55,^TMP(QACRTN,$J,"TOT",QACEE)
|
---|
191 | I $G(QACDCNT)>1 D
|
---|
192 | . I $Y>(IOSL-6) D HEAD Q:QACQUIT I $G(QACEE)'=0 W !?5,"Division: ",QACEE
|
---|
193 | . W !!!?5,"Totals for all Divisions:"
|
---|
194 | . S QACFF=""
|
---|
195 | . F S QACFF=$O(QACSTD(QACFF)) Q:QACFF']"" D
|
---|
196 | . . I $Y>(IOSL-6) D HEAD Q:QACQUIT
|
---|
197 | . . W !?10,QACSTD(QACFF),?55,$G(^TMP(QACRTN,$J,"SUMCSS",QACSTD(QACFF)),0)
|
---|
198 | . W !?53,"-----"
|
---|
199 | . W !?38,"GRAND TOTAL:",?55,^TMP(QACRTN,$J,"TOT")
|
---|
200 | Q
|
---|