IEC 62304:医疗器械软件生命周期过程

全球医疗器械软件安全开发与维护标准的全面解读

IEC 62304于2006年首次发布,2015年修订,是全球公认的医疗器械软件生命周期过程标准。该标准建立了医疗器械软件安全设计、开发和维护所需的活动和任务框架,无论软件是嵌入在硬件设备中,还是作为独立软件医疗器械(SaMD)。对于进入医疗技术领域的工程师而言,理解IEC 62304是进入几乎所有市场的监管先决条件,包括欧盟医疗器械法规、美国FDA 510(k)和PMA、加拿大、日本和澳大利亚。

IEC 62304适用于所有医疗器械软件——从控制胰岛素泵的固件(C级,最高风险)到医院患者管理应用程序(A级,最低风险)。该标准与ISO 13485(质量管理)和ISO 14971(风险管理)协调一致,构成医疗器械软件工程的监管”三大支柱”。

软件安全分级及其工程影响

该标准引入了三级软件安全分级体系,决定了所需开发过程的严格程度。A级——不可能对健康造成伤害或损害(例如患者预约排程软件)。B级——可能造成非严重伤害(例如带有手动超控功能且不能超过硬编码限值的药物剂量计算器)。C级——可能导致死亡或严重伤害(例如呼吸机控制软件、输液泵算法、放射治疗计划系统)。

关键的工程见解是,安全等级是从整体设备风险逐层向下传递的。例如,呼吸机中读取传感器的软件组件因其上下文关系被定为C级,尽管单独读取传感器本身是无害的活动。标准规定,如果软件系统中任何功能属于C级,则整个软件系统必须按照C级严格程度进行开发——但有一个重要的例外:那些不可能导致危险情况的软件项在明确证明并记录在软件安全计划中后,可维持较低级别。这种”降级”需要有充分的证据表明该软件项确实不可能造成伤害,包括可追溯至系统级风险分析的证明。

IEC 62304 软件安全分级概要
等级 伤害严重程度 所需开发活动 设备示例
A 不可能造成伤害 仅需文档化软件维护过程 患者排程、计费软件
B 可能造成非严重伤害 A级所有内容 + 需求分析、架构设计、单元验证、集成测试、问题解决 无创血压监测仪、带提醒功能的药丸分配器
C 可能导致死亡或严重伤害 B级所有内容 + 详细设计文档、覆盖率分析的单元测试、软件变更影响分析、严格追溯 呼吸机、输液泵、除颤器、放射治疗软件
首次实施者最常见的错误是低估了C级软件的可追溯性负担。每个软件需求必须可追溯至:(1)系统需求或风险分析的来源,(2)实现该需求的架构组件,(3)验证该需求的单元测试,(4)确认该需求的集成测试,以及(5)影响该需求的异常报告。这种五向追溯的维护并非易事,需要从一开始就建立强大的工具链。

软件生命周期过程与工程设计要点

IEC 62304规定了源自ISO/IEC 12207但专门针对医疗器械安全性进行了调整的定义明确的软件开发过程。核心过程包括:软件开发规划、软件需求分析、软件架构设计、软件详细设计(仅C级)、软件单元实现和验证、软件集成和集成测试、以及软件系统测试。每个过程阶段都需要特定的输出文档,标准明确规定了每个安全等级需要哪些输出。

一个关键的工程挑战是未知来源软件管理的要求。SOUP是指那些未在受控的医疗器械软件过程下开发的第三方软件组件——操作系统、库、通信协议栈等。IEC 62304要求制造商识别SOUP,确定其异常风险等级,并应用适当的风险缓解措施。例如,输液泵中的实时操作系统必须评估已知异常,泵软件必须证明没有SOUP异常会导致不可接受的危险情况。SOUP管理过程经常被引为IEC 62304合规中最具挑战性的方面之一,特别是在涉及开源库时。制造商需要建立SOUP清单,持续跟踪已知的安全漏洞和异常报告,并制定风险接受标准以确定哪些SOUP异常需要采取纠正措施。

一个结构良好的C级医疗软件单元测试套件应实现行覆盖率超过90%、分支覆盖率超过80%,并且对最关键的安全功能实现MC/DC覆盖率。许多监管机构期望对实现安全关键逻辑的软件(如放射治疗中的剂量计算算法或呼吸机中的送气逻辑)进行MC/DC覆盖率分析。这种级别的覆盖严格性需要从项目启动之初就将自动化测试框架集成到构建流水线中。

软件维护过程同样重要。在初始市场发布后,IEC 62304要求建立上市后监督系统,将异常报告反馈到开发过程中。每个异常必须评估其安全影响,如果需要对软件进行变更,则变更必须遵循规定的变更控制过程,包括影响分析、重新验证和回归测试。标准规定,对C级软件的变更必须接受与原始开发相同水平的审查,包括重新执行所有受影响的单元测试、集成测试和系统级验证活动。2015年修订版明确说明已上市的软件更新(包括安全补丁)受相同过程约束,这堵住了先前允许上市后变更绕过正式验证的漏洞。

按软件安全等级划分的最低文档要求
文档/活动 A级 B级 C级
软件开发计划 建议 必需 必需
软件需求规格说明 必需 必需
软件架构文档 必需 必需
软件详细设计 必需
单元验证结果 必需 必需(含覆盖率)
集成测试计划和结果 必需 必需
系统测试计划和结果 必需 必需
问题解决报告 必需 必需 必需
软件变更影响分析 必需 必需
风险管理文件(依据ISO 14971) 必需 必需
问1:IEC 62304能否应用于基于AI/ML的医疗器械?
答:现行版本未明确涉及自适应AI/ML算法。但对于锁定的AI/ML算法(上市后不变化),监管机构正在基于标准的风险框架进行解释。对于持续学习型算法,IEC 62304的变更管理过程存在挑战,IMDRF和AAMI正在制定相应的指导文件。预计2026-2027年发布的新版IEC 62304将包含针对AI/ML生命周期管理的具体条款。
问2:IEC 62304与FDA软件验证指南的关系是什么?
答:FDA认可IEC 62304作为共识标准,符合IEC 62304被视为满足FDA软件验证要求。完全符合IEC 62304的制造商可以预期更顺利的510(k)和PMA审查。
问3:IEC 62304中的单元验证与单元测试有何不同?
答:单元验证范围更广,包括单元测试(动态执行代码)、代码审查、静态分析和正式审查方法。标准要求对B级和C级软件进行单元验证,但不规定任何特定的技术组合。实用的方法是对所有单元使用静态分析,对关键单元进行代码审查,对C级单元进行带覆盖率测量的动态单元测试。
问4:软件文档需要保留多长时间?
答:通常要求保留至设备的整个生命周期再加上一个规定的期限。对于植入式设备,保留期可延长至20年以上。文档的归档方式必须在整个保留期内保持可读和可访问。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注