Files
AIclinicalresearch/docs/05-部署文档/03-待部署变更清单.md
HaHafeng 71d32d11ee feat(iit): V3.2 data consistency + project isolation + admin config redesign + Chinese labels
Summary:
- Refactor timeline API to read from qc_field_status (SSOT) instead of qc_logs
- Add field-issues paginated API with severity/dimension/recordId filters
- Add LEFT JOIN field_metadata + qc_event_status for Chinese display names
- Implement per-project ChatOrchestrator cache and SessionMemory isolation
- Redesign admin IIT config tabs (REDCap -> Fields -> KB -> Rules -> Members)
- Add AI-powered QC rule generation (D3 programmatic + D1/D5/D6 LLM-based)
- Add clickable warning/critical detail Modal in ReportsPage
- Auto-dispatch eQuery after batch QC via DailyQcOrchestrator
- Update module status documentation to v3.2

Backend changes:
- iitQcCockpitController: rewrite getTimeline from qc_field_status, add getFieldIssues
- iitQcCockpitRoutes: add field-issues route
- ChatOrchestrator: per-projectId cached instances
- SessionMemory: keyed by userId::projectId
- WechatCallbackController: resolve projectId from iitUserMapping
- iitRuleSuggestionService: dimension-based suggest + generateD3Rules
- iitBatchController: call DailyQcOrchestrator after batch QC

Frontend changes:
- AiStreamPage: adapt to new timeline structure with dimension tags
- ReportsPage: clickable stats cards with issue detail Modal
- IitProjectDetailPage: reorder tabs, add AI rule generation UI
- iitProjectApi: add TimelineIssue, FieldIssueItem types and APIs

Status: TypeScript compilation verified, no new lint errors
Made-with: Cursor
2026-03-02 14:29:59 +08:00

7.2 KiB
Raw Blame History

待部署变更清单

用途: 开发过程中实时记录所有待部署的变更,下次部署时按此清单逐项执行
维护规则: 每次修改 Schema / 新增依赖 / 改配置时,立即在此文档追加记录
Cursor Rule: .cursor/rules/deployment-change-tracking.mdc 会自动提醒
最后清零: 2026-03-020302 部署完成后清零)


当前待部署变更

⚠️ 下次部署前,逐项检查此清单。部署完成后将已部署项移到「历史」区域并清零。

数据库变更

# 变更内容 迁移文件 优先级 备注
DB-1 modules 表新增 AIA_PROTOCOLRM 模块注册IIT 名称改为「CRA质控」 无(运行 seed 脚本) 运行 node scripts/seed-modules.jsupsert可重复执行
DB-2 RVW Prompt 更新:期刊名称修正为「中华脑血管病杂志」 无(重新运行迁移脚本或后台编辑) 运行 npx tsx scripts/migrate-rvw-prompts.ts 或在 /admin/prompts/RVW_EDITORIAL 手动编辑

后端变更 (Node.js)

# 变更内容 涉及文件 需要操作 备注
BE-1 登录踢人机制:同一手机号只能一人同时在线 auth.service.ts, auth.middleware.ts, jwt.service.ts 重新构建镜像 JWT 增加 tokenVersion登录时递增版本号存入缓存认证中间件校验版本号
BE-2 模块权限一致性修复:/me/modules API 现在尊重 user_modules 精细化配置 module.service.ts 重新构建镜像 之前 /me/modules 只看 tenant_modules现在与登录逻辑一致
BE-3 getModuleName 补充 RM、AIA_PROTOCOL、IIT 名称修正 userService.ts 重新构建镜像 IIT Manager → CRA质控
BE-4 RVW 稿约 Prompt 源文件修正 prompts/review_editorial_system.txt 重新构建镜像 中华医学超声杂志 → 中华脑血管病杂志
BE-5 seed 数据:内部租户补充 RM、AIA_PROTOCOL 模块 prisma/seed.ts 仅影响新环境初始化
BE-6 用户模块配置校验放宽:不再限制必须在租户订阅范围内 userService.ts 重新构建镜像 校验改为「模块代码必须在 modules 表中存在」,支持给用户单独开通功能模块
BE-7 用户独立模块生效user_modules 中的模块即使租户未订阅也纳入权限 module.service.ts 重新构建镜像 如 AIA_PROTOCOL 可单独配给用户

前端变更

# 变更内容 涉及文件 需要操作 备注
FE-1 ASL 模块:隐藏数据源/年限/篇数,默认 PubMed SetupPanel.tsx 重新构建镜像 高级筛选面板全部隐藏
FE-2 ASL 模块:去掉「研究方案生成」「文献管理」,重新编号 1~6 ASLLayout.tsx 重新构建镜像
FE-3 ASL 模块:默认进入智能文献检索(不再是标题摘要初筛) asl/index.tsx 重新构建镜像 路由 index → research/deep
FE-4 AIA 模块删除「已接入DeepSeek」和搜索框 AgentHub.tsx 重新构建镜像
FE-5 AIA 模块Protocol Agent 按用户模块权限动态显示 AgentHub.tsx, constants.ts 重新构建镜像 通过 hasModule('AIA_PROTOCOL') 判断,需 DB-1 配合
FE-6 AIA 模块:数据评价与预处理 / 智能统计分析链接修正 constants.ts 重新构建镜像 /dc/research-management
FE-7 首页重定向到 /ai-qa,不再显示模块卡片首页 App.tsx 重新构建镜像
FE-8 PKB 模块:创建知识库时隐藏科室选择,默认 General DashboardPage.tsx 重新构建镜像
FE-9 被踢出时前端提示「账号已在其他设备登录」 axios.ts 重新构建镜像 配合 BE-1
FE-10 运营端:用户模块权限弹窗显示所有模块(含 RM、AIA_PROTOCOL、CRA质控 ModulePermissionModal.tsx 重新构建镜像 未订阅模块标注"(未订阅)",不阻止配置

Python 微服务变更

# 变更内容 涉及文件 需要操作 备注
暂无

R 统计引擎变更

# 变更内容 涉及文件 需要操作 备注
暂无

环境变量 / 配置变更

# 变更内容 服务 变量名 备注
暂无

基础设施变更

# 变更内容 范围 备注
暂无

部署顺序建议

  1. 后端先部署:构建并推送新镜像(包含 BE-1 ~ BE-5
  2. 运行数据库脚本
    • node scripts/seed-modules.jsDB-1注册 AIA_PROTOCOL、RM 模块)
    • npx tsx scripts/migrate-rvw-prompts.tsDB-2更新 RVW 稿约 Prompt
  3. 前端部署:构建并推送新镜像(包含 FE-1 ~ FE-9
  4. 后台配置
    • 为内部测试人员所在租户开通 AIA_PROTOCOL 模块
    • 确认 SSA/ST/IIT/RM 模块权限按需分配给对应租户和用户

记录模板

开发时发现需要部署的变更,复制下方模板追加到对应区域:

<!-- 数据库变更 -->
| DB-N | 简述变更 | `迁移文件名` | 高/中/低 | 备注 |

<!-- 后端变更 -->
| BE-N | 简述变更 | `file.ts` | 重新构建镜像 | 备注 |

<!-- 前端变更 -->
| FE-N | 简述变更 | `Component.tsx` | 重新构建镜像 | 备注 |

<!-- Python 变更 -->
| PY-N | 简述变更 | `requirements-prod.txt` | 重新构建镜像 | 备注 |

<!-- R 变更 -->
| R-N | 简述变更 | `tool.R` | 重新构建镜像 | 备注 |

<!-- 环境变量 -->
| ENV-N | 简述变更 | nodejs-backend-test | `VAR_NAME=value` | 备注 |

历史(已部署,仅供追溯)

0302 部署已清零项

# 变更内容 部署日期 结果
DB 6 个 Prisma 迁移SSA 类型对齐 + IIT RBAC + is_demo + V3.1 QC 三批) 2026-03-02
DB 新建 qc_field_status、qc_event_status 2 张表84 → 86 2026-03-02
BE Node.js v2.3 → v2.4IIT V3.1 QC引擎全面升级27 项变更) 2026-03-02
FE 前端 v1.9 → v2.0GCP 报表 + V3.1 前端17 项变更) 2026-03-02
ENV frontend-nginx-service: BACKEND_SERVICE_HOST → 172.17.197.32 2026-03-02

0227 部署已清零项

# 变更内容 部署日期 结果
DB 5 个业务迁移 + 1 个 drift patch 2026-02-27
DB SSA data_profile 列补充 2026-02-27 线上热修
DB RVW review_tasks 8 列补充 2026-02-27 线上热修
BE Node.js v1.7 → v2.2SSA/ASL/RVW/IIT 全模块更新) 2026-02-27
BE Dockerfile 增加 JSON 配置文件拷贝 2026-02-27
FE 前端 v1.3 → v1.8react-markdown, nginx 配置更新) 2026-02-27
PY Python v1.1 → v1.2(新增 scipy 2026-02-27
R R 统计引擎 v1.0.1 全新部署 2026-02-27
ENV nodejs-backend-test: R_STATISTICS_SERVICE_URL 等 2026-02-27
ENV frontend-nginx-service: BACKEND_SERVICE_HOST 更新 2026-02-27