Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-05-20-22-35-42.md

62 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 实现方案-2026-05-20-22-35-42
## 实现方案文档路径
`工程分析/实现方案-2026-05-20-22-35-42.md`
## 修改目标
- 精简 Overlay Label Map 状态文案。
- 导出项目及结果支持分割整体/分构件导出,并调整默认勾选与排序。
- 为项目库 DICOM/STL 导入按钮接入真实上传流程,空项目展示导入提示。
- 项目级上传资产独立存储,恢复演示环境仍使用默认数据。
- 用户账号重名冲突给出可读反馈。
- 逆向工作区无保存结果时初次加载默认执行 Z 轴等比例拉伸。
## 涉及路径
- `WebSite/server.ts`
- `WebSite/src/lib/api.ts`
- `WebSite/src/components/ProjectLibrary.tsx`
- `WebSite/src/components/ReverseWorkspace.tsx`
- `WebSite/src/components/UserManagement.tsx`
- `工程分析/经验记录.md`
## 技术路线
1. 后端新增项目上传资产目录 `WebSite/data/uploads/<projectId>/dicom|stl`,导入接口接收 base64 文件并写入项目专属目录。
2. 后端统一项目 DICOM/STL 路径解析,预览、三维融合、模型文件、导出和分割生成均读取项目路径。
3. 导出包接口增加 `segmentationExportMode=combined|separate` 参数;整体模式沿用现有 label map分构件模式逐个构件生成独立 NII.GZ。
4. 前端导出面板增加分割导出方式单选,调整默认选择和选项顺序。
5. 项目库导入按钮使用隐藏文件输入,按当前视图选择 DICOM 或 STL 上传,并刷新项目状态。
6. 用户管理编辑接口 409 时展示“账号已存在,请更换账号”等提示。
7. 逆向工作区加载项目后,若没有保存结果,则在 fusion volume 和模型边界都就绪后触发一次 Z 拉伸。
## 执行步骤
1. 编写本次需求分析、实现方案、测试方案。
2. 阅读并定位导出、导入、项目路径、用户管理和逆向工作区相关源码。
3. 修改后端资产导入与导出逻辑。
4. 修改前端项目库、逆向工作区和用户管理交互。
5. 执行 `npm run lint``npm run build`
6. 使用 tmux 重启 `revoxelseg-dicom` 服务并验证 `/api/health` 与首页。
7. 追加经验记录,提交并推送本次相关文件。
## 兼容性与回滚方案
- 未导入资产的默认项目继续读取 `Head_CT_DICOM/``Head_CT_ReConstruct/`
- 已保存的项目路径由状态文件保存,恢复演示环境可通过现有重置接口回到默认路径。
- 若分构件导出失败,可回退为 `segmentationExportMode=combined` 的原有整体导出。
## 预计文件变更
- 前端3 个组件与 API 封装。
- 后端1 个 Express 服务文件。
- 工程文档:本次三件套与经验记录。
## 提交与部署策略
- 仅暂存本次修改的源码与工程分析文档。
- commit message 包含 `2026-05-20-22-35-42` 与简要描述。
- 提交后推送到既有 Gitea 远端,并重启 4000 端口服务。