来源: 本文刊登于《中国医疗器械信息》杂志2015年第9期4-7页
作者:彭亮
单位:国家食品药品监督管理总局医疗器械技术审评中心 ( 北京 100044)
内容提要: 当前业内对于医疗器械软件存在很多认识误区,因此有必要对常见的、关键的认识误区进行解析。本文针对软件定义、软件风险、软件质量与缺陷、软件变更与版本、现成软件的认识误区进行了讨论和分析,以便统一业内认识。
关 键 词: 医疗器械软件 软件认识误区 软件监管
随着信息技术的发展,医疗器械软件发展迅猛,种类越来越多,功能越来越强,在医疗当中发挥的作用也越来越强,但召回数量日益增多,质量问题也不容忽视,是当前业内关注的热点之一[1~3]。
我国医疗器械软件监管工作起步较晚,虽然已经积累了一定经验,但无论是监管机构还是制造商,对于医疗器械软件的认识都存在很多误区,这将不利于监管工作的开展,也不利于行业的健康发展。
本文针对软件定义、软件风险、软件质量与缺陷、软件变更与版本、现成软件五个方面常见的认识误区进行了讨论和分析,希望能够消除歧义统一业内认识,促进我国医疗器械软件的监管,并保障行业的健康发展。
1.1 独立软件就是运行于通用计算机的医用软件
独立软件是指本身即为医疗器械的软件[4]。软件如果用于控制医疗器械硬件,无论是否运行于通用计算机,脱离医疗器械硬件都无法单独完成预期用途,都不是独立软件。因此,独立软件都运行于通用计算机,但反之不一定是独立软件,也可能是软件组件。
1.2 软件组件就是嵌入式医用软件
软件组件是指作为医疗器械内部组成部分的软件[4]。嵌入式系统是以应用为中心的专用计算机系统,而嵌入式软件是指运行于嵌入式系统的软件,嵌入式医用软件必然是软件组件,但是软件组件也包括运行于通用计算机且控制医疗器械硬件的软件。因此,嵌入式软件是软件组件的子集,而软件组件可以等同为可编程医用电气系统。
1.3 可编程医用电气系统是指“用户可以编程”的医用电气系统
可编程医用电气系统是指包含一个或多个可编程电子子系统的医用电气设备或医用电气系统,而可编程电子子系统是指基于一个或多个中央处理单元的系统,包括软件和接口[5],因此“可编程”等同于含有软件。“用户可以编程”是望文生义,如果用户可以对软件进行编程,那么用户就变成了制造商,就需要符合制造商的监管要求,现实当中没有用户愿意作为制造商而遵循相应的监管要求。
1.4 软件定义小结
根据国际医疗器械监管者论坛(IMDRF)发布的相关文件,独立软件需要同时具备以下三个特征:具有一个或多个医疗用途,不控制或驱动医疗器械硬件,运行于通用(非医用)计算平台[6]。这就是独立软件与软件组件的判定依据,软件如果不具有医疗用途则不是医疗器械软件,而软件具有医疗用途,但控制或驱动医疗器械硬件,或者运用于专用(医用)计算平台,都是软件组件。另外,需要说明的是软件组件也可具有处理分析功能。
从监管角度出发,独立软件才可以单独上市,而软件组件需要随医疗器械硬件上市。不过某些专用的独立软件也可以随医疗器械硬件上市,此时该独立软件视为软件组件,这类软件的上市方式最终取决于制造商。
2.1 医疗器械软件不与人体直接接触,没有风险
风险由损害的严重度和发生概率构成,而损害由危害和危害处境构成。软件本身不是危害,但可能引发危害处境而产生损害[7]。医疗器械软件失效导致患者死亡或严重伤害的事件层出不穷,例如直线加速器、心脏起搏器、植入式除颤器、输注泵、手术导航产品都发生过软件失效导致患者死亡的案例。因此,医疗器械软件是有风险的,而且风险也可能很高。
2.2 医疗器械软件相关标准实施多年,风险已得到有效控制
医疗器械软件相关标准的实施确实在保证软件质量和控制软件风险方面发挥着重要作用,但目前仍不能说风险已得到有效控制。美国FDA 召回数据表明,医疗器械软件召回数量占全部医疗器械召回的比例越来越高,1983~1991 仅为5.9%,1992~1998 为7.7%,1999~2005 为11.3%,而2005~2011 已增长为19.4%[8],原因在于一方面医疗器械软件发展迅猛,在医疗器械的比重持续增加,另一方面医疗器械软件的风险虽然得到一定控制,但并未得到真正的有效控制。
2.3 软件风险小结
医疗器械软件召回数量越来越多,且严重性不容忽视,因此,需要加强医疗器械软件的风险管理。与硬件不同,软件失效虽然表现为随机性失效,但实质都是系统性失效,因此软件风险分析通常假定软件失效概率为100%,而只考虑软件失效的严重度,此时风险管理已简化为严重度分析。常见的风险分析方法均可用于医疗器械软件,如故障树分析(FTA)、失效模式与影响分析(FEMA)等方法[7]。需要说明的是,独立软件失效对患者的伤害通常是间接的,而软件组件失效对患者的伤害通常是直接的,而且软件组件的风险分析不能孤立的进行,需要结合医疗器械硬件进行分析。
3.1 医疗器械软件都是小软件,没有质量问题
当软件代码行数超过一定数量时,软件质量就无法得到保证。医疗器械软件代码行数少则几百行,多则超过1000 万行,典型的在几十万行到几百万行之间,而Window XP 代码行数约为4500 万行[9]。因此,多数医疗器械软件都不是小软件,质量问题不容忽视。
3.2 制造商软件开发人员众多,软件没有质量问题
软件开发人员越多,“信息过滤”越严重,软件项目管理能力的要求也就越高。如果缺乏必要的管理能力,软件开发人员越多,软件质量就越难控制,特别是在软件开发中增加人员,非但不能提高开发效率,往往会降低开发效率。因此,与硬件生产不同,软件开发不能搞人海战术,需要尽可能采用“少而精”的开发队伍才能保证软件质量。
3.3 医疗器械软件没有剩余缺陷,没有质量问题
由于软件测试的有限性,医疗器械软件没有剩余缺陷并不意味着软件没有质量问题。医疗器械软件上市后,制造商不仅需要继续测试以发现潜在的软件缺陷,必要时需要通知用户并采取纠正措施,而且需要收集用户反馈的软件缺陷信息,需要进行评估以确定是否需要采取纠正措施。
3.4 软件质量与缺陷小结
软件是无形的产品,没有物理实体,开发和使用过程人为因素影响无处不在,软件测试不能穷尽所有情况,所以软件缺陷与生俱来,不可避免,也无法根除,可以说是软件的属性之一。从监管角度出发,医疗器械软件允许有剩余缺陷,但必须要保证剩余缺陷的风险都是可接受的。
虽然现有的已知方法不能保证任何软件绝对的质量和安全[4],但是软件工程实践表明软件生存周期过程控制对于保证软件质量至关重要,因此,需要加强软件质量管理体系的建设工作。同时,软件工程统计数据表明,软件缺陷主要源自需求分析阶段和设计阶段,修正成本随着开发阶段的推进而迅速增加,因此软件测试需要尽早开展。此外,软件缺陷具有群聚现象,即“80%”的缺陷集中于“20%”的软件代码,因此软件测试需要有针对性的开展[9]。总之,软件测试需要尽早测试、重点测试和全面测试,这样才能保证软件质量。
4.1 软件轻微变更不会影响软件质量
软件与硬件不同,轻微变更也可能会导致严重后果,同时软件还具有退化问题,即每修复若干的缺陷就会产生一个新缺陷,单纯的缺陷修复也可能会导致严重后果。美国FDA 召回数据表明医疗器械软件召回有79.3% 是由软件变更导致的[10],因此,软件即便是轻微变更也可能会严重影响软件质量,必须要加强软件变更的质量控制。4.2 医疗器械软件可以没有版本
在软件工程中,软件版本用于标识软件状态,是控制软件变更必不可少的重要工具。如果医疗器械软件没有版本,就无法控制软件变更,也就无法保证软件质量,因此医疗器械软件必须要有版本,否则就意味着软件质量管理体系存在问题。现实中有些制造商采用修订号、发布号来控制软件变更,尽管名称不同但本质上都是软件版本,均应按照软件版本考虑。
4.3 欧美对软件版本没有要求,中国也无需要求
欧美监管机构规范了软件质量管理体系的考核要求,建立了软件变更(版本变更)的监管机制,而且要求制造商在上市申报材料中体现软件版本,因此欧美监管机构从多个角度都对软件版本进行了确认,只是不强制在上市批书中体现软件版本。我国的国情和监管体制与欧美不同,如果不对软件版本进行要求,就可能出现医疗器械软件违法上市的情况。
4.4 软件变更与版本小结
软件变更频繁且迅速,轻微变更也可能导致严重后果,是医疗器械软件召回的主要原因,因此必须要加强软件变更的质量控制[3]。软件是无形的产品,只能通过状态管理来保证软件质量,而软件版本用于标识软件状态,既是医疗器械软件质量控制的工具,又是实现医疗器械软件可追溯性的工具。
5.1 现成软件就是制造商购买的软件
尽管欧美对于现成软件的定义略有不同,但现成软件通常是指制造商没有进行完整生存周期管理的软件[4,11]。制造商购买的软件或免费得到的软件(成品软件)是现成软件,但制造商以前开发的但不能得到足够开发记录的软件(遗留软件)也是现成软件。
5.2 制造商无法对现成软件进行质量控制
制造商没有对现成软件进行完整的生存周期控制,所以使用现成软件的风险比自主开发的软件要高,更加需要进行质量控制[11]。不过,由于缺少足够的技术资料,现成软件主要通过风险管理来进行质量控制,需要开展必要的验证与确认工作,需要制定相应的缺陷管理流程和维护方案。
5.3 现成软件的技术资料应由开发方提供
制造商将现成软件整合进医疗器械,需要对医疗器械后续的安全有效性负责,是医疗器械的最终责任者[11]。而开发方是第三方机构,不承担医疗器械的最终责任,也不一定符合医疗器械的监管要求。制造商只能通过合同关系来约束开发方,而不能要求开发方符合监管要求。同时,制造商需要对现成软件开展必要的质量控制工作,自然就会生成相应的技术资料。因此,现成软件的技术资料需要由制造商提交。
5.4 现成软件小结
随着计算机技术的发展,医疗器械使用现成软件的情况越来越普遍。制造商使用现成软件可集中精力开发医疗器械软件专用功能,但是现成软件不一定能够全部满足医疗器械的预期用途,而且未进行完整的生存周期控制,所以使用现成软件的风险更高,需要开展必要的质量控制工作[11]。同时,医疗器械软件外包开发越来越多,制造商质量管理能力决定了外包软件的生存周期控制程度,这也导致了外包软件的质量参差不齐[12],从风险角度出发外包软件同样应视为现成软件。
总之,医疗器械软件发展迅猛,但质量问题不容忽视,需要进一步加强质量控制和监管要求。由于软件具有特殊性,在诸多方面都与硬件不同,所以,不能采用硬件质量控制的思路和方法来对软件进行质量控制,否则将无法保证医疗器械软件的质量。同时,我国长期以来一直“重硬件轻软件”,导致业内对于医疗器械软件的重视程度不够,存在很多认识误区。只有充分考虑软件的特殊性并统一业内认识,才能保证医疗器械软件质量,才能实现医疗器械软件的有效监管,才能促进行业的健康发展。
来源:中国医疗器械信息杂志
整理:TACRO
【声明】部分文章和信息来源于互联网,不代表本订阅号赞同其观点和对其真实性负责。如转载内容涉及版权等问题,请立即与我们联系(杨 13260664005),我们将迅速采取适当措施