Files
AIclinicalresearch/docs/03-业务模块/RVW-稿件审查系统/00-系统设计/RVW V2.0 融合实施作战计划:架构与功能的统一.md
HaHafeng e785969e54 feat(rvw): Implement RVW V2.0 Data Forensics Module - Day 6 StatValidator
Summary:
- Implement L2 Statistical Validator (CI-P consistency, T-test reverse)
- Implement L2.5 Consistency Forensics (SE Triangle, SD>Mean check)
- Add error/warning severity classification with tolerance thresholds
- Support 5+ CI formats parsing (parentheses, brackets, 95% CI prefix)
- Complete Python forensics service (types, config, validator, extractor)

V2.0 Development Progress (Week 2 Day 6):
- Day 1-5: Python service setup, Word table extraction, L1 arithmetic validator
- Day 6: L2 StatValidator + L2.5 consistency forensics (promoted from V2.1)

Test Results:
- Unit tests: 4/4 passed (CI-P, SE Triangle, SD>Mean, T-test)
- Real document tests: 5/5 successful, 2 reasonable WARNINGs

Status: Day 6 completed, ready for Day 7 (Skills Framework)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:15:27 +08:00

4.7 KiB
Raw Blame History

RVW V2.0 融合实施作战计划:架构与功能的统一

核心策略: 以“数据侦探”功能为矛刺穿技术壁垒以“Skills 架构”为盾,构建系统底座。

执行原则: 垂直切片 (Vertical Slice) —— 做深不做宽。

1. 优先级决策 (Decision Matrix)

我们不采用“先搭好所有架子再填肉”的瀑布模式,而是采用**“以战养战”**模式。

|

| 步骤 | 任务名称 | 涉及层面 | 目标 | 优先级 |

| Step 1 | Python 核弹头开发 | Python Service | 实现 Word 表格提取 + 算术/P值验证算法。这是技术可行性验证。 | P0 (立刻开始) |

| Step 2 | Skill 接口定义 | Node.js Backend | 定义 interface Skill建立 SkillRegistry。这是架构地基。 | P0 (并行) |

| Step 3 | 封装 DataForensicsSkill | Node.js Backend | 将 Step 1 的能力装入 Step 2 的壳子。这是架构落地。 | P0 |

| Step 4 | SOP 引擎对接 | Node.js Backend | 让 Review Service 调用新 Skill 而非旧逻辑。 | P1 |

| Step 5 | 前端可视化 | Frontend V2 | 在报告页展示结构化的数据错误。 | P1 |

2. 详细执行路线图 (Execution Roadmap)

Week 1: 攻克核心算力 (Python & Word)

目标:输入一个 .docx 文件Python API 能返回“第几张表第几行算错了”。

  • Day 1: 环境与转换
    • 在 python-extraction 镜像中集成 LibreOffice (用于 doc 转 docx)。
    • 引入 python-docx, pandas, scipy。
  • Day 2: 提取器开发 (Extractor)
    • 编写 DocxTableExtractor。
    • 重点攻克:合并单元格的 Forward Fill (确保 "Group A" 能覆盖下面所有列)。
    • 输出:干净的 Pandas DataFrame List。
  • Day 3: 验证器开发 (Validator)
    • 编写 ArithmeticValidator (算术检查Sum, Percentage)。
    • 编写 StatValidator (统计检查T-test 逆运算)。
  • Day 4: API 封装
    • 开放 /api/v1/forensics/analyze_docx 接口。
    • 联调测试:用 5 个真实的 Word 稿件进行测试,看提取准确率。

Week 2: 架构升级与封装 (Node.js & Skills)

目标:后端不再写死业务逻辑,而是通过加载 Skill 来执行。

  • Day 5: 定义 Skill 标准
    • 创建 backend/src/modules/rvw/skills/core/types.ts。
    • 定义 run(context): SkillResult 接口。
  • Day 6: 封装 DataForensicsSkill
    • 在 Node.js 中实现这个 Skill。
    • 逻辑Node.js 负责调用 Python 接口 -> 拿到 JSON -> 这是一个“原子能力”。
  • Day 7: 改造 ReviewService
    • 引入 SkillExecutor。
    • 修改 createTask 流程:不再直接调用 editorialService而是从 Profile 中加载 ['DataForensicsSkill', 'EditorialSkill'] 并依次执行。
  • Day 8: 数据库迁移
    • 执行 prisma migrate支持存储结构化的 Skill 执行结果 (contextData)。

Week 3: 前端呈现与交付 (UI & Delivery)

目标:用户看到专业的“数据体检报告”。

  • Day 9: 报告页重构
    • 在 TaskDetail 页面增加 "Data Verification" Tab。
  • Day 10: 错误渲染
    • 开发“表格定位组件”当显示“Table 1 算术错误”时,能把后端返回的 Table 数据渲染出来,并高亮错误的单元格。
  • Day 11: 综合联调
    • 全流程测试:上传 -> Python 计算 -> Skill 封装 -> 前端展示。

3. MVP 定义 (本次交付范围)

为了确保 3 周内能上线,我们需要划定清晰的红线:

| 功能 | MVP (本次交付) | V2.1 (后续迭代) |

| 文件格式 | Word (.docx/.doc) | PDF, 图片 |

| 表格类型 | 三线表 (Standard) | 极其复杂的嵌套表、跨页断裂表 |

| 验证深度 | L1 (算术) + L2 (基础 P 值) | L3 (回归逻辑), L4 (跨表一致性) |

| Skill 数量 | 1 个 (DataForensics) | 政治审查、竞品对标、方法学检查 |

| 用户界面 | 静态报告展示 | 交互式 Chat 修改 |

4. 立即执行的下一步 (Next Action)

请按照以下指令启动 Python 端的开发(这是最硬的骨头):

  1. 确认 Python 库:请让您的 Python 开发人员确认 python-docx 和 scipy 是否已在依赖列表中。
  2. 提供测试数据:请准备 3-5 份典型的中文核心期刊 Word 稿件(脱敏后),放到 backend/test/fixtures 目录下,用于 Day 2 的提取测试。

您觉得这个“先攻核心,顺带架构”的节奏是否合适?

如果合适,我们可以先不讨论架构代码,而是直接开始写 Python 的 表格提取器 (Extractor) 代码。