2026-05-20-02-55-11 修复头部STL实体导出

This commit is contained in:
2026-05-20 03:02:30 +08:00
parent 68fb0cb564
commit b9c0f17313
5 changed files with 332 additions and 13 deletions

View File

@@ -0,0 +1,65 @@
# 测试方案:头部 STL 实体导出验证
测试方案文档路径:`工程分析/测试方案-2026-05-20-02-55-11.md`
## 静态检查
- 运行 `npm run lint`,确认 TypeScript 类型检查通过。
- 运行 `git diff --check`,确认无空白错误。
结果:已通过。
## 构建检查
-`WebSite/` 执行 `npm run build`,确认生产构建通过。
结果已通过。Vite 仍提示单个 bundle 超过 500 kB此为既有体积提示不影响本次导出修复。
## 关键业务场景验证
- 启动临时服务或复用部署服务。
- 请求分割导出包:
- `targets=segmentation,pose`
- `format=nii.gz`
- `segmentationScope=visible`
- 解包并检查包含:
- `*-segmentation-label.nii.gz`
- `*-segmentation-labels.json`
- `*-pose-data.json`
结果:已通过。临时服务 `127.0.0.1:4100` 下:
- `segmentationScope=visible`HTTP 200约 431802 bytes用时约 6.56 s。
- `segmentationScope=all`HTTP 200约 667690 bytes用时约 8.51 s。
- 压缩包内包含分割 NIfTI、labels JSON 与 pose JSON。
## 医学影像数据相关边界验证
- 读取导出的 NIfTI header确认维度仍为 DICOM 同维度。
- 统计 label 体素分布,重点检查 `头部` 对应 label 的体素数量和 slice 分布不再表现为极少量散点。
- 检查导出包内 labels JSON 中 `头部.stl` 的 label 对应关系。
结果:已通过。
- NIfTI 维度:`512 x 512 x 300``vox_offset=352`
- `visible` 范围下 `头部.stl` 对应 label 7体素数 `11742597`,覆盖 slice `13-287`,共 `275` 层,最大单层 `83903` 体素。
- `all` 范围下 label 7 体素数 `9845171`label 8 `头颅.stl` 体素数 `1930290`,二者均覆盖 `275` 层。
- labels JSON 中 `头部.stl` 的 label/partId 为 `7`
## 部署验证
- 重新部署后验证:
- `http://127.0.0.1:4000/api/health`
- `http://127.0.0.1:4000/`
- 对部署后的导出包端点再做一次小样本验证。
## Git/Gitea 备份验证
- 提交信息包含 `2026-05-20-02-55-11` 和本次修复摘要。
- 推送到 Gitea 成功。
## 风险与回归关注点
- 完整 STL 导出比预览抽样更耗时,需要观察请求耗时。
- 多构件重叠时仍按现有顺序写入 label后写构件会覆盖先写构件。
- 旧的未暂存历史删除状态不应混入提交。