Files
AIclinicalresearch/docs/03-业务模块/SSA-智能统计分析/04-开发计划/01-任务清单与进度追踪.md
HaHafeng 428a22adf2 feat(ssa): Complete Phase 2A frontend integration - multi-step workflow end-to-end
Phase 2A: WorkflowPlannerService, WorkflowExecutorService, Python data quality, 6 bug fixes, DescriptiveResultView, multi-step R code/Word export, MVP UI reuse. V11 UI: Gemini-style, multi-task, single-page scroll, Word export. Architecture: Block-based rendering consensus (4 block types). New R tools: chi_square, correlation, descriptive, logistic_binary, mann_whitney, t_test_paired. Docs: dev summary, block-based plan, status updates, task list v2.0.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-20 23:09:27 +08:00

345 lines
17 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 任务清单与进度追踪
> **文档版本:** v2.0
> **创建日期:** 2026-02-18
> **最后更新:** 2026-02-20Phase 2A 前端集成完成 + Block-based 架构共识)
> **更新频率:** 每日站会后更新
>
> **当前进度:** Phase 2A 完成,下一步 Phase 2B Block-based 动态渲染重构
>
> **📌 核心文档:** `07-Phase2A-智能化核心开发计划.md` | `08-Block-based动态结果渲染开发计划.md`
---
## 状态图例
| 状态 | 含义 |
|------|------|
| ⬜ | 未开始 |
| 🔄 | 进行中 |
| ✅ | 已完成 |
| ⏸️ | 暂停/阻塞 |
---
## 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 | **上传/计划/执行/下载** |
### 🆕 V11 UI 升级任务2026-02-20 完成)
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ✅ | V11 UI 像素级还原Gemini 风格) | 8h | **全屏沉浸式体验** |
| ✅ | SSASidebar 可收起抽屉栏 | 2h | **汉堡菜单 + 历史** |
| ✅ | SSAChatPane 中央对话区 | 3h | **打字机效果** |
| ✅ | SSAWorkspacePane 单页滚动布局 | 4h | **SAP→执行→结果** |
| ✅ | 多任务支持AnalysisRecord | 3h | **单会话多分析** |
| ✅ | Word 报告导出docx 库) | 2h | **完整统计报告** |
| ✅ | 输入框遮挡修复Scroll Spacer | 1h | **Flexbox 兼容** |
| ✅ | 代码清理(删除旧组件) | 1h | **删除 7 个废弃组件** |
| ✅ | 前后端联调测试 | 2h | **端到端验证** |
---
## Phase 2智能规划与咨询模式Week 3-4
**里程碑目标:** 多工具流程规划 + 数据质量核查 + 咨询模式上线
### 🆕 核心智能化任务(优先级最高)
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ✅ | 🆕 **Prompt 体系整合到后端开发指南** | 2h | **动态注入模式** |
| ✅ | 🆕 **多工具流程规划设计** | 3h | **WorkflowPlannerService 设计** |
| ✅ | 🆕 **数据质量核查报告设计** | 3h | **DataQualityService 设计** |
| ✅ | 🆕 **实现 WorkflowPlannerService** | 4h | **意图识别 + 变量类型判断 + 工具智能选择** |
| ✅ | 🆕 **实现 WorkflowExecutorService** | 4h | **串联执行 + SSE 实时进度 + 结果完整传递** |
| ✅ | 🆕 **实现 DataQualityServicePython** | 3h | **CSV 直传 Python 解析,双端点支持** |
| ⬜ | 🆕 **实现 ST_QUALITY_REPORT R 脚本** | 4h | **缺失值/异常值/分布/平衡性** |
| ✅ | 🆕 **实现前端数据质量核查报告卡片** | 3h | **DataProfileCard 组件** |
| ✅ | 🆕 **实现前端多步骤流程展示** | 3h | **SSE 实时更新 + MVP 风格复用** |
### 🆕 Phase 2A 前端集成任务2026-02-20 完成)
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ✅ | 🆕 **SSAChatPane 工作流调用集成** | 2h | **handleSend → generateWorkflowPlan** |
| ✅ | 🆕 **SSE 消息格式前后端对齐** | 2h | **camelCase/snake_case 兼容** |
| ✅ | 🆕 **多步骤执行日志 UI** | 2h | **MVP terminal-box + TraceLogItem 复用** |
| ✅ | 🆕 **多步骤结果展示 UI** | 3h | **统计量/分组表/回归系数/图表** |
| ✅ | 🆕 **DescriptiveResultView 组件** | 3h | **处理 variables+by_group 嵌套结构** |
| ✅ | 🆕 **多步骤 R 代码聚合导出** | 1h | **SSACodeModal 工作流模式** |
| ✅ | 🆕 **多步骤 Word 报告导出** | 3h | **exportWorkflowReport + 描述性统计** |
| ✅ | 🆕 **CSS 布局修复** | 2h | **position/padding/max-width 系统性修复** |
| ✅ | 🆕 **6 个前端 Bug 修复** | 3h | **SAP 误显示/SSE 卡死/结果丢失等** |
### 🆕 Phase 2B Block-based 动态渲染任务(待开始)
| 状态 | 任务 | 预估 | 备注 |
|------|------|------|------|
| ⬜ | 🆕 **创建 DynamicReport.tsx 组件** | 2h | **4 个 Block 渲染子组件** |
| ⬜ | 🆕 **创建 exportBlocksToWord.ts** | 2h | **Block 数组 → Word 文档** |
| ⬜ | 🆕 **后端透传 report_blocks** | 0.5h | **WorkflowExecutorService** |
| ⬜ | 🆕 **R 辅助函数库 block_helpers.R** | 1h | **make_table_block() 等** |
| ⬜ | 🆕 **SSAWorkspacePane 集成** | 1h | **优先读 report_blocksfallback 旧逻辑** |
| ⬜ | 🆕 **descriptive.R 改造** | 1.5h | **输出 report_blocks** |
| ⬜ | 🆕 **t_test_ind.R 改造** | 1h | **输出 report_blocks** |
| ⬜ | 🆕 **logistic_binary.R 改造** | 1.5h | **输出 report_blocks** |
| ⬜ | 🆕 **chi_square.R 改造** | 1h | **输出 report_blocks** |
| ⬜ | 🆕 **correlation.R 改造** | 1h | **输出 report_blocks** |
| ⬜ | 🆕 **t_test_paired.R 改造** | 1h | **输出 report_blocks** |
| ⬜ | 🆕 **mann_whitney.R 改造** | 1h | **输出 report_blocks** |
| ⬜ | 🆕 **清理旧自定义渲染代码** | 2h | **删除 isDescriptive 等分支** |
| ⬜ | 🆕 **清理旧导出逻辑** | 1.5h | **删除 classifyExportVar 等** |
### 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 | 49 | 47 | 96% |
| Phase 2 核心智能化 | 9 | 8 | 89% |
| Phase 2A 前端集成 | 9 | 9 | 100% |
| Phase 2B Block-based | 14 | 0 | 0% |
| Phase 2 其他R/后端/前端) | 30 | 0 | 0% |
| Phase 3 | 22 | 0 | 0% |
| **总计** | **133** | **64** | **48%** |
> **v2.0 更新**Phase 2A 前端集成完成 + Block-based 架构共识达成2026-02-20
> **v1.8 更新**:纳入 Prompt 体系 + 多工具流程规划 + 数据质量核查报告设计2026-02-20
> **v1.7 更新**V11 UI 前后端联调通过Phase 1 核心完成 96%2026-02-20
> **v1.6 更新**Phase 1 核心流程完成T 检验端到端测试通过2026-02-19
---
## 风险与阻塞项
| 日期 | 问题描述 | 影响 | 解决方案 | 状态 |
|------|---------|------|---------|------|
| | | | | |
---
## 每日站会记录
### 2026-02-20
**上午 - V11 UI 联调:**
-**V11 UI 像素级还原**Gemini 风格全屏沉浸式体验
-**多任务支持**:单会话可执行多个分析任务,独立管理状态
-**单页滚动布局**:分析计划 → 执行日志 → 分析结果,步骤进度条导航
-**Word 报告导出**:使用 docx 库生成完整统计报告
-**输入框遮挡修复**Scroll Spacer 方案
-**代码清理**:删除 7 个旧版 V8/V9 组件
**下午 - Phase 2A 前端集成(核心):**
-**Python 数据质量服务集成**CSV 直传 Python 解析,修复端口/环境变量
-**WorkflowPlannerService 实现**:正则变量提取 + 变量类型判断 + 智能工具选择
-**WorkflowExecutorService 修复**result 字段完整传递plots/code/trace_log
-**SSE 前后端对齐**stream 路由触发执行 + 消息格式兼容
-**多步骤 UI 复用 MVP 设计**terminal-box 日志 + 统计量/表格/图表结果
-**DescriptiveResultView 组件**variables+by_group 嵌套结构解析
-**多步骤导出功能**R 代码聚合 + Word 报告(含描述性统计)
-**6 个 Bug 修复**SAP 误显示、布局混乱、SSE 卡死、结果丢失、描述性统计、Word 导出
-**Block-based 架构共识**:评估并认可动态结果渲染协议规范
-**Block-based 开发计划**`08-Block-based动态结果渲染开发计划.md`
**关键技术方案:**
- Block-based Protocol4 种 Block 类型markdown/table/image/key_value
- 渐进式迁移report_blocks 优先fallback 旧逻辑
- SSE 触发模式:客户端连接时异步触发 executeWorkflow
**下一步:**
- Phase 2BBlock-based 动态渲染重构(~2.5 天)
---
### 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 配置中台