# 测试方案:头部 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,后写构件会覆盖先写构件。 - 旧的未暂存历史删除状态不应混入提交。