52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
# 需求分析:修复头部 STL 导出后仍呈散点
|
||
|
||
开始时间:2026-05-20-02-55-11
|
||
|
||
## 原始需求摘要
|
||
|
||
用户反馈在 ITK-SNAP 中打开导出的 `head-ct-demo-segmentation-label.nii` 后,“头部”类别仍呈散点形式;用户指出 STL 本体不是散点,头部 STL 在三维查看器中是完整实体表面,因此导出的分割影像也不应呈点云。
|
||
|
||
## 业务目标
|
||
|
||
- 分割影像导出必须基于真实 STL 网格生成实体 Label Map。
|
||
- 大面数构件(尤其 `头部.stl`、`头颅.stl`)不能因预览抽样导致闭合轮廓断裂。
|
||
- ITK-SNAP 中轴向、冠状、矢状视图应显示连续实体分割,而不是稀疏点云。
|
||
|
||
## 输入与输出
|
||
|
||
- 输入:
|
||
- 默认项目 `head-ct-demo`。
|
||
- DICOM 原始序列。
|
||
- `Head_CT_ReConstruct/头部.stl` 等二进制 STL。
|
||
- 当前模型位姿、构件显隐与导出范围。
|
||
- 输出:
|
||
- 修复后的分割 NIfTI / NIfTI.GZ / 导出包。
|
||
- 工程分析文档与经验记录。
|
||
|
||
## 影响范围
|
||
|
||
- 后端 `WebSite/server.ts` 中 STL 到 NIfTI Label Map 的生成逻辑。
|
||
- 导出接口:
|
||
- `/api/projects/:projectId/export-mask`
|
||
- `/api/projects/:projectId/export-nifti`
|
||
- `/api/projects/:projectId/export-bundle`
|
||
- 前端下载入口原则上不需要改变,除非发现参数传递问题。
|
||
|
||
## 关键约束
|
||
|
||
- 保持 DICOM 维度、spacing、slice 数量与当前导出逻辑一致。
|
||
- 保持 labels JSON、位姿 JSON、压缩包结构兼容。
|
||
- 不将大型 DICOM/STL 数据或运行态导出文件纳入 Git 提交。
|
||
- 最终仍需重新部署并验证服务。
|
||
|
||
## 风险点
|
||
|
||
- 完整 STL 面数较大,不能把所有顶点长期存为大型 JS 数组造成内存膨胀。
|
||
- 需要避免继续复用预览抽样数据做医学导出。
|
||
- 若 STL 存在非闭合切口,仅靠扫描线偶奇填充可能仍出现孔洞,需要补充连通域填补。
|
||
|
||
## 默认假设
|
||
|
||
- 用户希望本次直接修复导出的 NIfTI 分割质量,而不是只解释原因。
|
||
- 头部散点的主要原因是后端导出使用了预览抽样网格,导致实体轮廓无法闭合。
|