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