放疗设备的软件缺陷 (Therac-25):一台更省事的医疗设备,为什么会在软件上反复造成同一类事故?
当安全交给软件,软件的缺陷就变成了病人的剂量
放疗设备的软件缺陷 (Therac-25):巅峰期医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用;终局是软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写。
医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用
软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写
2,916 votes cast
1 plans · 1 insights
投稿会先进入待审,通过后才进入公开目录和站点地图。
Root Causes Consensus Poll
Vote for the primary fatal error that caused this enterprise to collapse.
用软件替代硬件安全联锁
安全功能从独立的物理机制变为同一套代码的一部分,缺陷可同时影响功能与防护
软件测试未覆盖并发与时序场景
竞态条件在常规测试中难以复现,导致问题长期未被发现
事故反馈与信息共享机制缺失
不同医院之间缺少统一的上报渠道,早期事故被当作个案处理
召回与诉讼成本巨大
设备停用、召回与赔偿造成重大损失,也影响整个行业的信任
Timeline: peak to collapse
设备上市与推广
设备以软件控制替代硬件联锁,操作更简便,在医院中得到较广泛采用
多起过量照射事故
不同医院陆续发生严重过量照射,患者出现严重损伤,事故原因一度被归咎于操作失误
问题被集中报告与调查
多起事故被集中报告后引发调查,软件竞态条件与安全联锁缺失被确认为事故主因
召回与标准重写
设备被要求停用与召回,厂商面临诉讼,医疗设备软件的开发与监管标准随后被系统修订
Four-Dimensional Retrospective Breakdown
Background & Golden Era
设备在设计中用软件控制取代了早期型号的硬件联锁装置,理由是软件更灵活、操作更简便;同时设备进入市场时,医疗软件在开发流程与安全验证上的行业标准尚不完善,厂商对软件可能出现的并发与时序问题缺少系统性的分析手段巅峰期的成绩单是:医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用。此时的它拥有渠道、品牌与资本的合力,看起来没有任何理由会输。
Fatal Turning Point Miscalculation
软件在快速操作下会出现竞态条件,使机器在特定输入顺序下进入错误的运行模式,导致患者接受远超处方剂量的照射;多起事故发生后,医院与厂商之间的信息反馈迟缓,直到问题被集中报告才引发全面调查,设备被召回,多名患者死亡,行业被迫重写医疗设备软件的标准早期为了速度堆起来的技术债没有及时偿还,等到业务规模翻倍,系统已经无法支撑新场景,重构又意味着停掉增长,只能一路将就。
Internal Culture & Bureaucratic Hubris
工程团队疲于救火与打补丁,优秀工程师流失,剩下的人只能用更低效的方式维持系统运转,形成恶性循环。
The Collapse & Aftermath
软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写。放疗设备的软件缺陷 (Therac-25)的结局不是某一次意外,而是上面这些判断在数年里不断叠加、又始终没有被纠正的必然结果。
Battle-Tested Actionable Survival Rules
Distilled practical DOs and DONTs forged from costly corporate catastrophes.
安全功能应当在软件之外保留独立防线
把「软件失效时谁来兜底」当作设计问题,而不是实现细节。
- •为安全关键功能保留独立于软件的防护机制
- •对并发与时序场景做专门测试
- •不要用软件替代所有硬件安全措施
- •不要把同类事故当作个案处理
Revival Simulation: If you were the CEO at the inflection point, how would you save it?
History cannot be rewritten, but executive decision-making can be honed. Propose decisive divestitures and strategic bets, and let entrepreneurs & VCs vote on feasibility.
先把独立安全防线补回来,再谈设备可用性
Critical intervention point:1986 年多起事故被集中报告、软件竞态条件被确认为主因时
- •停止在无独立安全联锁的情况下继续使用设备
- •停止把事故归因于操作失误
- •停止依赖常规测试覆盖并发场景
- •为安全关键功能恢复独立防护机制
- •对时序与并发场景做专门建模与测试
- •建立统一的设备事故上报与信息共享机制
设备已造成患者伤害,处置须与医院和监管机构协同。
设备具备独立的失效防护,同类风险在设计与验证阶段被覆盖。
Expert Post-Mortem Insights
Firsthand diagnostic analyses from entrepreneurs, VCs, alumni, and analysts.
设备的旧型号有独立的硬件联锁,即使操作有误也不会输出超量剂量;新型号为了操作便利,把这些防护改由软件承担,结果当操作员用熟练的高速节奏输入指令时,软件会进入一个未预期的分支,界面显示的是正常状态,实际的束流却是过量的。这类竞态条件的可怕之处在于它难以复现:同样操作十次可能九次都正常,而错误的那一次没有规律。加上事故早期分散在不同医院、上报渠道不统一,问题被拖延了很久才被集中发现。此后,医疗设备软件被纳入更严格的监管与验证体系,代价是几位患者的生命。
安全设计的原则是「纵深防御」:任何单一环节都可能是那个出错的环节。
Business Post-Mortem Memo · 放疗设备的软件缺陷 (Therac-25)
一台更省事的医疗设备,为什么会在软件上反复造成同一类事故?
# Business Post-Mortem Memo:放疗设备的软件缺陷 (Therac-25) > 一台更省事的医疗设备,为什么会在软件上反复造成同一类事故? > Period: 1983 - 1987 | Industry: Healthcare & Biotech > Peak: 医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用 > Final: 软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写 ## Overview 当安全交给软件,软件的缺陷就变成了病人的剂量。巅峰期医疗设备厂商推出的放射治疗设备,以软件控制替代了大量硬件安全措施,因操作更简便而在医院中被广泛采用;终局是软件缺陷导致多起严重过量照射事故,多名患者死亡或受伤,设备被召回停用,医疗设备软件的开发与监管标准因此被永久改写。 ## Top-voted root causes 1. [Product & Tech] 用软件替代硬件安全联锁 (959 votes) 2. [Org & Culture] 软件测试未覆盖并发与时序场景 (806 votes) 3. [Legal & Compliance] 事故反馈与信息共享机制缺失 (652 votes) ## Actionable lessons ### 安全功能应当在软件之外保留独立防线 > 把「软件失效时谁来兜底」当作设计问题,而不是实现细节。 - ✅ DOs: - 为安全关键功能保留独立于软件的防护机制 - 对并发与时序场景做专门测试 - ❌ DON'Ts: - 不要用软件替代所有硬件安全措施 - 不要把同类事故当作个案处理 ## Revival plans ### 先把独立安全防线补回来,再谈设备可用性 — 良略编辑部 Intervention: 1986 年多起事故被集中报告、软件竞态条件被确认为主因时 - Must cut: - 停止在无独立安全联锁的情况下继续使用设备 - 停止把事故归因于操作失误 - 停止依赖常规测试覆盖并发场景 - Breakthrough moves: - 为安全关键功能恢复独立防护机制 - 对时序与并发场景做专门建模与测试 - 建立统一的设备事故上报与信息共享机制 - Expected outcome: 设备具备独立的失效防护,同类风险在设计与验证阶段被覆盖。 ## Community insights ### 这批事故最沉重的地方在于:医院一开始以为是自己操作错了,而事实是软件在特定节奏下会忽略安全设置。 — 良略编辑部 (工程师) 设备的旧型号有独立的硬件联锁,即使操作有误也不会输出超量剂量;新型号为了操作便利,把这些防护改由软件承担,结果当操作员用熟练的高速节奏输入指令时,软件会进入一个未预期的分支,界面显示的是正常状态,实际的束流却是过量的。这类竞态条件的可怕之处在于它难以复现:同样操作十次可能九次都正常,而错误的那一次没有规律。加上事故早期分散在不同医院、上报渠道不统一,问题被拖延了很久才被集中发现。此后,医疗设备软件被纳入更严格的监管与验证体系,代价是几位患者的生命。 - Alternative Move if Replayed 安全设计的原则是「纵深防御」:任何单一环节都可能是那个出错的环节。 --- Source: 良略 · https://www.lianglue.com/c/therac-25