开发手术室管理工具:基于已排手术时长识别下一个可用日
手术室可用手术日计算方案
核心逻辑
按日期顺序累计每日剩余手术容量,当累计值≥待安排手术总时长时,对应的日期即为下一个可用手术日。
表格工具(如Excel)实现步骤
构建基础数据表格
包含以下列:日期、当日总容量、已预约时长、剩余容量、累计剩余容量- 剩余容量计算公式:
=当日总容量列 - 已预约时长列(例:=B2-C2) - 累计剩余容量计算公式:从当日开始逐行累加剩余容量(例:第一行
=D2,后续行=D3+E2)
- 剩余容量计算公式:
设置待安排时长参数
在表格空白单元格(如F1)输入待安排的总手术时长(例:16)标记可用日期并提取结果
- 新增“可用标记”列,公式:
=IF(E2>=F$1,A2,"")(判断当日累计剩余容量是否满足需求,满足则返回日期) - 提取第一个可用日期,公式:
=INDEX(A:A,MATCH(TRUE,E:E>=F$1,0))
- 新增“可用标记”列,公式:
示例表格
| 日期 | 总容量 | 已预约时长 | 剩余容量 | 累计剩余容量 |
|---|---|---|---|---|
| 周二 | 8 | 0 | 8 | 8 |
| 周三 | 4 | 0 | 4 | 12 |
| 周四 | 8 | 0 | 8 | 20 |
待安排时长为16时,累计到周四的剩余容量达20≥16,因此下一个可用日为周四。
自定义工具代码实现思路
如果是自主开发的管理工具,可通过以下逻辑实现:
- 定义每日容量数据结构:存储日期、当日总容量、已预约时长
- 按日期升序遍历数据,计算每日剩余容量并累加
- 当累计剩余容量≥待安排总时长时,返回当前日期
伪代码示例
def get_next_available_day(required_hours, daily_schedule): accumulated = 0 # daily_schedule 格式:[(日期, 总容量, 已预约时长), ...],按日期排序 for date, total_cap, booked_hours in daily_schedule: remaining = total_cap - booked_hours accumulated += remaining if accumulated >= required_hours: return date return None # 所有日期累计容量不足时返回空
内容的提问来源于stack exchange,提问作者Ryan Kerstein
相关产品推荐
相关产品推荐

