Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-05-04-04-12-34.md

2.6 KiB
Raw Blame History

实现方案

时间戳2026-05-04-04-12-34

修改目标

完善项目库导入/下载按钮语义、DICOM 三方向预览、STL 多模型颜色透明度控制、项目创建弹窗、删除确认和编辑自动保存。

涉及路径

  • WebSite/server.ts
  • WebSite/src/lib/api.ts
  • WebSite/src/types.ts
  • WebSite/src/components/ProjectLibrary.tsx
  • 工程分析/测试方案-2026-05-04-04-12-34.md
  • 工程分析/经验记录.md

技术路线

  1. 后端 DICOM 预览扩展。
    • GET /api/projects/:projectId/dicom-preview?slice=&plane=
    • 支持 plane=axial|sagittal|coronal
    • 横断面读取单张 DICOM。
    • 矢状面/冠状面从 DICOM 序列采样生成重建平面。
  2. 后端项目删除。
    • 新增 DELETE /api/projects/:projectId
    • 删除后写入共享状态。
  3. 前端 API 扩展。
    • getDicomPreview(projectId, slice, plane)
    • deleteProject(projectId)
  4. 项目库交互。
    • 顶部右侧按钮DICOM/3D 视图显示“导入”;分割结果不显示顶部第二按钮。
    • 创建项目改为点击 + 弹窗输入名称。
    • 编辑项目名称改为输入框失焦或回车自动保存。
    • 删除项目点击垃圾桶后弹窗二次确认。
  5. DICOM UI。
    • 增加横断面、矢状面、冠状面切换。
    • 右侧滑块改为稳定轨道,显示 第 n / 总数
    • 圆点与轨道对齐。
  6. 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.tsapi.tstypes.tsProjectLibrary.tsx
  • 更新测试方案执行结果。
  • 更新经验记录。

人工审核状态

本次用户明确要求无需人工二次确认。

状态:自动确认,继续执行。