Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-05-07-18-42-53.md

80 lines
3.6 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-07-18-42-53
## 修改目标
1. 移除逆向工作区可视化工具栏底部 Metadata 信息块。
2. 将 DICOM 融合切片范围控制改为融合视角下方单滑条,滑条值表示展示到第几张切片。
3. 将整体位姿控制区统一命名为“模型位姿”,并保留现有位姿保存、选择、重置和调节能力。
4. 将构件 ID 从纯组件状态提升为后端项目状态字段,使项目库 3D 模型与逆向工作区可视化工具栏联动。
## 涉及路径
- `WebSite/src/components/ReverseWorkspace.tsx`
- `WebSite/src/components/ProjectLibrary.tsx`
- `WebSite/src/server.ts`
- `WebSite/src/types.ts`
- `工程分析/经验记录.md`
## 技术路线
### 构件 ID 联动
- 在后端项目数据中增加 `moduleStyles` 字段,存储每个 STL 文件的:
- `visible`
- `color`
- `opacity`
- `partId`
- 项目库与逆向工作区读取项目时都使用同一个 `project.moduleStyles` 初始化。
- 任一页面修改 ID、颜色、透明度、显示状态时通过 `PATCH /api/projects/:projectId/module-styles` 写回后端。
- 前端本地状态更新后同步调用 API保证跨页面和跨浏览器一致。
### 融合切片范围
- 保留后端接口需要的 `start/end` 参数。
- 前端只展示一个滑条 `sliceEnd`,内部固定 `start = 0``end = sliceEnd`
- 滑条放在影像与模型融合视角下方,便于操作与结果对应。
### 位姿模块整合
- 将工具栏内的“整体位姿”标题改为“模型位姿”。
- 保留模型显示、位姿保存/选择、旋转、平移、缩放与重置功能,但减少重复命名。
### UI 清理
- 删除可视化工具栏底部 Metadata 代码块。
## 数据流
1. 后端读取或重置项目时生成默认 `moduleStyles``partId` 默认从 1 到 N。
2. 项目库修改构件 ID 后调用 API 保存。
3. 逆向工作区加载项目时读取最新 `moduleStyles`
4. 逆向工作区修改构件 ID 后同样调用 API 保存。
5. 融合视角滑条变化后触发 `dicom-fusion-volume?start=0&end=<sliceEnd>` 重新加载体数据。
## 兼容性与回滚方案
- 对旧 `state.json` 做兼容:项目没有 `moduleStyles` 时由后端按 STL 列表自动补齐。
- 若新增 API 出现问题,前端仍可回退为本地状态,但 ID 联动会退化。
- 所有修改集中在项目状态、项目库与逆向工作区,回滚本次 commit 即可恢复。
## 预计文件变更
- `server.ts`:补齐项目 moduleStyles、增加更新 API。
- `types.ts`:补充项目 moduleStyles 类型。
- `ProjectLibrary.tsx`:读取/保存共享 moduleStyles。
- `ReverseWorkspace.tsx`:读取/保存共享 moduleStyles调整切片范围 UI删除 Metadata重命名位姿模块。
## 人工审核状态
用户已声明本次不需要二次人工确认,按默认执行确认规则直接执行。
## 执行记录
- 已新增共享构件样式数据 `moduleStyles`,包含 `visible/color/opacity/partId`
- 已新增 `PATCH /api/projects/:projectId/module-styles`,用于项目库与逆向工作区同步构件 ID、颜色、透明度、显示隐藏状态。
- 已将项目库和逆向工作区的构件 ID 读写改为同一后端项目状态。
- 已删除逆向工作区可视化工具栏下方 `Metadata` 信息块。
- 已将融合视角下方 DICOM 切片范围改为单一进度条,内部固定从第 1 张开始显示。
- 已将可视化工具栏中的“整体位姿”改为“模型位姿”,并合并位姿保存、选择和各项旋转/平移/缩放控制。
- 已同步将项目库 3D 模型中的“整体位姿”标题改为“模型位姿”。