| 1 | QACBYLOC ;WCIOFO/ERC - Report by Location ;03/23/99 | 
|---|
| 2 | ;;2.0;Patient Representative;**9**;07/25/1995 | 
|---|
| 3 | ; | 
|---|
| 4 | N QACDV,QACDIV,QAC1DIV,QACDVFLG | 
|---|
| 5 | S QACRTN="QACBYLOC" | 
|---|
| 6 | D DATDIV^QACUTL0 G:QAQPOP EXIT | 
|---|
| 7 | I QACDV=0!(QACDV']"") S QACDVFLG=1 | 
|---|
| 8 | ;if just for 1 division, get name of division | 
|---|
| 9 | I +$G(QAC1DIV) D INST^QACUTL0(QAC1DIV,.QACDVNAM) | 
|---|
| 10 | ; | 
|---|
| 11 | S QACDESC="Issue Totals by Location" | 
|---|
| 12 | K %ZIS,IOP S %ZIS="MQ" W ! D ^%ZIS I POP D EXIT Q | 
|---|
| 13 | I $D(IO("Q")) D  Q | 
|---|
| 14 | . S ZTDESC=QACDESC | 
|---|
| 15 | . S ZTRTN="START^QACBYLOC" | 
|---|
| 16 | . S ZTSAVE("QAQRANG")="" | 
|---|
| 17 | . S ZTSAVE("QACRTN")="" | 
|---|
| 18 | . D TASK^QACUTL0 | 
|---|
| 19 | ; | 
|---|
| 20 | START ; | 
|---|
| 21 | D SETUP^QACEMPE | 
|---|
| 22 | S QACROU="SET^QACBYLOC" | 
|---|
| 23 | ;loop through "D" crossreference (date range) | 
|---|
| 24 | D LOOP1^QACSPRD(QACROU,QAQNBEG,QAQNEND,.QACD0) | 
|---|
| 25 | D REPORT | 
|---|
| 26 | D EXIT | 
|---|
| 27 | Q | 
|---|
| 28 | SET ;set array variables for each ROC in date range | 
|---|
| 29 | K QACDATA,QACDIV,QACIC,QACISS,QACLOC | 
|---|
| 30 | D ISSLOOP | 
|---|
| 31 | I '$D(QACIC) Q | 
|---|
| 32 | D GETS^DIQ(745.1,QACD0,"14;37","NIE","QACDATA") | 
|---|
| 33 | S QACD0X=QACD0_"," | 
|---|
| 34 | ;if not integrated, division set to 0 for sorting purposes in ^TMP | 
|---|
| 35 | S QACDIV=$S('$G(QACDVFLG):$G(QACDATA(745.1,QACD0X,37,"E"),"Unknown"),1:0) | 
|---|
| 36 | S QACLOC=$G(QACDATA(745.1,QACD0X,14,"E"),"Unknown") | 
|---|
| 37 | D SETMP | 
|---|
| 38 | Q | 
|---|
| 39 | ISSLOOP ;loop through issue codes for the ROC | 
|---|
| 40 | S QACEE=0 | 
|---|
| 41 | F  S QACEE=$O(^QA(745.1,QACD0,3,QACEE)) Q:QACEE'>0  D | 
|---|
| 42 | . S QACIC(QACEE)=^QA(745.1,QACD0,3,QACEE,0) | 
|---|
| 43 | Q | 
|---|
| 44 | SETMP ;set ^TMP global for report | 
|---|
| 45 | S QACEE="" | 
|---|
| 46 | F  S QACEE=$O(QACIC(QACEE)) Q:QACEE']""  D | 
|---|
| 47 | . S QACISS=QACIC(QACEE) | 
|---|
| 48 | . D GETS^DIQ(745.2,QACISS,".01;2","E","QACICEXT") | 
|---|
| 49 | . S QACISSX=QACISS_"," | 
|---|
| 50 | . S QACISSC=$G(QACICEXT(745.2,QACISSX,.01,"E")) | 
|---|
| 51 | . I $G(QACISSC)']"" Q | 
|---|
| 52 | . S QACICHDR=$E($G(QACICEXT(745.2,QACISSX,.01,"E")),1,2) | 
|---|
| 53 | . S QACNAME=$G(QACICEXT(745.2,QACISSX,2,"E")) | 
|---|
| 54 | . S ^TMP(QACRTN,$J,"ROC",QACDIV,QACLOC,QACICHDR,QACISS)=$G(^TMP(QACRTN,$J,"ROC",QACDIV,QACLOC,QACICHDR,QACISS))+1 | 
|---|
| 55 | . S ^TMP(QACRTN,$J,"COUNT","TOT")=$G(^TMP(QACRTN,$J,"COUNT","TOT"))+1 | 
|---|
| 56 | . S ^TMP(QACRTN,$J,"COUNT",QACDIV)=$G(^TMP(QACRTN,$J,"COUNT",QACDIV))+1 | 
|---|
| 57 | . S ^TMP(QACRTN,$J,"COUNT",QACDIV,QACLOC)=$G(^TMP(QACRTN,$J,"COUNT",QACDIV,QACLOC))+1 | 
|---|
| 58 | . S QACICHDR=$E($G(QACICEXT(745.2,QACISSX,.01,"E")),1,2) | 
|---|
| 59 | . S QACNAME=$G(QACICEXT(745.2,QACISSX,2,"E")) | 
|---|
| 60 | . S ^TMP(QACRTN,$J,"ISS",QACISS)=QACISSC_"  "_QACNAME | 
|---|
| 61 | . S ^TMP(QACRTN,$J,"COUNT",QACDIV,QACLOC,QACICHDR)=$G(^TMP(QACRTN,$J,"COUNT",QACDIV,QACLOC,QACICHDR))+1 | 
|---|
| 62 | Q | 
|---|
| 63 | REPORT ; | 
|---|
| 64 | U IO | 
|---|
| 65 | S QACAA="" | 
|---|
| 66 | F  S QACAA=$O(^TMP(QACRTN,$J,"ROC",QACAA)) Q:QACAA']""  D  Q:QACQUIT | 
|---|
| 67 | . S QACBB="" | 
|---|
| 68 | . F  S QACBB=$O(^TMP(QACRTN,$J,"ROC",QACAA,QACBB)) Q:QACBB']""  D  Q:QACQUIT | 
|---|
| 69 | . . D HEADER Q:QACQUIT | 
|---|
| 70 | . . ;if not integrated this next line will not print | 
|---|
| 71 | . . I $G(QACAA)'=0 W !?15,"Total Issues for Division: "_QACAA_"    "_^TMP(QACRTN,$J,"COUNT",QACAA) | 
|---|
| 72 | . . W !?10,"Total Issues for Location: "_QACBB_"    "_^TMP(QACRTN,$J,"COUNT",QACAA,QACBB) | 
|---|
| 73 | . . S QACCC="" | 
|---|
| 74 | . . F  S QACCC=$O(^TMP(QACRTN,$J,"ROC",QACAA,QACBB,QACCC)) Q:QACCC']""  D  Q:QACQUIT | 
|---|
| 75 | . . . I $Y>(IOSL-6) D HEADER Q:QACQUIT | 
|---|
| 76 | . . . W !?5,QACCC_"    "_$P(^QA(745.2,$O(^QA(745.2,"B",QACCC,0)),0),U,3) | 
|---|
| 77 | . . . W ?72,^TMP(QACRTN,$J,"COUNT",QACAA,QACBB,QACCC) | 
|---|
| 78 | . . . S QACDD=0 | 
|---|
| 79 | . . . F  S QACDD=$O(^TMP(QACRTN,$J,"ROC",QACAA,QACBB,QACCC,QACDD)) Q:QACDD'>0  D  Q:QACQUIT | 
|---|
| 80 | . . . . I $Y>(IOSL-6) D HEADER Q:QACQUIT | 
|---|
| 81 | . . . . W !,^TMP(QACRTN,$J,"ISS",QACDD),?72,^TMP(QACRTN,$J,"ROC",QACAA,QACBB,QACCC,QACDD) | 
|---|
| 82 | I '$D(^TMP(QACRTN,$J,"ROC")) D | 
|---|
| 83 | . D HEADER | 
|---|
| 84 | . W !!!?25,"No data to report." | 
|---|
| 85 | Q | 
|---|
| 86 | HEADER ; | 
|---|
| 87 | S QACPAGE=$G(QACPAGE)+1 | 
|---|
| 88 | I QACPAGE>1 D  Q:QACQUIT | 
|---|
| 89 | . W $C(7) | 
|---|
| 90 | . I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR S QACQUIT=$S(Y'>0:1,1:0) | 
|---|
| 91 | W:$E(IOST)="C"!(QACPAGE>1) @IOF | 
|---|
| 92 | W !,QACDESC,?48,QACTODAY,?70,"PAGE ",QACPAGE | 
|---|
| 93 | W !?(80-$L(QACHDR2))/2,QACHDR2 | 
|---|
| 94 | W !,"Issue Code",?25,"Issue Code Name",?70,"Total" | 
|---|
| 95 | W !,QACUNDL,! | 
|---|
| 96 | Q | 
|---|
| 97 | EXIT ; | 
|---|
| 98 | W ! D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
| 99 | D K^QAQDATE | 
|---|
| 100 | K ^TMP(QACRTN,$J) | 
|---|
| 101 | K DIQ,DIR,IOSL,POP | 
|---|
| 102 | K QAC1DIV,QACAA,QACBB,QACCC,QACD0,QACD0X,QACDATA,QACDESC,QACDD,QACDIV | 
|---|
| 103 | K QACDV,QACDVNAM,QACDVFLG,QACHDR2,QACIC,QACICEXT,QACICHDR | 
|---|
| 104 | K QACEE,QACISS,QACISSC,QACISSX,QACLOC,QACNAME | 
|---|
| 105 | K QACPAGE,QACQUIT,QACROU,QACRTN,QACTIME,QACTODAY,QACUNDL | 
|---|
| 106 | K QAQNBEG,QAQNEND,QAQPOP,QAQRANG | 
|---|
| 107 | K X,Y,ZTDESC,ZTRTN,ZTSAVE | 
|---|
| 108 | Q | 
|---|