医疗器械 MDR 合规审计
ID: 130 版本: 1.1.0 描述: 依据欧盟 MDR(2017/745)法规要求,检查医疗器械技术文件是否包含必需文档
适用场景
- 需要依据欧盟 MDR 2017/745 法规审计医疗器械技术文件时使用本技能。
- 需要在学术/合规写作任务中明确假设前提、限定范围、并输出可复现格式结果时使用本技能。
- 需要为缺失输入、执行错误或证据不完整的情况提供文档化的应急处理路径时使用本技能。
核心特性
- 聚焦于依据欧盟 MDR 2017/745 法规审计医疗器械技术文件的工作流。
- 打包的可执行入口:
scripts/main.py。 references/目录中提供任务专用的参考资料。- 结构化的执行路径,确保输出结果一致且可复核。
依赖项
详见上方「## 前置条件」。
Python:3.10+。仓库内所有已打包技能的基线版本。dataclasses:随requirements.txt声明(Python 3.7+ 标准库已内置,无需额外安装)。enum:随requirements.txt声明(Python 标准库已内置,无需额外安装)。
用法示例
详见下方「## 用法」章节。
cd medical-device-mdr-auditor
python -m py_compile scripts/main.py
python scripts/main.py --help
示例执行步骤:
- 确认用户输入、输出路径以及任何必需的配置项。
- 如脚本使用固定配置,编辑文件内的
CONFIG区块或已文档化的参数。 - 使用已校验的输入运行
python scripts/main.py。 - 复核生成的输出结果,交付最终结果时明确列出所做的假设。
实现说明
详见下方「## 工作流程」章节。
- 执行模型:校验请求、选择打包的工作流、产出边界明确的可交付结果。
- 输入控制:在运行任何脚本前,先确认来源文件、范围限制、输出格式与验收标准。
- 主要实现入口:
scripts/main.py。 - 参考资料:
references/目录中包含配套的规则、提示或核查清单。 - 需先明确的参数:输入路径、输出路径、范围过滤条件、阈值以及任何领域特定约束。
- 输出规范:保证结果可复现,明确标注假设,避免未文档化的副作用。
快速检查
在深入执行前,用以下命令验证打包的脚本入口能否被正常解析。
python -m py_compile scripts/main.py
可审计命令
以下命令用于验证,均可直接运行,不含占位路径。
python -m py_compile scripts/main.py
python scripts/main.py --help
python scripts/main.py -h
工作流程
- 在展开详细工作前,先确认用户目标、所需输入以及不可协商的约束条件。
- 校验请求是否符合已文档化的范围,若任务需要不受支持的假设,提前止步。
- 仅使用实际可获得的输入,走打包脚本路径或已文档化的推理路径。
- 返回结构化结果,将假设、可交付物、风险与未解决事项分开呈现。
- 若执行失败或输入不完整,切换到应急处理路径,并明确说明是什么阻碍了任务的完全完成。
概述
本技能用于审计医疗器械技术文件的合规性,依据欧盟 MDR(2017/745)法规要求,检查文档中是否包含必需的临床评价报告(Clinical Evaluation Report)和上市后监督(Post-Market Surveillance)计划。
用法
# 检查单个技术文件目录
python3 scripts/main.py --input /path/to/technical/file --class IIa
# 使用 JSON 配置文件进行批量检查
python3 scripts/main.py --config /path/to/config.json
# 输出详细报告
python3 scripts/main.py --input /path/to/technical/file --class III --verbose --output report.json
注:以上路径为示例占位路径,实际使用时请替换为你自己的技术文件目录和输出路径。原文档中曾使用某位开发者本机的绝对路径作为示例,此处已修正为通用相对路径。
参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
--input |
字符串 | 条件必填 | 技术文件目录路径 |
--config |
字符串 | 条件必填 | JSON 配置文件路径 |
--class |
字符串 | 是 | 器械分类(I、IIa、IIb、III) |
--output |
字符串 | 否 | 输出报告路径 |
--verbose |
标志 | 否 | 输出详细信息 |
--input/--class 与 --config 二者需至少提供一种完整组合:要么同时提供 --input 与 --class,要么提供 --config;否则脚本会报参数错误并退出。
MDR 2017/745 检查要点
1. 临床评价报告(CER)
依据 MDR 附录 XIV A 部分(Annex XIV Part A),必须包含:
- 临床评价计划
- 临床数据评估(文献综述 / 临床研究数据)
- 临床证据分析
- 获益-风险结论
2. 上市后监督计划(PMS)
依据 MDR 第 83 条及附录 III(Article 83 & Annex III),必须包含:
- PMS 流程说明
- 数据收集方法
- 风险评估更新机制
- 趋势报告机制
3. 上市后临床跟踪计划(PMCF Plan)
依据 MDR 附录 XIV B 部分(Annex XIV Part B),适用于 IIa 类及以上器械:
- PMCF 计划文档
- 临床数据持续收集方法
- 安全性与性能监测流程
4. 其他关键文档
- 风险管理文件(ISO 14971)
- 可用性工程文件
- 生物学评价报告
- 标签与使用说明书
输出格式
合规报告示例
{
"audit_date": "2026-02-06T06:00:00Z",
"device_class": "IIa",
"compliance_status": "PARTIAL",
"findings": [
{
"category": "CRITICAL",
"regulation": "MDR Annex XIV Part A",
"item": "Clinical Evaluation Report",
"status": "MISSING",
"description": "Clinical evaluation report file not found"
},
{
"category": "MAJOR",
"regulation": "MDR Article 83",
"item": "PMS Plan",
"status": "INCOMPLETE",
"description": "PMS plan lacks trend reporting mechanism"
}
],
"summary": {
"total_checks": 12,
"passed": 8,
"warnings": 2,
"failed": 2
}
}
说明:以上 JSON 字段名与英文枚举值(如
CRITICAL、MISSING、PARTIAL)为脚本实际输出内容,保持原样不翻译;description字段中的英文文本为脚本当前生成的实际提示语,详见下方脚本内容。
合规等级
| 等级 | 说明 |
|---|---|
COMPLIANT |
完全符合 MDR 要求 |
PARTIAL |
部分合规,存在可整改的缺陷 |
NON_COMPLIANT |
严重不合规,关键文档缺失 |
退出码
| 退出码 | 含义 |
|---|---|
| 0 | 审计通过,完全合规 |
| 1 | 审计通过,存在警告 |
| 2 | 审计未通过,存在缺陷 |
| 3 | 执行错误 |
参考依据
- 欧盟法规 2017/745(MDR)
- MDCG 指导文件
- EN ISO 14971:2019
- EN ISO 13485:2016
作者
AIPOCH
风险评估
| 风险指标 | 评估 | 等级 |
|---|---|---|
| 代码执行 | 本地执行 Python/R 脚本 | 中 |
| 网络访问 | 无外部 API 调用 | 低 |
| 文件系统访问 | 读取输入文件、写入输出文件 | 中 |
| 指令篡改 | 标准提示词规范 | 低 |
| 数据暴露 | 输出文件保存至工作目录 | 低 |
安全检查清单
- 无硬编码凭据或 API 密钥
- 无未授权的文件系统访问(../)
- 输出不暴露敏感信息
- 已具备提示注入防护
- 输入文件路径已校验(无 ../ 路径穿越)
- 输出目录限制在工作目录内
- 脚本在沙箱环境中执行
- 错误信息已做脱敏处理(不暴露堆栈跟踪)
- 依赖项已审计
前置条件
# Python 依赖
pip install -r requirements.txt
说明:
requirements.txt中列出的dataclasses、enum均为 Python 3.7+ 标准库内置模块,实际无需通过 pip 单独安装;该清单沿用自原始版本,保留以维持与脚本导入声明的一致性。
评估标准
成功指标
- 成功执行核心功能
- 输出符合质量标准
- 能优雅处理边界情况
- 性能表现可接受
测试用例
- 基本功能:标准输入 → 预期输出
- 边界情况:无效输入 → 优雅的错误处理
- 性能:大数据集 → 可接受的处理时间
生命周期状态
- 当前阶段:草稿(Draft)
- 下次审阅日期:2026-03-06
- 已知问题:无
- 计划改进:
- 性能优化
- 增加更多功能支持
输出要求
在最终响应中,若以下内容相关,应明确列出:
- 目标或所需的可交付物
- 使用的输入及引入的假设
- 工作流程或决策路径
- 核心结果、建议或产出物
- 约束、风险、注意事项或验证需求
- 未解决事项及下一步核查
错误处理
- 若必需输入缺失,明确说明具体缺失哪些字段,仅索要必要的补充信息。
- 若任务超出已文档化的范围,应停止而不是猜测或悄悄扩大任务范围。
- 若
scripts/main.py执行失败,报告失败点,总结哪些部分仍可安全完成,并提供人工应急方案。 - 不得编造文件、引用、数据、检索结果或执行结果。
输入校验
本技能接受符合 medical-device-mdr-auditor 已文档化用途、且包含足够上下文以安全完成工作流的请求。
若请求超出范围、缺少关键输入,或需要不受支持的假设,不应继续执行工作流,而应回复:
medical-device-mdr-auditor仅处理其已文档化的工作流。请补充缺失的必需输入,或切换到更合适的技能。
参考资料
- references/audit-reference.md - 支持范围、审计命令与应急处理边界
响应模板
对于非简单请求,使用以下固定结构:
- 目标
- 收到的输入
- 假设
- 工作流程
- 可交付物
- 风险与限制
- 下一步核查
若请求较为简单,可以精简结构,但涉及正确性的假设与限制仍需明确列出。