| 1 | QACSPRD1 ;HINES/CEW - Spreadsheet report selections ;1/12/99 | 
|---|
| 2 | ;;2.0;Patient Representative;**3,9,17**;07/25/1995 | 
|---|
| 3 | CONTACT ; | 
|---|
| 4 | ;Sub-routine to count total number of contacts for Contact Made By | 
|---|
| 5 | S QACRTN="CONTSK^QACSPRD1",QACTITLE="Contact Made by " | 
|---|
| 6 | D ZIS1^QACSPRD(QACRTN,QACTITLE,.QACXFLG) G:$G(QACPOP) EXIT | 
|---|
| 7 | I $G(QACXFLG) G EXIT | 
|---|
| 8 | CONTSK ; | 
|---|
| 9 | S QACROU="CONTSK1^QACSPRD1" | 
|---|
| 10 | S QACFLD=12 | 
|---|
| 11 | D TSK | 
|---|
| 12 | Q | 
|---|
| 13 | CONTSK1 ; | 
|---|
| 14 | K QACENTRY | 
|---|
| 15 | S QACENTRY=$P(^QA(745.1,QACD0,0),U,10) Q:$G(QACENTRY)']"" | 
|---|
| 16 | D TALL(QACENTRY) | 
|---|
| 17 | Q | 
|---|
| 18 | SOURCE ; | 
|---|
| 19 | ;Sub-routine to count total number of contacts for Source | 
|---|
| 20 | S QACRTN="SOURTSK^QACSPRD1",QACTITLE="Source of Contact " | 
|---|
| 21 | D ZIS1^QACSPRD(QACRTN,QACTITLE,.QACXFLG) G:$G(QACPOP) EXIT | 
|---|
| 22 | I $G(QACXFLG) G EXIT | 
|---|
| 23 | SOURTSK ; | 
|---|
| 24 | S QACROU="SOURTSK1^QACSPRD1" | 
|---|
| 25 | S QACFLD=13 D QACSET(QACFLD) | 
|---|
| 26 | D TSK | 
|---|
| 27 | Q | 
|---|
| 28 | SOURTSK1 ; | 
|---|
| 29 | K QACENTRY | 
|---|
| 30 | S QACENTRY=$P(^QA(745.1,QACD0,0),U,11) | 
|---|
| 31 | I $G(QACENTRY)]"" D TALL(QACENTRY) | 
|---|
| 32 | I $G(QACENTRY)']"" D | 
|---|
| 33 | . S QACEE=0 | 
|---|
| 34 | . F  S QACEE=$O(^QA(745.1,QACD0,12,QACEE)) Q:QACEE'>0  D | 
|---|
| 35 | . . S QACENTRY=$G(^QA(745.1,QACD0,12,QACEE,0)) | 
|---|
| 36 | . . I $G(QACENTRY)]"" D TALL(QACENTRY) | 
|---|
| 37 | Q | 
|---|
| 38 | TREATC ; | 
|---|
| 39 | ;Sub-routine to count total number of contacts for Treatment Status | 
|---|
| 40 | S QACRTN="TRTCTSK^QACSPRD1",QACTITLE="Contact Numbers by Treatment Status " | 
|---|
| 41 | D ZIS1^QACSPRD(QACRTN,QACTITLE,.QACXFLG) G:$G(QACPOP) EXIT | 
|---|
| 42 | I $G(QACXFLG) G EXIT | 
|---|
| 43 | TRTCTSK ; | 
|---|
| 44 | S QACROU="TRTCTSK1^QACSPRD1" | 
|---|
| 45 | S QACFLD=16.5 | 
|---|
| 46 | D TSK | 
|---|
| 47 | Q | 
|---|
| 48 | TRTCTSK1 ; | 
|---|
| 49 | K QACENTRY | 
|---|
| 50 | I $G(^QA(745.1,QACD0,2))]"" S QACENTRY=$P(^QA(745.1,QACD0,2),U,2) Q:$G(QACENTRY)']"" | 
|---|
| 51 | I $G(QACENTRY)]"" D TALL(QACENTRY) | 
|---|
| 52 | Q | 
|---|
| 53 | TREATI ; | 
|---|
| 54 | ;Sub-routine to count total number of issues for Treatment Status | 
|---|
| 55 | S QACRTN="TRTITSK^QACSPRD1",QACTITLE="Issue Code by Treatment Status " | 
|---|
| 56 | S ZTSAVE("QACENTRY")="" | 
|---|
| 57 | D ZIS1^QACSPRD(QACRTN,QACTITLE,.QACD0) G:$G(QACPOP) EXIT | 
|---|
| 58 | I $G(QACXFLG) G EXIT | 
|---|
| 59 | TRTITSK ; | 
|---|
| 60 | S QACROU="TRTITSK1^QACSPRD1" | 
|---|
| 61 | S QACFLD=16.5 | 
|---|
| 62 | D TSK | 
|---|
| 63 | Q | 
|---|
| 64 | TRTITSK1 ; | 
|---|
| 65 | K QACENTRY | 
|---|
| 66 | I $G(^QA(745.1,QACD0,2))]"" S QACENTRY=$P(^QA(745.1,QACD0,2),U,2) Q:$G(QACENTRY)']"" | 
|---|
| 67 | S QACEE=0 | 
|---|
| 68 | F  S QACEE=$O(^QA(745.1,QACD0,3,QACEE)) Q:QACEE'>0  D | 
|---|
| 69 | . I $G(QACENTRY)]"" D TALL(QACENTRY) | 
|---|
| 70 | Q | 
|---|
| 71 | EXIT ; | 
|---|
| 72 | W ! D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
| 73 | K %ZIS,IOP,POP,ZTSAVE,ZTDESC,ZTRTN,ZTSK,QACSOUR | 
|---|
| 74 | K BB,COUNT,DDD,EE,MM,RR | 
|---|
| 75 | K QAC1DIV,QAC,QACAA,QACBEG,QACCMB,QACCNT,QACD0,QACDT,QACDIV,QACDV | 
|---|
| 76 | K QACEE,QACEND,QACIFLG,QACISSUE,QACLABEL,QACNODE,QACPCE,QACPOP,QACROU | 
|---|
| 77 | K QACRTN,QACTR,QACXFLG,QACY7E,QACYES | 
|---|
| 78 | K QAQNBEG,QAQNEND | 
|---|
| 79 | Q | 
|---|
| 80 | QACSET(QACFLD,QACENTRY,QACTITLE) ;subroutines to set up counters for | 
|---|
| 81 | ; fields that are sets of codes | 
|---|
| 82 | S QACCNT=0 | 
|---|
| 83 | S QACNODE=$P(^DD(745.1,QACFLD,0),U,3) | 
|---|
| 84 | F QACEE=1:1  S QACPCE(QACEE)=$P(QACNODE,";",QACEE) Q:$G(QACPCE(QACEE))']""  S QACCNT=QACCNT+1 | 
|---|
| 85 | F QACEE=1:1:QACCNT  D | 
|---|
| 86 | . S QACLABEL(QACEE)=$P(QACPCE(QACEE),":",2) | 
|---|
| 87 | . S QACPCE(QACEE)=$P(QACPCE(QACEE),":",1) | 
|---|
| 88 | ;I '$D(QAC1DIV) D SET2 Q | 
|---|
| 89 | SET1 ;multidivisional | 
|---|
| 90 | N RR,RRR | 
|---|
| 91 | I $G(QAC1DIV)']"" D | 
|---|
| 92 | . ;S RR=0 F  S RR=$O(^QA(740,1,"QAC2",RR)) Q:RR'>0  D | 
|---|
| 93 | . ;. S QACDIV(RR)=^QA(740,1,"QAC2",RR,0) | 
|---|
| 94 | . ;. D SET2 | 
|---|
| 95 | . S (RRR,QACDIV(0))=0 D SET2 | 
|---|
| 96 | . S RRR=0,RR=1 | 
|---|
| 97 | . F  S RRR=$O(^DG(40.8,"AD",RRR)) Q:RRR'>0  D | 
|---|
| 98 | . . Q:'$D(^DIC(4,RRR,0)) | 
|---|
| 99 | . . S QACDIV(RRR)=RRR | 
|---|
| 100 | . . S RR=RR+1 | 
|---|
| 101 | . . D SET2 | 
|---|
| 102 | I $G(QAC1DIV)]"" D | 
|---|
| 103 | . ;S RR=1,QACDIV(RR)=QAC1DIV | 
|---|
| 104 | . S QACDIV(1)=QAC1DIV | 
|---|
| 105 | . S RRR=1 | 
|---|
| 106 | . D SET2 | 
|---|
| 107 | Q | 
|---|
| 108 | SET2 ;for each division or not multi-divisional, initialize counts | 
|---|
| 109 | S EE=0 F  S EE=$O(QACPCE(EE)) Q:$G(QACPCE(EE))']""  D | 
|---|
| 110 | . S QAC=QACPCE(EE) | 
|---|
| 111 | . ;I S COUNT(QAC)=0 | 
|---|
| 112 | . S COUNT(QACDIV(RRR),QACPCE(EE))=0 | 
|---|
| 113 | Q | 
|---|
| 114 | SET3 ;multi-divisional, but entry has no division, initialize counts | 
|---|
| 115 | S MM="" I $O(QACDIV(MM))>0 D | 
|---|
| 116 | . S QACDIV(0)=0 | 
|---|
| 117 | . S BB=0 F  S BB=$O(QACPCE(BB)) Q:BB>QACCNT  D | 
|---|
| 118 | . . S COUNT(0,QACPCE(BB))=0 | 
|---|
| 119 | S EE=0 F  S EE=$O(QACPCE(EE)) Q:$G(QACPCE(EE))']""  I QACENTRY=QACPCE(EE) D | 
|---|
| 120 | . ;S COUNT(QACDIV,QACPCE(EE))=$G(COUNT(QACDIV,QACPCE(EE)))+1 | 
|---|
| 121 | . S EE=QACCNT | 
|---|
| 122 | Q | 
|---|
| 123 | TALL(QACENTRY) ;tally the entry | 
|---|
| 124 | S (QACAA,QACYES)=0 | 
|---|
| 125 | F  S QACAA=$O(QACDIV(QACAA)) Q:QACAA'>0  D | 
|---|
| 126 | . I QACDIV=QACDIV(QACAA) S QACYES=1 | 
|---|
| 127 | ;I $G(QACYES)'=1 S QACDIV=0 | 
|---|
| 128 | I $G(QAC1DIV)']"" S RR=0 D SET3 | 
|---|
| 129 | S EE=0 F  S EE=$O(QACPCE(EE)) Q:EE>QACCNT  I QACENTRY=QACPCE(EE) D | 
|---|
| 130 | . ;I '$D(QAC1DIV) S COUNT(QACPCE(EE))=COUNT(QACPCE(EE))+1 | 
|---|
| 131 | . S COUNT(QACDIV,QACPCE(EE))=$G(COUNT(QACDIV,QACPCE(EE)))+1 | 
|---|
| 132 | . S EE=QACCNT | 
|---|
| 133 | Q | 
|---|
| 134 | WRIT ;output | 
|---|
| 135 | W:($E(IOST)="C")!($G(QACPFLG)=1) @IOF | 
|---|
| 136 | W !!?15,$G(QACTITLE)_"Spreadsheet Report" | 
|---|
| 137 | S Y=QAQNBEG D DD^%DT S QACBEG=Y | 
|---|
| 138 | S Y=QAQNEND D DD^%DT S QACEND=Y | 
|---|
| 139 | W !?20,"Date Range: "_QACBEG_" to "_QACEND | 
|---|
| 140 | W ! | 
|---|
| 141 | I $G(QACIFLG)=1!($G(QACPFLG)=1) Q | 
|---|
| 142 | ;I '$D(QAC1DIV) D WRIT2 Q | 
|---|
| 143 | S DDD="" | 
|---|
| 144 | F  S DDD=$O(QACDIV(DDD)) Q:DDD']""  D | 
|---|
| 145 | . I $G(DDD)>0 D INST^QACUTL0(QACDIV(DDD),.QACDV) | 
|---|
| 146 | . W !!,"Division: "_$S(DDD=0:"Unknown",1:QACDV) | 
|---|
| 147 | . D WRIT2 | 
|---|
| 148 | Q | 
|---|
| 149 | WRIT2 ; | 
|---|
| 150 | N EE | 
|---|
| 151 | S EE=0 | 
|---|
| 152 | F  S EE=$O(QACLABEL(EE)) Q:EE'>0  D | 
|---|
| 153 | . W !,QACLABEL(EE)_", "_COUNT(QACDIV(DDD),QACPCE(EE)) | 
|---|
| 154 | . I $Y>(IOSL-5) D:$E(IOST)="C" PAUSE^QACGEN S QACPFLG=1 D WRIT | 
|---|
| 155 | . K QACPFLG | 
|---|
| 156 | W !! | 
|---|
| 157 | Q | 
|---|
| 158 | TSK ; | 
|---|
| 159 | U IO | 
|---|
| 160 | D QACSET(QACFLD) | 
|---|
| 161 | D LOOP1^QACSPRD(QACROU,QAQNBEG,QAQNEND,.QACD0) | 
|---|
| 162 | D WRIT | 
|---|
| 163 | D EXIT | 
|---|
| 164 | Q | 
|---|