# 测试方案 时间戳: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/' ``` 预期: - 三方向 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 可见性。