2.6 KiB
2.6 KiB
实现方案
时间戳:2026-05-04-04-12-34
修改目标
完善项目库导入/下载按钮语义、DICOM 三方向预览、STL 多模型颜色透明度控制、项目创建弹窗、删除确认和编辑自动保存。
涉及路径
WebSite/server.tsWebSite/src/lib/api.tsWebSite/src/types.tsWebSite/src/components/ProjectLibrary.tsx工程分析/测试方案-2026-05-04-04-12-34.md工程分析/经验记录.md
技术路线
- 后端 DICOM 预览扩展。
GET /api/projects/:projectId/dicom-preview?slice=&plane=- 支持
plane=axial|sagittal|coronal。 - 横断面读取单张 DICOM。
- 矢状面/冠状面从 DICOM 序列采样生成重建平面。
- 后端项目删除。
- 新增
DELETE /api/projects/:projectId。 - 删除后写入共享状态。
- 新增
- 前端 API 扩展。
getDicomPreview(projectId, slice, plane)。deleteProject(projectId)。
- 项目库交互。
- 顶部右侧按钮:DICOM/3D 视图显示“导入”;分割结果不显示顶部第二按钮。
- 创建项目改为点击
+弹窗输入名称。 - 编辑项目名称改为输入框失焦或回车自动保存。
- 删除项目点击垃圾桶后弹窗二次确认。
- DICOM UI。
- 增加横断面、矢状面、冠状面切换。
- 右侧滑块改为稳定轨道,显示
第 n / 总数。 - 圆点与轨道对齐。
- 3D 模型 UI。
- 右侧眼睛为全体显示/隐藏。
- 每个 STL 使用颜色输入框和透明度滑块。
- Three.js 同时渲染所有可见 STL,并应用对应颜色和透明度。
- 删除无意义状态点。
数据流
DICOM:
前端选择方向和切片 -> 后端按方向返回灰度像素 -> 前端 canvas 绘制。
3D:
后端提供 STL 文件 -> 前端为每个 STL 建立颜色/透明度/可见性状态 -> Three.js 渲染多模型。
项目:
创建弹窗 -> POST /api/projects;编辑失焦 -> PATCH /api/projects/:id;删除确认 -> DELETE /api/projects/:id。
兼容性与回滚方案
- 保留原
axial行为,新增方向参数不影响旧调用。 - 若矢状面/冠状面解析失败,前端显示错误态。
- 若 STL 多模型性能不足,可通过全体眼睛或单项眼睛隐藏模型。
- 回滚时恢复
ProjectLibrary.tsx和相关 API 即可。
预计文件变更
- 修改
server.ts、api.ts、types.ts、ProjectLibrary.tsx。 - 更新测试方案执行结果。
- 更新经验记录。
人工审核状态
本次用户明确要求无需人工二次确认。
状态:自动确认,继续执行。