4. 变更风险评估与风险控制

医疗软件的任何一次变更,本质上都是对已获批或已放行产品的一次“扰动”。ISO 14971 要求制造商在医疗器械全生命周期内持续识别危险、估计和评价风险、实施控制并监控剩余风险。变更场景下,这一流程不是重新做一遍完整风险分析,而是围绕“变更影响域”做增量式风险再评估:先确定变更触及了哪些功能、接口、数据和临床使用路径,再判断这些路径上原有的风险控制措施是否仍然有效,以及是否引入了新的危险源。

一、从变更影响域出发做风险分析

风险分析的起点不是直接列危险,而是先界定变更边界。以“将某输液泵嵌入式软件的剂量计算模块由单精度浮点改为定点运算”为例,变更影响域至少包括:剂量计算精度、边界值溢出行为、与上位机通信的数据格式、报警阈值判断逻辑、以及历史配置数据的兼容性。只有把这些受影响对象列清楚,后续的危险识别才有落点。

在 ISO 14971 的框架下,风险分析通常按“危险 → 可预见的事件序列 → 伤害”展开。对上述变更,可识别的危险包括:定点运算截断导致剂量偏低或偏高、溢出导致计算值回绕、通信格式变化导致上位机解析错误、报警阈值因精度变化而延迟触发。每个危险都要给出发生概率 P1(危险出现概率)和 P2(导致伤害的概率),以及伤害严重度 S,再按企业风险可接受准则判定风险等级。

示例参数(教学假设,非实测):某企业风险矩阵将严重度分为 S1 可忽略、S2 轻微、S3 严重、S4 危重;概率分为 P1 极低、P2 低、P3 中、P4 高。风险等级 R = S × P,R ≤ 4 为可接受,5~8 为 ALARP(合理可行最低),≥ 9 为不可接受。

二、变更引入的新风险识别

变更引入的新风险往往不在原风险分析清单里,需要专门识别。常用手段有三种:一是差异分析,逐条比对变更前后代码、接口、数据流和用户操作路径;二是失效模式推演,针对变更点做 FMEA,重点看新引入的失效模式;三是场景回溯,把变更放回真实临床使用场景中,看是否产生新的误用或使用错误。

仍以剂量计算模块为例,定点运算引入的新风险包括:舍入方向不一致导致同一处方在不同版本间结果不同;定点标度选择不当导致小剂量区间分辨率不足;溢出保护逻辑若未覆盖负值,可能产生反向剂量。这些风险在原浮点实现中并不存在,必须作为新增条目纳入风险清单,并重新评价其风险等级。

变更风险再评估闭环(ISO 14971 增量应用) 变更输入 剂量模块浮点→定点 影响域:精度/溢出/通信 风险分析 危险→事件序列→伤害 P1/P2/S → 风险等级 R 新风险识别 差异分析 / FMEA / 场景回溯 舍入、标度、溢出保护 风险控制 设计/防护/信息 验证控制有效性 剩余风险评价 控制后 R 是否可接受 ALARP 判定与记录 受益-风险分析 临床受益 vs 剩余风险 是否整体可接受 风险 可接受? 不可接受:追加控制措施 / 重新设计 / 限制使用 变更风险再评估输出 更新风险管理文件 · 控制措施验证记录 · 受益-风险结论 · 上市后监控计划 输入/输出 分析与评价 新风险与受益-风险 风险控制 决策与反馈

三、风险控制措施的选择与验证

ISO 14971 要求风险控制按优先级选择:首先通过设计消除危险,其次在危险源或伤害路径上加防护,最后才是安全信息(标签、说明书、培训)。对剂量计算变更,设计层面的控制包括:采用带饱和保护的定点运算、统一舍入规则、增加计算结果的合理性区间校验;防护层面的控制包括:在剂量超出预设上下限时触发独立报警、在通信层增加校验和与版本标识;信息层面的控制包括:在说明书中明确新版本的剂量分辨率与适用场景。

控制措施必须验证有效性。验证不是“代码评审通过”就算完成,而是要有可观察的证据。例如,针对溢出保护,可构造边界输入:最大处方剂量、最小非零剂量、负值输入、标度临界值,观察输出是否落在安全区间并触发预期报警。验证记录应包含输入条件、预期输出、实际输出和判定结论,作为风险管理文件的附件。

四、剩余风险评价与受益-风险分析

控制措施实施后,要重新估计剩余风险。若剩余风险仍处于 ALARP 区间,需要说明为何进一步控制不可行或成本不成比例;若剩余风险不可接受,则必须回到控制措施选择环节,追加或重新设计控制。只有当剩余风险可接受,或经受益-风险分析确认临床受益大于剩余风险时,变更才能进入放行评审。

受益-风险分析不是一句“收益大于风险”的结论,而是要有可追溯的论证。对剂量计算变更,受益可包括:计算速度提升、资源占用降低、在低端硬件上可用性增强;风险可包括:极端剂量下的舍入偏差、报警延迟。分析时应结合临床使用频率、伤害严重度和可探测性,给出定性或半定量的比较结论,并明确该结论所依赖的假设和证据来源。

变更风险再评估的常见误区:只关注变更点本身,忽略变更对上下游接口和已有风险控制措施的连带影响;把“已做代码评审”当作风险控制验证;剩余风险评价只写“可接受”而不给出判定依据。建议在变更评审清单中固定加入“受影响风险控制措施清单”和“新增危险清单”两项,避免遗漏。

五、可直接使用的变更风险再评估记录表(示例)

字段 填写要求 示例
变更标识 变更单号与版本 CR-2024-017,软件 V2.3.0
变更描述 一句话说明改了什么 剂量计算由单精度浮点改为定点
影响域 功能、接口、数据、使用路径 剂量精度、溢出、通信格式、报警阈值
新增危险 危险、事件序列、伤害 舍入不一致→剂量偏差→给药不足
风险估计 P1、P2、S、R P2=中,S=严重,R=6(ALARP)
控制措施 设计/防护/信息,及验证方法 饱和保护+独立报警;边界输入测试
剩余风险 控制后 R 与判定 R=3,可接受
受益-风险结论 受益、剩余风险、整体判定 性能提升明确,剩余风险可接受
放行意见 评审人、日期、结论 同意进入回归测试

这张表的价值在于把 ISO 14971 的抽象要求落到可填写的字段上。实际使用时,每个变更单附一份,评审时逐项确认,未填或填写不充分的条目不得进入放行。对于高风险变更,还应在放行后纳入上市后监控计划,跟踪实际使用中的异常报告和投诉,形成“变更—风险—监控”的闭环。