1 | SCRPW81 ; ALB/SCK - SCDX AMB CARE CLOSEOUT RPT FOR MT INDICATOR = U ; 9 JULY 2003
|
---|
2 | ;;5.3;Scheduling;**302,440,474**;AUG 13, 1993;Build 4
|
---|
3 | ;
|
---|
4 | EN ; Main entry point for report
|
---|
5 | N DIR,DIRUT,SDBEG,SDEND,RSLT,Y,X
|
---|
6 | ;
|
---|
7 | S DIR("A")="Please select fiscal year",DIR(0)="SM^A:Previous Fiscal Year;B:Current Fiscal Year;O:Other Date Range"
|
---|
8 | S DIR("B")="B"
|
---|
9 | S DIR("?")="You may select either the previous fiscal year (A) or the current fiscal year (B). Select (O) if you choose to specify your own date range."
|
---|
10 | D ^DIR K DIR
|
---|
11 | Q:$D(DIRUT)
|
---|
12 | S RSLT=Y
|
---|
13 | ;
|
---|
14 | I RSLT="A" D
|
---|
15 | . D PASTYR(.SDBEG,.SDEND)
|
---|
16 | E I RSLT="B" D
|
---|
17 | . D CURYR(.SDBEG,.SDEND)
|
---|
18 | E D
|
---|
19 | . D GETDT(.SDBEG,.SDEND)
|
---|
20 | Q:'$G(SDBEG)!('$G(SDEND))
|
---|
21 | W !!?3,"Date Range: "_$$FMTE^XLFDT(SDBEG)_" to "_$$FMTE^XLFDT(SDEND)
|
---|
22 | ;
|
---|
23 | N X,Y,IORVON,IORVOFF
|
---|
24 | S X="IORVON;IORVOFF"
|
---|
25 | D ENDR^%ZISS
|
---|
26 | W:$D(IORVON) IORVON
|
---|
27 | W !,"A 132-Column printer is required for this report."
|
---|
28 | W !,"This report will NOT print correctly to the screen!"
|
---|
29 | W:$D(IORVOFF) IORVOFF
|
---|
30 | ;
|
---|
31 | N ZTSAVE,ZTRTN,ZTDESC,POP,%ZIS
|
---|
32 | S %ZIS="Q" D ^%ZIS G:POP EXIT
|
---|
33 | I $D(IO("Q")) D Q
|
---|
34 | . S ZTSAVE("SDBEG")="",ZTSAVE("SDEND")="",ZTSAVE("DUZ")=""
|
---|
35 | . S ZTRTN="RUN^SCRPW81"
|
---|
36 | . S ZTDESC="XMITED OE MT=U RPT"
|
---|
37 | . D ^%ZTLOAD D HOME^%ZIS K IO("Q")
|
---|
38 | D RUN
|
---|
39 | D ^%ZISC
|
---|
40 | EXIT S:$D(ZTQUEUED) ZTREQ="@" Q
|
---|
41 | ;
|
---|
42 | RUN ; Run report
|
---|
43 | U IO
|
---|
44 | K ^TMP("SCDX MTU",$J),^TMP("SCDX ASORT",$J)
|
---|
45 | ;
|
---|
46 | D BLD(SDBEG,SDEND)
|
---|
47 | D CHKMT
|
---|
48 | D SRTNAME
|
---|
49 | D MAIL
|
---|
50 | D PRINT
|
---|
51 | K ^TMP("SCDX MTU",$J),^TMP("SCDX ASORT",$J)
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | PASTYR(SDBEG,SDEND) ; Set dates for previous fiscal year
|
---|
55 | N CURYR,PRVYR,CURMN,%I
|
---|
56 | ;
|
---|
57 | D NOW^%DTC
|
---|
58 | S CURYR=%I(3),CURMN=%I(1)
|
---|
59 | I CURMN>9 D
|
---|
60 | . S CURYR=CURYR+1
|
---|
61 | S PRVYR=CURYR-1
|
---|
62 | S SDEND=$$FMADD^XLFDT(PRVYR_"1001",-1)
|
---|
63 | S SDBEG=$$FMADD^XLFDT(PRVYR_"1001",-365)
|
---|
64 | Q
|
---|
65 | ;
|
---|
66 | CURYR(SDBEG,SDEND) ; Set dates for current fiscal year
|
---|
67 | N CURYR,CURMN,%I
|
---|
68 | ;
|
---|
69 | D NOW^%DTC
|
---|
70 | S CURYR=%I(3),CURMN=%I(1)
|
---|
71 | I CURMN<10 D
|
---|
72 | . S CURYR=CURYR-1
|
---|
73 | S SDBEG=CURYR_"1001"
|
---|
74 | S SDEND=$P($$NOW^XLFDT,".")
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | GETDT(SDBEG,SDEND) ; Get beginning and ending date for search
|
---|
78 | ; Output SDBEG Beginning for date range
|
---|
79 | ; SDEND End of date range
|
---|
80 | ; result 1 - If function successful
|
---|
81 | ; 0 - If function NOT successful (User quit)
|
---|
82 | ;
|
---|
83 | N DIR,DIRUT,Y
|
---|
84 | ;
|
---|
85 | W !!?3,"You have selected to specify your own date range. Please note that by"
|
---|
86 | W !?3,"doing so you may not generate an accurate picture of the AMB CARE"
|
---|
87 | W !?3,"closeouts where the means test indicator equals 'U'.",!
|
---|
88 | ;
|
---|
89 | S DIR(0)="DAO^:DT:EX"
|
---|
90 | S DIR("A")="Beginning Date: "
|
---|
91 | S DIR("?")="^D HELP^%DTC"
|
---|
92 | D ^DIR
|
---|
93 | I $D(DIRUT) D Q
|
---|
94 | . S SDBEG=0
|
---|
95 | S SDBEG=Y
|
---|
96 | ;
|
---|
97 | S DIR(0)="DAO^:DT:EX"
|
---|
98 | S DIR("A")="Ending Date: "
|
---|
99 | D ^DIR
|
---|
100 | I $D(DIRUT) D Q
|
---|
101 | . S SDEND=0
|
---|
102 | S SDEND=Y
|
---|
103 | Q
|
---|
104 | ;
|
---|
105 | BLD(SDBEG,SDEND) ; Build list of patient OE's for date range
|
---|
106 | ; Input SDBEG
|
---|
107 | ; SDEND
|
---|
108 | ;
|
---|
109 | N SDX,SDMAX,SDOEI,CNT,NODE,SDOEX,SDLOC
|
---|
110 | ;
|
---|
111 | S SDX=$$FMADD^XLFDT(SDBEG,0,0,0,-1) ; set inital search DT to beginning date minus one second
|
---|
112 | S SDMAX=$$FMADD^XLFDT(SDEND,0,23,59,59) ; set search end date to end date plus one day
|
---|
113 | ;
|
---|
114 | S ^TMP("SCDX MTU",$J,0,"BEGIN")=$H
|
---|
115 | F S SDX=$O(^SCE("B",SDX)) Q:'SDX D Q:SDX>SDMAX
|
---|
116 | . S SDOEI=0
|
---|
117 | . F S SDOEI=$O(^SCE("B",SDX,SDOEI)) Q:'SDOEI D
|
---|
118 | . . S NODE=$G(^SCE(SDOEI,0))
|
---|
119 | . . Q:$P(NODE,U,6)>0 ; Quit if not parent encounter
|
---|
120 | . . Q:$P(NODE,U,8)>3 ; Quit if Originating process is for credit stop code
|
---|
121 | . . S SDLOC=+$P(NODE,U,4)
|
---|
122 | . . Q:$$GET1^DIQ(44,SDLOC,2502,"I")="Y" ; Quit if non-count clinic
|
---|
123 | . . S SDOEX=$O(^SD(409.73,"AENC",SDOEI,0))
|
---|
124 | . . Q:'$P(NODE,U,2)
|
---|
125 | . . S ^TMP("SCDX MTU",$J,$P(NODE,U,2),SDOEI)=$P(NODE,U,1)_U_SDOEX
|
---|
126 | . . S ^TMP("SCDX MTU",$J,0,"CNT")=$G(^TMP("SCDX MTU",$J,0,"CNT"))+1
|
---|
127 | S ^TMP("SCDX MTU",$J,0,"END")=$H
|
---|
128 | Q
|
---|
129 | ;
|
---|
130 | CHKMT ; Clean out all except those meeting the MT=U conditions
|
---|
131 | N DFN,SDOEI,SDOEDT,SDMT,SDO,SDR,SDN,SDAT,SDEC,SDMTI,SDMTT
|
---|
132 | ;
|
---|
133 | S DFN=0
|
---|
134 | F S DFN=$O(^TMP("SCDX MTU",$J,DFN)) Q:'DFN D
|
---|
135 | . I '$D(^DGMT(408.31,"C",DFN)) D Q ; No MT Data, bypass patient
|
---|
136 | . . K ^TMP("SCDX MTU",$J,DFN)
|
---|
137 | . S (SDR,SDO,SDN,SDOEI)=0
|
---|
138 | . F S SDOEI=$O(^TMP("SCDX MTU",$J,DFN,SDOEI)) Q:'SDOEI D
|
---|
139 | . . S SDOEDT=$P($G(^TMP("SCDX MTU",$J,DFN,SDOEI)),U,1)
|
---|
140 | . . Q:'SDOEDT
|
---|
141 | . . S SDEC=$$GET1^DIQ(409.68,SDOEI,.13,"I")
|
---|
142 | . . S SDAT=$$GET1^DIQ(409.68,SDOEI,.1,"I")
|
---|
143 | . . S SDMTI=$$MTI^SCDXUTL0(DFN,SDOEDT,SDEC,SDAT,SDOEI)
|
---|
144 | . . I SDMTI'="U" D Q
|
---|
145 | . . . K ^TMP("SCDX MTU",$J,DFN)
|
---|
146 | . . S SDMTT=$$LST^DGMTU(DFN,SDOEDT,1) I $P(SDMTT,U,4)="N" D Q
|
---|
147 | . . . K ^TMP("SCDX MTU",$J,DFN)
|
---|
148 | . . S $P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,4)=SDMTI
|
---|
149 | S ^TMP("SCDX MTU",$J,0,"END")=$H K SDMTT
|
---|
150 | Q
|
---|
151 | ;
|
---|
152 | SRTNAME ; Sort remaining encounters by patient name and OE date
|
---|
153 | N DFN,SDOEI,SDNAME,SDOEDT
|
---|
154 | ;
|
---|
155 | S DFN=0
|
---|
156 | F S DFN=$O(^TMP("SCDX MTU",$J,DFN)) Q:'DFN D
|
---|
157 | . S SDNAME=$$GET1^DIQ(2,DFN,.01)
|
---|
158 | . Q:SDNAME']""
|
---|
159 | . S ^TMP("SCDX MTU",$J,0,"PATNUM")=$G(^TMP("SCDX MTU",$J,0,"PATNUM"))+1
|
---|
160 | . S SDOEI=0
|
---|
161 | . F S SDOEI=$O(^TMP("SCDX MTU",$J,DFN,SDOEI)) Q:'SDOEI D
|
---|
162 | . . S SDOEDT=$P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,1)
|
---|
163 | . . S ^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)=$P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,2)_U_SDOEI_U_DFN_U_$P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,4)
|
---|
164 | . . S ^TMP("SCDX MTU",$J,0,"FINAL CNT")=$G(^TMP("SCDX MTU",$J,0,"FINAL CNT"))+1
|
---|
165 | S ^TMP("SCDX MTU",$J,0,"END2")=$H
|
---|
166 | Q
|
---|
167 | ;
|
---|
168 | MAIL ; send message with report statistics
|
---|
169 | N MSG,XMSUB,XMY,XMTEXT,XMDUZ
|
---|
170 | ;
|
---|
171 | S MSG(1)="Date Range for Report "_$$FMTE^XLFDT(SDBEG,2)_" to "_$$FMTE^XLFDT(SDEND,2)
|
---|
172 | S MSG(2)=""
|
---|
173 | S MSG(3)="Report Started "_$$HTE^XLFDT(^TMP("SCDX MTU",$J,0,"BEGIN"),2)
|
---|
174 | S MSG(4)="Report Finished "_$$HTE^XLFDT(^TMP("SCDX MTU",$J,0,"END2"),2)
|
---|
175 | S MSG(5)="Total Time for Report "_$$HDIFF^XLFDT(^TMP("SCDX MTU",$J,0,"END2"),^TMP("SCDX MTU",$J,0,"BEGIN"),3)
|
---|
176 | S MSG(6)=""
|
---|
177 | S MSG(7)="Outpatient Encounters Scanned "_$J($FN(+$G(^TMP("SCDX MTU",$J,0,"CNT")),","),20)
|
---|
178 | S MSG(8)="Outpatient Encounters Reported "_$J($FN(+$G(^TMP("SCDX MTU",$J,0,"FINAL CNT")),","),20)
|
---|
179 | S MSG(9)="Patient Count "_$J($FN(+$G(^TMP("SCDX MTU",$J,0,"PATNUM")),","),20)
|
---|
180 | ;
|
---|
181 | S XMSUB="MEANS TEST = 'U' REPORT STATISTICS"
|
---|
182 | S XMTEXT="MSG("
|
---|
183 | S XMY(DUZ)=""
|
---|
184 | S XMDUZ="ACRP MT=U STATS"
|
---|
185 | D ^XMD
|
---|
186 | Q
|
---|
187 | ;
|
---|
188 | PRINT ; Print Report
|
---|
189 | ;SD*5.3*474 added SDFLAG and corresponding logic
|
---|
190 | N SDNAME,SDNODE,SDXNODE,SDOEI,SDOEX,SDOEDT,DFN,PRNTL4,VA,PAGE,SDFLAG
|
---|
191 | ;
|
---|
192 | S PAGE=0
|
---|
193 | D HDR
|
---|
194 | S SDNAME=""
|
---|
195 | F S SDNAME=$O(^TMP("SCDX ASORT",$J,SDNAME)) Q:SDNAME']"" D
|
---|
196 | . W !,$E(SDNAME,1,30)
|
---|
197 | . S PRNTL4=0,SDFLAG=1
|
---|
198 | . S SDOEDT=0
|
---|
199 | . F S SDOEDT=$O(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)) Q:'SDOEDT D
|
---|
200 | . . S DFN=$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,3)
|
---|
201 | . . S SDOEX=$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,1)
|
---|
202 | . . S SDOEI=$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,2)
|
---|
203 | . . I 'PRNTL4 D S PRNTL4=1
|
---|
204 | . . . D PID^VADPT6
|
---|
205 | . . . W ?($L(SDNAME)+1),"(",VA("BID"),")"
|
---|
206 | . . I 'SDFLAG D S SDFLAG=1
|
---|
207 | . . . W !,$E(SDNAME,1,30)
|
---|
208 | . . . D PID^VADPT6
|
---|
209 | . . . W ?($L(SDNAME)+1),"(",VA("BID"),")"
|
---|
210 | . . W ?35,$$FMTE^XLFDT(SDOEDT,"D"),$S(SDOEX>0:" *",1:" ")
|
---|
211 | . . W ?56,$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,4)
|
---|
212 | . . S SDNODE=$G(^SCE(SDOEI,0))
|
---|
213 | . . W ?68,$E($$GET1^DIQ(40.8,$P(SDNODE,U,11),.01),1,30)
|
---|
214 | . . W ?100,$E($$GET1^DIQ(44,$P(SDNODE,U,4),.01),1,30)
|
---|
215 | . . I ($Y+5)>IOSL D HDR S SDFLAG=0 Q
|
---|
216 | . . W !
|
---|
217 | D FTR1
|
---|
218 | Q
|
---|
219 | ;
|
---|
220 | HDR ; Report Header
|
---|
221 | N SPACE,LINE,TAB,PRNTLN
|
---|
222 | ;
|
---|
223 | I PAGE>0 D FTR
|
---|
224 | W:PAGE>0 @IOF
|
---|
225 | S PAGE=PAGE+1
|
---|
226 | ;
|
---|
227 | S PRNTLN="Transmitted Outpatient Encounters with Means Test = 'U'"
|
---|
228 | S TAB=(IOM-$L(PRNTLN))\2
|
---|
229 | W !?TAB,PRNTLN
|
---|
230 | S PRNTLN="Date Range: "_$$FMTE^XLFDT(SDBEG)_" thru "_$$FMTE^XLFDT(SDEND)
|
---|
231 | S TAB=(IOM-$L(PRNTLN))\2
|
---|
232 | W !!?TAB,PRNTLN
|
---|
233 | S PRNTLN="Print Date: "_$$FMTE^XLFDT($$NOW^XLFDT)
|
---|
234 | S TAB=(IOM-$L(PRNTLN))\2
|
---|
235 | W !?TAB,PRNTLN
|
---|
236 | S PRNTLN="Page: "_PAGE
|
---|
237 | S TAB=(IOM-$L(PRNTLN))\2
|
---|
238 | W !?TAB,PRNTLN
|
---|
239 | ;
|
---|
240 | W !!?35,"Outpatient",?52,"",?68,"Medical Ctr"
|
---|
241 | W !,"PATIENT NAME",?35,"Encounter Date",?52,"MT Indicator",?68,"Division",?100,"Clinic"
|
---|
242 | ;
|
---|
243 | S $P(LINE,"=",IOM)="" W !,LINE
|
---|
244 | Q
|
---|
245 | ;
|
---|
246 | FTR ; Report Footer
|
---|
247 | N SDX
|
---|
248 | ;
|
---|
249 | F SDX=$Y:1:IOSL-2 W !
|
---|
250 | W ?5,"* - Transmitted Outpatient Encounter"
|
---|
251 | Q
|
---|
252 | ;
|
---|
253 | FTR1 ;
|
---|
254 | W !?5,"* - Transmitted Outpatient Encounter"
|
---|
255 | Q
|
---|
256 | ;
|
---|