63 lines
2.9 KiB
Markdown
63 lines
2.9 KiB
Markdown
# 测试方案 - 2026-05-04-05-20-16
|
||
|
||
## 静态检查
|
||
|
||
- 执行 `npm run lint`,确认 TypeScript 类型检查通过。
|
||
- 执行 `npm run build`,确认生产构建通过。
|
||
|
||
## 集成验证
|
||
|
||
- 调用 `/api/projects/head-ct-demo/dicom-preview` 验证:
|
||
- `plane=axial`
|
||
- `plane=sagittal`
|
||
- `plane=coronal`
|
||
- `mode=bone`
|
||
- 调用 `/api/projects/head-ct-demo/dicom-archive` 验证压缩包响应头和文件名。
|
||
- 调用 `/api/projects/head-ct-demo/models/:fileName/preview` 验证 STL 预览顶点数据非空。
|
||
|
||
## 关键业务场景验证
|
||
|
||
- 项目库 DICOM 视图:
|
||
- 长按上下箭头能连续改变切片。
|
||
- 三个面切换后图像显示完整。
|
||
- 左/右旋转 90 度后画布方向变化。
|
||
- 下载当前 PNG 命名包含项目、平面、切片、模式、旋转角度。
|
||
- 下载 DICOM 压缩包可触发。
|
||
|
||
- 项目库 3D 模型视图:
|
||
- 模型加载进度可见。
|
||
- 加载完成后模型可见,而不是空白画布。
|
||
- 颜色、透明度、显示/隐藏状态仍可影响渲染。
|
||
|
||
- 逆向工作区:
|
||
- 顶部不再显示 `Head_CT_DICOM ↔ Head_CT_ReConstruct`。
|
||
- 当前项目上下文仍可见。
|
||
|
||
## 医学影像数据相关边界验证
|
||
|
||
- DICOM 序列按文件名自然排序。
|
||
- 矢状面/冠状面重建裁切保留边距,避免把真实人体区域裁掉。
|
||
- 显示模式与三平面组合时返回的 `total`、`slice`、`width`、`height` 合理。
|
||
|
||
## 回归风险
|
||
|
||
- DICOM 预览缓存键应包含平面、模式和切片,避免错图。
|
||
- PNG 下载应和当前旋转状态一致。
|
||
- 3D 模型抽样数量不能过高导致页面阻塞。
|
||
|
||
## 人工审核状态
|
||
|
||
用户已明确本次测试方案无需二次确认,记录后直接执行。
|
||
|
||
## 执行结果
|
||
|
||
- `npm run lint`:通过。
|
||
- `npm run build`:通过;Vite 提示 bundle 超过 500 kB,为 Three.js/Recharts 等现有依赖带来的体积警告,不阻断构建。
|
||
- `GET /api/projects/head-ct-demo/dicom-preview?plane=axial&slice=150&mode=default`:通过,返回 `512x512`,`total=300`,文件名 `151.dcm`。
|
||
- `GET /api/projects/head-ct-demo/dicom-preview?plane=sagittal&slice=256&mode=bone`:通过,返回 `300x421`,`total=512`。
|
||
- `GET /api/projects/head-ct-demo/dicom-preview?plane=coronal&slice=256&mode=soft`:通过,返回 `300x512`,`total=512`。
|
||
- `HEAD /api/projects/head-ct-demo/dicom-archive`:通过,返回 `Content-Type: application/gzip`,文件名 `head-ct-demo-Head_CT_DICOM-300-files.tar.gz`。
|
||
- `GET /api/projects/head-ct-demo/models/会厌.stl/preview?limit=1200`:通过,返回 `1159` 个抽样三角面、`10431` 个顶点数值。
|
||
- 无头 Chrome 前端验证:登录后进入项目库 3D 模型页,在 WebGL 不可用场景自动生成二维兜底预览,canvas 尺寸 `1236x567`,像素采样 `nonBackground=67`,确认不是空白画布。
|
||
- 已重启部署到 `http://192.168.3.11:4000/`,tmux 会话:`revoxelseg-dicom`。
|