| [613] | 1 | SCRPW76 ;BP-OIFO/KEITH,ESW - Clinic appointment availability extract (cont.) ; 5/28/03 4:02pm
 | 
|---|
 | 2 |  ;;5.3;Scheduling;**223,291**;AUG 13, 1993
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | HINI ;Initialize header variables
 | 
|---|
 | 5 |  N %,%H,%I,X,X1,X2
 | 
|---|
 | 6 |  S SDLINE="",$P(SDLINE,"-",$S(SDPAST:133,1:(SDIOM+1)))="",SDPAGE=1,SDPG=0
 | 
|---|
 | 7 |  D NOW^%DTC S Y=% X ^DD("DD") S SDPNOW=$P(Y,":",1,2)
 | 
|---|
 | 8 |  S SDTITL="<*>  Clinic Appointment Availability Report  <*>"
 | 
|---|
 | 9 |  Q
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 | HDR(SDTY,SDREPORT,SDIV,SDCP,SC) ;Print header
 | 
|---|
 | 12 |  ;Input: SDTY=type of header where:
 | 
|---|
 | 13 |  ;            '0'=negative report
 | 
|---|
 | 14 |  ;            '1'=detailed report
 | 
|---|
 | 15 |  ;            '2'=division summary
 | 
|---|
 | 16 |  ;            '3'=facility summary
 | 
|---|
 | 17 |  ;Input: SDREPORT=report output element where:
 | 
|---|
 | 18 |  ;            '1'='next ava.' appt. information
 | 
|---|
 | 19 |  ;            '2'='follow up' appt. information
 | 
|---|
 | 20 |  ;            '3'='non-follow up' appt. information
 | 
|---|
 | 21 |  ;Input: SDIV=division name^division number
 | 
|---|
 | 22 |  ;Input: SDCP=credit pair
 | 
|---|
 | 23 |  ;Input: SC=clinic ifn
 | 
|---|
 | 24 |  ;
 | 
|---|
 | 25 |  Q:SDOUT
 | 
|---|
 | 26 |  I $G(SDXM) D HDRXM(SDREPORT) Q
 | 
|---|
 | 27 |  I $E(IOST)="C",SDPG N DIR S DIR(0)="E" W ! D ^DIR S SDOUT=Y'=1 Q:SDOUT
 | 
|---|
 | 28 |  N SDX,SDI D STOP Q:SDOUT
 | 
|---|
 | 29 |  W:SDPG!($E(IOST)="C") $$XY^SCRPW50(IOF,1,0) W:$X $$XY^SCRPW50("",0,0)
 | 
|---|
 | 30 |  W SDLINE,!?(SDIOM-$L(SDTITL)\2),SDTITL
 | 
|---|
 | 31 |  I SDREPORT=1,'SDPAST S SDX="Clinic availability data"
 | 
|---|
 | 32 |  I SDREPORT=1,SDPAST S SDX="Clinic availability and 'next available' appointment data"
 | 
|---|
 | 33 |  I SDREPORT=2 S SDX="'Follow up' appointment data"
 | 
|---|
 | 34 |  I SDREPORT=3 S SDX="'Non-follow up' appointment data"
 | 
|---|
 | 35 |  I SDREPORT=4 S SDX="Listing of patient appointments"
 | 
|---|
 | 36 |  I SDREPORT=5 S SDX="Listing of appointments for selected patient"
 | 
|---|
 | 37 |  W !?(SDIOM-$L(SDX)\2),SDX
 | 
|---|
 | 38 |  D HDRX(SDTY) Q:SDOUT  S SDI=0
 | 
|---|
 | 39 |  I $G(SDREPORT)'=5 F  S SDI=$O(SDTIT(SDI)) Q:'SDI  W !?(SDIOM-$L(SDTIT(SDI))\2),SDTIT(SDI)
 | 
|---|
 | 40 |  I $G(SDREPORT)=5 Q:'$O(SDTIT(""))  D
 | 
|---|
 | 41 |  .N SD F SD=1,2 W !?(SDIOM-$L(SDTIT(SD))\2),SDTIT(SD)
 | 
|---|
 | 42 |  .W !,SDTIT(3),?100,SDTIT(4),!,SDTIT(5),?100,SDTIT(6)
 | 
|---|
 | 43 |  W !,SDLINE
 | 
|---|
 | 44 |  W !,"For clinic availability dates ",SDPBDT," through ",SDPEDT
 | 
|---|
 | 45 |  W !,"Date printed: ",SDPNOW,?(IOM-6-$L(SDPAGE)),"Page: ",SDPAGE
 | 
|---|
 | 46 |  W !,SDLINE
 | 
|---|
 | 47 |  S SDPAGE=SDPAGE+1,SDPG=1 D:SDTY SUBT(SDTY,SDREPORT) Q
 | 
|---|
 | 48 |  ;
 | 
|---|
 | 49 | HDRX(SDTY) ;Extra header lines
 | 
|---|
 | 50 |  K SDTIT
 | 
|---|
 | 51 |  Q:SDTY=0  S SDIV=$G(SDIV)
 | 
|---|
 | 52 |  I SDTY=3 S SDTIT(1)="Facility Summary" Q
 | 
|---|
 | 53 |  N SDDV S SDDV=$P(SDIV,U)_" ("_$P(SDIV,U,2)_")"
 | 
|---|
 | 54 |  I SDTY=2 S SDTIT(1)="Summary for division: "_SDDV Q
 | 
|---|
 | 55 |  S SDTIT(1)="Division: "_SDDV
 | 
|---|
 | 56 |  S:SDSORT="CP" SDTIT(2)="For clinics with credit pair: "_$$OTX^SCRPW73("CP")
 | 
|---|
 | 57 |  I $G(SDREPORT)=5 D
 | 
|---|
 | 58 |  .S:SDSORT="CP" SDTIT(2)="For clinics with selected credit pair"
 | 
|---|
 | 59 |  .S:SDSORT="CA" SDTIT(2)="For all clinics"
 | 
|---|
 | 60 |  .S:SDSORT="CL" SDTIT(2)="For clinics selected by name"
 | 
|---|
 | 61 |  .N DA,DIC,DIQ,DR
 | 
|---|
 | 62 |  .S DIC=2,SDPT=DIC,DA=$G(DFN) F DR=.01,.09 N SDPT,SDARR S DIQ="SDARR(",DIQ(0)="I" D EN^DIQ1 D
 | 
|---|
 | 63 |  ..I DR=.01 S SDTIT(3)="Patient: "_SDARR(2,DA,.01,"I")
 | 
|---|
 | 64 |  ..I DR=.09 S SDTIT(4)="SSN: "_SDARR(2,DA,.09,"I")
 | 
|---|
 | 65 |  .S SDTIT(5)="Clinic: "_$P(^SC(SC,0),U)
 | 
|---|
 | 66 |  .S SDTIT(6)="Clinic Stop Code Pair: "_SDCP
 | 
|---|
 | 67 |  E  S SDTIT(3)="Detail for clinic: "_$$OTX^SCRPW73("CL")
 | 
|---|
 | 68 |  Q
 | 
|---|
 | 69 |  ;
 | 
|---|
 | 70 | SUBT(SDTY,SDREPORT) ;Print subtitles
 | 
|---|
 | 71 |  D:SDREPORT=1 SUBT1 D:SDREPORT=2 SUBT2
 | 
|---|
 | 72 |  D:SDREPORT=3 SUBT3 D:SDREPORT=4 SUBT4
 | 
|---|
 | 73 |  D:SDREPORT=5 SUBT5
 | 
|---|
 | 74 |  Q
 | 
|---|
 | 75 |  ;
 | 
|---|
 | 76 | SUBT1 N SDI
 | 
|---|
 | 77 |  W !?(SDCOL+44),"Ava.",?(SDCOL+51),"Pct."
 | 
|---|
 | 78 |  I SDPAST D
 | 
|---|
 | 79 |  .F SDI=0:1:3 W ?(SDCOL+63+(14*SDI)),"--Type '",SDI,"'---"
 | 
|---|
 | 80 |  .W ?120,"% NNA   % NA" Q
 | 
|---|
 | 81 |  W ! W:SDTY>1 ?(SDCOL),"Credit Pair"
 | 
|---|
 | 82 |  W ?(SDCOL+35),"Clinic",?(SDCOL+43),"Appt.",?(SDCOL+50),"Slots"
 | 
|---|
 | 83 |  I SDPAST D
 | 
|---|
 | 84 |  .W ?(SDCOL+56),"Clinic"
 | 
|---|
 | 85 |  .F SDI=0:1:3 W ?(SDCOL+65+(14*SDI)),"Sch.   Wait"
 | 
|---|
 | 86 |  .W ?122,"<31    <31" Q
 | 
|---|
 | 87 |  W !?(SDCOL+4),$S(SDTY=1:"Availability Date",1:"Clinic Name")
 | 
|---|
 | 88 |  W ?(SDCOL+33),"Capacity",?(SDCOL+43),"Slots",?(SDCOL+51),"Ava."
 | 
|---|
 | 89 |  I SDPAST D
 | 
|---|
 | 90 |  .W ?(SDCOL+58),"Enc."
 | 
|---|
 | 91 |  .F SDI=0:1:3 W ?(SDCOL+64+(14*SDI)),"Appts   Time"
 | 
|---|
 | 92 |  .W ?121,"Days   Days"
 | 
|---|
 | 93 |  W !?(SDCOL),$E(SDLINE,1,($S(SDPAST:132,1:58)))
 | 
|---|
 | 94 |  Q
 | 
|---|
 | 95 |  ;
 | 
|---|
 | 96 | SUBT2 N SDI
 | 
|---|
 | 97 |  W !?48,"Next",?54,$E(SDLINE,1,24),"Non-next Available Appointments",$E(SDLINE,1,23)
 | 
|---|
 | 98 |  W !?40,"Next    Ava.     0-1     0-1     2-7     2-7    8-30    8-30   31-60   31-60     >60     >60"
 | 
|---|
 | 99 |  W ! W:SDTY>1 "Credit Pair" W ?40,"Ava.    Wait"
 | 
|---|
 | 100 |  F SDI=56:16:121 W ?(SDI),"Days    Wait"
 | 
|---|
 | 101 |  W !?4,$S(SDTY=1:"Availability Date",1:"Clinic Name")
 | 
|---|
 | 102 |  F SDI=39:16:120 W ?(SDI),"Appts    Time"
 | 
|---|
 | 103 |  W !,SDLINE
 | 
|---|
 | 104 |  Q
 | 
|---|
 | 105 |  ;
 | 
|---|
 | 106 | SUBT3 N SDI
 | 
|---|
 | 107 |  W !?38,"Next",?43,$E(SDLINE,1,29),"Non-next Available Appointments",$E(SDLINE,1,29)
 | 
|---|
 | 108 |  W !?32,"Next  Ava.   0-1   0-1   0-1   2-7   2-7   2-7  8-30  8-30  8-30 31-60 31-60 31-60   >60   >60   >60"
 | 
|---|
 | 109 |  W ! W:SDTY>1 "Credit Pair" W ?32,"Ava.  Wait"
 | 
|---|
 | 110 |  F SDI=44:18:117 W ?(SDI),"Days  Wait  Wait"
 | 
|---|
 | 111 |  W !?4,$S(SDTY=1:"Availability Date",1:"Clinic Name"),?31,"Appts Time1"
 | 
|---|
 | 112 |  F SDI=43:18:116 W ?(SDI),"Appts Time1 Time2"
 | 
|---|
 | 113 |  W !,SDLINE
 | 
|---|
 | 114 |  Q
 | 
|---|
 | 115 |  ;
 | 
|---|
 | 116 | SUBT4 W !?96,"Next",!,"Date",?96,"Ava.  Date               Wait   Wait"
 | 
|---|
 | 117 |  W !,"Scheduled    Patient Name             SSN         Appointment Date   Scheduling Request Type    Ind.  Desired      F/U  Time1  Time2"
 | 
|---|
 | 118 |  W !,SDLINE
 | 
|---|
 | 119 |  Q
 | 
|---|
 | 120 |  ;
 | 
|---|
 | 121 | SUBT5 W !?11,"SCHEDULING",?63,"TIME",!,"DATE",?11,"REQUEST",?31,"DATE",?58,"WAIT",?63,"TO",?68,"APPT",?96,"APPT",?102,"COMPLETION"
 | 
|---|
 | 122 |  W !,"SCHEDULED",?11,"TYPE",?31,"DESIRED",?42,"APPT DATE/TIME",?58,"TIME",?63,"APPT",?68,"TYPE",?73,"F/U",?79,"REBOOK DATE",?96,"STAT",?102,"DATE",?113,"SCHEDULER"
 | 
|---|
 | 123 |  W !,SDLINE
 | 
|---|
 | 124 |  Q
 | 
|---|
 | 125 | HDRXM(SDREPORT)   ;Create header in mail message
 | 
|---|
 | 126 |  ;Input: SDREPORT=report element to print
 | 
|---|
 | 127 |  ;
 | 
|---|
 | 128 |  N SDX,SDI,SDZ
 | 
|---|
 | 129 |  I SDPAGE>1 F SDI=1:1:5 D XMTX("")
 | 
|---|
 | 130 |  D XMTX($E(SDLINE,1,$S('SDPAST:79,1:132)))
 | 
|---|
 | 131 |  S SDZ="",$E(SDZ,($S(SDPAST:132,1:79)-$L(SDTITL)\2))=SDTITL D XMTX(SDZ)
 | 
|---|
 | 132 |  I SDREPORT=1,'SDPAST S SDX="Clinic availability data"
 | 
|---|
 | 133 |  I SDREPORT=1,SDPAST S SDX="Clinic availability and 'next available' appointment data"
 | 
|---|
 | 134 |  I SDREPORT=2 S SDX="'Follow up' appointment data"
 | 
|---|
 | 135 |  I SDREPORT=3 S SDX="'Non-follow up' appointment data"
 | 
|---|
 | 136 |  I SDREPORT=4 S SDX="Listing of patient appointments"
 | 
|---|
 | 137 |  I SDREPORT=5 S SDX="Listing of appointments for selected patient"
 | 
|---|
 | 138 |  S SDZ="",$E(SDZ,($S(SDPAST:132,1:79)-$L(SDX)\2))=SDX D XMTX(SDZ)
 | 
|---|
 | 139 |  D HDRX(SDTY) S SDI=0
 | 
|---|
 | 140 |  F  S SDI=$O(SDTIT(SDI)) Q:'SDI  S SDZ="" D
 | 
|---|
 | 141 |  .S $E(SDZ,($S(SDPAST:130,1:79)-$L(SDTIT(SDI))\2))=SDTIT(SDI) D XMTX(SDZ)
 | 
|---|
 | 142 |  .Q
 | 
|---|
 | 143 |  D XMTX($E(SDLINE,1,$S('SDPAST:79,1:132)))
 | 
|---|
 | 144 |  D XMTX("For clinic availability dates "_SDPBDT_" through "_SDPEDT)
 | 
|---|
 | 145 |  S SDZ="Date extracted: "_SDPNOW
 | 
|---|
 | 146 |  D XMTX(SDZ),XMTX($E(SDLINE,1,$S('SDPAST:79,1:132)))
 | 
|---|
 | 147 |  S SDPAGE=SDPAGE+1 D:SDTY SUBTXM(SDTY,SDREPORT) Q
 | 
|---|
 | 148 |  ;
 | 
|---|
 | 149 | SUBTXM(SDTY,SDREPORT) ;Create message header subtitles
 | 
|---|
 | 150 |  N SDZ
 | 
|---|
 | 151 |  D:SDREPORT=1 STXM1 D:SDREPORT=2 STXM2
 | 
|---|
 | 152 |  D:SDREPORT=3 STXM3 D:SDREPORT=4 STXM4
 | 
|---|
 | 153 |  Q
 | 
|---|
 | 154 |  ;
 | 
|---|
 | 155 | STXM1 N SDI
 | 
|---|
 | 156 |  S SDZ="",$E(SDZ,45)="Ava.",$E(SDZ,52)="Pct."
 | 
|---|
 | 157 |  I SDPAST D
 | 
|---|
 | 158 |  .F SDI=0:1:3 D
 | 
|---|
 | 159 |  ..S $E(SDZ,(SDCOL+64+(14*SDI)))="--Type '"_SDI_"'---"
 | 
|---|
 | 160 |  ..Q
 | 
|---|
 | 161 |  .S $E(SDZ,121)="% NNA   % NA"
 | 
|---|
 | 162 |  .Q
 | 
|---|
 | 163 |  D XMTX(SDZ)
 | 
|---|
 | 164 |  S SDZ="" I SDTY>1 S SDZ="Credit Pair"
 | 
|---|
 | 165 |  S $E(SDZ,36)="Clinic",$E(SDZ,44)="Appt.",$E(SDZ,51)="Slots"
 | 
|---|
 | 166 |  I SDPAST D
 | 
|---|
 | 167 |  .S $E(SDZ,57)="Clinic"
 | 
|---|
 | 168 |  .F SDI=0:1:3 S $E(SDZ,(SDCOL+66+(14*SDI)))="Sch.   Wait"
 | 
|---|
 | 169 |  .S $E(SDZ,123)="<31    <31"
 | 
|---|
 | 170 |  .Q
 | 
|---|
 | 171 |  D XMTX(SDZ)
 | 
|---|
 | 172 |  S SDZ="",$E(SDZ,4)=$S(SDTY=1:"Availability Date",1:"Clinic Name")
 | 
|---|
 | 173 |  S $E(SDZ,34)="Capacity",$E(SDZ,44)="Slots",$E(SDZ,52)="Ava."
 | 
|---|
 | 174 |  I SDPAST D
 | 
|---|
 | 175 |  .S $E(SDZ,59)="Enc."
 | 
|---|
 | 176 |  .F SDI=0:1:3 S $E(SDZ,(SDCOL+65+(14*SDI)))="Appts   Time"
 | 
|---|
 | 177 |  .S $E(SDZ,122)="Days   Days"
 | 
|---|
 | 178 |  .Q
 | 
|---|
 | 179 |  D XMTX(SDZ)
 | 
|---|
 | 180 |  S SDZ="",$E(SDZ,$S(SDTY>1:1,1:4))=$E(SDLINE,1,$S(SDPAST:132,1:58))
 | 
|---|
 | 181 |  D XMTX(SDZ)
 | 
|---|
 | 182 |  Q
 | 
|---|
 | 183 |  ;
 | 
|---|
 | 184 | STXM2 N SDI S SDZ=""
 | 
|---|
 | 185 |  S $E(SDZ,49)="Next"
 | 
|---|
 | 186 |  S $E(SDZ,55)=$E(SDLINE,1,24)_"Non-next Available Appointments"_$E(SDLINE,1,23)
 | 
|---|
 | 187 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 188 |  S $E(SDZ,41)="Next    Ava.     0-1     0-1     2-7     2-7    8-30    8-30   31-60   31-60     >60     >60"
 | 
|---|
 | 189 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 190 |  S:SDTY>1 SDZ="Credit Pair" S $E(SDZ,41)="Ava.    Wait"
 | 
|---|
 | 191 |  F SDI=57:16:121 S $E(SDZ,SDI)="Days    Wait"
 | 
|---|
 | 192 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 193 |  S $E(SDZ,4)=$S(SDTY=1:"Availability Date",1:"Clinic Name")
 | 
|---|
 | 194 |  F SDI=40:16:120 S $E(SDZ,SDI)="Appts    Time"
 | 
|---|
 | 195 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 196 |  S SDZ=SDLINE D XMTX(SDZ)
 | 
|---|
 | 197 |  Q
 | 
|---|
 | 198 |  ;
 | 
|---|
 | 199 | STXM3 N SDI S SDZ=""
 | 
|---|
 | 200 |  S $E(SDZ,39)="Next"
 | 
|---|
 | 201 |  S $E(SDZ,44)=$E(SDLINE,1,29)_"Non-next Available Appointments"_$E(SDLINE,1,29)
 | 
|---|
 | 202 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 203 |  S $E(SDZ,33)="Next  Ava.   0-1   0-1   0-1   2-7   2-7   2-7  8-30  8-30  8-30 31-60 31-60 31-60   >60   >60   >60"
 | 
|---|
 | 204 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 205 |  S:SDTY>1 SDZ="Credit Pair" S $E(SDZ,33)="Ava.  Wait"
 | 
|---|
 | 206 |  F SDI=45:18:117 S $E(SDZ,SDI)="Days  Wait  Wait"
 | 
|---|
 | 207 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 208 |  S $E(SDZ,4)=$S(SDTY=1:"Availability Date",1:"Clinic Name") S $E(SDZ,32)="Appts Time1"
 | 
|---|
 | 209 |  F SDI=44:18:116 S $E(SDZ,SDI)="Appts Time1 Time2"
 | 
|---|
 | 210 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 211 |  S SDZ=SDLINE D XMTX(SDZ)
 | 
|---|
 | 212 |  Q
 | 
|---|
 | 213 |  ;
 | 
|---|
 | 214 | STXM4 S SDZ=""
 | 
|---|
 | 215 |  S $E(SDZ,96)="Next"
 | 
|---|
 | 216 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 217 |  S SDZ="Date",$E(SDZ,96)="Ava.  Date               Wait   Wait"
 | 
|---|
 | 218 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 219 |  S SDZ="Scheduled    Patient Name             SSN         Appointment Date   Scheduling Request Type    Ind.  Desired      F/U  Time1  Time2"
 | 
|---|
 | 220 |  D XMTX(SDZ) S SDZ=""
 | 
|---|
 | 221 |  S SDZ=SDLINE D XMTX(SDZ)
 | 
|---|
 | 222 |  Q
 | 
|---|
 | 223 |  ;
 | 
|---|
 | 224 | STOP ;Check for stop task request
 | 
|---|
 | 225 |  S:$D(ZTQUEUED) (SDOUT,ZTSTOP)=$S($$S^%ZTLOAD:1,1:0) Q
 | 
|---|
 | 226 |  ;
 | 
|---|
 | 227 | XMTX(SDX) ;Set mail message text line
 | 
|---|
 | 228 |  ;Input: SDX=text value
 | 
|---|
 | 229 |  S ^TMP("SDXM",$J,SDXM)=SDX,SDXM=SDXM+1 Q
 | 
|---|