68 lines
3.6 KiB
Markdown
68 lines
3.6 KiB
Markdown
# 需求分析:逆向分割结果保存、展示与导出入口调整
|
||
|
||
开始时间:`2026-05-20-14-19-23`
|
||
|
||
## 原始需求摘要
|
||
|
||
用户要求修改程序:
|
||
|
||
1. 项目库中“分割结果”改名为“逆向分割结果”,该区域只显示“影像与模型融合视角”和“逆向分割映射视图”两张图;右侧也提供“导出全部 NII.GZ”同等功能按钮。
|
||
2. 逆向工作区中“保存至项目库”按钮移动到顶部“导出全部 NII.GZ”按钮旁边,按钮样式相近。
|
||
3. 项目库分割结果只保留一个;从逆向工作区退出时弹窗询问是否保存当前结果;每次进入逆向工作区读取项目库中“逆向分割结果”的结果。
|
||
4. 删除“逆向分割映射视图”旁边的 `NII`、`NII.GZ` 下载按钮。
|
||
5. 全部“导出全部 NII.GZ”文案改为“导出项目及结果”。
|
||
6. 点击保存至项目库后,在上方悬浮显示“已保存至项目库的分割结果区域”,并渐隐消失。
|
||
|
||
## 业务目标
|
||
|
||
- 将“逆向分割结果”从多条历史记录改为项目级单一当前结果,便于用户明确当前项目最终分割状态。
|
||
- 统一导出入口,避免右侧映射视图附近存在重复的 NII/NII.GZ 小按钮。
|
||
- 在项目库中以两张关键视图预览保存状态,强化“融合视角 + 映射视图”的复核语义。
|
||
- 保证工作区退出和重新进入时,用户的位姿、构件样式、切片范围等关键上下文能够延续。
|
||
|
||
## 输入与输出
|
||
|
||
输入:
|
||
|
||
- `WebSite/src/components/ProjectLibrary.tsx`
|
||
- `WebSite/src/components/ReverseWorkspace.tsx`
|
||
- `WebSite/src/App.tsx`
|
||
- `WebSite/src/types.ts`
|
||
- `WebSite/src/lib/api.ts`
|
||
- `WebSite/server.ts`
|
||
|
||
输出:
|
||
|
||
- 项目库页签和内容改名为“逆向分割结果”。
|
||
- 逆向工作区顶部新增/迁移“保存至项目库”按钮。
|
||
- 删除映射视图标题旁边的 `NII`、`NII.GZ` 下载按钮。
|
||
- 导出按钮文案统一为“导出项目及结果”。
|
||
- 保存结果只保留单条,并支持退出弹窗保存与进入工作区读取。
|
||
- 保存后显示顶部悬浮渐隐提示。
|
||
|
||
## 影响范围
|
||
|
||
- 前端主框架、项目库和逆向工作区交互。
|
||
- 后端项目状态归一化与分割结果保存接口。
|
||
- 项目导出包入口复用现有后端导出逻辑。
|
||
|
||
## 关键约束
|
||
|
||
- 保留现有导出包功能和参数能力,不破坏 DICOM、分割影像、位姿数据、STL 原始模型的可选导出。
|
||
- 只保留最新一个逆向分割结果,旧多条结果列表不再展示。
|
||
- 退出逆向工作区时不能直接丢弃当前工作状态,需要询问是否保存。
|
||
- 重新进入逆向工作区时应读取项目库中保存的位姿、构件样式和分割范围。
|
||
- UI 风格贴合现有医疗工具风格,避免过度装饰。
|
||
|
||
## 风险点
|
||
|
||
- `App.tsx` 当前直接切换工作区,退出工作区弹窗需要在视图切换链路中接入。
|
||
- 保存结果如果写入多个历史记录,会与“只保留一个”要求冲突,需要前后端一致改为覆盖。
|
||
- 若前端只恢复位姿而不恢复构件样式,项目库中的逆向分割结果与重新进入工作区显示会不一致。
|
||
- 当前工作区存在历史工程分析文档删除状态和软著未跟踪目录,提交时需精确暂存。
|
||
|
||
## 默认假设
|
||
|
||
- “两个图”优先采用当前项目库中的可视化预览卡片表达:影像与模型融合视角、逆向分割映射视图。若没有保存结果则显示空状态。
|
||
- 本轮不引入真实截图持久化文件,先以保存上下文驱动两张结果预览图和导出入口;避免在运行态中持久化大体积 base64 图片。
|