# 需求分析 开始时间: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 `ImagePositionPatient`、`ImageOrientationPatient`、`PixelSpacing` 转换;若元数据不足,则降级假设 STL 坐标已在体素坐标系中。 ## 风险点 - STL 与 DICOM 是否同一坐标系直接决定 mask 是否对齐;若输入 STL 未配准到 DICOM patient 坐标,mask 位置仍会偏。 - 不同 STL 拓扑可能导致切面轮廓不闭合,mask 填充可能只显示轮廓或局部区域。 - 大 STL 模型解析和多切片 mask 计算可能耗时,需要缓存解析后的三角面。 ## 待确认事项 用户已明确本次不需要二次人工确认,因此文档写完后直接执行。