ASL Tool 3 Development Plan: - Architecture blueprint v1.5 (6 rounds of architecture review, 13 red lines) - M1/M2/M3 sprint checklists (Skeleton Pipeline / HITL Workbench / Dynamic Template Engine) - Code patterns cookbook (9 chapters: Fan-out, Prompt engineering, ACL, SSE dual-track, etc.) - Key patterns: Fan-out with Last Child Wins, Optimistic Locking, teamConcurrency throttling - PKB ACL integration (anti-corruption layer), MinerU Cache-Aside, NOTIFY/LISTEN cross-pod SSE - Data consistency snapshot for long-running extraction tasks Platform capability: - Add distributed Fan-out task pattern development guide (7 patterns + 10 anti-patterns) - Add system-level async architecture risk analysis blueprint - Add PDF table extraction engine design and usage guide (MinerU integration) - Add table extraction source code (TableExtractionManager + MinerU engine) Documentation updates: - Update ASL module status with Tool 3 V2.0 plan readiness - Update system status document (v6.2) with latest milestones - Add V2.0 product requirements, prototypes, and data dictionary specs - Add architecture review documents (4 rounds of review feedback) - Add test PDF files for extraction validation Co-authored-by: Cursor <cursoragent@cursor.com>
8.2 KiB
ASL 自动化证据合成工具运行机制详解 (Tool 4 & Tool 5)
文档目的: 详细解答工具 4(系统综述图表生成器)与工具 5(Meta 分析量化引擎)的输入、输出、操作流及底层技术原理。
业务阶段: 定性合成 (Qualitative Synthesis) 与 定量合成 (Quantitative Synthesis)。
解耦声明: 两个工具均支持“关联项目流水线自动输入”与“下载模板独立本地上传”双通道模式。
📊 工具 4:系统综述 (SR) 图表生成器
一句话理解: 帮医生把繁琐的筛选流水账和基线数据,全自动画成符合国际期刊发表规范的 PRISMA 图和横向比对表。
1. 数据的【输入】是什么?
本工具支持两种输入模式:
- 自动串联输入(主流): 读取当前项目中,工具 1(检索总数)、工具 2(初筛排除数及原因)、工具 3(全文复筛排除数、提取到的基线 JSON 数据)。
- 独立上传输入(解耦): 医生下载系统提供的标准 Excel 模板,填入自己在其他地方做好的数据,上传生成图表。
📥 核心补充:独立模式数据源模板 (Excel Template) 详解
当用户选择“独立使用”工具 4 时,系统提供下载的文件为 SR_Charting_Template.xlsx。该文件包含两个工作表(Sheet),分别对应两种图表的数据输入:
Sheet 1: PRISMA_Data (用于生成流程图)
这是一个极简的键值对表格,用户只需填写各个筛选阶段的数字账本。
| 阶段节点 (Stage) | 数值 (Count) | 排除原因明细 (Exclusion_Reasons - 可选) |
|---|---|---|
| Total_Identified (检索总数) | 1245 | |
| Duplicates_Removed (去重排除) | 345 | |
| Title_Abstract_Excluded (初筛排除) | 700 | 非RCT研究:400, 人群不符:200, 综述:100 |
| FullText_Excluded (全文排除) | 80 | 缺乏结局数据:50, 无法获取PDF:30 |
| Final_Included (最终纳入) | 120 |
Sheet 2: Baseline_Data (用于生成基线特征 Table 1)
这是一个典型的科研特征矩阵表。每一行代表一篇被纳入的文献。
| Study_ID (研究标识) | Intervention_Name (实验组名称) | Control_Name (对照组名称) | Intervention_N (实验组人数) | Control_N (对照组人数) | Age_Mean_SD (平均年龄) | Male_Percent (男性比例) |
|---|---|---|---|---|---|---|
| Gandhi 2018 | Pembrolizumab + Chemo | Placebo + Chemo | 410 | 206 | 62.5 ± 8.1 | 60.5% |
| Hellmann 2019 | Nivolumab + Ipilimumab | Chemotherapy | 583 | 583 | 64.0 ± 9.2 | 68.0% |
(注:系统在读取这些 Excel 后,会在前端通过 xlsx.js 解析为底层 JSON 传递给渲染器。)
2. 用户【操作流程】
- 选择图表类型: 在左侧选择要画什么图。
- 选择数据源: 勾选“关联当前项目”或点击“下载模板并上传本地 Excel”。
- 一键生成: 点击“渲染生成图表”按钮。
- 预览与导出: 右侧大屏渲染出矢量图,用户可一键导出 SVG/PNG 或复制表格。
3. 底层【工作原理】
- 自动汇总: Node.js 后端去数据库做 COUNT() 统计出各个阶段的留存数量。
- 前端渲染: 拿到统计数字或用户上传的数字后,前端利用 Echarts 或 Mermaid.js 动态填入预设的漏斗图拓扑结构中,渲染出矢量图。
- 矩阵转置: 将提取到的纵向数据(每篇文献的各个特征),转置拼装为标准的医学横向对比 Markdown 表格。
📈 工具 5:Meta 分析量化引擎
一句话理解: 这是一个内置了“医学统计学专家”的超级计算器。它把多个独立研究的数据融合在一起,得出一个终极的“合并疗效结论”。
1. 数据的【输入】是什么?
- 统计学配置(左上角): 配置结局指标类型和数学模型(随机/固定效应)。
- 核心矩阵数据(左下角网格): 可以是一键从工具 3 导入的,也可以是用户独立上传的。
📥 核心补充:独立模式数据源模板 (Excel Template) 详解
Meta 分析对数据的要求极其严格。根据临床研究终点的不同,工具 5 提供了 3 种不同分类的数据模板(打包为 Meta_Analysis_Templates.zip)。用户必须根据自己的结局指标类型,选择对应的模板填写:
分类 1:生存分析预计算型模板 (Template_Hazard_Ratio.xlsx)
- 适用场景: 肿瘤、心血管等带时间跨度的生存数据(如 OS, PFS),文献直接给出了算好的 HR 值。
| Study_ID (研究标识) | HR_Value (风险比) | Lower_CI (95%置信区间下限) | Upper_CI (95%置信区间上限) |
|---|---|---|---|
| Gandhi 2018 | 0.49 | 0.38 | 0.64 |
| Hellmann 2019 | 0.79 | 0.65 | 0.96 |
分类 2:二分类原始数据型模板 (Template_Dichotomous.xlsx)
- 适用场景: 计算发生率的指标(如:感染/未感染,死亡/存活)。R 引擎会自动根据这些原始人数计算出 OR (比值比) 或 RR (相对危险度)。
| Study_ID (研究标识) | Events_Intervention (实验组事件数) | Total_Intervention (实验组总数) | Events_Control (对照组事件数) | Total_Control (对照组总数) |
|---|---|---|---|---|
| Study A 2021 | 45 | 150 | 60 | 148 |
| Study B 2022 | 30 | 100 | 40 | 100 |
分类 3:连续型原始数据型模板 (Template_Continuous.xlsx)
- 适用场景: 有均值和标准差的连续数值指标(如:血压下降了多少 mmHg,体重减轻了多少 kg)。
| Study_ID | Mean_Intervention (实验组均值) | SD_Intervention (实验组标准差) | N_Intervention (实验组人数) | Mean_Control (对照组均值) | SD_Control (对照组标准差) | N_Control (对照组人数) |
|---|---|---|---|---|---|---|
| Trial 1 | 12.5 | 2.1 | 100 | 8.4 | 1.9 | 100 |
2. 用户【操作流程】
- 导入/配置数据: 点击“继承工具3”,或“下载模板并上传本地 Excel”,左侧数据可视化网格瞬间填满。
- 微调修改: 如果发现某篇文献的数据有问题,直接在网格里手动双击单元格修改。
- 点击“运行 R 引擎分析”: 触发核心计算,前端将网格里的数据转为 JSON 发送给后端。
- 等待加载: 页面弹出暗色遮罩,调用后台 R Statistical Engine(耗时 2-5 秒)。
- 查看结果大屏: 右侧展示计算出的合并效应量、P 值、异质性
指标,并渲染出森林图。
3. 底层【工作原理】(硬核技术壁垒)
这里的原理是跨语言微服务调用,彻底打通前端展现与深层统计学:
- 数据打包: Node.js 后端将左侧网格数据打包成标准 JSON。
- 呼叫 R 语言容器: 后端将 JSON 发送给我们内网独立部署的 ssa-r-statistics Docker。
- R 语言黑盒计算: 在 Docker 内部,R 语言调用全球最权威的医学统计包 meta::metagen()。
- 结果回传: R 语言算出 Pooled Effect(合并效应量),并画出高清的森林图 (Forest Plot),转为 Base64 编码图片回传给前端直接显示。
4. 【输出】与【报告】交付
- 定性结果 (工具4): 动态可交互的 PRISMA 流程图(SVG/PNG),合并好的基线特征表(Table 1)。
- 定量结果 (工具5): 合并效应值 (如 HR: 0.63, p=0.01)、异质性检验 (
)、森林图 & 漏斗图原图。
- 终极交付: 这两者的结果最终通过大模型合成,输出一份完整的**《自动化循证证据合成报告》(Word 格式)**,可直接作为医生撰写 SCI 论文 Method 和 Result 部分的核心素材。