2026-05-04-04-12-34 优化项目库导入和三维交互

This commit is contained in:
2026-05-04 04:20:30 +08:00
parent 26d3109f63
commit 4aad0f815d
8 changed files with 632 additions and 105 deletions

View 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 可见性。