3.2 KiB
3.2 KiB
实现方案-2026-06-23-13-38-48
实现方案文档路径
工程分析/实现方案-2026-06-23-13-38-48.md
修改目标
新增模型位姿的单轴拉伸能力,使逆向工作区可按某一坐标轴非等比例拉伸模型,并保证缩放、保存、导出、项目库预览和自动微调匹配都使用该拉伸后的统一模型位姿。
涉及路径
WebSite/src/types.tsWebSite/src/components/ReverseWorkspace.tsxWebSite/src/components/AutoMatchWorkspace.tsxWebSite/src/components/ProjectLibrary.tsxWebSite/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,新增scaleX、scaleY、scaleZ,默认值为1。 - 统一归一化和 clamp 范围,让旧数据自动补齐新字段。
- 前端三维视图和二维分割映射采用同一变换顺序:
- 原始模型中心化。
- 应用统一缩放、镜像和旋转。
- 在融合坐标系下应用
scaleX/scaleY/scaleZ单轴拉伸。 - 应用平移。
- 后端
transformPointForExportPose使用相同变换顺序,保证导出和自动匹配评分一致。 - 逆向工作区保留现有等比例自动拉伸,再新增单轴拉伸按钮;单轴拉伸时自动把对应平移置 0。
- 自动微调匹配工作区不额外优化
scaleX/scaleY/scaleZ,但请求、评分、对比视图和保存结果保留并应用这些字段。
执行步骤
- 扩展前后端位姿类型、默认值、格式化、归一化和 reset 行为。
- 修改
ReverseWorkspace的模型变换、二维映射和工具栏按钮。 - 修改
ProjectLibrary结果预览中的模型变换,兼容新字段。 - 修改
server.ts的位姿归一化、管线参数解析、自动匹配评分和导出分割变换。 - 运行
npm run lint与npm run build。 - 重启
tmux会话revoxelseg-dicom并验证本机/局域网访问。 - 追加经验记录并提交本次文档与源码备份 commit。
兼容性与回滚方案
- 兼容性:旧位姿不含
scaleX/scaleY/scaleZ时默认按1处理,与旧行为完全一致。 - 回滚:如新拉伸或导出异常,可回退本次 commit 并重新构建部署。
- 数据风险:本次不修改医学数据;运行态
state.json只会在用户实际保存项目时记录新字段。
预计文件变更
- 修改:
WebSite/src/types.tsWebSite/src/components/ReverseWorkspace.tsxWebSite/src/components/AutoMatchWorkspace.tsxWebSite/src/components/ProjectLibrary.tsxWebSite/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。