69 lines
3.0 KiB
Markdown
69 lines
3.0 KiB
Markdown
# 实现方案-2026-05-24-10-45-43
|
||
|
||
## 实现方案文档路径
|
||
|
||
`工程分析/实现方案-2026-05-24-10-45-43.md`
|
||
|
||
## 修改目标
|
||
|
||
- 定位并修正分割映射显示为空心线段的问题,使二维映射区域默认填充显示。
|
||
- 为模型位姿增加 X/Y/Z 镜像翻转开关,并贯通保存、导入、导出、前后端类型和渲染。
|
||
- 修改“构件分别导出”包结构,将所有构件文件集中到同一目录层级。
|
||
- 为项目库 DICOM 首页预览增加滚轮缩放、拖拽平移和位置重置。
|
||
- 修正 DICOM 切片编号显示与滑块样式。
|
||
- 同步更新 `Docker部署/README.md`,说明容器构建会包含这些前后端能力和生产模式注意事项。
|
||
|
||
## 涉及路径
|
||
|
||
- `WebSite/src/components/ProjectLibrary.tsx`
|
||
- `WebSite/src/components/ReverseWorkspace.tsx`
|
||
- `WebSite/src/types.ts`
|
||
- `WebSite/server.ts`
|
||
- `Docker部署/README.md`
|
||
- `工程分析/需求分析-2026-05-24-10-45-43.md`
|
||
- `工程分析/实现方案-2026-05-24-10-45-43.md`
|
||
- `工程分析/测试方案-2026-05-24-10-45-43.md`
|
||
- `工程分析/经验记录.md`
|
||
|
||
## 技术路线
|
||
|
||
1. 使用 `rg` 定位分割映射、DICOM 预览、位姿控件、导出包逻辑。
|
||
2. 梳理现有 `ModelPoseValue` 与服务端导出函数,增加镜像字段和默认值。
|
||
3. 在前端三维/二维变换路径中使用统一位姿对象,新增镜像按钮组。
|
||
4. 调整二维分割映射绘制逻辑,优先使用闭合轮廓填充;对 sparse/edge-only 结果提供填充兜底。
|
||
5. 修改导出包 `separate` 模式的目录结构。
|
||
6. 为项目库 DICOM 画布加入 viewport state:scale、offset、dragging、reset。
|
||
7. 封装或局部实现 DICOM 切片显示编号反向映射与暗色菱形 range 样式。
|
||
8. 更新 Docker 部署说明。
|
||
|
||
## 执行步骤
|
||
|
||
1. 创建本次三件套,最终执行前再次阅读 `经验记录.md`。
|
||
2. 阅读相关源码和 API,确认现有数据结构。
|
||
3. 修改类型、服务端和前端实现。
|
||
4. 更新 Docker 部署文档。
|
||
5. 执行 `npm run lint`、`npm run build`。
|
||
6. 重新部署并验证本机、公网、关键 API。
|
||
7. 追加经验记录。
|
||
8. 提交并推送 Gitea。
|
||
|
||
## 兼容性与回滚方案
|
||
|
||
- 新增镜像字段设置默认值,旧状态文件和旧位姿导出没有该字段时按不翻转处理。
|
||
- 导出包结构改变只影响 `separate` 模式;如需回滚,可恢复服务端包路径生成逻辑。
|
||
- DICOM 显示缩放/拖动仅改变前端视图,不改变后端切片、导出或空间基准。
|
||
- 所有历史文档可从 Git 历史恢复。
|
||
|
||
## 预计文件变更
|
||
|
||
- 前端组件和类型文件。
|
||
- 后端导出、位姿解析和体素坐标变换逻辑。
|
||
- Docker 部署说明。
|
||
- 本次工程分析与经验记录。
|
||
|
||
## 提交与部署策略
|
||
|
||
- commit message:`2026-05-24-10-45-43 修正分割显示镜像导出与DICOM交互`
|
||
- 提交范围包含本次源码、Docker 文档和工程分析文档。
|
||
- 部署使用 `NODE_ENV=production npm run serve -- --host 0.0.0.0 --port 4000`,并保留现有 frpc 容器公网入口。
|