M1 Skeleton Pipeline: - Scatter-dispatch + Aggregator polling pattern (PgBoss) - PKB ACL bridge (PkbBridgeService -> PkbExportService DTOs) - ExtractionSingleWorker with DeepSeek-V3 LLM extraction - PermanentExtractionError for non-retryable failures - Phantom Retry Guard (idempotent worker) - 3-step minimal frontend (Setup -> Progress -> Workbench) - 4 new DB tables (extraction_templates, project_templates, tasks, results) - 3 system templates seed (RCT, Cohort, QC) - M1 integration test suite M2 HITL Workbench: - MinerU VLM integration for high-fidelity table extraction - XML-isolated DynamicPromptBuilder with flat JSON output template - fuzzyQuoteMatch validator (3-tier confidence scoring) - SSE real-time logging via ExtractionEventBus - Schema-driven ExtractionDrawer (dynamic field rendering from template) - Excel wide-table export with flattenModuleData normalization - M2 integration test suite Critical Fixes (data normalization): - DynamicPromptBuilder: explicit flat key-value output format with example - ExtractionExcelExporter: handle both array and flat data formats - ExtractionDrawer: schema-driven rendering instead of hardcoded fields - ExtractionValidator: array-format quote verification support - SSE route: Fastify register encapsulation to bypass auth for EventSource - LLM JSON sanitizer: strip illegal control chars before JSON.parse Also includes: RVW stats verification spec, SSA expert config guide Tested: M1 pipeline test + M2 HITL test + manual frontend verification Co-authored-by: Cursor <cursoragent@cursor.com>
27 KiB
SSA 智能统计分析 — 统计专家配置清单与准备指南
文档版本: v1.0
创建日期: 2026-02-23
目标读者: 统计学专家 / 生物统计师
文档目的: 系统性梳理 QPER 架构中所有需要统计学专家审核/配置的内容,便于专家提前准备
📋 目录
- 系统架构概览
- 配置总览清单(一览表)
- A 类:统计方法决策表
- B 类:分析流程模板
- C 类:R 统计工具
- D 类:工具参数约束表
- E 类:LLM Prompt 模板
- F 类:意图识别规则
- G 类:统计工具注册表
- 当前状态与待办事项
- 专家审核工作流程建议
1. 系统架构概览
QPER 四层架构
系统采用 QPER 四层流水线架构处理用户的统计分析请求:
用户:"比较两组血压有没有差别"
│
▼
┌─ Q · Query(意图理解)──────────────────────────┐
│ LLM 解析用户意图 → 结构化查询 │
│ 需要配置:意图识别规则(F)、意图 Prompt(E) │
│ 输出:goal=comparison, Y=SBP, X=Group, design=ind │
└──────────────────────┬─────────────────────────────┘
▼
┌─ P · Planner(方法规划)───────────────────────────┐
│ 决策表匹配 → 流程模板填充 │
│ 需要配置:决策表(A)、流程模板(B)、工具注册表(G) │
│ 输出:WorkflowPlan [step1: 描述统计, step2: T检验] │
└──────────────────────┬─────────────────────────────┘
▼
┌─ E · Execute(R引擎执行)──────────────────────────┐
│ 调用 R 工具执行统计计算 │
│ 需要配置:R 工具脚本(C)、参数约束(D) │
│ 输出:StepResult[](含 P 值、统计量、效应量等) │
└──────────────────────┬─────────────────────────────┘
▼
┌─ R · Reflection(论文级结论)──────────────────────┐
│ LLM 基于真实 R 引擎结果生成论文结论 │
│ 需要配置:结论 Prompt(E) │
│ 输出:ConclusionReport(含摘要、方法学、局限性) │
└────────────────────────────────────────────────────┘
核心原则
| 原则 | 说明 |
|---|---|
| LLM 不做计算 | LLM 只负责意图理解、方案规划、结果解读,所有统计计算由 R 引擎完成 |
| 白盒透明 | 用户可以看到每一步做了什么、为什么、R 代码是什么 |
| 自动降级 | 不满足参数检验前提条件时,自动切换非参数方法 |
| 可审计 | 生成可在本地运行的 R 代码,支持结果复现 |
2. 配置总览清单
🟢 = 已配置完成 | 🟡 = 已配置但需专家审核/完善 | 🔴 = 未配置
| 类别 | 配置项 | 文件路径 | 当前状态 | 专家需做什么 |
|---|---|---|---|---|
| A. 决策表 | 统计方法选择规则(11 条) | config/decision_tables.json |
🟡 | 审核匹配规则、降级条件、补充缺失场景 |
| B. 流程模板 | 分析步骤编排(5 个模板) | config/flow_templates.json |
🟡 | 审核步骤合理性、补充新模板 |
| C. R 工具 | 统计计算脚本(12 个) | r-statistics-service/tools/*.R |
🟡 | 审核统计方法正确性、护栏阈值 |
| D. 参数约束 | 变量类型/水平约束(12 工具) | config/tool_param_constraints.json |
🟡 | 审核约束条件(minLevels/maxLevels 等) |
| E. Prompt | LLM 提示词(12 个) | 数据库 + seed 脚本 | 🟡 | 审核统计术语准确性、Few-Shot 示例 |
| F. 意图规则 | 意图识别关键词(5 类) | config/intent_rules.json |
🟡 | 补充统计领域关键词 |
| G. 工具注册表 | 工具元信息(12 工具) | config/tools_registry.json |
🟡 | 审核工具描述、参数说明、前提条件 |
3. A 类:统计方法决策表
文件: backend/src/modules/ssa/config/decision_tables.json
作用
当系统理解了用户意图后(Q 层输出 goal + outcomeType + predictorType + design),通过此表进行 四维匹配,选出最适合的统计方法。
当前已配置的 11 条规则
| 规则 ID | 分析目标 | 结局类型 | 自变量类型 | 设计 | 主方法 | 降级方法 | 降级触发条件 |
|---|---|---|---|---|---|---|---|
DIFF_CONT_BIN_IND |
comparison | continuous | binary | independent | T 检验 | Mann-Whitney | Shapiro-Wilk P<0.05 |
DIFF_CONT_BIN_PAIRED |
comparison | continuous | binary | paired | 配对 T 检验 | Wilcoxon | 差值 Shapiro-Wilk P<0.05 |
DIFF_CONT_MULTI_IND |
comparison | continuous | categorical | independent | ANOVA | Kruskal-Wallis | Shapiro-Wilk P<0.05(内部自动切换) |
DIFF_CAT_CAT_IND |
comparison | categorical | categorical | independent | 卡方检验 | Fisher | 期望频数<5 超过 20% 且 2×2 表 |
DIFF_CAT_CAT_SMALL |
comparison | categorical | binary | independent | Fisher | 无 | 直接使用 |
ASSOC_CONT_CONT |
correlation | continuous | continuous | * | 相关分析 | 无 | Pearson/Spearman 自动选择 |
ASSOC_CAT_ANY |
correlation | categorical | * | * | 卡方检验 | Fisher | 期望频数<5 超过 20% |
PRED_BIN_ANY |
regression | binary | * | * | Logistic 回归 | 无 | — |
PRED_CONT_ANY |
regression | continuous | * | * | 线性回归 | 无 | — |
DESC_ANY |
descriptive | * | * | * | 描述性统计 | 无 | — |
COHORT_STUDY |
cohort_study | binary | * | * | 描述统计 | 无 | 对应队列研究模板 |
🔍 专家需审核的问题
-
降级条件是否正确?
- Shapiro-Wilk P<0.05 作为正态性检验阈值是否合理?
- 期望频数<5 超过 20% 的 Fisher 切换标准是否合理?
-
缺失的分析场景:
- 有序分类变量(ordinal)的比较方法?
- 多因素方差分析(多个自变量)?
- 生存分析(Kaplan-Meier、Cox 回归)?
- 重复测量设计?
- 倾向性评分匹配?
- 交叉表的多重比较?
-
优先级是否合理?
- 当多条规则同时匹配时,
priority值高的优先,需确认排序逻辑
- 当多条规则同时匹配时,
-
队列研究的 outcomeType 限定为 binary 是否合适?
- 如果结局变量是连续型(如生存时间),是否需要新规则?
4. B 类:分析流程模板
文件: backend/src/modules/ssa/config/flow_templates.json
作用
决策表选出方法后,通过流程模板确定 执行步骤的编排顺序。每个模板定义了"先做什么、再做什么"。
当前已配置的 5 个模板
模板 1:standard_analysis(标准分析流程)
步骤 1: 描述性统计(固定)
步骤 2: 主分析(动态填入,如 T 检验)
步骤 3: 敏感性分析(动态填入降级方法,条件:有降级方法时才执行)
适用: 两组比较、多组比较、卡方检验、相关分析等
模板 2:paired_analysis(配对设计分析)
步骤 1: 描述性统计(固定)
步骤 2: 配对检验(动态填入,如配对 T 检验)
适用: 前后对比、配对设计
模板 3:regression_analysis(回归建模)
步骤 1: 描述性统计(固定)
步骤 2: 多因素回归(动态填入,如 Logistic 或线性回归)
适用: 多因素分析
模板 4:descriptive_only(纯描述统计)
步骤 1: 描述性统计(固定)
适用: 仅需数据概况
模板 5:cohort_study_standard(经典队列研究)
步骤 1: 表1 — 组间基线特征比较(ST_BASELINE_TABLE,group_var=分组变量)
步骤 2: 表2 — 结局指标单因素分析(ST_BASELINE_TABLE,group_var=结局变量)
步骤 3: 表3 — 多因素 Logistic 回归(ST_LOGISTIC_BINARY,含 EPV 截断)
适用: 队列研究 Table 1→2→3
🔍 专家需审核的问题
-
标准分析是否都需要"敏感性分析"步骤?
- 当主分析与敏感性分析结论不一致时,系统已有冲突处理准则
-
队列研究模板是否完整?
- 表1 基线比较 → 表2 单因素筛选 → 表3 多因素回归,这个流程是否标准?
- 是否需要增加:表2 → 表3 之间的变量筛选逻辑(如 P<0.1 纳入多因素)?
- 表3 的 EPV(Events Per Variable)截断规则:当前
epv_capped_predictors的计算方式是否合理?
-
需要新增的流程模板:
- 病例对照研究模板?
- 横断面调查模板?
- 生存分析模板(KM + Log-rank + Cox)?
- 诊断试验模板(敏感性、特异性、ROC)?
- 一致性分析模板(Kappa、ICC)?
5. C 类:R 统计工具
目录: r-statistics-service/tools/
作用
每个 R 工具实现一种统计方法的完整计算。系统通过 HTTP API 调用 R 工具,传入数据和参数,返回标准化的结果块(Block-based 输出)。
当前已实现的 12 个 R 工具
| 工具代码 | 方法名称 | 文件 | 内置护栏 | 自动降级 |
|---|---|---|---|---|
ST_DESCRIPTIVE |
描述性统计 | descriptive.R |
NA 安全处理 | — |
ST_T_TEST_IND |
独立样本 T 检验 | t_test_ind.R |
正态性(Shapiro-Wilk)、方差齐性(Levene) | → Mann-Whitney |
ST_T_TEST_PAIRED |
配对 T 检验 | t_test_paired.R |
差值正态性(Shapiro-Wilk) | → Wilcoxon |
ST_MANN_WHITNEY |
Mann-Whitney U 检验 | mann_whitney.R |
样本量检查 | — |
ST_WILCOXON |
Wilcoxon 符号秩检验 | wilcoxon.R |
配对数据完整性 | — |
ST_CHI_SQUARE |
卡方检验 | chi_square.R |
期望频数检查 | → Fisher |
ST_FISHER |
Fisher 精确检验 | fisher.R |
2×2 表检查 | — |
ST_ANOVA_ONE |
单因素方差分析 | anova_one.R |
正态性、方差齐性(Bartlett) | → Kruskal-Wallis |
ST_CORRELATION |
相关分析 | correlation.R |
正态性检测 | Pearson↔Spearman 自动 |
ST_LOGISTIC_BINARY |
二元 Logistic 回归 | logistic_binary.R |
多重共线性(VIF)、EPV 检查 | — |
ST_LINEAR_REG |
线性回归 | linear_reg.R |
残差正态性、多重共线性(VIF) | — |
ST_BASELINE_TABLE |
基线特征表 | baseline_table.R |
变量类型自动判断 | gtsummary 自动选方法 |
每个 R 工具的标准输出结构
{
"success": true,
"tool_code": "ST_T_TEST_IND",
"blocks": [
{ "type": "key_value", "title": "检验结果", "items": {...} },
{ "type": "table", "title": "组间比较", "headers": [...], "rows": [...] },
{ "type": "chart", "title": "箱线图", "chartType": "boxplot", "base64": "..." },
{ "type": "text", "title": "结论", "content": "..." }
],
"guardrail_notes": ["正态性检验通过 (Shapiro-Wilk P=0.23)"],
"reproducible_code": "# 可复现 R 代码\nlibrary(...)..."
}
🔍 专家需审核的问题
-
护栏阈值是否合理?
- 正态性检验:Shapiro-Wilk P<0.05 → 切换非参数,这个阈值是否标准?
- 方差齐性:Levene/Bartlett P<0.05 → 使用 Welch 校正,是否合理?
- 期望频数:<5 超过 20% → Fisher,标准是否准确?
- EPV(Events Per Variable)≥10 的门槛是否需要调整?
-
统计方法实现是否正确?
- T 检验:Welch T 检验 vs Student T 检验的选择逻辑
- ANOVA 事后比较方法:Tukey HSD vs Bonferroni?
- Logistic 回归:变量选择策略(Enter 法 / Forward / Backward)?
- 相关分析:自动选择 Pearson vs Spearman 的依据
-
缺失的 R 工具(需开发新工具时才需要配置):
- Kaplan-Meier 生存分析
- Cox 比例风险回归
- 重复测量 ANOVA
- 混合效应模型
- ROC 曲线与 AUC
- Kappa/ICC 一致性分析
- 倾向性评分匹配
6. D 类:工具参数约束表
文件: backend/src/modules/ssa/config/tool_param_constraints.json
作用
定义每个统计工具对输入参数的变量类型要求,用于:
- 前端变量选择器的智能提示和⚠️警告标记
- 后端 API 的参数校验(防火墙)
- 帮助临床医生正确选择变量
当前已配置(12 个工具,全覆盖)
| 工具 | 参数名 | 选择模式 | 类型要求 | 水平限制 | 提示语 |
|---|---|---|---|---|---|
| T 检验 | group_var |
单选 | categorical | maxLevels=2 | T检验要求二分类分组变量 |
value_var |
单选 | numeric | — | T检验要求连续型因变量 | |
| Mann-Whitney | group_var |
单选 | categorical | maxLevels=2 | 要求二分类分组变量 |
value_var |
单选 | numeric | — | 要求连续型因变量 | |
| 配对 T 检验 | before_var |
单选 | numeric | — | 前测变量应为连续型 |
after_var |
单选 | numeric | — | 后测变量应为连续型 | |
| Wilcoxon | before_var |
单选 | numeric | — | 前测变量应为连续型 |
after_var |
单选 | numeric | — | 后测变量应为连续型 | |
| 卡方检验 | var1 |
单选 | categorical | — | 要求分类变量 |
var2 |
单选 | categorical | — | 要求分类变量 | |
| Fisher | var1 |
单选 | categorical | — | 要求分类变量 |
var2 |
单选 | categorical | — | 要求分类变量 | |
| 相关分析 | var_x |
单选 | numeric | — | 要求连续型变量 |
var_y |
单选 | numeric | — | 要求连续型变量 | |
| Logistic 回归 | outcome_var |
单选 | categorical | maxLevels=2 | 要求二分类结局变量 |
predictors |
多选 | any | — | 预测变量 | |
confounders |
多选 | any | — | 混杂因素(可选) | |
| 线性回归 | outcome_var |
单选 | numeric | — | 要求连续型结局变量 |
predictors |
多选 | any | — | 预测变量 | |
confounders |
多选 | any | — | 混杂因素(可选) | |
| ANOVA | group_var |
单选 | categorical | minLevels=3 | 要求3组及以上分组变量 |
value_var |
单选 | numeric | — | 要求连续型因变量 | |
| 基线表 | group_var |
单选 | categorical | minLevels=2, maxLevels=5 | 需要分类分组变量 |
analyze_vars |
多选 | any | — | 选择需要分析的变量 | |
| 描述统计 | variables |
多选 | any | — | 选择需要描述的变量 |
group_var |
单选 | categorical | — | 分组变量(可选) |
🔍 专家需审核的问题
-
水平限制是否准确?
- 基线表
maxLevels=5是否合理?分组变量超过 5 组的情况是否存在? - ANOVA
minLevels=3是否排除了两组情况的正确性?(两组应走 T 检验)
- 基线表
-
类型要求是否完整?
- 相关分析:Spearman 也可以接受有序分类变量,是否需要放宽为
any? - Logistic 回归的
predictors:是否应区分连续/分类?
- 相关分析:Spearman 也可以接受有序分类变量,是否需要放宽为
-
提示语是否专业且易懂?
- 面向临床医生,提示语是否够简明?
7. E 类:LLM Prompt 模板
作用
Prompt 模板控制 LLM 在不同场景下的行为。所有 Prompt 存储在数据库中,通过 seed 脚本初始化。
当前已配置的 12 个 Prompt
7.1 核心角色定义
| Prompt Key | 用途 | 统计相关度 | 审核重点 |
|---|---|---|---|
SSA_BASE_SYSTEM |
LLM 基础角色定义 | ⭐⭐⭐ | 确认"不做计算"的边界描述是否准确 |
当前内容要点:
- 定义 LLM 为"分析规划者"和"结果解读者"
- 严禁生成任何数值结果(P值、均值、标准差等)
- 所有计算由 R 引擎完成
7.2 意图分类
| Prompt Key | 用途 | 统计相关度 | 审核重点 |
|---|---|---|---|
SSA_INTENT_ROUTER |
意图分类器 | ⭐⭐ | 6 种意图的定义和典型示例是否准确 |
SSA_QUERY_INTENT |
分析意图解析 | ⭐⭐⭐⭐⭐ | Few-Shot 示例、goal 分类、confidence 评分 |
SSA_QUERY_INTENT 审核重点:
- goal 分类是否完整? 当前:comparison / correlation / regression / descriptive / cohort_study
- 是否需要增加:
survival_analysis,diagnostic_test,agreement,meta_analysis?
- 是否需要增加:
- Few-Shot 示例是否覆盖常见场景? 当前 6 个示例
- 是否需要增加:生存分析、诊断试验、一致性分析的示例?
- Confidence 评分标准是否合理?
- 0.9-1.0 = 明确指定 Y 和 X
- 0.7-0.8 = 指定 Y 但 X 需推断
- 0.5-0.6 = 意图清楚但无变量名
- <0.5 = 模糊表达需追问
7.3 对话场景
| Prompt Key | 用途 | 统计相关度 | 审核重点 |
|---|---|---|---|
SSA_INTENT_CHAT |
自由对话 | ⭐ | — |
SSA_INTENT_EXPLORE |
数据探索 | ⭐⭐ | 数据质量问题的提醒清单是否完整 |
SSA_INTENT_CONSULT |
方法咨询 | ⭐⭐⭐⭐ | 推荐逻辑、前提条件说明是否准确 |
SSA_INTENT_ANALYZE |
分析协调 | ⭐⭐⭐ | 方案状态说明的措辞 |
SSA_INTENT_DISCUSS |
结果讨论 | ⭐⭐⭐⭐ | P 值解读指导、临床意义讨论准则 |
SSA_INTENT_FEEDBACK |
改进反馈 | ⭐⭐⭐ | 诊断问题的分类框架 |
7.4 核心任务 Prompt
| Prompt Key | 用途 | 统计相关度 | 审核重点 |
|---|---|---|---|
SSA_METHOD_CONSULT |
方法推荐输出格式 | ⭐⭐⭐⭐ | 推荐理由、前提条件、降级方案的描述准则 |
SSA_ANALYZE_PLAN |
分析方案解释 | ⭐⭐⭐ | 方案解释的非技术化表达准则 |
SSA_PICO_INFERENCE |
PICO 结构推断 | ⭐⭐⭐⭐⭐ | Few-Shot 示例、观察性研究处理、Confidence 准则 |
SSA_REFLECTION |
论文级结论生成 | ⭐⭐⭐⭐⭐ | 冲突处理准则、方法学说明格式、局限性模板 |
🔍 专家需审核的关键 Prompt
优先级 1(最重要):
-
SSA_QUERY_INTENT— 决定了系统如何理解用户需求- Few-Shot 示例是否覆盖临床常见场景?
- 队列研究 vs 横断面调查的区分规则
- "统计学意义"这类表达的意图分类是否正确
-
SSA_REFLECTION— 决定了最终报告的质量- 冲突处理准则(主分析与敏感性分析不一致时)
- 方法学段落的撰写指导
- 局限性的标准表述
-
SSA_PICO_INFERENCE— 决定了数据理解的准确性- 观察性研究 intervention=null 的判断准则
- 变量名引用规则
- Confidence 评分准则
优先级 2:
SSA_INTENT_CONSULT— 方法咨询的准确性SSA_INTENT_DISCUSS— P 值和效应量的解读指导SSA_METHOD_CONSULT— 推荐方法的输出格式
8. F 类:意图识别规则
文件: backend/src/modules/ssa/config/intent_rules.json
作用
系统首先用 关键词规则引擎(零延迟)判断用户意图。规则无法确定时,才使用 LLM 兜底。
当前已配置的 5 类意图规则
| 意图 | 关键词 | 排除词 | 前置条件 | 优先级 |
|---|---|---|---|---|
| analyze | 分析、检验、t检验、卡方、回归、比较一下、跑一下、执行分析、做个分析、方差分析、ANOVA、相关分析、logistic、生存分析、Cox、基线表 | 什么方法、用什么、应该怎么、推荐 | 有数据 | 10 |
| discuss | 什么意思、说明什么、怎么解释、p值、置信区间、结果说明、为什么显著、为什么不显著、临床意义、效应量 | — | 有数据+有结果 | 9 |
| feedback | 结果不对、不太对、换个方法、重新分析、有问题、不满意、重做 | — | 有数据+有结果 | 9 |
| explore | 看看、分布、缺失、概况、有哪些变量、数据特征、异常值、样本量、描述一下数据、多少例、变量类型 | — | 有数据 | 8 |
| consult | 什么方法、用什么、应该怎么分析、推荐方法、分析方案、哪种检验、怎么选、前提条件 | — | 有数据 | 7 |
🔍 专家需审核的问题
-
关键词是否完整?
- analyze 缺少:生存分析相关(生存曲线、KM、hazard ratio)、诊断试验相关(ROC、AUC、敏感性)
- consult 缺少:样本量估计、效能分析相关
- discuss 缺少:多重比较校正相关(Bonferroni、FDR)
-
排除词是否合理?
- 当前 analyze 排除"什么方法、用什么"以避免误判为 consult,但用户说"用 T 检验分析"是否会被误排除?
-
默认意图
chat是否是最佳兜底?
9. G 类:统计工具注册表
文件: backend/src/modules/ssa/config/tools_registry.json
作用
注册所有可用的统计工具元信息,包括工具代码、参数列表、输出类型、前提条件和降级方法。
当前注册的 12 个工具
| 工具代码 | 工具名称 | 分类 | 前提条件 | 降级方法 |
|---|---|---|---|---|
ST_DESCRIPTIVE |
描述性统计 | basic | — | — |
ST_T_TEST_IND |
独立样本T检验 | parametric | 正态分布 | ST_MANN_WHITNEY |
ST_MANN_WHITNEY |
Mann-Whitney U检验 | nonparametric | — | — |
ST_T_TEST_PAIRED |
配对T检验 | parametric | — | — |
ST_CHI_SQUARE |
卡方检验 | categorical | — | ST_FISHER |
ST_CORRELATION |
相关分析 | correlation | — | — |
ST_LOGISTIC_BINARY |
二元Logistic回归 | regression | — | — |
ST_FISHER |
Fisher精确检验 | categorical | — | — |
ST_ANOVA_ONE |
单因素方差分析 | parametric | 正态分布+方差齐性 | Kruskal-Wallis |
ST_WILCOXON |
Wilcoxon符号秩检验 | nonparametric | — | — |
ST_LINEAR_REG |
线性回归 | regression | — | — |
ST_BASELINE_TABLE |
基线特征表 | composite | — | — |
🔍 专家需审核的问题
-
前提条件字段(prerequisite)需要补全
- 多数工具未填写前提条件,但实际 R 代码中有检查
- 建议统一补全,用于向用户展示
-
category 分类是否需要调整?
- 当前:basic / parametric / nonparametric / categorical / correlation / regression / composite
- 是否需要更精细的分类?
-
配对 T 检验缺少 fallback 声明
ST_T_TEST_PAIRED的 fallback 应为ST_WILCOXON
10. 当前状态与待办事项
✅ 已完成(系统可运行)
| 项目 | 说明 |
|---|---|
| 12 个 R 工具全部实现 | 含内置护栏和自动降级 |
| 11 条决策表规则 | 覆盖常见分析场景 |
| 5 个流程模板 | 含队列研究全套模板 |
| 12 个 Prompt 入库 | 含角色定义、意图分类、结论生成 |
| 参数约束表全覆盖 | 12 工具 27 个参数 |
| 变量可编辑化 | 医生可修改系统默认选择 |
🟡 需要专家审核/完善
| 优先级 | 项目 | 预估工作量 |
|---|---|---|
| P0 | 决策表降级条件审核 | 1-2 小时 |
| P0 | R 工具护栏阈值审核 | 2-3 小时 |
| P0 | SSA_QUERY_INTENT Prompt Few-Shot 审核 |
1 小时 |
| P0 | SSA_REFLECTION 冲突处理准则审核 |
1 小时 |
| P1 | 参数约束表水平限制审核 | 30 分钟 |
| P1 | 意图识别关键词补充 | 30 分钟 |
| P1 | 队列研究模板步骤审核 | 1 小时 |
| P2 | 工具注册表前提条件补全 | 30 分钟 |
| P2 | PICO 推断 Prompt 示例审核 | 30 分钟 |
🔴 未来扩展(新统计方法)
| 统计方法 | 涉及配置项 | 说明 |
|---|---|---|
| 生存分析 | 新 R 工具 + 决策表 + 流程模板 + Prompt 示例 | Kaplan-Meier + Cox |
| 诊断试验 | 新 R 工具 + 决策表 + 流程模板 | ROC/AUC/敏感性/特异性 |
| 一致性分析 | 新 R 工具 + 决策表 | Kappa / ICC |
| 倾向性评分 | 新 R 工具 + 流程模板 | PSM + 匹配后分析 |
| 混合效应模型 | 新 R 工具 + 决策表 | 重复测量/多水平 |
| 样本量估计 | 新 R 工具 + 意图规则 | 效能分析 |
| Meta 分析 | 新 R 工具 + 完整子系统 | 固定/随机效应 |
11. 专家审核工作流程建议
推荐审核顺序
第一轮:理解架构(30 分钟)
├── 阅读本文档第 1 节(系统架构概览)
└── 理解 QPER 四层流水线和配置关系
第二轮:审核统计核心(3-4 小时)
├── A. 决策表 → 确认方法选择规则和降级条件
├── C. R 工具 → 审核护栏阈值和统计实现
├── D. 参数约束 → 确认变量类型要求
└── B. 流程模板 → 审核步骤编排逻辑
第三轮:审核 LLM 指导(2-3 小时)
├── E. SSA_QUERY_INTENT → 审核 Few-Shot 和 goal 分类
├── E. SSA_REFLECTION → 审核结论生成准则
├── E. SSA_PICO_INFERENCE → 审核研究设计推断
└── F. 意图规则 → 补充统计领域关键词
第四轮:规划扩展(1-2 小时)
├── 确定优先需要新增的统计方法
├── 为新方法准备决策表规则
└── 为新方法准备 Few-Shot 示例
配置文件位置速查
| 配置文件 | 路径 |
|---|---|
| 决策表 | backend/src/modules/ssa/config/decision_tables.json |
| 流程模板 | backend/src/modules/ssa/config/flow_templates.json |
| 工具注册表 | backend/src/modules/ssa/config/tools_registry.json |
| 参数约束 | backend/src/modules/ssa/config/tool_param_constraints.json |
| 意图规则 | backend/src/modules/ssa/config/intent_rules.json |
| Prompt 种子 | backend/scripts/seed-ssa-*.ts |
| R 工具 | r-statistics-service/tools/*.R |
反馈格式建议
专家审核后,建议按以下格式反馈:
## 审核反馈 — [配置项名称]
### 确认正确的部分
- [列出审核通过的规则/配置]
### 需要修改的部分
- [配置项]: [当前值] → [建议值]
- [原因说明]
### 需要新增的部分
- [新规则/新工具/新示例]
- [适用场景说明]
### 需要讨论的问题
- [有争议或需要权衡的决策]
文档版本: v1.0
创建日期: 2026-02-23
维护者: 开发团队
下次更新触发条件: 专家审核反馈后 / 新增统计工具时