年3月7日,为进一步规范医疗器械软件的管理,国家药监局器审中心组织制定了《医疗器械软件注册审查指导原则(年修订版)》,并于9日发布。
医疗器械软件注册审查指导原则
(年修订版)
本指导原则旨在指导注册申请人规范医疗器械软件生存周期过程和准备医疗器械软件注册申报资料,同时规范医疗器械软件的技术审评要求,为医疗器械软件、质量管理软件的体系核查提供参考。
本指导原则是对医疗器械软件的一般要求,注册申请人需根据产品特性和风险程度确定本指导原则具体内容的适用性,若不适用详述理由。注册申请人亦可采用其他符合法规要求的替代方法,但需提供详尽研究资料。
本指导原则是在现行法规、强制性标准体系以及当前科技能力、认知水平下制定的,随着法规、强制性标准体系的不断完善以及科技能力、认知水平的不断发展,本指导原则相关内容也将适时调整。
本指导原则作为注册申请人、审评人员和检查人员的指导性文件,不包括审评审批所涉及的行政事项,亦不作为法规强制执行,应在符合法规要求的前提下使用本指导原则。
本指导原则是数字医疗(DigitalHealth)指导原则体系的基础指导原则,亦是医疗器械软件的通用指导原则,其他含有或涉及软件的医疗器械指导原则可在本指导原则基础上进行有针对性的调整、修改和完善。
一、适用范围
本指导原则适用于医疗器械软件的注册申报,包括第二、三类独立软件和含有软件组件的医疗器械(包括体外诊断医疗器械);适用于自研软件、现成软件的注册申报。
本指导原则也可用作医疗器械软件、质量管理软件的体系核查参考。
二、主要概念
(一)医疗器械软件
医疗器械软件包括本身即为医疗器械的软件或者医疗器械内含的软件,前者即医疗器械独立软件(简称独立软件),后者即医疗器械软件组件(简称软件组件),详见图1。
独立软件(SaMD)是指具有一个或多个医疗目的/用途,无需医疗器械硬件即可完成自身预期用途,运行于通用计算平台的软件[详见IMDRF/SaMDWG/N10FINAL:。]。通用计算平台满足信息技术设备安全要求(含电磁兼容),符合GB.1、GB/T等标准。
独立软件可分为通用型独立软件和专用型独立软件,前者通常基于通用数据接口与多个医疗器械联合使用,如医学图像处理软件、患者监护软件;后者基于通用、专用数据接口与特定医疗器械联合使用,可视为医疗器械附件,如动态心电数据分析软件、眼科显微镜图像处理软件。
软件组件(SiMD)是指具有一个或多个医疗目的/用途,控制/驱动医疗器械硬件或运行于医用计算平台的软件。医用计算平台满足医用电气设备(GB系列)、实验室用电气设备(GB系列)或有源植入式医疗器械(GB系列)等安全要求(含电磁兼容);医用计算平台可与通用计算平台联合使用构成系统,整体视为医用计算平台。
软件组件可分为内嵌型软件组件和外控型软件组件,前者运行于医用计算平台,控制/驱动医疗器械硬件,如心电图机、脑电图机所含嵌入式软件(即固件);后者运行于通用计算平台,控制/驱动医疗器械硬件,如CT、MRI图像采集工作站软件[医用计算平台、软件组件可参考GB.1-关于医用电气设备/系统、可编程医用电气设备/系统的定义和要求。
图1医疗器械软件类型
独立软件作为医疗器械或医疗器械附件,通常单独注册,特殊情况可随医疗器械进行注册,此时虽不控制/驱动医疗器械硬件但从产品角度运行于医用计算平台,故视为软件组件,如专用型独立软件可作为附件随医疗器械进行注册。
软件组件作为医疗器械或医疗器械部件、附件的组成部分,不宜单独注册,需随医疗器械进行整体注册。
(二)系统软件、应用软件、中间件、支持软件
系统软件是指设计用于保障计算机系统正常运行的软件,如操作系统软件、虚拟机软件。应用软件是指设计用于实现计算机用户特定需求的软件,如浏览器软件、数据库软件、安全软件。中间件介于系统软件和应用软件之间,依赖于系统软件的支持,同时又为应用软件提供支持,如分布式计算平台软件。支持软件是指设计用于开发、测试其他软件的软件,如软件开发工具、软件测试工具。
医疗器械软件属于应用软件,其正常运行通常需要基于系统软件,或同时需要应用软件(含其他医疗器械软件)、中间件、支持软件的支持。
有些注册申请人会开发医用中间件用作医疗器械软件的公共支持平台,由于这些医用中间件是医疗器械软件正常运行所必需的,故作为医疗器械软件的组成部分予以考虑。
有些支持软件(如VTK、ITK)自带算法库,医疗器械软件开发过程已将算法库相关内容集成于自身内部,故医疗器械软件正常运行需要这些支持软件的支持。
本指导原则将医疗器械软件正常运行所必需的其他的医疗器械软件及医用中间件称为必备软件,而将其正常运行所必需的系统软件、通用应用软件、通用中间件、支持软件统称为外部软件环境。必备软件作为医疗器械软件单独注册,明确相互接口关系及技术特征即可。外部软件环境不含必备软件,亦非医疗器械软件。
(三)软件生存周期
软件生存周期(又称软件生命周期)是指软件系统从概念定义至停止使用的时间周期,包括软件开发策划、软件需求分析、软件设计、软件编码、软件测试、软件发布、软件部署、软件维护、软件停运等阶段。其中,从软件需求分析到软件发布的时间周期称为软件开发生存周期。
软件开发策划主要确定软件开发的目标和可行性。软件需求分析是将法规、标准、用户、产品等要求转换为软件需求规范/软件需求规格说明(SRS)。软件设计是通过设计活动将软件需求规范转换为软件设计规范/软件设计规格说明(SDS)。软件编码是通过编写源代码将软件设计规范转换为软件系统。软件测试是通过各类测试活动保证软件系统质量。软件发布是将软件系统予以产品定型。软件部署是指软件系统的交付、安装、设置和配置。软件维护是对软件系统发布后的更新需求予以实现。软件停运(即软件退市)是指终止软件系统的销售和售后服务,售后服务停止时间通常晚于停售时间。
软件生存周期模型是指一组包含过程、活动和任务的框架,跨越从软件需求分析到软件停运的软件生存周期过程,每个过程可细分为若干活动,每个活动又可细分为若干任务。其中,软件开发生存周期模型是软件生存周期模型的重要组成部分,常见模型包括瀑布模型、迭代模型、增量模型、V模型等。
敏捷开发是以人为核心、迭代与增量相结合的软件开发方法,常见软件开发生存周期模型包括SCRUM、极限编程等。敏捷开发秉承四条理念:人员互动胜于过程和工具,可用的软件胜于详尽的文档,客户合作胜于合同谈判,响应变化胜于遵循计划。因此,使用敏捷开发应兼顾质量管理体系相关要求,重点