资讯详情

资讯详情

医疗器械开发流程图绘制指南:阶段门与泳道模型实践

简介这是一份医疗器械项目开发设计流程图详图面向医疗器械研发、项目管理和质量体系相关人员系统展示产品从策划、设计输入、具体实施到小试、中试、定型注册及上市批准的全生命周期流程。资源包共1个PDF文件压缩包大小459KB以流程详图形式清晰呈现各阶段工作流、评审节点和配套质量记录可快速定位每个环节的关键输出物。已有265人学习下载适合团队内部培训、体系考核准备和产品开发计划编排时参考。内容覆盖市场调研、可行性报告、设计输入、工艺流程图、安全性分析、性能测试、型式检验、临床试验与产品注册等关键环节同时列出不合格品管理、供应商评估、灭菌记录等配套文件并含设计评审、试产方案、验证报告等过程记录要求有助于明确阶段交付物提升跨部门协作效率。1. 医疗器械项目的流程图为什么值得从头画一遍拿到一份标注“完整版”的医疗器械项目开发设计流程图时很多团队的直觉是把它当成一份需要归档的交付物画完就束之高阁。实际上这张图在整个产品生命周期里承担的角色远不止“示意图”这么简单——它既是设计输入到设计输出之间的路径规划也是注册检验、临床评价、体系审核时用来向审核员解释“你的开发过程如何受控”的核心证据。换句话说流程图不是画给开发人员看的而是画给“过程”看的。医疗器械软件的开发与普通互联网产品有本质区别失败成本高、法规约束硬、追溯链条长。IEC 62304、ISO 13485、FDA 21 CFR Part 820 这些标准共同要求一套可证明的开发顺序需求从哪里来设计如何落地验证如何证明确认如何收口变更如何受控。把这些环节画成一张带泳道、带阶段门、带输出物标注的流程图本质上是把法规要求转译成工程团队能执行的语言。这篇文章会从流程建模的方法讲起落到具体绘制工具、图上必有的元素、评审门的准入准出条件再补上变更控制、文档完备性检查这类容易被忽略的细节。面向的是正在搭建研发管理体系的团队负责人、准备迎接体系审核的质量工程师以及第一次把软件写进医疗器械产品里的开发人员。下面从流程骨架开始把这张图应该包含的东西逐个说清楚。2. 开发流程的骨架阶段门与 V 模型的结合方式2.1 阶段门模型为什么是医疗器械开发的首选骨架医疗器械项目开发流程的底层结构绝大多数采用的是“阶段门Stage-Gate”模型。这个模型的核心理念并不复杂把开发过程切成若干个阶段每个阶段结束后设置一个门Gate只有满足该阶段全部退出条件项目才能进入下一阶段。之所以在医疗器械领域几乎成为事实标准是因为它与法规体系对“受控”二字的要求天然匹配——审核员想知道的是你在每个关键决策点上有没有留下可查的记录有没有人明确说“可以继续”。阶段划分没有强制标准但结合 ISO 13485 和 IEC 62304 的章节结构业界常用的分段方式是阶段主要活动典型输出物对应法规概念概念阶段用户需求收集、预期用途定义、可行性分析用户需求规格URS、预期用途声明、可行性报告设计输入起始点规划阶段项目计划、风险管理计划、开发计划项目计划书、风险管理计划、软件开发计划策划设计阶段系统架构、详细设计、单元实现设计规格书、架构文档、源代码设计输出验证阶段单元测试、集成测试、系统测试测试报告、验证记录设计验证确认阶段临床评价、可用性测试、用户验收确认报告、临床评价报告设计确认上市后阶段生产反馈、不良事件监控、持续改进上市后监督报告、CAPA 记录上市后监督值得注意的是阶段门模型在图上体现出来时门不是一条线而是一个带编号的菱形节点。每个门都对应一个评审会议参与方至少包括研发负责人、质量负责人和项目经理。门的状态只有两种通过Go或不通过No Go。某些体系允许带条件通过Conditional Go但这属于例外情况必须在图上用旁路标注说清楚。2.2 把 V 模型叠到阶段门上两条线同时走阶段门解决的是“什么时候该做什么事”V 模型解决的是“每个阶段产出的东西怎么被验证”。把两者结合是医疗器械开发流程图最常见的做法横轴画阶段门纵轴画抽象层级V 的左侧是分解过程用户需求 → 系统需求 → 架构 → 详细设计右侧是集成过程单元测试 → 集成测试 → 系统测试 → 验收测试。这样的图在绘制时有一个容易出错的地方V 模型的左右两侧不是严格先后关系而是设计活动与验证活动在时间上有重叠。比如系统架构设计还没有完全结束时测试策略和测试计划就可以启动编写。流程图里需要用虚线或并行泳道表达这种“提前准备”的关系否则画成纯串行会让团队误以为测试必须等到编码完成才开始。另一个常见做法是用颜色区分“工程活动”和“质量活动”。工程活动用实线框质量活动评审、审计、验证、确认用虚线框或不同底色。这么做的原因是审核时检查员通常会问同一个问题“这个阶段的评审是谁组织的结论记录在哪里”如果图上一眼能看出质量活动的分布密度回答会从容很多。2.3 流程图上必须出现的四个要素能落地的流程图除了方框和箭头至少要包含四类信息。缺任何一类这张图就退化成了装饰品。第一类是角色也就是泳道。医疗器械项目的标准角色至少需要项目经理、研发工程师、测试工程师、质量工程师、法规事务专员、临床专员。每个活动必须有一个明确的“负责”角色和一个“参与”角色不能出现“相关部门”这种无法落地的表述。第二类是阶段门和评审点。每个评审点要标注评审类型方案评审、设计评审、变更评审和参与角色。第三类是活动之间的依赖关系尤其是设计输入向设计输出的流转路径。第四类是输出物与记录表单每个活动完成后要产生哪个文件文件名要写具体比如《软件需求规格说明书》而不是“需求文档”。我在画这类图的时候习惯在每个活动节点下方加一个“产物标签区”用灰色小字标注输出物名称。这样一张图就可以直接当作文档清单来用——每个开发人员在这个流程图上看到自己负责的活动就知道做完后要交什么。质量部门也可以拿着图反过来检查某个活动没做或者做了没留记录在图上都能直接映射到对应的产物缺失。3. 用泳道图把流程落到可执行层面3.1 泳道的划分粒度按角色而不是按部门绘制医疗器械开发流程泳道图最常见且最实用的泳道划分标准是“角色”不是“部门”。原因很直接在多数企业里一个人可能承担多个角色一个部门可能同时干好几类事情。按部门画泳道图上的活动归属会跟实际执行的人产生错位最后流程图只能反映组织架构不能反映流程本身。角色至少拆到下面这个程度项目经理PM系统工程师SE软件开发SW软件测试QA 侧验证执行质量保证QA 体系与审计法规事务RA生产制造如果涉及实物产品临床/用户代表角色的增减取决于项目类型。纯软件产品可以不画生产制造泳道但必须保留临床或用户代表泳道——可用性工程是 IEC 62366 的硬性要求。每个泳道上只放该角色真正负责的活动参与的活动用较小的角标标注“参与”避免一个活动出现三四条实线连接。3.2 绘制一张最小可用流程图的步骤用任意一款支持 UML 活动图或 BPMN 的绘图工具draw.io、Visio、PlantUML 均可从零搭出一张可审核的流程图我一般按下面五个步骤推进。第一步先画两条“轨道线”。一条是横向的项目阶段时间轴另一条是纵向的角色泳道。时间轴放在图的顶部用带颜色的粗箭头表示阶段跨度每个角色一个泳道按项目介入顺序排列上游角色在上下游角色在下。第二步按阶段把活动放进去。先不考虑箭头的精细布局只保证每个活动落在正确的泳道和正确的时间区域内。这一步追求的是“有没有”不追求“顺不顺”。第三步连依赖线。判断活动之间的先后关系时只问一个问题后一个活动需要前一个活动的什么输出比如“架构设计”需要“系统需求规格”作为输入那么这两者之间就有一条实线依赖而“测试计划编写”只需要“系统需求规格”不需要等“架构设计”完成所以它可以从“系统需求规格”直接引出分支线。第四步加阶段门。每个阶段末尾插入一个菱形判定节点标注门编号比如 G1、G2、G3。从门出来的边只有两条通过走主流程继续往下未通过则回到本阶段内的某个返工活动比如回到“需求修改”或“设计修订”。第五步加产物标注和风险标注。每个活动节点下方列出输出物文件编号每个阶段门旁边用注释说明评审条件。这一步最耗时也最容易被跳过但恰恰是审核时最被看重的部分。3.3 用 PlantUML 让流程图变成可维护的工程资产大型团队里用 Visio 或 draw.io 画完一张图维护不起来是常态——因为版本一多散落的源文件就变成了一堆无法 diff 的二进制产物。我近年来更推荐用代码方式绘制流程图常见选择是 PlantUML 的 activity diagram活动图语法。它的好处是流程图定义在文本文件里可以纳入 Git 管理每次修改都能留下变更记录评审时可以像 review 代码一样 review 图的修改。startuml |项目经理| start :G1 阶段门评审| if (需求/概念评审通过?) then (是) :下达《开发任务书》| else (否) :返回需求修订| stop endif |系统工程师| :编写《系统需求规格》 :编写《风险管理计划》| |软件开发| :系统架构设计| :详细设计| :编码实现| |软件测试| :单元测试| :集成测试| :系统测试| |质量保证| :设计验证评审| :G2 阶段门评审| |项目经理| if (验证评审通过?) then (是) :进入确认阶段| else (否) :返回缺陷修订| endif stop enduml这段脚本描述了一条从概念评审到设计验证的典型路径几个关键点需要解释一下。|角色名|语法用于切换泳道后续所有活动都落在该泳道下直到下一个|角色名|出现。条件分支用if/else/endif表达每个分支后面可以附加返回路径用stop表示该分支终止。这种表达方式足够应付医疗器械开发流程中 90% 的场景而且生成的是矢量图放进文档或打印都不会失真。3.4 阶段门评审条件怎么写在图旁边图上的阶段门不能只画一个菱形就结束。审核员在查看流程图时最关注的往往是门两侧的说明进去之前必须具备什么出去之后必须带走什么。我建议在每张阶段门图旁边配一个准入准出条件表以 G2设计验证完成评审为例类别条件准入条件系统测试报告已签发缺陷清单一审已关闭准入条件需求追溯矩阵已更新至 100% 覆盖率准入条件风险管理报告评估了全部新增危害准出条件缺陷严重等级 P1/P2 全部清零准出条件验证报告经质量负责人签批准出条件合规性评估结论为“可进入临床/注册阶段”这段内容不必在图上占地方放在图下方的“注释区”即可。如果团队有文档管理系统备注里写清楚条件表对应的文件编号这张图的可用性会再上一个台阶。4. 从流程图到执行追溯关系、变更控制与完备性检查4.1 需求追溯矩阵流程图的“数据层”流程图描述的是活动之间的逻辑顺序但真正让流程可被验证的是一张隐藏在流程背后的需求追溯矩阵Requirement Traceability MatrixRTM。RTM 建立的是一对多的映射每个用户需求映射到至少一个系统需求每个系统需求映射到至少一个设计元素每个设计元素映射到至少一条测试用例。在流程图上这种关系表现为“需求评审”活动节点引出的虚线指向“设计验证”活动节点——但实际结果要落在一张可查询的表里。建立并维护 RTM 的常见做法有两种。一种是挂在 ALM应用生命周期管理工具上比如 Polarion、Jama自动把需求、设计、测试关联起来。另一种是用 Excel 或在线表格手动维护适用于小团队或预研项目。手动维护的要点是命名规范需求编号、设计编号、测试编号必须全局唯一而且格式要支持排序。例如URS-PT-001表示患者监护类用户需求第 1 条SRS-SW-023表示软件系统需求第 23 条TC-SW-007表示软件验证用例第 7 条。编号规则一旦确定不建议中途变更否则追溯矩阵会失去可信度。4.2 变更控制在流程图上怎么体现项目进入验证阶段后发现设计缺陷需要修改代码——这时候如果流程图画成一条直线团队就会面临一个尴尬的问题走回“编码实现”节点还是另开一条支线答案几乎总是另开一条受控的变更支线而不是退回原点。标准的做法是在主流程的“设计验证”节点旁边画一个“变更申请”分支。触发条件写清楚当缺陷等级达到 P1严重或 P2主要或者需求变更影响既有验证结论时必须走变更控制流程。变更控制流程至少要包含变更申请、影响分析评估对需求、设计、验证、风险管理的影响、CCBChange Control Board评审、变更实施、回归验证、变更关闭。这个流程段落到图上时用一条子泳道或虚线框独立出来。很多团队容易把它画成“回到设计阶段”的折返箭头这其实是误画——设计变更通常不需要推翻全部设计只需要新增一个变更记录版本。正确的表达方式是从“系统测试”节点派生出一个并行分支“变更评估”评估通过后回到“编码修订”修订完成后重新进入“回归测试”最后合并回主流程的“验证报告”节点。4.3 用脚本检查流程输出的文档完备性流程图上标注了每个活动应有的输出物实际执行时如何确认这些文件都齐了、版本都对得上我一般会让质量工程师跑一个完备性检查脚本以输出物清单为基准扫描文档目录中是否存在对应的文件并核对文件中的关键元数据。import os import re from pathlib import Path REQUIRED_DOCS { URS-PT-001: 用户需求规格说明书, SRS-SW-023: 软件系统需求规格说明书, ARCH-SW-004: 软件架构设计说明书, VER-SW-011: 软件验证报告, VAL-SW-002: 软件确认报告, RM-001: 风险管理报告, } def check_docs(base_dir: str) - None: base Path(base_dir) missing [] for doc_id, doc_name in REQUIRED_DOCS.items(): matched list(base.rglob(f*{doc_id}*)) if not matched: missing.append(f{doc_id} - {doc_name}) else: check_file_meta(matched[0], doc_id) def check_file_meta(path: Path, doc_id: str) - None: content path.read_text(encodingutf-8, errorsignore) if 版本号 not in content: print(f[WARN] {doc_id} 缺少版本号字段: {path.name}) if 批准人 not in content: print(f[WARN] {doc_id} 缺少批准人字段: {path.name}) if __name__ __main__: check_docs(./project_docs)这个脚本里有两个值得说明的设计决策。REQUIRED_DOCS字典把文件编号和文件显示名称分开存储检查时用编号匹配文件名匹配不到就认为文档缺失匹配到之后打开文件内容检查元数据关键字“版本号”和“批准人”。这种检查只能探明“文件在不在、基本字段有没有”不能替代人工审核内容质量但足以把“输出物管理失控”这种最常见的问题暴露在早期。4.4 设计验证和设计确认的区别别画错流程图中最容易被画混的一对概念是设计验证Design Verification与设计确认Design Validation。不少团队在图上把两者画成同一种活动的两次执行这是典型的错误。验证回答的问题是“产品是否被正确地构建”确认回答的是“产品是否为预期用户解决了预定的问题”。举例来说验证是拿血压计去测标准压力源看读数误差是否在 ±3 mmHg 范围内确认是让真实患者使用血压计评价其能否按照说明书正确完成测量以及在听诊、佩戴等环节是否存在可用性风险。验证在实验室环境中由测试工程师执行确认在模拟使用环境或临床环境中由目标用户执行。流程图上验证应放在“设计输出完成后、设计确认开始前”的位置确认放在验证通过之后接收准则来自用户需求而不是系统需求。这两者在流程图上的承接关系是系统测试完成 → 设计验证评审 → 确认阶段可用性测试 / 临床评价→ 确认评审 → 阶段门 G3。5. 把流程图作为流程资产用文档号实现版本与审批的闭环流程图从“画完就完”变成“持续可用的流程资产”需要一个关键动作给流程图本体也分配文档编号纳入版本管理。很多团队把流程图当成一张普通图片存进共享盘修改后覆盖原文件导致审核时拿出来的版本和团队实际执行的版本不一致。规范做法是给流程图分配一个受控文档编号比如QP-0X-ProcessFlow-001建立单独的变更记录表记录每个版本的修订说明、修订人、批准日期。流程图的版本管理粒度以“阶段”为单位比较合适。比如一个项目刚进入验证阶段此时 V2.1 的流程图已经比 V2.0 多画出了变更控制分支等到确认阶段如果发现可用性测试环节需要增加“用户培训资料确认”节点则升版本到 V2.2。每次升版本都要在文件的页脚区域标注变更摘要例如“新增可用性测试组参与确认评审”而不是简单地把图重新画一遍。还有一个用起来比较顺手的小技巧在图例Legend区域把每条实线箭头和虚线箭头的含义固定下来。实线箭头表示强制顺序依赖虚线箭头表示信息流或参考关系带圆点的箭头表示返工路径。这个约定一旦写进图例任何人都能看懂图的语义不会出现不同人对同一条线有不同理解的情况。图例放在流程图右下角字号可以比正文小一号但必须与图在同一页面上。最后补充一个验证流程图画得是否合格的实操方法随机挑一个活动节点顺着输入箭头往前找确认输入来自哪个输出物再顺着输出箭头往后找确认谁在消费这个输出物。如果任何一个活动节点的输入找不到来源或者输出没有去路说明流程图上存在断链。断链通常意味着真实流程里存在不受控的环节也就是审核时最有被开不符合项风险的位置。把每一个断链都补上这张流程图才算真正具备了指导项目开发和支撑体系审核的双重价值。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →