From 48d94884b9baf0f87c9b357c0a064ced1aff69ba Mon Sep 17 00:00:00 2001 From: bruce Date: Sun, 7 Jun 2026 10:31:39 +0800 Subject: [PATCH] =?UTF-8?q?docs(regulatory):=20=E8=A1=A5=E5=85=85=E7=AC=AC?= =?UTF-8?q?=E4=BA=8C=E6=89=B9=E9=99=84=E4=BB=B64=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../附件 4 体外诊断试剂注册申报资料要求及说明.doc | Bin 0 -> 58368 bytes ...PA注册资料法规核查与整改闭环-第二批完整闭环.md | 92 +++++++++++++++--- 2 files changed, 77 insertions(+), 15 deletions(-) create mode 100644 docs/0.原始材料/附件 4 体外诊断试剂注册申报资料要求及说明.doc diff --git a/docs/0.原始材料/附件 4 体外诊断试剂注册申报资料要求及说明.doc b/docs/0.原始材料/附件 4 体外诊断试剂注册申报资料要求及说明.doc new file mode 100644 index 0000000000000000000000000000000000000000..769a99a15788a3847a33899448abdbf69603e868 GIT binary patch literal 58368 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 literal 0 HcmV?d00001 diff --git a/docs/5.开发计划/2.NMPA注册资料法规核查与整改闭环-第二批完整闭环.md b/docs/5.开发计划/2.NMPA注册资料法规核查与整改闭环-第二批完整闭环.md index 8875b5e..26f2dba 100644 --- a/docs/5.开发计划/2.NMPA注册资料法规核查与整改闭环-第二批完整闭环.md +++ b/docs/5.开发计划/2.NMPA注册资料法规核查与整改闭环-第二批完整闭环.md @@ -7,6 +7,7 @@ ```text 适用条件对话选择框 -> waiting_user 暂停恢复 +-> 附件 4 申报资料目录规则对齐 -> 整包复核 -> 缺失项复核 -> mock 通知留痕 @@ -23,7 +24,7 @@ | 阶段 | 名称 | 目标 | 验收 | | --- | --- | --- | --- | | RR2-1 | 适用条件确认 | 对话选择框确认产品类别、注册类型、临床评价路径等 | waiting_user 可暂停恢复 | -| RR2-2 | 核查能力增强 | 扩展章节、一致性、RAG 引用和文本抽取范围 | 复杂样例可识别更多问题 | +| RR2-2 | 附件 4 规则对齐与核查能力增强 | 按《体外诊断试剂注册申报资料要求及说明》扩展完整目录规则、章节、一致性、RAG 引用和文本抽取范围 | 能识别附件 4 一级/二级目录缺失和关键字段问题 | | RR2-3 | 整包复核 | 基于新的汇总批次创建新的法规核查批次 | 可追溯来源批次 | | RR2-4 | 缺失项复核 | 针对原 Issue 执行复核并更新状态 | 生成 review_record | | RR2-5 | mock 通知留痕 | 对 blocking/high/medium 写 mock 通知记录 | 报告展示通知记录 | @@ -71,29 +72,89 @@ pytest tests/test_regulatory_condition.py tests/test_regulatory_frontend.py test --- -## 四、RR2-2 核查能力增强 +## 四、RR2-2 附件 4 规则对齐与核查能力增强 + +### 新增口径:附件 4 必须结构化入规则库 + +第一批主链路已经可以演示,但现有 Demo YAML 只覆盖 5 类规则:产品技术要求、说明书、注册检验报告、临床评价资料、安全和性能基本原则清单。经人工确认,第一批链路可通过;但与附件《体外诊断试剂注册申报资料要求及说明》相比,规则覆盖仍不完整。第二批 RR2-2 必须将附件 4 的申报资料目录结构补入规则库,并作为完整性和章节核查的主要依据。 + +附件来源: + +```text +docs/0.原始材料/附件 4 体外诊断试剂注册申报资料要求及说明.doc +``` + +如附件仍为旧版 `.doc`,允许在开发阶段通过 Pandoc、LibreOffice headless、Word COM 或受控脚本转换为 `.docx`/`.txt` 中间产物;中间产物只用于规则抽取和测试夹具,不改变第一阶段文件页数统计口径。 + +### 附件 4 目录覆盖范围 + +第二批 Demo 规则至少覆盖以下一级和二级标题。规则应支持“章节目录”类目录项、资料文件项、条件适用项和推荐项的区分。 + +| 一级目录 | 二级目录/资料项 | +| --- | --- | +| 1. 监管信息 | 1.1 章节目录、1.2 申请表、1.3 术语/缩写词列表、1.4 产品列表、1.5 关联文件、1.6 申报前与监管机构的联系情况和沟通记录、1.7 符合性声明 | +| 2. 综述资料 | 2.1 章节目录、2.2 概述、2.3 产品描述、2.4 预期用途、2.5 申报产品上市历史、2.6 其他需说明的内容 | +| 3. 非临床资料 | 3.1 章节目录、3.2 产品风险管理资料、3.3 体外诊断试剂安全和性能基本原则清单、3.4 产品技术要求及检验报告、3.5 分析性能研究、3.6 稳定性研究、3.7 阳性判断值或参考区间研究、3.8 其他资料 | +| 4. 临床评价资料 | 4.1 章节目录、4.2 临床评价资料 | +| 5. 产品说明书和标签样稿 | 5.1 章节目录、5.2 产品说明书、5.3 标签样稿、5.4 其他资料 | +| 6. 质量管理体系文件 | 6.1 综述、6.2 章节目录、6.3 生产制造信息、6.4 质量管理体系程序、6.5 管理职责程序、6.6 资源管理程序、6.7 产品实现程序、6.8 质量管理体系的测量/分析和改进程序、6.9 其他质量体系程序信息、6.10 质量管理体系核查文件 | + +### 规则分级默认值 + +| 规则类型 | 默认风险 | 说明 | +| --- | --- | --- | +| 一级目录整体缺失 | high | 如缺少“监管信息”“综述资料”“非临床资料”等完整章节 | +| 关键法定资料缺失 | blocking | 申请表、符合性声明、产品技术要求及检验报告等 | +| 关键技术/评价资料缺失 | high | 产品风险管理资料、分析性能研究、稳定性研究、临床评价资料、产品说明书、标签样稿等 | +| 条件适用资料缺失 | medium/high | 如上市历史、申报前沟通记录、其他资料;需结合 RR2-1 适用条件判断 | +| 章节目录缺失 | medium | 各一级目录下的章节目录缺失,影响资料可追溯性 | + +### 与现有第一批链路的差异修正 + +| 当前能力 | 第二批修正 | +| --- | --- | +| 完整性核查只按文件名和相对路径匹配 | 增加目录名、首页文本/前若干页文本、章节标题候选匹配 | +| YAML 只覆盖 5 个 Demo 条目 | 扩展为附件 4 一级/二级目录规则,保留第一批 5 条并映射到附件 4 对应章节 | +| 章节核查只检查说明书储存条件/有效期/样本要求 | 改为同时检查申报资料目录结构和说明书内部关键章节 | +| RAG 可能跳过 `.doc` 材料 | 附件 4 必须可被转换或抽取,构建 RAG 前输出可读文本抽取状态 | +| 一致性只检查产品名称、型号规格、预期用途 | 保留这三项,并增加管理类别、分类编码、注册类型、临床评价路径等候选字段 | ### 任务 | 编号 | 内容 | 文件 | | --- | --- | --- | -| RR2-2-001 | 扩展 YAML 规则中的必需章节和一致性字段 | `rules/nmpa_ivd_registration_v1.yaml` | -| RR2-2-002 | 增强文本抽取,缓存章节候选和字段候选 | `services/text_extract.py` | -| RR2-2-003 | 增强章节核查,支持别名、近似标题和证据片段 | `services/structure_check.py` | -| RR2-2-004 | 增强一致性核查,支持多个来源值和低置信度提示项 | `services/consistency_check.py` | -| RR2-2-005 | RAG 引用写入 `rag_result_json` 过程产物 | `services/rag_citation.py`、`storage.py` | -| RR2-2-006 | 增加测试 | `tests/test_regulatory_structure.py`、`tests/test_regulatory_consistency.py`、`tests/test_regulatory_rag.py` | +| RR2-2-001 | 将附件 4 `.doc` 抽取为可测试的结构化目录夹具 | `tests/fixtures/regulatory/attachment4_outline.json` 或同等 fixture | +| RR2-2-002 | 扩展 YAML 规则,覆盖附件 4 一级/二级目录、别名、适用条件、风险等级和整改建议 | `rules/nmpa_ivd_registration_v1.yaml` | +| RR2-2-003 | 增强规则加载校验,确保附件 4 必填目录项都有规则 ID、关键词、风险等级和 citation_query | `services/rule_loader.py` | +| RR2-2-004 | 增强完整性核查,支持文件名、目录名、首页文本/前若干页文本、章节标题候选匹配 | `services/completeness_check.py`、`services/text_extract.py` | +| RR2-2-005 | 增强文本抽取,缓存章节候选、字段候选、首页文本和抽取状态 | `services/text_extract.py`、`storage.py` | +| RR2-2-006 | 增强章节核查,支持附件 4 目录层级、别名、近似标题和证据片段 | `services/structure_check.py` | +| RR2-2-007 | 增强一致性核查,支持产品名称、型号规格、预期用途、管理类别、分类编码、注册类型、临床评价路径等来源值 | `services/consistency_check.py` | +| RR2-2-008 | RAG 引用写入 `rag_result_json` 过程产物,并记录附件 4 文本抽取/索引状态 | `services/rag_citation.py`、`storage.py` | +| RR2-2-009 | 增加附件 4 对齐测试 | `tests/test_regulatory_rule_loader.py`、`tests/test_regulatory_completeness.py`、`tests/test_regulatory_structure.py`、`tests/test_regulatory_consistency.py`、`tests/test_regulatory_rag.py` | + +### 验收样例 + +| 样例条件 | 预期 | +| --- | --- | +| 文件包缺少“监管信息/申请表” | 生成 blocking 或 high 问题,并引用附件 4 监管信息要求 | +| 文件包缺少“产品风险管理资料” | 生成 high 问题,category 为 completeness | +| 文件包缺少“分析性能研究”或“稳定性研究” | 生成 high 问题,给出补充研究资料建议 | +| 文件包有产品技术要求但无检验报告 | 生成 blocking 问题,规则映射到 3.4 | +| 文件包有产品说明书但无标签样稿 | 生成 high 问题,规则映射到 5.3 | +| 文件包缺少质量管理体系文件 | 生成 high 问题,规则映射到第 6 章 | +| 附件 4 `.doc` 未能抽取 | RAG 构建命令失败或明确报告附件 4 抽取失败,不允许静默跳过该核心材料 | ### 验证命令 ```bash -pytest tests/test_regulatory_structure.py tests/test_regulatory_consistency.py tests/test_regulatory_rag.py +pytest tests/test_regulatory_rule_loader.py tests/test_regulatory_completeness.py tests/test_regulatory_structure.py tests/test_regulatory_consistency.py tests/test_regulatory_rag.py ``` ### Codex 执行提示 ```text -请增强章节核查、一致性核查和 RAG 过程产物。证据必须包含文件路径、命中片段、字段名或规则 ID,便于人工复核。 +请先将附件 4《体外诊断试剂注册申报资料要求及说明》结构化为规则覆盖清单,再增强 YAML、完整性核查、章节核查、一致性核查和 RAG 过程产物。第二批必须覆盖附件 4 的 1-6 章一级目录和主要二级目录;证据必须包含文件路径、命中片段、字段名或规则 ID,便于人工复核。附件 4 作为核心法规材料,不允许在 RAG 构建中静默跳过。 ``` --- @@ -229,14 +290,15 @@ pytest 第一批主链路已经完成并通过全量测试。 目标: -补齐法规核查完整整改闭环,包括适用条件对话选择框、waiting_user 暂停恢复、整包复核、缺失项复核、mock 通知留痕、增强章节/一致性核查和前端交互。 +补齐法规核查完整整改闭环,包括适用条件对话选择框、waiting_user 暂停恢复、附件 4 申报资料目录规则对齐、整包复核、缺失项复核、mock 通知留痕、增强章节/一致性核查和前端交互。 执行规则: 1. 从第一批完成后的稳定分支创建 codex/YYYYMMDD-NMPA法规核查完整闭环 分支。 2. 按 RR2-1 到 RR2-6 顺序执行。 3. 每阶段完成后运行对应验证命令。 -4. 不接真实飞书 CLI/API。 -5. 不做规则管理前端。 -6. 不做自动填写目标文件。 -7. 最后运行 python manage.py check 和 pytest 全量验收。 +4. RR2-2 必须覆盖附件 4 的 1-6 章一级目录和主要二级目录,不能只保留第一批 5 条 Demo 规则。 +5. 不接真实飞书 CLI/API。 +6. 不做规则管理前端。 +7. 不做自动填写目标文件。 +8. 最后运行 python manage.py check 和 pytest 全量验收。 ```