3.5 KiB
3.5 KiB
实现方案:逆向分割结果单结果化与入口统一
实现方案文档路径:工程分析/实现方案-2026-05-20-14-19-23.md
修改目标
调整项目库与逆向工作区的逆向分割结果保存、展示、读取和导出交互,使结果只保留一个、命名统一、入口集中、退出有保存提醒。
涉及路径
WebSite/src/App.tsxWebSite/src/components/ProjectLibrary.tsxWebSite/src/components/ReverseWorkspace.tsxWebSite/src/types.tsWebSite/src/lib/api.tsWebSite/server.ts工程分析/需求分析-2026-05-20-14-19-23.md工程分析/实现方案-2026-05-20-14-19-23.md工程分析/测试方案-2026-05-20-14-19-23.md工程分析/经验记录.md
技术路线
- 后端保存分割结果接口改为覆盖保存,只保留最新一条记录。
- 项目归一化时保留最新一条
segmentationResults,兼容旧状态中已有多条记录。 - 扩展
SegmentationResult存储必要的切片范围、当前映射切片、显示/融合配置等上下文,用于重新进入工作区恢复。 - 逆向工作区加载项目时读取最新保存结果,恢复位姿、构件样式、分割范围和映射切片。
App.tsx接入工作区离开保护:离开逆向工作区时调用工作区注册的保存确认逻辑。- 项目库页签改名为“逆向分割结果”,内容改为两张视图预览卡片和右侧导出面板。
- 顶部导出文案统一改为“导出项目及结果”,并将保存按钮移动到旁边。
- 删除映射视图标题旁边的
NII、NII.GZ小下载按钮。 - 保存成功后显示顶部悬浮提示并渐隐消失。
执行步骤
- 阅读现有类型、API、后端保存接口、项目库和逆向工作区组件结构。
- 更新类型定义与后端归一化/保存逻辑。
- 更新 API payload 和前端保存调用。
- 更新项目库 UI 与导出按钮文案。
- 更新逆向工作区顶部操作区和映射视图标题区。
- 接入退出保存确认和进入工作区结果恢复。
- 运行类型/构建检查、服务部署验证。
兼容性与回滚方案
- 后端归一化兼容旧的多条
segmentationResults,只取最后一条作为当前结果。 - 若保存上下文字段缺失,前端继续使用默认位姿、默认切片范围和默认显示配置。
- 若导出按钮菜单异常,可继续调用现有
/api/projects/:projectId/export-bundle后端接口。
预计文件变更
程序文件:
WebSite/src/App.tsxWebSite/src/components/ProjectLibrary.tsxWebSite/src/components/ReverseWorkspace.tsxWebSite/src/types.tsWebSite/src/lib/api.tsWebSite/server.ts
工程分析:
- 本轮三份分析文档。
工程分析/经验记录.md。
提交与部署策略
- 暂存本轮程序改动与工程分析文档。
- 避免提交软著材料、运行态导出文件、旧历史文档删除状态。
- commit message 包含
2026-05-20-14-19-23。 - 构建通过后重启
tmux会话revoxelseg-dicom并验证服务。
实际实现记录
- 后端
segmentationResults归一化改为只保留最新一条,并扩展保存切片、显示、边界与切割状态字段。 - 导出接口默认使用最新保存结果的位姿、构件样式和类别范围。
- 逆向工作区进入时恢复最新保存结果,退出时注册保存确认守卫。
- 项目库“逆向分割结果”改为两张预览图加右侧统一导出面板。
- 顶部保存按钮迁移到导出按钮旁,并加入保存成功悬浮渐隐提示。