Files
REVOXELSEG_DICOM/工程分析/需求分析-2026-05-21-00-05-04.md

51 lines
2.4 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-21-00-05-04
## 开始时间
2026-05-21-00-05-04
## 原始需求摘要
1. 项目库导入 DICOM 影像、3D 模型时增加进度条。
2. 导入时允许选择 ZIP 或其他常见压缩格式,方便传输批量 DICOM/STL。
3. 导入 3D 模型时出现 Chrome `Render process gone / Out of Memory`,需要定位原因并修复。
## 业务目标
- 让大体量医学影像和 STL 构件导入过程有明确进度反馈。
- 支持用户用压缩包一次性传输多文件,减少文件选择和网络传输压力。
- 避免前端在大文件导入时因 base64 转换和 JSON 请求造成浏览器内存崩溃。
## 输入与输出
- 输入DICOM 文件、STL 文件、ZIP/TAR/TAR.GZ/TGZ/GZ 等压缩文件。
- 输出:项目级 DICOM/STL 上传目录中的解包文件、更新后的项目状态、导入进度条、导入成功/失败反馈。
## 影响范围
- `WebSite/src/components/ProjectLibrary.tsx`:导入入口、进度条、文件选择 accept、导入状态。
- `WebSite/src/lib/api.ts`:新增带上传进度的 multipart 导入 API。
- `WebSite/server.ts`:新增 multipart 文件接收、压缩包展开、导入文件筛选与项目状态更新。
- `WebSite/package.json``WebSite/package-lock.json`:新增 multipart/zip 解析依赖。
- `工程分析/经验记录.md`:记录本次导入链路经验。
## 关键约束
- 上传资产仍必须写入 `WebSite/data/uploads/<projectId>/DICOM|STL`,不能覆盖默认 `Head_CT_DICOM/``Head_CT_ReConstruct/`
- 大文件导入不能再在浏览器中整包 base64 化。
- 压缩包解压必须防止路径穿越,不能写出目标目录。
- 导入后需要清理项目预览缓存,避免继续使用旧 DICOM/STL。
## 风险点
- ZIP 内可能包含多层目录、中文文件名、无扩展 DICOM 文件或无关文件,需要筛选可导入文件。
- TAR.GZ 解包需要处理普通文件、目录和路径安全。
- 上传进度只能覆盖网络上传阶段,服务端解压/解析阶段需要用“处理中”状态承接。
- 大 STL 导入后如果立即按实体精度加载过多预览,仍可能造成前端渲染压力。
## 默认假设
- “其他常见压缩格式”优先支持 `.zip``.tar``.tar.gz``.tgz`,并支持单文件 `.gz`
- DICOM 导入接受 `.dcm``.dicom`,同时保留压缩包中无扩展 DICOM 的识别尝试空间。
- 3D 模型导入当前仍以 STL 为主,压缩包中只提取 `.stl`