| [613] | 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
 | 
|---|