Files
AIclinicalresearch/docs/03-业务模块/SSA-智能统计分析/04-开发计划/01-任务清单与进度追踪.md

244 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SSA-Pro MVP 任务清单与进度追踪
> **文档版本:** v1.6
> **创建日期:** 2026-02-18
> **最后更新:** 2026-02-19T 检验端到端测试通过)
> **更新频率:** 每日站会后更新
>
> **当前进度:** Phase 1 核心完成 ~85%,配置中台待开发
---
## 状态图例
| 状态 | 含义 |
|------|------|
| ⬜ | 未开始 |
| 🔄 | 进行中 |
| ✅ | 已完成 |
| ⏸️ | 暂停/阻塞 |
---
## Phase 1骨架搭建 + 配置中台Week 1-2
**里程碑目标:** T 检验 API 端到端跑通 + 配置中台基础
### R 服务任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ✅ | 创建 `r-statistics-service/` 目录结构 | 2h | 含 templates/, fixtures/ 目录 |
| ✅ | 初始化 renv 并生成 `renv.lock` | 1h | **锁定包版本** |
| ✅ | 编写 Dockerfile基于 rocker/r-ver:4.3 | 2h | 使用 renv::restore() |
| ✅ | 🆕 Dockerfile 配置 OSS 环境变量 | 1h | **ENV 注入,非硬编码** |
| ✅ | 安装 glue 包,创建代码模板文件 | 2h | **已在 T 检验中使用** |
| ✅ | 🆕 实现 `data_loader.R`(混合协议) | 3h | **支持 inline/OSS/DEV_MODE** |
| ✅ | 🆕 实现 `result_formatter.R`p_value_fmt | 1h | **APA 格式化** |
| ✅ | 实现 `plumber.R` 入口文件 | 2h | 健康检查 + 动态路由 |
| ✅ | 🆕 plumber.R 添加 Debug 模式支持 | 1h | **DEV_MODE 环境变量** |
| ✅ | 定义错误码枚举error_codes.R | 1h | **业务/系统错误分离** |
| ✅ | 🆕 扩展错误码映射表map_r_error | 1h | **R 错误 → 用户友好提示** |
| ✅ | 🆕 代码模板头部添加依赖安装脚本 | 0.5h | **reproducible_code 中包含** |
| ✅ | 🆕 创建 `tests/fixtures/` 标准测试数据 | 2h | **normal/skewed/missing** |
| ✅ | 实现 T 检验 WrapperST_T_TEST_IND | 4h | 含护栏 + glue + 缺失值处理 |
| ✅ | 本地 Docker 测试通过 | 2h | **2026-02-19 端到端测试通过** |
### 后端任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ✅ | 创建 `backend/src/modules/ssa/` 目录结构 | 1h | **按 planner/executor/config 组织** |
| ✅ | 设计并创建数据库 SchemaPrisma | 3h | 9张表含配置中台 |
| ✅ | 执行 `prisma migrate dev` | 0.5h | 已创建迁移文件 |
| 🔄 | 安装 json-repair 和 zod 依赖 | 0.5h | **LLM 输出容错** |
| ✅ | 实现 `RClientService`executor/ | 3h | 超时 120s |
| ✅ | 🆕 RClientService 添加 502/504 友好处理 | 0.5h | **错误友好提示已实现** |
| ⬜ | 🆕 DataParserService 分类变量隐私保护 | 1h | **稀有值 < 5 隐藏** |
| ✅ | 实现 `POST /api/v1/ssa/execute` 存根 | 2h | **完整实现,含错误处理** |
| ✅ | 注册路由到 `index.ts` | 0.5h | |
| ✅ | 🆕 实现 DataParserService数据解析 | 2h | **类型推断 + 缺失值处理** |
| ✅ | 🆕 实现分析计划生成 API | 2h | **变量智能匹配** |
| ✅ | 🆕 实现代码下载 API | 1h | **动态文件名** |
### 🆕 配置中台任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| 🔄 | 🆕 设计统计决策表 Excel 模板 | 2h | **Goal + Y + X + Design → Tool** |
| ⬜ | 🆕 实现 `DecisionTableLoader` | 3h | **四维匹配逻辑** |
| ✅ | 🆕 设计 R 代码库数据库表 | 1h | **r_code_library 表已创建** |
| ⬜ | 🆕 实现 `RCodeLibraryService` | 3h | **脚本上传/版本管理** |
| 🔄 | 🆕 定义工具配置 Excel 模板5个Sheet | 3h | **元数据/参数映射/护栏/输出/解读** |
| ⬜ | 🆕 实现 `ParamMappingService` | 2h | **JSON Key → R 参数名** |
| ⬜ | 🆕 实现 `GuardrailConfigService` | 3h | **Block/Warn/Switch 三种 Action** |
| ⬜ | 🆕 实现 `InterpretationService` | 2h | **解读模板填空** |
| ⬜ | 🆕 实现 `ConfigValidatorService` | 2h | **必填/格式/唯一性校验** |
| ✅ | 🆕 实现配置热加载 API | 1h | **POST /config/reload 路由已创建** |
| ⬜ | 🆕 上传 T 检验 R 脚本 + 配置 | 2h | **跑通完整流程** |
### 前端任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ✅ | 创建 `frontend-v2/src/modules/ssa/` 目录结构 | 1h | 含 components/hooks/stores/types |
| ✅ | 注册到 `moduleRegistry.ts` | 0.5h | **已激活模块** |
| ✅ | 实现基础页面框架SSAWorkspace | 3h | 参考原型图 |
| ✅ | 🆕 实现模式切换 Tab智能分析/统计咨询) | 2h | **双模式入口** |
| ✅ | 实现左侧边栏组件 | 2h | 含数据信息展示 |
| ✅ | 实现数据上传组件DataUploader | 3h | Drag & Drop |
| ✅ | 🆕 实现结果展示组件ResultCard + APATable | 3h | **三线表 + 图表** |
| ✅ | 🆕 实现执行进度组件ExecutionTrace | 2h | **步骤状态展示** |
| ✅ | 🆕 实现代码下载功能 | 1h | **从后端获取文件名** |
| ✅ | 🆕 实现 Zustand Store | 2h | **会话状态管理** |
| ✅ | 🆕 实现 useAnalysis Hook | 2h | **上传/计划/执行/下载** |
---
## Phase 2智能规划与咨询模式Week 3-4
**里程碑目标:** 决策表驱动规划 + 咨询模式上线
### R 服务任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ⬜ | 实现配对 T 检验ST_T_TEST_PAIRED | 3h | |
| ⬜ | 实现单因素 ANOVAST_ANOVA_ONE | 3h | |
| ⬜ | 实现卡方检验ST_CHI_SQUARE | 3h | |
| ⬜ | 实现相关性分析ST_CORRELATION | 3h | |
| ⬜ | 🆕 所有 R 脚本统一 `run_analysis()` 入口 | 2h | **专家规范** |
| ⬜ | 实现通用护栏函数utils/guardrails.R | 2h | |
| ⬜ | 🆕 护栏支持 Block/Warn/Switch Action | 2h | **三种响应策略** |
| ⬜ | 🆕 为 5 个工具上传 R 脚本 + Excel 配置 | 3h | **专家完整配置** |
### 后端任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ⬜ | 🆕 实现 `DecisionTableService`planner/ | 4h | **四维匹配选工具** |
| ⬜ | 实现 `ToolRetrievalService`planner/ | 3h | 复用 VectorSearchService辅助 |
| ⬜ | 🆕 决策表 + RAG 融合策略 | 2h | **决策表优先RAG 兜底** |
| ⬜ | 注册 Prompt 到 capability_schema | 2h | 4 个 Prompt |
| ⬜ | 实现 `PlannerService`planner/,有数据) | 4h | 含 json-repair + Zod 校验 |
| ⬜ | 🆕 PlannerService 调用决策表匹配 | 2h | **Goal → Tool 精准匹配** |
| ⬜ | 🆕 实现 `ConsultService`planner/,无数据) | 4h | **基于决策表推理生成 SAP** |
| ⬜ | 🆕 实现 `SAPGeneratorService`SAP 文档生成) | 3h | **Markdown → Word 导出** |
| ⬜ | 🆕 实现结果解读InterpretationService | 3h | **基于配置模板生成论文级结论** |
| ⬜ | 实现 `POST /api/v1/ssa/sessions/:id/plan` | 3h | |
| ⬜ | 🆕 实现 `POST /api/v1/ssa/consult/:id/chat` | 2h | **咨询对话** |
| ⬜ | 🆕 实现 `POST /api/v1/ssa/consult/:id/generate-sap` | 2h | **生成 SAP** |
| ⬜ | 实现会话管理 APICRUD | 3h | |
| ⬜ | 实现 Brain-Hand 数据隔离逻辑 | 2h | Schema 给 LLMData 给 R |
| ⬜ | DataParserService 增加小样本隐私保护 | 1h | N<10 时模糊化 Min/Max |
### 前端任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ⬜ | 实现 Chat 消息流组件 | 4h | 复用 AIStreamChat |
| ⬜ | 实现计划确认卡片PlanCard | 4h | 参考原型图 |
| ⬜ | 🆕 PlanCard 增加"仅下载方案"按钮 | 1h | **咨询模式** |
| ⬜ | 实现执行路径树ExecutionTrace | 3h | 动画效果 |
| ⬜ | 🆕 实现咨询模式 UIConsultChat | 3h | **无数据对话** |
| ⬜ | 🆕 实现 SAP 预览/下载组件 | 2h | **Word/MD 下载** |
| ⬜ | 实现 API 对接api.ts | 2h | |
| ⬜ | 实现 Zustand Store | 2h | **含 mode 切换状态** |
---
## Phase 3完善与联调Week 5-6
**里程碑目标:** MVP 功能完整,可演示
### R 服务任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ⬜ | 实现 Fisher 精确检验ST_FISHER | 2h | |
| ⬜ | 实现 Wilcoxon 检验ST_WILCOXON | 2h | |
| ⬜ | 实现 Mann-Whitney UST_MANN_WHITNEY | 2h | |
| ⬜ | 实现简单线性回归ST_LINEAR_REG | 3h | |
| ⬜ | 实现描述性统计ST_DESCRIPTIVE | 2h | |
| ⬜ | 完善代码生成器(所有工具) | 3h | |
| ⬜ | 补充错误处理tryCatch | 2h | |
### 后端任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ⬜ | 实现 `CriticService`(结果解读) | 3h | 流式输出 |
| ⬜ | 实现代码下载 API | 2h | |
| ⬜ | 导入剩余 5 个工具元数据 | 1h | |
| ⬜ | 实现执行日志记录execution_logs | 2h | |
| ⬜ | 端到端集成测试 | 4h | |
### 前端任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ⬜ | 实现结果展示卡片ResultCard | 4h | 三线表 + 图表 |
| ⬜ | 实现代码下载功能 | 2h | |
| ⬜ | 实现消息历史加载 | 2h | |
| ⬜ | UI 样式精调(对齐原型图) | 3h | |
| ⬜ | 端到端联调测试 | 4h | |
### 部署任务
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ⬜ | R 服务 Docker 镜像推送 ACR | 1h | |
| ⬜ | SAE 创建 R 服务应用 | 2h | |
| ⬜ | 🆕 **配置 SAE 固定 2 实例** | 1h | **避免冷启动 30s+ 延迟** |
| ⬜ | 🆕 **配置 R 服务 Liveness Probe** | 0.5h | **检测僵尸进程,自动重启** |
| ⬜ | 🆕 **配置 Node.js 内存上限 2GB+** | 0.5h | **xlsx 全量读取防 OOM** |
| ⬜ | 🆕 **配置 OSS Endpoint 环境变量** | 0.5h | **开发公网/生产内网** |
| ⬜ | **配置 R 服务出站策略** | 0.5h | Deny Public, Allow VPC |
| ⬜ | 配置内网通信Node.js → R | 1h | |
| ⬜ | **创建临时文件清理 CronJob** | 1h | 每日清理 /tmp |
| ⬜ | 生产环境验证 | 2h | |
---
## 进度统计
| Phase | 任务总数 | 已完成 | 进度 |
|-------|---------|--------|------|
| Phase 1 | 40 | 34 | 85% |
| Phase 2 | 30 | 0 | 0% |
| Phase 3 | 22 | 0 | 0% |
| **总计** | **92** | **34** | **37%** |
> **v1.6 更新**Phase 1 核心流程完成T 检验端到端测试通过2026-02-19
---
## 风险与阻塞项
| 日期 | 问题描述 | 影响 | 解决方案 | 状态 |
|------|---------|------|---------|------|
| | | | | |
---
## 每日站会记录
### 2026-02-19
**完成项:**
- ✅ R 服务 T 检验端到端测试通过
- ✅ 修复缺失值导致分组变量识别为 3 组的问题R 服务自动过滤 NA
- ✅ 修复 DataParserService 类型推断0/1 数字列识别为分类变量)
- ✅ 修复后端 R 服务错误响应处理(返回 422 + user_hint
- ✅ 修复前端代码下载文件名(从 Content-Disposition 提取)
- ✅ 修复前端用户会话隔离(组件挂载时重置 store
- ✅ 完成前端模块注册,激活智能统计分析入口
**待解决:**
- 配置中台功能待开发
- json-repair 和 zod 依赖待安装
- DataParserService 隐私保护待实现
**下一步:**
- 进入 Phase 2 或完善 Phase 1 配置中台