3.5 KiB
3.5 KiB
测试方案:导出 STL、保存分割结果与项目库复核
测试方案文档路径:工程分析/测试方案-2026-05-20-03-19-25.md
静态检查
- 运行
npm run lint,确认 TypeScript 类型检查通过。 - 运行
git diff --check,确认无空白错误。
结果:已通过。
构建检查
- 在
WebSite/执行npm run build,确认生产构建通过。
结果:已通过。Vite 仍有单 bundle 超过 500 kB 的既有提示,不影响本次功能。
关键业务场景验证
- 调用
POST /api/projects/head-ct-demo/segmentation-results,确认返回项目包含保存记录。 - 调用
/api/projects/head-ct-demo/export-bundle?targets=stl,确认压缩包内包含原始 STL 文件。 - 调用
/api/projects/head-ct-demo/export-bundle?targets=segmentation,pose,stl,确认分割、位姿与 STL 可共包导出。 - 验证项目库
分割结果右侧导出菜单参数与逆向工作区一致。
结果:已通过。
- 临时服务
127.0.0.1:4100下保存接口返回segmentationResults,并可看到默认最佳位姿。 targets=stl返回 HTTP 200,压缩包约116M,目录包含 9 个原始 STL:会厌、气管上段、气管狭窄段、气管下段、气管整体、声门、头部、头颅、肿瘤。targets=segmentation,pose,stl返回 HTTP 200,约121433464bytes,用时约7.58s,包内包含分割 NIfTI、labels JSON、pose JSON 和 STL 原始模型。
医学影像数据相关边界验证
- 分割导出仍保持 DICOM 同维度 NIfTI。
- 保存的分割结果导出时使用保存时位姿。
visible/all分割范围继续影响 Label Map 与 labels JSON。
结果:已覆盖导出包结构验证;分割 NIfTI 生成逻辑未改变,继续复用上一轮完整 STL 网格实体导出链路。
UI 验证
- 逆向工作区顶部出现
保存至项目库。 - 三栏布局中左侧融合视角变窄,中部工具栏和右侧映射视图变宽。
- 右侧图例只显示当前 slice 中有边或填充像素的构件;无构件时显示空状态。
- 项目库分割结果区域显示保存记录和导出入口。
文档验证
Agent.md存在。Agent.md包含当前系统使用方式。主要功能说明在 500~1300 字范围内。
结果:已通过。Agent.md 总字数约 1105 字符,主要功能段落在 500~1300 字范围内。
部署验证
- 重新部署后验证:
http://127.0.0.1:4000/api/healthhttp://127.0.0.1:4000/
- 部署后验证导出包接口。
结果:已通过。
tmux会话revoxelseg-dicom已重启,服务输出ReVoxelSeg DICOM server ready at http://0.0.0.0:4000/。/api/health返回{"ok":true,"service":"revoxelseg-dicom"}。- 首页 HTTP 200。
- 部署后
targets=stl导出返回 HTTP 200,约121372189bytes,压缩包内包含 9 个 STL 原始模型。
Git/Gitea 备份验证
- 提交信息包含
2026-05-20-03-19-25和本次修改摘要。 - 推送到 Gitea 成功。
结果:本地 Git commit 已完成;Gitea 推送重试 2 次均失败,错误为 No route to host,说明当前环境到 192.168.31.5:5002 网络不可达。待网络恢复后执行 git push origin main 即可补推。
风险与回归关注点
- STL 原始模型打包体积较大,接口验证可先用
targets=stl查看目录,不反复下载全量组合。 - 临时保存接口测试会修改
WebSite/data/state.json,该运行态文件不纳入提交。 - 旧的未暂存历史删除状态不应混入提交。