2
|
1 <?xml version="1.0" encoding="UTF-8"?>
|
|
2 <report report-id="ehis.数据统计.营业收入.运营情况汇总" title="运营情况汇总" seq="0" is-detail="true">
|
|
3 <description>运营情况汇总</description>
|
|
4 <attrs>
|
|
5 <attr key="datasource" value="default"/>
|
|
6 <attr key="leftFixedColCount" value="0"/>
|
|
7 <attr key="rightFixedColCount" value="0"/>
|
|
8 <attr key="showTotalRow" value="false"/>
|
|
9 <attr key="showRowIndex" value="true"/>
|
|
10 <attr key="showColIndex" value="false"/>
|
|
11 <attr key="showColLine" value="true"/>
|
|
12 <attr key="showRowLine" value="true"/>
|
|
13 <attr key="showHeader" value="false"/>
|
|
14 <attr key="showTools" value="false"/>
|
|
15 <attr key="trackMouseOver" value="true"/>
|
|
16 <attr key="defaultColWidth" value="100"/>
|
|
17 <attr key="rowNoColWidth" value="40"/>
|
|
18 <attr key="pageType" value="A4"/>
|
|
19 <attr key="pageDirect" value="V"/>
|
|
20 <attr key="pageFontSize" value="11"/>
|
|
21 <attr key="pageSize" value="297,210"/>
|
|
22 <attr key="pageMargin" value="10,10,10,10"/>
|
|
23 <attr key="pageMaxRowCount" value="50"/>
|
|
24 <attr key="autoSizeCol" value="0" />
|
|
25 </attrs>
|
|
26
|
|
27 <params>
|
|
28 <param id="jgxs">
|
|
29 <sql>
|
|
30 <![CDATA[
|
|
31 select count(1) col into #t from
|
|
32 (
|
|
33 select 机构ID value,名称 text from bas_机构 where 机构ID=${user.companyPartyId}
|
|
34 union all
|
|
35 select 机构ID value,名称 text from bas_机构 where isnull(管理机构ID,'')=${user.companyPartyId}
|
|
36 ) a
|
|
37 ;
|
|
38 select case when col>1 then 'false' else 'true' end aaa from #t
|
|
39 ]]>
|
|
40 </sql>
|
|
41 </param>
|
|
42 <param id="mrjg">
|
|
43 <sql>
|
|
44 <![CDATA[
|
|
45 select ${user.companyPartyId} id
|
|
46 ]]>
|
|
47 </sql>
|
|
48 </param>
|
|
49 </params>
|
|
50
|
|
51 <enums>
|
|
52 <enum id="tjjg">
|
|
53 <sql>
|
|
54 <![CDATA[
|
|
55 select 机构ID value,名称 text from bas_机构 where 机构ID=${user.companyPartyId}
|
|
56 union all
|
|
57 select 机构ID value,名称 text from bas_机构 where isnull(管理机构ID,'')=${user.companyPartyId}
|
|
58 ]]>
|
|
59 </sql>
|
|
60 </enum>
|
|
61 </enums>
|
|
62
|
|
63 <header-items>
|
|
64 <header-item id="统计机构" type="enum" enum-id="tjjg" title="统计机构" default="${mrjg}" hidden="${jgxs}" value-col="value" use-like='false' text-col="text" width="250" trigger-query="false"/>
|
|
65 <header-item id="时间" type="datetimerange" title="统计时间" default="今天" width="190" trigger-query="false"/>
|
|
66 <header-item id="查找" type="text" width="150" use-like="false" title="查找" hidden="true" empty-text="请输入查找信息" trigger-query="false"/>
|
|
67 </header-items>
|
|
68
|
|
69 <select>
|
|
70 <field id="分类" title="分类"><![CDATA[分类]]></field>
|
|
71 <field id="列1" title="列1"><![CDATA[列1]]></field>
|
|
72 <field id="列1值" title="列1值"><![CDATA[列1值]]></field>
|
|
73 <field id="列2" title="列2"><![CDATA[列2]]></field>
|
|
74 <field id="列2值" title="列2值"><![CDATA[列2值]]></field>
|
|
75 <field id="列3" title="列3"> <![CDATA[列3]]></field>
|
|
76 <field id="列3值" title="列3值"> <![CDATA[列3值]]></field>
|
|
77 <field id="列4" title="列4"> <![CDATA[列4]]></field>
|
|
78 <field id="列4值" title="列4值"> <![CDATA[列4值]]></field>
|
|
79 </select>
|
|
80
|
|
81 <from>
|
|
82 <![CDATA[
|
|
83 (
|
|
84 select
|
|
85 '门诊情况' 分类,'挂号人数' 列1,gh.挂号人数 列1值,'挂号金额' 列2,cast(gh.挂号金额 as nvarchar(10)) 列2值,
|
|
86 '首诊人数' 列3,gh.首诊人数 列3值,'复诊人数' 列4,gh.复诊人数 列4值
|
|
87 from #jg jg
|
|
88 left join #gh gh on jg.机构ID=gh.机构ID
|
|
89 union all
|
|
90 select
|
|
91 '门诊情况' 分类,'门诊人次' 列1,mzjs.门诊人次 列1值,'总金额' 列2,cast(mzjs.总金额 as nvarchar(10)) 列2值,
|
|
92 '医保金额' 列3,mzjs.报销金额 列3值,'现金金额' 列4,mzzf.现金支付 列4值
|
|
93 from #jg jg
|
|
94 left join #mzjs mzjs on jg.机构ID=mzjs.机构ID
|
|
95 left join #mzzf mzzf on jg.机构ID=mzzf.机构ID
|
|
96 union all
|
|
97 select
|
|
98 '门诊情况' 分类,'处方总数' 列1,mzcf.处方总数 列1值,'药品金额' 列2,cast(mzcf.药品金额 as nvarchar(10)) 列2值,
|
|
99 '诊疗金额' 列3,mzcf.诊疗金额 列3值,'处方均额' 列4,case when mzcf.处方总数<>0 then cast(mzjs.总金额/mzcf.处方总数 as decimal(10,2)) else null end 列4值
|
|
100 from #jg jg
|
|
101 left join #mzcf mzcf on jg.机构ID=mzcf.机构ID
|
|
102 left join #mzjs mzjs on jg.机构ID=mzjs.机构ID
|
|
103 union all
|
|
104 select
|
|
105 '门诊情况' 分类,'自费人次' 列1,mzjs.自费人次 列1值,'医保人次' 列2,cast(mzjs.医保人次 as nvarchar(10)) 列2值,
|
|
106 '普通门诊数' 列3,mzjs.普通门诊人次 列3值,'特病人次' 列4,mzjs.特病人次 列4值
|
|
107 from #jg jg
|
|
108 left join #mzjs mzjs on jg.机构ID=mzjs.机构ID
|
|
109 union all
|
|
110 select
|
|
111 '住院情况' 分类,'入院总人数' 列1,ry.入院总人数 列1值,'当前在院总人数' 列2,cast(zy.在院总人数 as nvarchar(10)) 列2值,
|
|
112 '出院总人数' 列3,cy.出院总人数 列3值,'结算总人数' 列4,zyjs.结算总人数 列4值
|
|
113 from #jg jg
|
|
114 left join #ry ry on jg.机构ID=ry.机构ID
|
|
115 left join #cy cy on jg.机构ID=cy.机构ID
|
|
116 left join #zyjs zyjs on jg.机构ID=zyjs.机构ID
|
|
117 left join #zy zy on jg.机构ID=zy.机构ID
|
|
118 union all
|
|
119 select
|
|
120 '住院情况' 分类,'结算金额' 列1,zyjs.结算金额 列1值,'职工金额' 列2,cast(zyjs.职工金额 as nvarchar(10)) 列2值,
|
|
121 '居民金额' 列3,zyjs.居民金额 列3值,'自费金额' 列4,zyjs.自费金额 列4值
|
|
122 from #jg jg
|
|
123 left join #zyjs zyjs on jg.机构ID=zyjs.机构ID
|
|
124 union all
|
|
125 select
|
|
126 '住院情况' 分类,'预交收入' 列1,zyyj.预交收入 列1值,'药品收入' 列2,cast(zycf.药品收入 as nvarchar(10)) 列2值,
|
|
127 '诊疗收入' 列3,zycf.诊疗收入 列3值,'医院承担' 列4,zyjs.医院承担 列4值
|
|
128 from #jg jg
|
|
129 left join #zyjs zyjs on jg.机构ID=zyjs.机构ID
|
|
130 left join #zyyj zyyj on jg.机构ID=zyyj.机构ID
|
|
131 left join #zycf zycf on jg.机构ID=zycf.机构ID
|
|
132 union all
|
|
133 select null,'',null,'工作量情况(医院实际工','作量情况,与结算','数据无关)',null,null,null
|
|
134 union all
|
|
135 select
|
|
136 null,'总费用',t.总金额,'药品金额',cast(t.药品金额 as nvarchar(10)) ,'诊疗金额',t.诊疗金额,null,null
|
|
137 from #gzl t
|
|
138 union all
|
|
139 select null,'',null,'各项收入项目费用情况','(结算数据)','',null,null,null
|
|
140 union all
|
|
141 select
|
|
142 null,a.收入项目,a.金额,b.收入项目,cast(b.金额 as nvarchar(10)) ,c.收入项目,c.金额,d.收入项目,d.金额
|
|
143 from #a a
|
|
144 left join #b b on a.px+1=b.px
|
|
145 left join #c c on a.px+2=c.px
|
|
146 left join #d d on a.px+3=d.px
|
|
147 union all
|
|
148 select null, '合计' ,sum(t.金额),null,null,null,null,null,null
|
|
149 from #srxm t
|
|
150 ) t
|
|
151 ]]>
|
|
152 </from>
|
|
153
|
|
154 <with>
|
|
155 <![CDATA[
|
|
156
|
|
157 with t as (
|
|
158 select
|
|
159 gh.登记机构ID 机构ID,
|
|
160 count(distinct gh.档案ID) 挂号人数,
|
|
161 count(distinct case when isnull(jzjl.初诊,'是')='是' then jzjl.档案ID else null end) 首诊人数,
|
|
162 count(distinct case when isnull(jzjl.初诊,'是')='否' then jzjl.档案ID else null end) 复诊人数,
|
|
163 sum(js.金额) 挂号金额
|
|
164 from reg_挂号 gh
|
|
165 inner join opd_记录 jzjl on gh.挂号ID=jzjl.挂号ID
|
|
166 inner join opc_记录_结算 js on gh.结算ID=js.结算ID
|
|
167 where gh.就诊日期 between ${时间_START} and ${时间_END} and gh.登记机构ID=${统计机构}
|
|
168 group by gh.登记机构ID
|
|
169 )
|
|
170 select * into #gh from t;
|
|
171 select
|
|
172 js.结算机构ID 机构ID,
|
|
173 count(distinct jl.档案ID+'-'+jl.开单医生ID+'-'+convert(nvarchar(10),jl.登记时间,120)) 门诊人次,
|
|
174 sum(js.金额) 总金额,
|
|
175 sum(js.报销金额) 报销金额,
|
|
176 COUNT(DISTINCT (case when ybjs.结算ID IS NULL THEN jl.档案ID+'-'+jl.开单医生ID+'-'+convert(nvarchar(10),jl.登记时间,120) ELSE NULL END)) 自费人次,
|
|
177 COUNT(DISTINCT (case when ybjs.结算ID IS NOT NULL THEN jl.档案ID+'-'+jl.开单医生ID+'-'+convert(nvarchar(10),jl.登记时间,120) ELSE NULL END)) 医保人次,
|
|
178 count(distinct (case when jzlb.名称 in ('门诊慢特病') then jl.档案ID+'-'+jl.开单医生ID+'-'+convert(nvarchar(10),jl.登记时间,120) else null end)) 特病人次,
|
|
179 count(distinct (case when jzlb.名称 not in ('门诊慢特病') then jl.档案ID+'-'+jl.开单医生ID+'-'+convert(nvarchar(10),jl.登记时间,120) else null end)) 普通门诊人次
|
|
180 into #mzjs
|
|
181 from opc_记录 jl
|
|
182 inner join opc_记录_结算 js on jl.记录ID=js.记录ID
|
|
183 left join yb_就诊结算记录 ybjs on js.结算ID=ybjs.结算ID
|
|
184 left join bas_就诊类别 jzlb on jl.医疗类别ID=jzlb.医疗类别ID AND jl.就诊类别ID=jzlb.就诊类别ID
|
|
185 where js.结算时间 between ${时间_START} and ${时间_END} and js.结算机构ID=${统计机构}
|
|
186 and jl.处方来源<>'门诊挂号'
|
|
187 group by js.结算机构ID
|
|
188
|
|
189
|
|
190 select
|
|
191 js.结算机构ID 机构ID,
|
|
192 sum(case when zffs.名称='现金' then zf.支付金额 else null end) 现金支付,
|
|
193 sum(case when zffs.名称!='现金' then zf.支付金额 else null end) 其他支付
|
|
194 into #mzzf
|
|
195 from opc_记录_结算 js
|
|
196 inner join opc_记录 jl on js.记录ID=jl.记录ID
|
|
197 inner join opc_记录_结算_支付 zf on js.结算ID=zf.结算ID
|
|
198 inner join bas_支付方式 zffs on zf.支付方式ID=zffs.支付方式ID
|
|
199 where js.结算时间 between ${时间_START} and ${时间_END} and js.结算机构ID=${统计机构}
|
|
200 and jl.处方来源<>'门诊挂号'
|
|
201 group by js.结算机构ID
|
|
202
|
|
203
|
|
204 --cf
|
|
205 select
|
|
206 js.结算机构ID 机构ID,
|
|
207 count(distinct fymx.处方ID) 处方总数,
|
|
208 sum(case when xm.类别ID in ('5','6','7','8') then mx.金额 else null end) 药品金额,
|
|
209 sum(case when xm.类别ID not in ('5','6','7','8') then mx.金额 else null end) 诊疗金额
|
|
210 into #mzcf
|
|
211 from opc_记录_明细 mx
|
|
212 inner join opc_记录_结算 js on mx.结算ID=js.结算ID
|
|
213 inner join bas_收费项目 xm on mx.项目ID=xm.项目ID
|
|
214 left join opd_处方_医嘱_费用 fymx on mx.医嘱明细ID=fymx.明细ID
|
|
215 where js.结算时间 between ${时间_START} and ${时间_END} AND js.结算机构ID=${统计机构}
|
|
216 group by js.结算机构ID
|
|
217
|
|
218 --住院
|
|
219 select jl.登记机构ID 机构ID, count(1) 入院总人数 into #ry
|
|
220 from ihm_记录 jl
|
|
221 where jl.入院时间 between ${时间_START} and ${时间_END} AND 登记机构ID=${统计机构}
|
|
222 group by jl.登记机构ID
|
|
223
|
|
224 select
|
|
225 jl.登记机构ID 机构ID,
|
|
226 count(1) 在院总人数
|
|
227 into #zy
|
|
228 from ihm_记录 jl
|
|
229 where jl.状态 in ('在床','待分')
|
|
230 group by jl.登记机构ID
|
|
231
|
|
232
|
|
233
|
|
234 select
|
|
235 jl.登记机构ID 机构ID, count(1) 出院总人数 into #cy
|
|
236 from ihm_记录 jl
|
|
237 where jl.出院时间 between ${时间_START} and ${时间_END}
|
|
238 group by jl.登记机构ID
|
|
239
|
|
240 select js.结算机构ID 机构ID,count(distinct 记录ID) 结算总人数,
|
|
241 sum(js.金额) 结算金额,
|
|
242 sum(case when ybjs.险种类型='310' then js.金额 else null end) 职工金额,
|
|
243 sum(case when ybjs.险种类型='390' then js.金额 else null end) 居民金额,
|
|
244 sum(case when ybjs.结算ID is null then js.金额 else null end) 自费金额,
|
|
245 sum(js.医院承担) 医院承担
|
|
246 into #zyjs
|
|
247 from ihm_记录_结算 js
|
|
248 left join yb_就诊结算记录 ybjs on js.结算ID=ybjs.结算ID AND js.结算机构ID=${统计机构}
|
|
249 where js.结算时间 between ${时间_START} and ${时间_END}
|
|
250 group by js.结算机构ID
|
|
251
|
|
252 select
|
|
253 yj.登记机构ID 机构ID,
|
|
254 sum(yj.金额) 预交收入
|
|
255 into #zyyj
|
|
256 from ihm_记录_预交 yj
|
|
257 where yj.收费时间 between ${时间_START} and ${时间_END} and yj.登记机构ID=${统计机构}
|
|
258 group by yj.登记机构ID
|
|
259
|
|
260 select js.结算机构ID 机构ID,
|
|
261 sum(case when xm.类别ID in ('5','6','7','8') then case when js.状态='作废' then -mx.金额 else mx.金额 end else null end) 药品收入,
|
|
262 sum(case when xm.类别ID not in ('5','6','7','8') then case when js.状态='作废' then -mx.金额 else mx.金额 end else null end) 诊疗收入
|
|
263 into #zycf
|
|
264 from ihm_记录_结算 js
|
|
265 inner join ihm_记录_结算_明细 jsmx on js.结算ID=jsmx.结算ID
|
|
266 inner join ihm_记录_明细 mx on jsmx.明细ID=mx.明细ID
|
|
267 inner join bas_收费项目 xm on mx.项目ID=xm.项目ID
|
|
268 where js.结算时间 between ${时间_START} and ${时间_END} and js.结算机构ID=${统计机构}
|
|
269 group by js.结算机构ID
|
|
270
|
|
271
|
|
272 select
|
|
273 sum(case when xm.类别ID in ('5','6','7','8') then mx.金额 else null end) 药品金额,
|
|
274 sum(case when xm.类别ID not in ('5','6','7','8') then mx.金额 else null end) 诊疗金额,
|
|
275 sum(mx.金额) 总金额 into #mx
|
|
276 from opc_记录_明细 mx
|
|
277 inner join bas_收费项目 xm on mx.项目ID=xm.项目ID
|
|
278 where mx.登记时间 between ${时间_START} and ${时间_END} and mx.登记机构ID=${统计机构}
|
|
279 union all
|
|
280 select
|
|
281 sum(case when xm.类别ID in ('5','6','7','8') then mx.金额 else null end) 药品金额,
|
|
282 sum(case when xm.类别ID not in ('5','6','7','8') then mx.金额 else null end) 诊疗金额,
|
|
283 sum(mx.金额) 总金额
|
|
284 from ihm_记录_明细 mx
|
|
285 inner join bas_收费项目 xm on mx.项目ID=xm.项目ID
|
|
286 where mx.登记时间 between ${时间_START} and ${时间_END} and mx.登记机构ID=${统计机构}
|
|
287
|
|
288 select
|
|
289 sum(t.总金额) 总金额,
|
|
290 sum(t.药品金额) 药品金额,
|
|
291 sum(t.诊疗金额) 诊疗金额
|
|
292 into #gzl
|
|
293 from #mx t
|
|
294
|
|
295
|
|
296 select
|
|
297 js.结算机构ID,
|
|
298 xm.收入项目,
|
|
299 sum(mx.金额) 金额 into #srxmmx
|
|
300 from opc_记录_结算 js
|
|
301 inner join opc_记录_明细 mx on js.结算ID=mx.结算ID
|
|
302 inner join bas_收费项目 xm on mx.项目ID=xm.项目ID
|
|
303 where js.结算时间 between ${时间_START} and ${时间_END} and js.结算机构ID=${统计机构}
|
|
304 group by js.结算机构ID,xm.收入项目
|
|
305 union all
|
|
306 select
|
|
307 js.结算机构ID,
|
|
308 xm.收入项目,
|
|
309 sum(case when js.状态='作废' then -mx.金额 else mx.金额 end) 金额
|
|
310 from ihm_记录_结算 js
|
|
311 inner join ihm_记录_结算_明细 jsmx on js.结算ID=jsmx.结算ID
|
|
312 inner join ihm_记录_明细 mx on jsmx.明细ID=mx.明细ID
|
|
313 inner join bas_收费项目 xm on mx.项目ID=xm.项目ID
|
|
314 where js.结算时间 between ${时间_START} and ${时间_END} and js.结算机构ID=${统计机构}
|
|
315 group by js.结算机构ID,xm.收入项目
|
|
316
|
|
317
|
|
318
|
|
319 select
|
|
320 t.结算机构ID,t.收入项目,sum(t.金额) 金额,
|
|
321 ROW_NUMBER()over(order by t.收入项目) px into #srxm
|
|
322 from #srxmmx t
|
|
323 group by t.结算机构ID,t.收入项目
|
|
324
|
|
325 select 收入项目,金额,px into #a from #srxm t where t.px%4=1
|
|
326 select 收入项目,金额,px into #b from #srxm t where t.px%4=2
|
|
327 select 收入项目,金额,px into #c from #srxm t where t.px%4=3
|
|
328 select 收入项目,金额,px into #d from #srxm t where t.px%4=0
|
|
329
|
|
330
|
|
331 select jg.机构ID into #jg
|
|
332 from bas_机构 jg
|
|
333 where jg.机构ID=${统计机构}
|
|
334
|
|
335 ]]>
|
|
336 </with>
|
|
337
|
|
338
|
|
339 <where>
|
|
340 <![CDATA[
|
|
341
|
|
342 ]]>
|
|
343 </where>
|
|
344
|
|
345 <groups>
|
|
346 <group>
|
|
347 <group-col id="分类" field-id="分类" width="120" span="true" span-dep-col-id="分类"/>
|
|
348 <group-col id="列1" field-id="列1" width="120" />
|
|
349 <group-col id="列1值" field-id="列1值" width="80" />
|
|
350 <group-col id="列2" field-id="列2" width="170"/>
|
|
351 <group-col id="列2值" field-id="列2值" width="125"/>
|
|
352 <group-col id="列3" field-id="列3" width="120"/>
|
|
353 <group-col id="列3值" field-id="列3值" width="80"/>
|
|
354 <group-col id="列4" field-id="列4" width="120"/>
|
|
355 <group-col id="列4值" field-id="列4值" width="80" />
|
|
356 </group>
|
|
357 </groups>
|
|
358
|
|
359 </report> |