2026-05-20-01-38-33 完善NII导出与位姿持久化

This commit is contained in:
2026-05-20 01:56:54 +08:00
parent 19bd706453
commit 7099bfde8d
8 changed files with 1084 additions and 145 deletions

View File

@@ -0,0 +1,55 @@
# 需求分析-2026-05-20-01-38-33
## 开始时间
2026-05-20-01-38-33
## 原始需求摘要
用户提出五项修改:去掉“开始自动配准”;将上方导出改为“导出全部 NII.GZ”并提供 DICOM 原始影像、分割影像、位姿数据选项,方便 ITK-SNAP 打开检查;在三维融合视角右下角增加小型 XYZ 坐标轴;解决重新进入项目后可视化工具栏保存位姿丢失;处理浏览器对 `blob:http` 下载的 insecure connection 报错。
## 业务目标
- 顶部操作区更聚焦导出,不再展示自动配准演示按钮。
- 导出的医学影像文件与 DICOM 原始序列维度、spacing 对齐,能被 ITK-SNAP 作为主影像/分割影像加载。
- 位姿数据能随项目保存,并能作为导出侧车 JSON 下载。
- 三维融合视角提供固定的 XYZ 空间方向提示。
- 前端下载避免 `URL.createObjectURL(blob)`,减少 `blob:http` insecure connection 警告。
## 输入与输出
- 输入:
- 当前项目 DICOM 序列、模块样式、已保存位姿。
- 用户在导出选项中勾选的 DICOM 原始影像、分割影像、位姿数据。
- 输出:
- DICOM 原始影像 `.nii.gz`
- 与原始影像同维度/spacing 的分割影像 `.nii.gz`
- 项目位姿与构件样式 JSON。
- 重新进入项目仍可读取的已保存位姿。
## 影响范围
- `WebSite/server.ts`
- `WebSite/src/lib/api.ts`
- `WebSite/src/types.ts`
- `WebSite/src/components/ReverseWorkspace.tsx`
- 本次工程分析文档与 `工程分析/经验记录.md`
## 关键约束
- 不引入新依赖。
- 旧的分割导出入口仍需兼容。
- NIfTI 文件需要保持标准 NIfTI-1 单文件布局,设置正确 dim、datatype、pixdim、vox_offset、magic。
- 位姿保存不能只停留在 React 组件内存中,需要写入项目状态文件。
- 本次提交不能混入历史 `工程分析` 文档删除状态。
## 风险点
- 导出完整 512x512x300 体数据会比旧 64x64x64 演示 Mask 大很多,生成和下载耗时增加。
- 当前分割影像仍是后端基于 DICOM 像素阈值生成的同维度标签图,不等同于完整 STL 体素化算法。
- HTTP 访问环境下浏览器仍可能对非 HTTPS 下载有提示,但去掉 blob URL 可消除当前报错指向的 `blob:http` 链路。
## 默认假设
- “DICOM 原始影像”导出优先保证 ITK-SNAP 可打开与空间尺寸匹配,使用当前解析到的 CT HU int16 数据写入 NIfTI。
- “位姿数据”作为 JSON 侧车文件导出,供复现实验参数使用,不作为 ITK-SNAP 主影像打开。