免疫检查点抑制剂(ICI)是临床上的重大进展,但在医院运营视角下,它把输注中心变成了一个典型的复杂系统: 随机到达 + 随机服务时长 + 多站点串联 + 多资源并发 + 低概率高冲击风险事件(irAE)。 如果你只靠经验改流程,常常会陷入'改了这里堵了那里';而工程上更稳的方法,是用**离散事件仿真(DES)**在虚拟世界里'跑一天、一周、一年',对比策略组合,找出瓶颈与最优干预点。
这篇文章从零到一搭建一个'可跑'的 Go DES 仿真框架,并逐步扩展到免疫治疗的关键真实因素:
- 患者分型(短/长/联合输注)
- 预约模板(均匀 vs 长短错峰)
- 药房策略(按需 vs 预配)
- irAE 突发事件(分级)
- **ResusBay(抢救/留观床位)**造成的'系统挤兑':Severe 患者在输注椅上占位等待转运 → 椅位周转下降 → 全局排队雪崩 → P90/超时率恶化
1. 业务抽象:把输注中心变成'可计算的系统'
1.1 站点与路径(流程动线的图模型)
我们先从最常见的 ICI 门诊输注日路径抽象:
SignIn → Lab → Doctor → Pharmacy → Infusion → Observation → Done
这是一条典型串行路径,但注意两点:
- 串行 ≠ 简单:每个站点都有队列与资源容量(Cap),并发服务(多台'服务器')
- 真正复杂性来自 波动:到达波动(预约聚集)、服务时间波动(医生评估 irAE)、以及 突发事件(irAE → Resus)
1.2 '动线优化'在流程场景 A 中到底优化什么?
我们聚焦几个最常用 KPI:
- Avg / P90 等待时间(按站点拆分:医生/药房/输注/观察/Resus)
- Avg / P90 总逗留时间(从到达到离开)
- 超时率:例如总逗留 > 240 分钟(>4h)
- 资源利用率:药房、医生、输注椅、观察椅、Resus 床位
技术上:只优化平均值通常会误导。医疗系统最敏感的是'尾部风险'(P90/P95/超时率),因为它对应投诉、加班、延迟、与临床安全风险。
2. 为什么选离散事件仿真(DES):而不是简单排队公式
2.1 DES 的核心思想:时间只在'事件发生'时跳动
离散事件仿真把系统演化看成一串事件:
- 到达(Arrival)
- 开始服务/结束服务(ServiceDone)
- 突发事件(irAE)
- 入队事件(QueueEnter)
- 特殊释放事件(ReleaseInfusion:Severe 转入 Resus 时释放椅位)
系统时间从 t 跳到 next_event_time,因此复杂系统也能高效模拟。
2.2 为什么不直接用'每站点 M/M/c'?
因为现实里存在:
- 不同患者类别(服务时长分布不同)
- 串联系统(上一站结束才到下一站)
- 调度策略(预约模板改变到达分布)
- 优先级队列(紧急插队)
- 资源耦合(Severe 把输注椅'卡死'直到 Resus 有空)


