2026-05-04-03-21-40 增加前后端协同和NIfTI导出

This commit is contained in:
2026-05-04 03:29:54 +08:00
parent a6f3836460
commit a9b6d2d76a
15 changed files with 1040 additions and 67 deletions

View File

@@ -0,0 +1,68 @@
# 需求分析
时间戳2026-05-04-03-21-40
## 原始需求摘要
用户要求严格使用代码编纂工作流处理本次项目修改,并在最开始确认工作流整体流程;但本次需求分析、实现方案、测试方案和执行修改均不需要人工二次确认。
功能需求:
- 完善整个代码,使网页变为前后端协调系统。
- 不同浏览器的登录信息能够同步。
- 完善网页基本功能。
- 项目列表默认载入 `Head_CT_DICOM``Head_CT_ReConstruct`
- 选择“恢复演示环境出厂设置”后,也重新载入默认的 `Head_CT_DICOM``Head_CT_ReConstruct`
- 最终生成的分割 mask 为 `nii``nii.gz` 格式。
## 业务目标
- 从纯前端静态演示升级为带后端 API 的协同系统。
- 将登录状态、用户列表、项目列表、演示环境状态统一由后端维护,避免不同浏览器各自持有不一致的假数据。
- 以本地默认医学数据目录为演示项目来源,前端项目库默认展示真实目录统计。
- 在逆向工作区提供后端生成 `nii.gz` 分割 mask 的下载能力,形成完整演示闭环。
## 输入与输出
输入:
- `Head_CT_DICOM/`:默认 DICOM 序列目录。
- `Head_CT_ReConstruct/`:默认 STL 重建模型目录。
- 登录账号信息,默认管理员 `admin / 123456`
输出:
- 后端 API。
- 前端通过 API 读取和更新登录、用户、项目、导出状态。
- 项目库默认项目:头部 CT DICOM 与重建 STL 演示项目。
- 恢复出厂设置后恢复默认用户和默认项目。
- 逆向工作区导出 `.nii.gz` 分割 mask。
## 影响范围
- `WebSite/package.json`
- `WebSite/server.ts`
- `WebSite/src/App.tsx`
- `WebSite/src/types.ts`
- `WebSite/src/lib/api.ts`
- `WebSite/src/components/Login.tsx`
- `WebSite/src/components/Overview.tsx`
- `WebSite/src/components/ProjectLibrary.tsx`
- `WebSite/src/components/ReverseWorkspace.tsx`
- `WebSite/src/components/UserManagement.tsx`
- `WebSite/data/` 运行态数据目录
- `WebSite/exports/` 生成导出目录
- `工程分析/经验记录.md`
## 风险点
- 当前需求的“前后端协调系统”范围较大,本次优先完成可运行的后端 API、共享状态和演示导出闭环不实现生产级认证权限。
- “不同浏览器登录信息同步”在生产系统通常应基于用户独立 session。本演示系统为满足同步需求会用后端统一维护当前登录状态并通过前端轮询同步。
- 真实 STL 到 DICOM 空间的精确逆向体素化需要医学影像空间信息、STL 坐标配准和体素填充算法。本次先生成符合 NIfTI-1 格式的演示分割 mask并保留后续替换真实体素化算法的接口。
- `4000` 端口当前为前端 Vite 服务;引入后端后需要改为 Express + Vite 中间件统一服务。
- DICOM/STL 原始数据仍不应提交到 Git。
## 待确认问题
- 本次用户已明确免二次人工确认,因此无需等待确认。
- 后续如需真实医学级逆向体素化,需要进一步确认 DICOM 空间坐标、STL 单位、配准矩阵和目标输出标签体系。