Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-06-23-13-38-48.md

3.2 KiB

实现方案-2026-06-23-13-38-48

实现方案文档路径

工程分析/实现方案-2026-06-23-13-38-48.md

修改目标

新增模型位姿的单轴拉伸能力,使逆向工作区可按某一坐标轴非等比例拉伸模型,并保证缩放、保存、导出、项目库预览和自动微调匹配都使用该拉伸后的统一模型位姿。

涉及路径

  • WebSite/src/types.ts
  • WebSite/src/components/ReverseWorkspace.tsx
  • WebSite/src/components/AutoMatchWorkspace.tsx
  • WebSite/src/components/ProjectLibrary.tsx
  • WebSite/server.ts
  • 工程分析/需求分析-2026-06-23-13-38-48.md
  • 工程分析/实现方案-2026-06-23-13-38-48.md
  • 工程分析/测试方案-2026-06-23-13-38-48.md
  • 工程分析/经验记录.md

技术路线

  • 扩展 ModelPose / ModelPoseValue,新增 scaleXscaleYscaleZ,默认值为 1
  • 统一归一化和 clamp 范围,让旧数据自动补齐新字段。
  • 前端三维视图和二维分割映射采用同一变换顺序:
    • 原始模型中心化。
    • 应用统一缩放、镜像和旋转。
    • 在融合坐标系下应用 scaleX/scaleY/scaleZ 单轴拉伸。
    • 应用平移。
  • 后端 transformPointForExportPose 使用相同变换顺序,保证导出和自动匹配评分一致。
  • 逆向工作区保留现有等比例自动拉伸,再新增单轴拉伸按钮;单轴拉伸时自动把对应平移置 0。
  • 自动微调匹配工作区不额外优化 scaleX/scaleY/scaleZ,但请求、评分、对比视图和保存结果保留并应用这些字段。

执行步骤

  1. 扩展前后端位姿类型、默认值、格式化、归一化和 reset 行为。
  2. 修改 ReverseWorkspace 的模型变换、二维映射和工具栏按钮。
  3. 修改 ProjectLibrary 结果预览中的模型变换,兼容新字段。
  4. 修改 server.ts 的位姿归一化、管线参数解析、自动匹配评分和导出分割变换。
  5. 运行 npm run lintnpm run build
  6. 重启 tmux 会话 revoxelseg-dicom 并验证本机/局域网访问。
  7. 追加经验记录并提交本次文档与源码备份 commit。

兼容性与回滚方案

  • 兼容性:旧位姿不含 scaleX/scaleY/scaleZ 时默认按 1 处理,与旧行为完全一致。
  • 回滚:如新拉伸或导出异常,可回退本次 commit 并重新构建部署。
  • 数据风险:本次不修改医学数据;运行态 state.json 只会在用户实际保存项目时记录新字段。

预计文件变更

  • 修改:
    • WebSite/src/types.ts
    • WebSite/src/components/ReverseWorkspace.tsx
    • WebSite/src/components/AutoMatchWorkspace.tsx
    • WebSite/src/components/ProjectLibrary.tsx
    • WebSite/server.ts
    • 工程分析/经验记录.md
  • 新增:
    • 工程分析/需求分析-2026-06-23-13-38-48.md
    • 工程分析/实现方案-2026-06-23-13-38-48.md
    • 工程分析/测试方案-2026-06-23-13-38-48.md

提交与部署策略

  • 只暂存本次源码和工程分析文档。
  • 不提交 DICOM/STL 数据、运行态 WebSite/data/、导出文件或无关变更。
  • commit message 使用:2026-06-23-13-38-48 新增逆向工作区单轴拉伸
  • 构建通过后使用 tmux 会话 revoxelseg-dicom 重新部署 NODE_ENV=production npm run serve -- --host 0.0.0.0 --port 4000