Files
Head_CT_Morph/工程分析/需求分析-2026-05-08-02-36-12.md

2.8 KiB
Raw Permalink Blame History

需求分析

开始时间2026-05-08-02-36-12

原始需求

用户要求严格使用代码编纂工作流,并在最开始确认整体流程。本次需求分析、实现方案、测试方案和执行修改都不需要人工二次确认。

本次具体需求:

  1. 起点、终点合并到一个进度条里,进度条有两个端点,起点和终点可以调整顺序。
  2. 模型切分启用后,不能只是象征性画圈,而要真正判断 STL 模型穿透 DICOM 的位置,并用颜色标出形成 mask。
  3. 模型切分下方的帧进度栏没有实际意义。模型切分开启后,不需要在最后一张显示 CT也不需要当前无意义的 CT MASK 图片;应像之前一样用 DICOM 起点帧、终点帧对模型切两刀,并在这两个特定帧上显示 mask。这个 mask 代表重建 STL 模型原始语义分割的大致切片形态。

目标

  • 在 DICOM 阅览中新增真实 STL 模型切分能力。
  • 上传 STL 后,后端解析 STL 三角面片,按当前 DICOM 平面和起点/终点帧计算切片相交区域。
  • 模型切分开启时,前端显示起点帧和终点帧两张 DICOM 切片,并叠加真实 STL 切面 mask。
  • 用一个双端点进度条控制起点和终点,允许两个端点交叉,交叉后按数值顺序用于切分。
  • 删除/不再显示无意义的 CT MASK 图片或伪 mask。

影响范围

  • web_backend.py
    • STL 上传接口。
    • STL 解析、缓存。
    • DICOM 阅览切片接口叠加真实 STL 切面 mask。
  • WebSite/src/App.tsx
    • DICOM 阅览弹层新增 STL 上传、模型切分开关、双端点进度条和双帧 mask 展示。
    • 移除模型切分状态下无意义的单帧 CT/MASK 展示。
  • 工程分析/经验记录.md

当前定位

当前仓库主线中没有已有 STL/模型切分/MASK 代码,只有 DICOM 阅览和冠状/矢状重建预览。因此本次不是修补已有“画圈”代码,而是在现有 DICOM 阅览里补上真实 STL 切片 mask 能力。

约束

  • 不引入大型前端 3D 库。
  • 不改变真实 DICOM 形变算法。
  • 不提交 STL、DICOM、mask 缓存图片、ZIP 或构建产物。
  • STL 与 DICOM 的空间配准优先按 DICOM ImagePositionPatientImageOrientationPatientPixelSpacing 转换;若元数据不足,则降级假设 STL 坐标已在体素坐标系中。

风险点

  • STL 与 DICOM 是否同一坐标系直接决定 mask 是否对齐;若输入 STL 未配准到 DICOM patient 坐标mask 位置仍会偏。
  • 不同 STL 拓扑可能导致切面轮廓不闭合mask 填充可能只显示轮廓或局部区域。
  • 大 STL 模型解析和多切片 mask 计算可能耗时,需要缓存解析后的三角面。

待确认事项

用户已明确本次不需要二次人工确认,因此文档写完后直接执行。