58 lines
3.0 KiB
Markdown
58 lines
3.0 KiB
Markdown
# 需求分析-2026-05-19-23-47-31
|
||
|
||
## 开始时间
|
||
|
||
2026-05-19-23-47-31
|
||
|
||
## 原始需求摘要
|
||
|
||
用户要求对逆向工作区右侧视图做产品润色:将“Mask 展示”重命名为“逆向分割映射视图”或“体素化映射视图”;明确该区域以二维 DICOM 切片为底图,叠加由三维 STL 模型逆向推导生成的二维分割掩码 Label Map;覆盖层颜色、透明度、显示隐藏状态必须与中间“可视化工具栏”的“构件层级”实时联动;右侧视图还需要独立 Slice Navigator,支持逐层浏览当前 Z 轴 DICOM 切片及对应分割结果。
|
||
|
||
## 业务目标
|
||
|
||
- 将右侧结果区从“STL 实体切面”语义升级为“DICOM + STL 逆向体素化映射”的二维校验视图。
|
||
- 让医生或标注人员能在同一个二维视图中核对原始 CT 灰度影像和由 STL 构件层级推导出的 Label Map。
|
||
- 保证构件层级面板中的颜色、透明度和显隐状态立即反映在右侧叠加层中。
|
||
- 让右侧视图拥有独立于左侧 DICOM 范围控件的逐层切片浏览能力。
|
||
|
||
## 输入与输出
|
||
|
||
- 输入:
|
||
- 默认项目的 DICOM 切片预览接口 `/api/projects/:projectId/dicom-preview`
|
||
- STL preview 接口 `/api/projects/:projectId/models/:fileName/preview`
|
||
- 项目级 `moduleStyles`
|
||
- 用户选择的独立映射切片序号
|
||
- 输出:
|
||
- 右侧“逆向分割映射视图”
|
||
- DICOM Base Layer
|
||
- STL 逆向投影 Overlay Label Map
|
||
- 与构件层级联动的颜色、透明度、显示隐藏状态
|
||
- 独立 Slice Navigator
|
||
|
||
## 影响范围
|
||
|
||
- 主要影响 `WebSite/src/components/ReverseWorkspace.tsx`。
|
||
- 可能需要补充 `WebSite/src/index.css` 的滑条样式。
|
||
- 不改变后端 API、不改变项目状态结构、不改变导出格式。
|
||
- 文档会新增本次需求、实现、测试方案,并更新经验记录。
|
||
|
||
## 关键约束
|
||
|
||
- 历史经验要求不要伪造无来源 Mask。本次覆盖层必须从 STL preview 几何数据推导,且每个覆盖区域对应具体 STL 构件与 `partId`。
|
||
- DICOM 原始影像必须作为底层常驻显示。
|
||
- Overlay 可视属性必须直接读取 `moduleStyles`,避免右侧另建一套独立状态。
|
||
- Slice Navigator 必须独立于左侧 DICOM 切片范围,不应破坏左侧三维融合和模型切分流程。
|
||
- 当前工作区已有历史工程分析文档删除状态,本次提交不能混入这些删除。
|
||
|
||
## 风险点
|
||
|
||
- 当前后端尚未提供医学级真实体素化 Label Map,本次前端只能基于 STL preview 三角面做浏览器侧逆向投影映射,精度取决于 STL 预览采样与配准状态。
|
||
- 高频拖动 Slice Navigator 会触发 DICOM 预览请求,需要防止旧请求覆盖新结果。
|
||
- Canvas 图层尺寸必须保持一致,否则 DICOM 和 Overlay 会错位。
|
||
- 构件数量和 STL 采样量较大时,Overlay 绘制可能有性能压力。
|
||
|
||
## 默认假设
|
||
|
||
- 本次按已有确认执行,不在方案阶段等待二次确认。
|
||
- 右侧视图标题采用“逆向分割映射视图”,在界面中辅以 Label Map、Slice Navigator 等短标签。
|