2026-05-07-16-20-46 修正DICOM比例和3D默认位姿

This commit is contained in:
2026-05-07 16:26:57 +08:00
parent 1cc750b7e4
commit aa0d51316e
11 changed files with 1012 additions and 87 deletions

View File

@@ -0,0 +1,68 @@
# 测试方案 - 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`