乐于分享
好东西不私藏

想做有源医疗器械软件?别一上来就写代码----先把这3件事定下来

想做有源医疗器械软件?别一上来就写代码----先把这3件事定下来

大家好!我是小白,一名在医疗器械行业滚爬的研发工程师!


软件开发生命周期(Software Development Life Cycle, SDLC)开发是什么,简单来说是用代码的形式实现医疗器械的功能,是有源医疗器械中重要的组成部分。

而从监管层来看,医疗器械软件的开发过程有专门、系统性的要求。国内的依据就是 YY/T 0664-2020《医疗器械软件 软件生存周期过程》

一、YY/T 0664-2020是什么

YY/T 0664-2020 是 IEC62304:2006+AMD1:2015 的修改采用版,2021年9月1日正式实施.
简单说:IEC 62304 是国际通用框架,YY/T 0664-2020 是在这个框架基础上针对中国监管环境做的适配。 两者的核心逻辑和技术要求基本一致。
我们需要搞清楚的是:

一个关键认知:YY/T 0664-2020 是一个过程标准——它不是为了告诉你软件要达到什么性能指标,而是规定开发过程应该怎么管。逻辑是:过程管好了,产出的软件自然就是可信的。

一个重要边界:YY/T 0664-2020 的条文明确声明——本标准不覆盖医疗器械的确认和最终发布,即使该医疗器械完全由软件组成。软件确认是系统级活动,应在产品层面按 ISO13485 或相关法规要求执行。这个很容易被搞混。

还有一个重要的结构认知。很多人以为 YY/T 0664 只讲软件开发——其实不是不对的,它定义了 五个独立过程,软件开发只是其中一个。
两个核心过程是软件从无到有、再到持续运行的主线;三个支支撑过程从开发一直贯穿到维护,全程提供支撑。

二、动手之前先定三件事

YY/T 0664 规定了三个前置要求,必须在软件开发启动前落实:

质量管理体系

软件开发生命周期过程必须是组织质量管理体系的组成部分。换句话说,你公司必须先有运行中的质量管理体系(比如按 GB/T 42061-2022 / ISO 13485 建立的),软件过程才能嵌入进去。

风险管理

软件开发过程必须与风险管理过程整合。这里的风险管理既指 ISO 14971(GB/T 42062)层面的系统级风险管理,也指后文会讲的 YY/T 0664 第7章内部软件风险管理过程。两者不是替代关系,而是上下衔接关系。

软件安全等级分类

这是整个标准最基础的概念——等级不同,开发过程的严格程度完全不同。

三、软件安全等级

YY/T 0664-2020 把医疗器械软件按失效可能造成的危害严重程度分为三个等级:

等级怎么判定

标准是这样说的

要注意三个事项

  1. 判定不是拍脑袋。必须基于 ISO 14971 风险分析的结果,在风险管理文件中留下明确记录。等级判定是风险分析的输出,不是输入。

  2. 硬件保护可以降级,但有严格条件。如果设备有独立于软件的硬件安全保护机制,且该机制能在软件失效时有效防止伤害,软件的等级可以降低。条件是:硬件保护必须与软件完全独立、充分覆盖危险场景、且风险分析中要明确记录这一推理。

  3. 软件项级别可以分别定级。可以在单个软件系统内,对不同模块分别定级。比如一个C级系统里,剂量计算模块是C级,数据显示模块可以是B级,日志模块可以是A级——前提是架构上做好了隔离,低等级模块的失效不会传播到高等级模块。

分好等级,就决定你的工作量了

很多团队为了"省事"将软件定为 A 类,结果审评时被要求升级到 C 类,导致所有已完成的文档需要重做这是不可取的。

四、先把规矩定好

软件开发过程是整个标准体量最大的一块,包含8个子活动。在动手写代码之前,第一步是需要制定详细的开发计划。

计划文件至少包含:

一句话:计划是活的文档,项目推进中会不断更新,不是写完就压箱底的。
写在最后
软件开发生命周期对有源医疗器械而言,不是一个"可选的开发方法",而是一条法规强制要求 + 患者安全底线 + 注册通关前提的三重硬约束线。YY/T 0664-2020(等同 IEC 62304)在 NMPA 体系中的地位,等同于 GB 9706.1 在安规中的地位——缺了它,注册资料是不完整。

本文基于 YY/T 0664-2020(IEC 62304:2006+AMD1:2015 MOD)及国家药监局《医疗器械软件注册审查指导原则(2022年修订版)》整理。


关于小白医械

小白医械致力于打造一个有助于医疗器械行业小白快速适应和了解行业的一个知识共享平台。平台会不定期分享一些我在平时工作时遇到的问题和形成的一些经验体会,还会转发一些最新的医疗行业的咨询。如果各位有兴趣的可以一起交流学习,共同进步。