2026-05-20-02-32-47 支持NII导出包与分割类别范围

This commit is contained in:
2026-05-20 02:40:50 +08:00
parent 66ad99f996
commit 68fb0cb564
7 changed files with 469 additions and 29 deletions

View File

@@ -0,0 +1,62 @@
# 测试方案-2026-05-20-02-32-47
## 测试方案文档路径
`工程分析/测试方案-2026-05-20-02-32-47.md`
## 静态检查
-`WebSite/` 下执行 `npm run lint`
## 构建检查
-`WebSite/` 下执行 `npm run build`
## 关键业务场景验证
- 顶部“导出全部 NII.GZ”选择多个内容后只触发一个压缩包下载。
- 选中分割影像时,菜单显示“导出可见类别/导出所有类别”选项。
- bundle 中包含所选 DICOM NIfTI、分割 NIfTI、位姿 JSON。
- 若包含分割影像bundle 中同时包含 `segmentation-labels.json`
- 类别 JSON 中 label/partId/name/fileName/color/opacity/visible 与项目构件层级一致。
## 医学影像数据相关边界验证
- DICOM NIfTI 仍为真实 DICOM 体数据同维同距。
- 分割 NIfTI 仍使用当前模型位姿。
- visible scope 下隐藏构件不进入分割图和类别 JSON。
- all scope 下隐藏构件仍进入分割图和类别 JSON。
## 部署验证
- 重启 `tmux` 会话 `revoxelseg-dicom`
- 验证:
- `curl http://127.0.0.1:4000/api/health`
- `curl -I http://127.0.0.1:4000/`
## Git/Gitea 备份验证
- 显式暂存本次相关代码和文档。
- 创建包含时间戳和描述的 commit。
- 推送到 Gitea `origin/main`
## 实测结果
- `npm run lint`:通过。
- `npm run build`:通过;仅保留 Vite chunk size 提醒。
- 临时服务 `127.0.0.1:4100` 验证 `targets=segmentation,pose&segmentationScope=visible`HTTP 200返回 `.tar.gz`
- visible bundle 包内包含:
- `head-ct-demo-segmentation-label.nii.gz`
- `head-ct-demo-segmentation-labels.json`
- `head-ct-demo-pose-data.json`
- `segmentation-labels.json` 验证包含 `segmentationScope=visible``label/partId/name/categoryName/className/fileName/color/opacity/visible` 字段。
- 临时服务验证 `targets=dicom,segmentation,pose&segmentationScope=all`HTTP 200返回约 75.90 MB `.tar.gz`
- all bundle 包内包含 DICOM NIfTI、分割 NIfTI、分割 labels JSON、位姿 JSON。
- all labels JSON 验证包含隐藏构件,隐藏项 `visible=false` 仍保留。
- bundle 内分割 NIfTI 头验证:`512x512x300`datatype `2`bitpix `8`,最大标签 `9`
## 风险与回归关注点
- 避免重新引入 `URL.createObjectURL(blob)` 下载。
- 避免提交历史工程文档删除状态。
- 大体数据打包接口要捕获异常并返回明确错误。