----出院患者占用总床日数、普通床位使用率、ICU床位使用率、专科ICU床位使用率
select m.名称 科室,m.出院占用总床日,round(m1.总住院日/(n.现有床位数*m.时间范围天数)*100,1)||'%' 床位使用率 from (
select 名称,当前病区id,
count(主页id) as 总计,
sum(出院占用床日) As 出院占用总床日,
trunc( /*B1*/TO_DATE('2024-03-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS') /*E1*/) -
trunc( /*B0*/TO_DATE('2024-03-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') /*E0*/) + 1 as 时间范围天数
from (select V_病区id as 当前病区id,
null as 主页ID,
V_天数 As 出院占用床日
from table(ZL_WBY_Pak_Get病人住院天数.Zl_Wby_Fun病人住院天数( /*B0*/TO_DATE('2024-03-01 00:00:00','YYYY-MM-DD HH24:MI:SS') /*E0*/, /*B1*/ TO_DATE('2024-03-31 23:59:59','YYYY-MM-DD HH24:MI:SS') /*E1*/))
union all
select 当前病区id, 主页ID, 0 As 出院占用床日
from 病案主页
where 出院日期 between /*B0*/
TO_DATE('2024-03-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') /*E0*/
and /*B1*/
TO_DATE('2024-03-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS') /*E1*/
and 病人id || 主页id not in ('8810961', '10464982')),
部门表
where 当前病区id = id
group by 当前病区id,名称) m,
(select 当前病区id,nvl(sum(decode(to_date(出院日期, 'yyyy-mm-dd') -
to_date(入院日期, 'yyyy-mm-dd'),
0,
1,
to_date(出院日期, 'yyyy-mm-dd') -
to_date(入院日期, 'yyyy-mm-dd'))),0)as 总住院日
from (select 病人id,
主页id,当前病区id,
case
when 入院日期 <
/*B0*/TO_DATE('2024-03-01 00:00:00','YYYY-MM-DD HH24:MI:SS')/*E0*/ then
to_char(/*B0*/TO_DATE('2024-03-01 00:00:00','YYYY-MM-DD HH24:MI:SS')/*E0*/,
'yyyy-mm-dd')
else
to_char(入院日期, 'yyyy-mm-dd')
end as 入院日期,
case
when nvl(出院日期, sysdate) >
/*B1*/TO_DATE('2024-03-31 23:59:59','YYYY-MM-DD HH24:MI:SS')/*E1*/ then
to_char(/*B1*/TO_DATE('2024-03-31 23:59:59','YYYY-MM-DD HH24:MI:SS')/*E1*/,
'yyyy-mm-dd')
else
to_char(出院日期, 'yyyy-mm-dd')
end as 出院日期
from 病案主页
where 入院日期 <
/*B1*/TO_DATE('2024-03-31 23:59:59','YYYY-MM-DD HH24:MI:SS')/*E1*/
and nvl(出院日期, sysdate) >
/*B0*/TO_DATE('2024-03-01 00:00:00','YYYY-MM-DD HH24:MI:SS')/*E0*/
and 出院病床 is not null and 病人id||主页id not in ('8810961' ,'10464982')
and 主页id <> 0)
group by 当前病区id) m1,
(
select 病区id, 床位数 as 现有床位数
from 床位状况记录_统计
where 病区id not in
(select id
from 部门表
where 建档时间 > /*B1*/
TO_DATE('2024-03-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS') /*E1*/
or 撤档时间 < /*B0*/
TO_DATE('2024-03-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') /*E0*/
)
) n
where m.当前病区id=n.病区id
and m.当前病区id=m1.当前病区id
union all
select 科室,天数,round(天数/(床位数*时间范围天数)*100,2)||'%' 床位使用率 from(
select 'NICU' 科室,
decode(sum(trunc(t.出科时间)-trunc(t.入科时间)),0,1,sum(trunc(t.出科时间)-trunc(t.入科时间))) 天数,
trunc( /*B1*/TO_DATE('2024-03-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS') /*E1*/) -
trunc( /*B0*/TO_DATE('2024-03-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') /*E0*/) + 1 as 时间范围天数,t1.床位数
from (select h.住院号,
h.姓名,
m.病人id,
m.主页id,
n.终止时间 入科时间,
(select 名称 from 部门表 where id = n.科室id) 转入前科室,
(select 名称 from 部门表 where id = m.科室id) 入科,
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 a.附加床位<>1
and q.出院日期 between
/*B0*/TO_DATE('2024-03-01 00:00:00','YYYY-MM-DD HH24:MI:SS')/*E0*/ and /*B1*/TO_DATE('2024-03-31 23:59:59','YYYY-MM-DD HH24:MI:SS')/*E1*/
And q.出院科室id is not null
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 a.附加床位<>1
and q.出院日期 between /*B0*/TO_DATE('2024-03-01 00:00:00','YYYY-MM-DD HH24:MI:SS')/*E0*/ and /*B1*/TO_DATE('2024-03-31 23:59:59','YYYY-MM-DD HH24:MI:SS')/*E1*/
And q.出院科室id is not null
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,
(select count(*) 床位数 from 床位状况记录 where 病区id=255 and 床号 between 60 and 70 and 状态<>'修缮'
) t1
where t.入科 = '儿二科'
and 床号 between 60 and 70
group by t1.床位数 )