Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-05-24-15-37-16.md

59 lines
2.3 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-24-15-37-16
## 实现方案文档路径
`工程分析/实现方案-2026-05-24-15-37-16.md`
## 修改目标
- 将项目库 DICOM 影像位置重置按钮移动/补充到左转、右转按钮组旁。
- 对前端逆向分割映射的切面线段进行连通分组,避免不同组件或孤立碎片被同一行扫描线错误配对。
- 对服务端导出 Label Map 使用同样的连通分组策略,减少不规则相连线。
- 增加小缝隙闭合处理,缓解实体区域内部横向黑线。
- 保留对开口/非流形模型的保守说明。
## 涉及路径
- `WebSite/src/components/ProjectLibrary.tsx`
- `WebSite/src/components/ReverseWorkspace.tsx`
- `WebSite/server.ts`
- `工程分析/需求分析-2026-05-24-15-37-16.md`
- `工程分析/实现方案-2026-05-24-15-37-16.md`
- `工程分析/测试方案-2026-05-24-15-37-16.md`
- `工程分析/经验记录.md`
## 技术路线
1. 项目库 DICOM 画布由父组件下发 reset token让外部按钮触发内部 viewport 复位。
2. 前端 overlay 按切面线段端点近邻关系分组,每个连通组独立扫描线填充。
3. 对每个连通组的 mask 做小 gap closing再做内部孔洞填充。
4. 服务端 NIfTI 生成路径复用同样的分组、逐组填充、gap closing 和兜底逻辑。
5. 对孤立或开口线段组件减少跨组件配对,避免导出长线桥接。
## 执行步骤
1. 创建当次三件套。
2. 再次确认已读 `工程分析/经验记录.md`
3. 修改项目库 DICOM 控件。
4. 修改前端 overlay 填充算法。
5. 修改服务端导出算法。
6. 执行 `npm run lint``npm run build`
7. 重新部署并验证本机、公网、导出包。
8. 追加经验记录,提交并推送。
## 兼容性与回滚方案
- UI reset token 只影响 DICOM 预览视窗状态,不改变 DICOM 数据。
- 连通分组只改变轮廓填充方式,不改变项目状态结构。
- 若新填充策略过度保守,可回滚到上一提交 `f279770` 的扫描线逻辑。
## 预计文件变更
- 前端组件和后端导出逻辑。
- 本次工程分析文档和经验记录。
## 提交与部署策略
- commit message`2026-05-24-15-37-16 修正mask线条桥接与DICOM复位入口`
- 部署沿用 `tmux` 会话 `revoxelseg-dicom`,生产模式端口 `4000`