Therac-25是一种由加拿大原子能有限公司(AECL)于1982年开发的计算机控制辐射治疗设备,主要应用于癌症和其他疾病的放射治疗。尽管当时Therac-25在设计上突破了传统放疗设备,集成了更多的软件控制功能,提升了治疗的灵活性和效率,但其后却接连发生了多起辐射过量事故,导致患者严重伤害甚至死亡。这些事故成为软件安全和医疗设备监管领域引人深思的重要案例,揭示了软件控制系统设计疏漏可能带来的灾难性后果。Therac-25项目源于上个世纪70年代AECL与法国CGR公司的合作,后者负责早期Therac-6和Therac-20的部分软件开发。Therac-25采用了双模式加速器,能生成高能电子束与X射线治疗肿瘤,并且相较于早期产品,装备更加紧凑、功能多样。该设备使用DEC PDP-11微型计算机运行软件,且设计上放弃了部分传统的硬件安全机制,转而依赖软件系统来保证安全。
然而,正是这种将安全关键功能转移到软件上的决策,为后续的安全隐患埋下了伏笔。1985年至1987年期间,至少有六起涉及Therac-25的辐射过量事故被记录。事故通常发生在操作员快速切换治疗模式或输入指令时,软件未能及时更新设备状态,导致高电流电子束在无适当硬件阻挡的情况下直接照射患者。患者所承受的辐射剂量相当于正常治疗的数百倍,部分患者出现严重的组织坏死,甚至死亡。事故的发生揭露了多种技术问题,包括软件竞态条件、变量溢出和错误输入处理不当。此外,设备错误信息反馈机制不完善,操作员无法充分理解和迅速反应设备状态异常,误以为是可忽略的简单故障,从而导致连续错误操作。
多起事故中,操作员发现异常症状时遭到AECL职员的质疑或忽视,缺乏有效的沟通渠道和安全文化。事故调查也指出AECL的质量保证和软件验证体系存在重大缺陷,缺乏独立代码审查和集成测试,甚至软件开发人员身份和技术背景在诉讼过程中尚未完全明确。值得注意的是,Therac-25不同于其前代产品的一大特色是取消了部分硬件互锁装置,转为纯软件控制。此前的Therac-6和Therac-20通过硬件安全机制自动防止误操作带来的风险,即使软件存在缺陷也能被硬件保护抵消安全隐患。Therac-25的设计理念虽然提升了灵活性和成本效益,但也使得软件缺陷暴露无遗。事故原因之一是操作员快速切换治疗模式,由于软件响应滞后,实际运行仍处于前一模式,导致高电流电子束直接释放到患者体内。
另一情况是设备处于用于照明定位的“field light”模式时,电子束意外激活,产生致命辐射。设备自动暂停和报警功能虽有设计,但部分严重错误仅会暂停而非停止治疗,操作员习惯性使用“继续”功能,令潜在危险增大。Therac-25的事故引发业界深入反思,强调软件安全的重要性及医疗设备设计中软硬件冗余不可缺少。与此同时,也促使医疗监管机构加强对软件驱动设备的审查和许可流程,推动了IEC 62304等医疗设备软件生命周期标准的制定与推广。此次事件成为计算机伦理、健康信息学以及高可靠性软件工程课程的经典案例,警示工程师对安全关键系统不可掉以轻心,更需重视用户反馈和系统测试的全面性。软件重用虽然可提高开发效率,但Therac-25反馈表明未经充分验证的软件移植或会隐藏危险的缺陷,影响系统安全性。
多年后,研究者提出多重设计改进建议,包括增加硬件冗余、增强故障指示清晰度、设计强制安全停机机制和提升用户界面友好度等。Therac-25系列事故令人心痛的教训告诉我们,任何医疗设备的软件开发都必须以患者安全为核心,绝不能仅凭软件程序员的信心或经验轻率放松硬件安全保障。随着医疗器械智能化不断加深,软件复杂度提高,历史惨痛事故的启示依然对今天的软件工程师和医疗监管者具有极高的现实意义。强化软件验证测试、独立代码审查、严格事件报告与追踪制度,以及构建安全文化,保障每一位患者的生命安全,是当代医疗器械行业的不变承诺。如今的医疗软件开发走向成熟,正是在一次次事故和反思中不断进步。Therac-25事故值得所有技术人员和医疗健康从业者铭记,作为警示和动力,推动医疗器械行业安全法规与技术不断完善,确保类似悲剧不再重演。
。