59 lines
2.3 KiB
Markdown
59 lines
2.3 KiB
Markdown
# 实现方案-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`。
|