3.0 KiB
3.0 KiB
测试方案 - 2026-05-04-05-56-34
静态检查
- 执行
npm run lint,确认 TypeScript 类型检查通过。 - 执行
npm run build,确认生产构建通过。
集成测试
- DICOM preview API:
- 验证 axial/sagittal/coronal 均返回。
- 验证 sagittal/coronal 返回的
spacing、physicalSize、width/height合理。
- DICOM info API:
- 验证返回 patient/study/series/image/window/spacing/sequence/source 分组。
- 验证 Pixel Spacing、Slice Spacing、Rows、Columns、文件数量等信息存在。
- STL preview API:
- 验证
limit=6000/16000/36000/72000返回不报错。
- 验证
关键业务场景验证
- DICOM 影像页:
- 矢状面/冠状面不再异常扁平。
- 点击信息按钮弹出详情面板。
- 详情面板展示像素间距、切片间距、切片厚度、矩阵、物理尺寸。
- 3D 模型页:
- 不再显示白色实体和自动旋转开关。
- 实体化档位包含“超精细”。
- 默认正向静止摆放。
- 重置位姿按钮位于“整体位姿”标题右侧。
- 左键拖拽旋转,右键/Shift 拖拽平移,滚轮缩放。
- 画布交互后右侧整体位姿滑块数值同步变化。
医学影像数据相关边界验证
- DICOM tag 缺失时使用 fallback,不导致接口 500。
- 切片间距优先 Image Position Patient 差值,再 fallback 到 Spacing Between Slices、Slice Thickness、1mm。
- 多平面物理比例不改变切片总数和当前切片编号逻辑。
回归风险
- 物理比例重采样可能增大图像尺寸,需要限制最大输出尺寸。
- 超精细 STL 预览可能变慢,需要保留低档位。
- 鼠标交互需避免页面滚动和右键菜单干扰。
人工审核状态
用户已明确本次无需人工二次确认,按本方案执行验证。
执行结果
npm run lint:通过。npm run build:通过;Vite 仍提示 bundle 超过 500 kB,为现有 Three.js/Recharts 依赖导致的非阻断警告。- DICOM preview API 验证:
sagittal返回384x421,spacing.slice=1mm、displayY=0.78125mm,物理尺寸约300mm x 328.906mm。coronal返回384x512,spacing.slice=1mm、displayY=0.78125mm,物理尺寸约300mm x 400mm。
- DICOM info API 验证:
- 返回患者
WANG FANG、CT、文件数300、矩阵512x512。 - 返回
row/column spacing=0.781mm、slice=1mm,来源ImagePositionPatient。 - 返回物理尺寸
400mm x 400mm x 299mm。
- 返回患者
- STL preview API 验证:
limit=6000/16000/36000/72000均返回,首个 STL 在超精细档达到原始17384个三角面。
- 无头 Chrome 前端验证:
- DICOM 信息按钮存在。
- DICOM 信息弹窗存在,并展示像素行间距、切片间距、物理尺寸。
- 3D 页存在“超精细”,已移除“白色实体”和“自动旋转”。
- 默认位姿滑块为
0,0,0 / 0,0,0 / 1。 - 页面包含“左键旋转”和“滚轮缩放”提示。
- 已重新部署到
http://192.168.3.11:4000/,tmux 会话:revoxelseg-dicom。