# 需求分析 开始时间:2026-05-03-22-36-18 ## 原始需求 用户提出三项修改: 1. 左侧“下载四状态ZIP”描述变为“下载结果”。 2. “四状态 DICOM 输出结果”中,原始序列、硬边界、高斯平滑、软过渡重建旁边都增加下载按钮,可以下载对应的 DICOM 文件。 3. 在“数据影像库”中,“调阅”描述变为“变换”;右侧增加“阅览”按钮,可以看 CT 冠状位、矢状位,同时可以调节 DCM 影像显示模式。 ## 目标 - 调整已有按钮文案,使下载入口和变换入口更符合用户表达。 - 在四状态结果区为每个状态提供独立 DICOM 下载入口。 - 在影像库卡片中新增阅览入口,打开 DICOM 阅览弹层。 - 阅览弹层支持冠状位、矢状位切换,并支持常见 DICOM/CT 显示窗宽窗位模式切换。 ## 影响范围 - `WebSite/src/App.tsx` - 修改按钮文字。 - 增加四状态单项下载按钮。 - 增加影像库阅览弹层状态、UI 和请求逻辑。 - `web_backend.py` - 复用或扩展现有 DICOM 读取、窗宽窗位、预览缓存能力。 - 增加影像库冠状位/矢状位阅览预览接口。 - `工程分析/经验记录.md` - 完成后追加关键问题和解决方案。 ## 当前定位 - 四状态单状态 ZIP 下载能力后端已存在:`prepare_deformation_zip(job_id, target)` 支持 `original`、`hard_boundary`、`gaussian_smooth`、`soft_transition`。 - 前端现有 `handlePackageDownload(target)` 已支持传入 target,并会轮询 ZIP job 完成后下载文件;当前仅全量 DICOM ZIP 按钮显式暴露。 - 影像库目前只有轴位切片缩略预览接口 `/api/library/preview`,使用单张 DICOM 像素生成 PNG。 - 影像库信息弹层已存在,可在其旁边新增独立阅览弹层,不必复用信息弹层。 ## 约束 - 修改业务代码前必须先等待用户确认实现方案和测试方案。 - 不改变 DICOM 形变算法。 - 单状态下载应下载对应状态完整 DICOM 序列的 ZIP,而不是仅下载截图。 - 阅览功能应尽量轻量,不引入大型医学影像前端库。 ## 风险点 - 冠状位/矢状位预览需要读取整套 DICOM 体数据,可能比单张轴位预览更耗时;需要做缓存。 - DICOM 切片排序、窗宽窗位和方向显示若处理粗糙,可能导致阅览体验不稳定。 - 四状态卡片空间有限,新增下载按钮需要避免文字拥挤或遮挡。 - 单状态 ZIP job 与全量 ZIP job 共用 `zipJobs` 状态,需避免 target key 冲突。 ## 待确认事项 建议实现为:四状态卡片标题旁增加图标下载按钮;影像库卡片按钮区从“调阅/信息/删除”调整为“变换/阅览/信息/删除”,阅览弹层支持冠状位、矢状位,以及默认/骨窗/软组织/脑窗/肺窗等显示模式。待用户确认后执行。