select t.住院号,
t.姓名,
t.病人id,
t.主页id,
decode(t.转入前科室,t.入科,null,t.转入前科室) 转入前科室,
t.入科时间,
t.入科,
t.出科时间,
case
when t.转出后科室 is not null then
(select 名称 from 部门表 where id = t.转出后科室)
end 转出后科室,
t.科内费用
from (select h.住院号,
h.姓名,
m.病人id,
m.主页id,
n.终止时间 入科时间,
(select 名称 from 部门表 where id = n.科室id) 转入前科室,
(select 名称 from 部门表 where id = m.科室id) 入科,
(select sum(f.实收金额)
from 住院费用记录 f
where f.病人id = m.病人id
and f.主页id = m.主页id
and f.记录状态 = 1
and f.病人科室id = m.科室id
and (f.发生时间 >= n.终止时间 and f.发生时间 <= m.终止时间 or
f.登记时间 >= n.终止时间 and f.登记时间 <= m.终止时间)) 科内费用,
m.终止时间 出科时间,
LEAD(m.科室id) OVER(PARTITION BY m.病人id, m.主页id ORDER BY n.终止时间) 转出后科室
from (select x.*,
RANK() OVER(PARTITION BY x.病人id, x.主页id ORDER BY rownum) as 序号
from (select q.病人id,
q.主页id,
a.开始原因,
科室id,
终止时间,
终止原因
from 病案主页 q, 病人变动记录 a
where (开始原因 = 1 or 终止原因 in (1, 3))
and q.病人id = a.病人id
and q.主页id = a.主页id
and q.出院日期 between
/*B0*/TO_DATE('2020-09-01 00:00:00','YYYY-MM-DD HH24:MI:SS')/*E0*/ and /*B1*/TO_DATE('2023-09-30 23:59:59','YYYY-MM-DD HH24:MI:SS')/*E1*/
And q.出院科室id is not null
and exists (select 1
from 病人变动记录 k
where k.病人id = a.病人id
and k.主页id = a.主页id
and (k.开始原因=3 or k.终止原因 = 3)
--and k.科室id = 343
)
order by 开始时间, 开始原因) x) m,
(select x.*,
RANK() OVER(PARTITION BY x.病人id, x.主页id ORDER BY rownum) + 1 as 序号
from (select q.病人id,
q.主页id,
a.开始原因,
科室id,
终止时间,
终止原因
from 病案主页 q, 病人变动记录 a
where (开始原因 = 1 or 终止原因 in (1, 3))
and q.病人id = a.病人id
and q.主页id = a.主页id
and q.出院日期 between /*B0*/TO_DATE('2020-09-01 00:00:00','YYYY-MM-DD HH24:MI:SS')/*E0*/ and /*B1*/TO_DATE('2023-09-30 23:59:59','YYYY-MM-DD HH24:MI:SS')/*E1*/
And q.出院科室id is not null
and exists (select 1
from 病人变动记录 k
where k.病人id = a.病人id
and k.主页id = a.主页id
and (k.开始原因=3 or k.终止原因 = 3)
--and k.科室id = 343
)
order by 开始时间, 开始原因) x) n,
病案主页 h
where m.序号 = n.序号
and m.病人id = n.病人id
and m.主页id = n.主页id
and m.病人id = h.病人id
and m.主页id = h.主页id) t
--where t.入科 = 'ICU室'
order by t.病人id, t.主页id, t.入科时间
病人转科前转科后及科内费用
于 2023-10-20 15:00:46 首次发布