2026-05-20-01-38-33 完善NII导出与位姿持久化
This commit is contained in:
71
工程分析/实现方案-2026-05-20-01-38-33.md
Normal file
71
工程分析/实现方案-2026-05-20-01-38-33.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# 实现方案-2026-05-20-01-38-33
|
||||
|
||||
## 实现方案文档路径
|
||||
|
||||
`工程分析/实现方案-2026-05-20-01-38-33.md`
|
||||
|
||||
## 修改目标
|
||||
|
||||
完善逆向工作区导出与位姿持久化:移除自动配准演示入口,新增可选导出 DICOM NIfTI、分割 NIfTI 和位姿 JSON,修复 blob 下载警告,增加三维坐标轴示意,并让保存位姿跨项目进入持久保留。
|
||||
|
||||
## 涉及路径
|
||||
|
||||
- `WebSite/server.ts`
|
||||
- `WebSite/src/lib/api.ts`
|
||||
- `WebSite/src/types.ts`
|
||||
- `WebSite/src/components/ReverseWorkspace.tsx`
|
||||
- `工程分析/需求分析-2026-05-20-01-38-33.md`
|
||||
- `工程分析/实现方案-2026-05-20-01-38-33.md`
|
||||
- `工程分析/测试方案-2026-05-20-01-38-33.md`
|
||||
- `工程分析/经验记录.md`
|
||||
|
||||
## 技术路线
|
||||
|
||||
1. 后端扩展项目状态:
|
||||
- 增加 `modelPoses` 字段,保存默认、俯视、侧视与用户自定义位姿。
|
||||
- 新增 `PATCH /api/projects/:projectId/model-poses`。
|
||||
2. 后端重写导出:
|
||||
- 新增通用 NIfTI-1 写入函数。
|
||||
- DICOM 原始影像导出为 int16 HU `.nii.gz`,维度与 spacing 来自 DICOM。
|
||||
- 分割影像导出为 STL 构件采样切面填充后的 uint8 label map `.nii.gz`,维度与 spacing 与 DICOM 完全一致。
|
||||
- 位姿数据导出为 JSON,并记录导出时的当前 activePose。
|
||||
- 保留 `/export-mask` 兼容旧分割导出。
|
||||
3. 前端下载方式:
|
||||
- 用直链 `<a href>` 下载替代 `fetch -> Blob -> URL.createObjectURL`。
|
||||
- 新增导出选项复选框和“导出所选”动作,分割和位姿导出会携带当前模型位姿。
|
||||
4. UI 调整:
|
||||
- 去掉“开始自动配准”按钮和相关演示进度状态。
|
||||
- 顶部按钮改为“导出全部 NII.GZ”。
|
||||
- 三维融合视角右下角增加固定 XYZ 坐标轴示意。
|
||||
5. 位姿持久化:
|
||||
- 项目加载时读取 `project.modelPoses`。
|
||||
- 保存/重命名位姿时写回后端。
|
||||
|
||||
## 执行步骤
|
||||
|
||||
- 更新类型定义和后端状态归一化。
|
||||
- 实现 NIfTI/位姿导出接口。
|
||||
- 更新前端 API 下载方法。
|
||||
- 更新 ReverseWorkspace UI、导出选项、位姿保存逻辑和坐标轴。
|
||||
- 执行 `npm run lint` 与 `npm run build`。
|
||||
- 验证新导出接口返回文件,重新部署并推送。
|
||||
|
||||
## 兼容性与回滚方案
|
||||
|
||||
- 旧 `downloadMask` 与 `/export-mask` 保持可用,只把底层分割 NIfTI 改为同维度数据。
|
||||
- 如果完整 DICOM NIfTI 导出耗时过高,可后续增加范围导出或后台任务。
|
||||
- 如果浏览器仍对 HTTP 下载提示安全警告,需要部署 HTTPS;本次先消除 blob URL 警告来源。
|
||||
|
||||
## 预计文件变更
|
||||
|
||||
- `server.ts`:项目位姿字段、DICOM NIfTI 导出、STL Label Map 导出、位姿导出、兼容旧导出。
|
||||
- `api.ts`:直链下载和导出选项 API。
|
||||
- `types.ts`:项目位姿类型。
|
||||
- `ReverseWorkspace.tsx`:移除自动配准、导出选项、坐标轴、位姿持久化。
|
||||
- 新增本次三份工程文档,更新经验记录。
|
||||
|
||||
## 提交与部署策略
|
||||
|
||||
- 提交信息:`2026-05-20-01-38-33 完善NII导出与位姿持久化`
|
||||
- 显式暂存本次相关文件,避免提交历史删除状态。
|
||||
- 推送到 Gitea `origin/main` 并重新部署。
|
||||
Reference in New Issue
Block a user