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
|
---|