| 1 | QACSPRD3 ;HINES/CEW - Spreadsheet report selections ;7/17/95  11:22
 | 
|---|
| 2 |  ;;2.0;Patient Representative;**3,5,9,17**;07/25/1995
 | 
|---|
| 3 | SEX ;
 | 
|---|
| 4 |  ;Sub-routine to count total number of issues for each sex
 | 
|---|
| 5 |  S QACRTN="SEXTSK^QACSPRD3",QACTITLE="Sex "
 | 
|---|
| 6 |  D ZIS1^QACSPRD(QACRTN,QACTITLE,.QACXFLG) G:$G(QACPOP) EXIT
 | 
|---|
| 7 |  I $G(QACXFLG) G EXIT
 | 
|---|
| 8 | SEXTSK ;
 | 
|---|
| 9 |  ;Tasked entry point for SEX
 | 
|---|
| 10 |  U IO
 | 
|---|
| 11 |  S QACROU="SEXTSK1^QACSPRD3"
 | 
|---|
| 12 |  S QACPCE(1)="M",QACLABEL(1)="Male"
 | 
|---|
| 13 |  S QACPCE(3)="",QACCNT=2
 | 
|---|
| 14 |  S QACPCE(2)="F",QACLABEL(2)="Female"
 | 
|---|
| 15 |  D SET1^QACSPRD1
 | 
|---|
| 16 |  D LOOP1^QACSPRD(QACROU,QAQNBEG,QAQNEND,.QACD0)
 | 
|---|
| 17 |  D WRIT^QACSPRD1
 | 
|---|
| 18 |  D EXIT
 | 
|---|
| 19 |  Q
 | 
|---|
| 20 | SEXTSK1 ;
 | 
|---|
| 21 |  Q:'$D(^QA(745.1,QACD0,3))
 | 
|---|
| 22 |  D ICLOOP^QACSPRD2
 | 
|---|
| 23 |  S QACPN=$P(^QA(745.1,QACD0,0),U,3) Q:QACPN=""
 | 
|---|
| 24 |  S QACSEX=$P($G(^DPT(QACPN,0)),U,2) Q:QACSEX=""
 | 
|---|
| 25 |  S QACEE=0 F  S QACEE=$O(^QA(745.1,QACD0,3,QACEE)) Q:QACEE'>0  D
 | 
|---|
| 26 |  . D TALL^QACSPRD1(QACSEX)
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 | HEAD ;
 | 
|---|
| 29 |  ;Sub-routine to count total number of issues for each Issue Code Heading
 | 
|---|
| 30 |  S QACTITLE="Issue Code Heading "
 | 
|---|
| 31 |  S QACRTN="HEADTSK^QACSPRD3"
 | 
|---|
| 32 |  D ZIS1^QACSPRD(QACRTN,QACTITLE,.QACXFLG) G:$G(QACPOP) EXIT
 | 
|---|
| 33 |  I $G(QACXFLG) G EXIT
 | 
|---|
| 34 | HEADTSK ;
 | 
|---|
| 35 |  ;Tasked entry point for HEAD
 | 
|---|
| 36 |  U IO
 | 
|---|
| 37 |  S QACROU="HEADTSK1^QACSPRD3"
 | 
|---|
| 38 |  S QACPCE(1)="CA",QACLABEL(1)="Patient Care"
 | 
|---|
| 39 |  S QACPCE(2)="CC",QACLABEL(2)="Courtesy" ;/Communication"
 | 
|---|
| 40 |  S QACPCE(3)="CM",QACLABEL(3)="Compliments"
 | 
|---|
| 41 |  S QACPCE(4)="ED",QACLABEL(4)="Patient Education"
 | 
|---|
| 42 |  S QACPCE(5)="EL",QACLABEL(5)="Eligibility"
 | 
|---|
| 43 |  S QACPCE(6)="EN",QACLABEL(6)="Environment"
 | 
|---|
| 44 |  S QACPCE(7)="IN",QACLABEL(7)="Information/Assistance"
 | 
|---|
| 45 |  S QACPCE(8)="MR",QACLABEL(8)="Medical Records"
 | 
|---|
| 46 |  S QACPCE(9)="PP",QACLABEL(9)="Personal Property"
 | 
|---|
| 47 |  S QACPCE(10)="TI",QACLABEL(10)="Access/Timeliness" ;"Timeliness"
 | 
|---|
| 48 |  S QACPCE(11)="SC",QACLABEL(11)="Courtesy" ;"Staff courtesy"
 | 
|---|
| 49 |  S QACPCE(12)="AC",QACLABEL(12)="Access/Timeliness"
 | 
|---|
| 50 |  S QACPCE(13)="OP",QACLABEL(13)="One Provider"
 | 
|---|
| 51 |  S QACPCE(14)="PR",QACLABEL(14)="Decisions/Preferences"
 | 
|---|
| 52 |  S QACPCE(15)="EM",QACLABEL(15)="Emotional Needs"
 | 
|---|
| 53 |  S QACPCE(16)="PC",QACLABEL(16)="Physical Comfort"
 | 
|---|
| 54 |  S QACPCE(17)="CO",QACLABEL(17)="Coordination of Care"
 | 
|---|
| 55 |  S QACPCE(18)="TR",QACLABEL(18)="Transitions"
 | 
|---|
| 56 |  ;S QACPCE(19)="ED",QACLABEL(19)="Patient Education"
 | 
|---|
| 57 |  S QACPCE(20)="FI",QACLABEL(20)="Family Involvement"
 | 
|---|
| 58 |  S QACPCE(21)="RI",QACLABEL(21)="Risk Management Complaints"
 | 
|---|
| 59 |  S QACPCE(22)="RE",QACLABEL(22)="Medical Records"
 | 
|---|
| 60 |  S QACPCE(23)="LL",QACLABEL(23)="Eligibility" ; Issues"
 | 
|---|
| 61 |  S QACPCE(24)="EV",QACLABEL(24)="Environment" ;al Issues"
 | 
|---|
| 62 |  S QACPCE(25)="RG",QACLABEL(25)="Regulation Issues"
 | 
|---|
| 63 |  S QACPCE(26)="IF",QACLABEL(26)="Requests for Information"
 | 
|---|
| 64 |  S QACPCE(27)="CP",QACLABEL(27)="Compliments"
 | 
|---|
| 65 |  S QACPCE(28)=""
 | 
|---|
| 66 |  S QACCNT=27
 | 
|---|
| 67 |  D SET1^QACSPRD1
 | 
|---|
| 68 |  D LOOP1^QACSPRD(QACROU,QAQNBEG,QAQNEND,.QACD0)
 | 
|---|
| 69 |  D NEWHEAD
 | 
|---|
| 70 |  D WRIT^QACSPRD1
 | 
|---|
| 71 |  D EXIT
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 | HEADTSK1 ;
 | 
|---|
| 74 |  Q:'$D(^QA(745.1,QACD0,3,0))
 | 
|---|
| 75 |  D ICLOOP^QACSPRD2
 | 
|---|
| 76 |  S QACEE=0
 | 
|---|
| 77 |  F  S QACEE=$O(QACODE(QACEE)) Q:QACEE']""  D
 | 
|---|
| 78 |  . S QACHEAD=$E(QACODE(QACEE),1,2)
 | 
|---|
| 79 |  . D TALL^QACSPRD1(QACHEAD)
 | 
|---|
| 80 |  Q
 | 
|---|
| 81 | NEWHEAD ;combine some of the new and old headers
 | 
|---|
| 82 |  N QAC1,QAC2,QACE,QACX
 | 
|---|
| 83 |  S QACE=""
 | 
|---|
| 84 |  F  S QACE=$O(COUNT(QACE)) Q:QACE']""  D
 | 
|---|
| 85 |  . I $G(COUNT(QACE,"SC"))>0 S QAC1="CC",QAC2="SC" D NEW2
 | 
|---|
| 86 |  . I $G(COUNT(QACE,"CP"))>0 S QAC1="CM",QAC2="CP" D NEW2
 | 
|---|
| 87 |  . I $G(COUNT(QACE,"LL"))>0 S QAC1="EL",QAC2="LL" D NEW2
 | 
|---|
| 88 |  . I $G(COUNT(QACE,"EV"))>0 S QAC1="EN",QAC2="EV" D NEW2
 | 
|---|
| 89 |  . I $G(COUNT(QACE,"RE"))>0 S QAC1="MR",QAC2="RE" D NEW2
 | 
|---|
| 90 |  . I $G(COUNT(QACE,"AC"))>0 S QAC1="TI",QAC2="AC" D NEW2
 | 
|---|
| 91 |  . I $G(COUNT(QACE,"IF"))>0 S QAC1="IN",QAC2="IF" D NEW2
 | 
|---|
| 92 |  Q
 | 
|---|
| 93 | NEW2 ;
 | 
|---|
| 94 |  S COUNT(QACE,QAC1)=COUNT(QACE,QAC1)+$G(COUNT(QACE,QAC2)) ;K COUNT(QACE,QAC2)
 | 
|---|
| 95 |  F QACX=11,12,22,23,24,27 K QACLABEL(QACX)
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 | DIVC ; Sub-routine counts total number of contacts by Division
 | 
|---|
| 98 |  S QACRTN="DIVCTSK^QACSPRD3",QACTITLE="Contacts "
 | 
|---|
| 99 |  D ZIS1^QACSPRD(QACRTN,QACTITLE,.QACXFLG) G:$G(QACPOP) EXIT
 | 
|---|
| 100 |  I $G(QACXFLG) G EXIT
 | 
|---|
| 101 | DIVCTSK ;
 | 
|---|
| 102 |  S QACROU="DIVC1^QACSPRD3"
 | 
|---|
| 103 |  D DVTSK(QACROU)
 | 
|---|
| 104 |  Q
 | 
|---|
| 105 | DIVC1 ;for each entry from #745.1 in the date range, check for the division
 | 
|---|
| 106 |  S QACDIV=$P($G(^QA(745.1,QACD0,0)),U,16) ;Q:$G(QACDIV)']""
 | 
|---|
| 107 |  I $G(QACDIV)']"" S QACDIV=0
 | 
|---|
| 108 |  S QACEE=""
 | 
|---|
| 109 |  ;I $O(^QA(740,1,"QAC2","B",QACDIV,QACEE))']"" S QACDIV=0
 | 
|---|
| 110 |  S COUNT(QACDIV)=$G(COUNT(QACDIV))+1
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 | WRITEDIV ;display or print the final tally
 | 
|---|
| 113 |  W @IOF
 | 
|---|
| 114 |  S Y=QAQNBEG D DD^%DT S QACBEG=Y
 | 
|---|
| 115 |  S Y=QAQNEND D DD^%DT S QACEND=Y
 | 
|---|
| 116 |  W !!?12,"Patient Rep "_QACTITLE_"by Division Spreadsheet Report"
 | 
|---|
| 117 |  W !?20,"Date Range: "_QACBEG_" to "_QACEND
 | 
|---|
| 118 |  S QACEE=""
 | 
|---|
| 119 |  F  S QACEE=$O(COUNT(QACEE)) Q:QACEE']""  D 
 | 
|---|
| 120 |  . I QACEE>0 D INST^QACUTL0(QACEE,.QACDV)
 | 
|---|
| 121 |  . W !,$S(QACEE=0:"Unknown",1:QACDV),", ",COUNT(QACEE)
 | 
|---|
| 122 |  . I $Y>(IOSL-5) D:$E(IOST)="C" PAUSE^QACGEN S QACPFLG=1 D WRIT^QACSPRD1
 | 
|---|
| 123 |  . K QACPFLG
 | 
|---|
| 124 |  Q
 | 
|---|
| 125 | DIVI ;
 | 
|---|
| 126 |  ; Sub-routine to count total issues by Division
 | 
|---|
| 127 |  S QACRTN="DIVITSK^QACSPRD3",QACTITLE="Issues "
 | 
|---|
| 128 |  D ZIS1^QACSPRD(QACRTN,QACTITLE,.QACXFLG) G:$G(QACPOP) EXIT
 | 
|---|
| 129 |  I $G(QACXFLG) G EXIT
 | 
|---|
| 130 | DIVITSK ;
 | 
|---|
| 131 |  S QACROU="DIVI1^QACSPRD3"
 | 
|---|
| 132 |  D DVTSK(QACROU)
 | 
|---|
| 133 |  Q
 | 
|---|
| 134 | DIVI1 ;for each entry in 745.1 loop through Issue code and count by code/div
 | 
|---|
| 135 |  S QACDIV=$P($G(^QA(745.1,QACD0,0)),U,16)
 | 
|---|
| 136 |  I $G(QACDIV)']"" S QACDIV=0
 | 
|---|
| 137 |  S QACEE=""
 | 
|---|
| 138 |  ;I $O(^QA(740,1,"QAC2","B",QACDIV,QACEE))']"" S QACDIV=0
 | 
|---|
| 139 |  S QACISS=0 F  S QACISS=$O(^QA(745.1,QACD0,3,QACISS)) Q:QACISS'>0  D
 | 
|---|
| 140 |  . I $G(^QA(745.1,QACD0,3,QACISS,0))]"" D
 | 
|---|
| 141 |  . . S COUNT(QACDIV)=$G(COUNT(QACDIV))+1
 | 
|---|
| 142 |  Q
 | 
|---|
| 143 | DVTSK(QACROU) ;
 | 
|---|
| 144 |  U IO
 | 
|---|
| 145 |  I $P($G(^QA(740,1,"QAC")),U,3)<1 W !!,"Site is not multi-divisional for Patient Representative - no report created." Q
 | 
|---|
| 146 |  D LOOP1^QACSPRD(QACROU,QAQNBEG,QAQNEND,.QACD0)
 | 
|---|
| 147 |  D WRITEDIV
 | 
|---|
| 148 |  D EXIT
 | 
|---|
| 149 |  Q
 | 
|---|
| 150 | SRVDS ;Sub-routine gives total issues by Service/Discipline
 | 
|---|
| 151 |  S QACIFLG=1
 | 
|---|
| 152 |  S QACTITLE="Service/Discipline "
 | 
|---|
| 153 |  S QACRTN="SVDSTSK^QACSPRD3"
 | 
|---|
| 154 |  D ZIS1^QACSPRD(QACRTN,QACTITLE,.QACXFLG) G:$G(QACPOP) EXIT
 | 
|---|
| 155 |  I $G(QACXFLG) G EXIT
 | 
|---|
| 156 | SVDSTSK ;  Tasked entry point for Service/Discipline
 | 
|---|
| 157 |  S QACROU="SVDSTSK1^QACSPRD3"
 | 
|---|
| 158 |  D TSK^QACSPRD2
 | 
|---|
| 159 |  Q
 | 
|---|
| 160 | SVDSTSK1 ;
 | 
|---|
| 161 |  D ICLOOP^QACSPRD2
 | 
|---|
| 162 |  S QACRR=0
 | 
|---|
| 163 |  F  S QACRR=$O(QACODE(QACRR)) Q:QACRR'>0  D
 | 
|---|
| 164 |  . S QACWW=0
 | 
|---|
| 165 |  . F  S QACWW=$O(^QA(745.1,QACD0,3,QACCODE(QACRR),3,"B",QACWW)) Q:QACWW'>0  D
 | 
|---|
| 166 |  . . S QACDISC=$$EN8^QACUTIL(+QACWW)
 | 
|---|
| 167 |  . . S ^TMP("QACSPRD2",$J,QACDIV,QACDISC,QACODE(QACRR),QACD0)=""
 | 
|---|
| 168 |  . . Q
 | 
|---|
| 169 |  . Q
 | 
|---|
| 170 |  Q
 | 
|---|
| 171 | EXIT ;
 | 
|---|
| 172 |  W ! D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 173 |  K ^TMP("QACSPRD2",$J),COUNT,ZTRTN,ZTSAVE,ZTDESC,%ZIS,IOP,POP
 | 
|---|
| 174 |  K QAC1DIV,QACBEG,QACCIEN,QACCNT,QACCODE,QACD0,QACDISC,QACDIV,QACDT
 | 
|---|
| 175 |  K QACDV,QACEE,QACEND,QACHEAD,QACICODE,QACIFLG,QACISS,QACISSUE,QACLABEL
 | 
|---|
| 176 |  K QACODE,QACPCE,QACPN,QACPOP,QACRR,QACRTN,QACSEX,QACTITLE,QACWW,QACXFLG
 | 
|---|
| 177 |  K QAQNBEG,QAQNEND
 | 
|---|
| 178 |  Q
 | 
|---|