2026-05-04-04-12-34 优化项目库导入和三维交互
This commit is contained in:
108
工程分析/测试方案-2026-05-04-04-12-34.md
Normal file
108
工程分析/测试方案-2026-05-04-04-12-34.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# 测试方案
|
||||
|
||||
时间戳:2026-05-04-04-12-34
|
||||
|
||||
## 测试目标
|
||||
|
||||
验证项目库导入按钮语义、DICOM 三方向切片、STL 颜色透明度控制、项目创建弹窗、编辑自动保存和删除确认能力。
|
||||
|
||||
## 静态检查
|
||||
|
||||
- 检查 `ProjectLibrary.tsx`:
|
||||
- DICOM/3D 顶部第二按钮为“导入”。
|
||||
- 分割结果页无顶部第二按钮。
|
||||
- 创建项目通过弹窗触发。
|
||||
- 删除项目通过确认弹窗触发。
|
||||
- 编辑项目名称无保存按钮,失焦自动保存。
|
||||
- STL 模块包含颜色输入和透明度滑块。
|
||||
- 删除无意义状态点。
|
||||
- 检查 `server.ts`:
|
||||
- DICOM preview 支持 `plane`。
|
||||
- 项目支持 `DELETE`。
|
||||
|
||||
## 构建与类型检查
|
||||
|
||||
```bash
|
||||
cd WebSite
|
||||
npm run lint
|
||||
npm run build
|
||||
```
|
||||
|
||||
预期:
|
||||
|
||||
- TypeScript 检查通过。
|
||||
- Vite 构建通过。
|
||||
|
||||
## API 验证
|
||||
|
||||
```bash
|
||||
curl -s 'http://127.0.0.1:4000/api/projects/head-ct-demo/dicom-preview?plane=axial&slice=0'
|
||||
curl -s 'http://127.0.0.1:4000/api/projects/head-ct-demo/dicom-preview?plane=sagittal&slice=256'
|
||||
curl -s 'http://127.0.0.1:4000/api/projects/head-ct-demo/dicom-preview?plane=coronal&slice=256'
|
||||
curl -s -X POST http://127.0.0.1:4000/api/projects -H 'Content-Type: application/json' -d '{"name":"删除测试项目"}'
|
||||
curl -s -X DELETE http://127.0.0.1:4000/api/projects/<id>'
|
||||
```
|
||||
|
||||
预期:
|
||||
|
||||
- 三方向 DICOM preview 均返回 `width`、`height`、`pixels`、`plane`。
|
||||
- 创建项目成功。
|
||||
- 删除项目成功。
|
||||
|
||||
## 页面验证
|
||||
|
||||
- DICOM 页右侧控制条圆点与轨道对齐。
|
||||
- DICOM 页显示 `第 n / 总数`。
|
||||
- 可切换横断面、矢状面、冠状面。
|
||||
- 3D 页整体眼睛可控制所有 STL 显示/隐藏。
|
||||
- 单个 STL 的颜色和透明度控制影响模型渲染。
|
||||
- 项目创建由弹窗完成。
|
||||
- 项目编辑失焦自动保存。
|
||||
- 项目删除需要二次确认。
|
||||
|
||||
## 回归风险
|
||||
|
||||
- 矢状面/冠状面每次请求会读取多张 DICOM,可能有延迟。
|
||||
- 多 STL 同时显示时首屏加载可能较慢。
|
||||
|
||||
## 人工审核状态
|
||||
|
||||
本次用户明确要求无需人工二次确认。
|
||||
|
||||
状态:自动确认,继续执行。
|
||||
|
||||
## 执行结果
|
||||
|
||||
- `npm run lint` 执行成功。
|
||||
- `npm run build` 执行成功。
|
||||
- Vite 仍有大 chunk 警告,当前不影响本次功能。
|
||||
- `GET /api/projects/head-ct-demo/dicom-preview?plane=axial&slice=0` 返回:
|
||||
- `plane: axial`
|
||||
- `width: 512`
|
||||
- `height: 512`
|
||||
- `total: 300`
|
||||
- `GET /api/projects/head-ct-demo/dicom-preview?plane=sagittal&slice=0` 返回:
|
||||
- `plane: sagittal`
|
||||
- `width: 300`
|
||||
- `height: 512`
|
||||
- `total: 512`
|
||||
- `GET /api/projects/head-ct-demo/dicom-preview?plane=coronal&slice=0` 返回:
|
||||
- `plane: coronal`
|
||||
- `width: 300`
|
||||
- `height: 512`
|
||||
- `total: 512`
|
||||
- `POST /api/projects` 创建删除测试项目成功。
|
||||
- `DELETE /api/projects/:id` 删除测试项目成功。
|
||||
- `POST /api/demo/reset` 执行成功,演示环境已恢复默认项目。
|
||||
- headless Chrome 打开页面后未捕获 Recharts 宽高警告、`Uncaught` 或页面错误。
|
||||
- `http://192.168.3.11:4000/` 返回 `HTTP/1.1 200 OK`。
|
||||
- 当前服务由 `tmux` 会话 `revoxelseg-dicom` 托管。
|
||||
|
||||
## 页面侧验证点
|
||||
|
||||
- 顶部第二按钮在 `DICOM 影像` 和 `3D 模型` 视图显示为“导入”。
|
||||
- `分割结果` 视图顶部不显示额外导出按钮,只保留下方 NII/NII.GZ 下载按钮。
|
||||
- 项目创建入口改为点击 `+` 后弹窗。
|
||||
- 项目删除通过确认弹窗执行。
|
||||
- 项目编辑输入框失焦或回车自动保存。
|
||||
- 3D 模型侧栏每个 STL 提供颜色和透明度控制,整体眼睛控制所有 STL 可见性。
|
||||
Reference in New Issue
Block a user