放疗设备的软件缺陷 (Therac-25):一台更省事的医疗设备,为什么会在软件上反复造成同一类事故?
当安全交给软件,软件的缺陷就变成了病人的剂量
放疗设备的软件缺陷 (Therac-25):巅峰期医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用;终局是软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写。
医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用
软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写
2,916 票参与
1 方案 · 1 见解
投稿会先进入待审,通过后才进入公开目录和站点地图。
核心败因全民归因公投
投票选择您认为导致该企业/项目最终死亡的最核心死穴,认同即可实时投票计入权重
用软件替代硬件安全联锁
安全功能从独立的物理机制变为同一套代码的一部分,缺陷可同时影响功能与防护
软件测试未覆盖并发与时序场景
竞态条件在常规测试中难以复现,导致问题长期未被发现
事故反馈与信息共享机制缺失
不同医院之间缺少统一的上报渠道,早期事故被当作个案处理
召回与诉讼成本巨大
设备停用、召回与赔偿造成重大损失,也影响整个行业的信任
时间线:从高峰到终局
设备上市与推广
设备以软件控制替代硬件联锁,操作更简便,在医院中得到较广泛采用
多起过量照射事故
不同医院陆续发生严重过量照射,患者出现严重损伤,事故原因一度被归咎于操作失误
问题被集中报告与调查
多起事故被集中报告后引发调查,软件竞态条件与安全联锁缺失被确认为事故主因
召回与标准重写
设备被要求停用与召回,厂商面临诉讼,医疗设备软件的开发与监管标准随后被系统修订
四大维度全景复盘剖析
发展背景与全盛期基石
设备在设计中用软件控制取代了早期型号的硬件联锁装置,理由是软件更灵活、操作更简便;同时设备进入市场时,医疗软件在开发流程与安全验证上的行业标准尚不完善,厂商对软件可能出现的并发与时序问题缺少系统性的分析手段巅峰期的成绩单是:医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用。此时的它拥有渠道、品牌与资本的合力,看起来没有任何理由会输。
致命转折点的战略误判
软件在快速操作下会出现竞态条件,使机器在特定输入顺序下进入错误的运行模式,导致患者接受远超处方剂量的照射;多起事故发生后,医院与厂商之间的信息反馈迟缓,直到问题被集中报告才引发全面调查,设备被召回,多名患者死亡,行业被迫重写医疗设备软件的标准早期为了速度堆起来的技术债没有及时偿还,等到业务规模翻倍,系统已经无法支撑新场景,重构又意味着停掉增长,只能一路将就。
内部组织文化与盲目傲慢
工程团队疲于救火与打补丁,优秀工程师流失,剩下的人只能用更低效的方式维持系统运转,形成恶性循环。
轰然倒塌的崩盘推演
软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写。放疗设备的软件缺陷 (Therac-25)的结局不是某一次意外,而是上面这些判断在数年里不断叠加、又始终没有被纠正的必然结果。
商业落地避坑实操法则
以血淋淋的商业代价淬炼出的创业与经营行动准则(DOs & DONTs)
安全功能应当在软件之外保留独立防线
把「软件失效时谁来兜底」当作设计问题,而不是实现细节。
- •为安全关键功能保留独立于软件的防护机制
- •对并发与时序场景做专门测试
- •不要用软件替代所有硬件安全措施
- •不要把同类事故当作个案处理
绝地求生模拟器:如果你是当时的CEO,在关键转折点该如何挽狂澜于既倒?
历史不可更改,但思维可以淬炼。针对核心转折点,提出手术刀式改革方案与资源调配破局法,交由全网创业者与投资人可行度公投。
先把独立安全防线补回来,再谈设备可用性
关键干预时点:1986 年多起事故被集中报告、软件竞态条件被确认为主因时
- •停止在无独立安全联锁的情况下继续使用设备
- •停止把事故归因于操作失误
- •停止依赖常规测试覆盖并发场景
- •为安全关键功能恢复独立防护机制
- •对时序与并发场景做专门建模与测试
- •建立统一的设备事故上报与信息共享机制
设备已造成患者伤害,处置须与医院和监管机构协同。
设备具备独立的失效防护,同类风险在设计与验证阶段被覆盖。
行家深度复盘见解
来自创业者、投资人、前员工和行业专家的真实第一手复盘反思
设备的旧型号有独立的硬件联锁,即使操作有误也不会输出超量剂量;新型号为了操作便利,把这些防护改由软件承担,结果当操作员用熟练的高速节奏输入指令时,软件会进入一个未预期的分支,界面显示的是正常状态,实际的束流却是过量的。这类竞态条件的可怕之处在于它难以复现:同样操作十次可能九次都正常,而错误的那一次没有规律。加上事故早期分散在不同医院、上报渠道不统一,问题被拖延了很久才被集中发现。此后,医疗设备软件被纳入更严格的监管与验证体系,代价是几位患者的生命。
安全设计的原则是「纵深防御」:任何单一环节都可能是那个出错的环节。
商业复盘与避坑备忘录 · 放疗设备的软件缺陷 (Therac-25)
一台更省事的医疗设备,为什么会在软件上反复造成同一类事故?
# 商业复盘备忘录:放疗设备的软件缺陷 (Therac-25) > 一台更省事的医疗设备,为什么会在软件上反复造成同一类事故? > 周期: 1983 - 1987 | 行业: 医疗与健康 > 巅峰: 医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用 > 终局: 软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写 ## 核心概览 当安全交给软件,软件的缺陷就变成了病人的剂量。巅峰期医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用;终局是软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写。 ## 社区公投头号死因 1. [产品技术] 用软件替代硬件安全联锁 (959 票) 2. [组织管理] 软件测试未覆盖并发与时序场景 (806 票) 3. [外部合规] 事故反馈与信息共享机制缺失 (652 票) ## 可执行教训 ### 安全功能应当在软件之外保留独立防线 > 把「软件失效时谁来兜底」当作设计问题,而不是实现细节。 - ✅ 推荐做 (DOs): - 为安全关键功能保留独立于软件的防护机制 - 对并发与时序场景做专门测试 - ❌ 绝不能做 (DON'Ts): - 不要用软件替代所有硬件安全措施 - 不要把同类事故当作个案处理 ## 救亡方案 ### 先把独立安全防线补回来,再谈设备可用性 — 良略编辑部 干预时点: 1986 年多起事故被集中报告、软件竞态条件被确认为主因时 - 必须断腕: - 停止在无独立安全联锁的情况下继续使用设备 - 停止把事故归因于操作失误 - 停止依赖常规测试覆盖并发场景 - 破局动作: - 为安全关键功能恢复独立防护机制 - 对时序与并发场景做专门建模与测试 - 建立统一的设备事故上报与信息共享机制 - 预期结果: 设备具备独立的失效防护,同类风险在设计与验证阶段被覆盖。 ## 社区见解 ### 这批事故最沉重的地方在于:医院一开始以为是自己操作错了,而事实是软件在特定节奏下会忽略安全设置。 — 良略编辑部 (工程师) 设备的旧型号有独立的硬件联锁,即使操作有误也不会输出超量剂量;新型号为了操作便利,把这些防护改由软件承担,结果当操作员用熟练的高速节奏输入指令时,软件会进入一个未预期的分支,界面显示的是正常状态,实际的束流却是过量的。这类竞态条件的可怕之处在于它难以复现:同样操作十次可能九次都正常,而错误的那一次没有规律。加上事故早期分散在不同医院、上报渠道不统一,问题被拖延了很久才被集中发现。此后,医疗设备软件被纳入更严格的监管与验证体系,代价是几位患者的生命。 - 如果重来一次的纠偏招式 安全设计的原则是「纵深防御」:任何单一环节都可能是那个出错的环节。 --- 来源: 良略 · https://www.lianglue.com/c/therac-25