「医学影像 AI 工作站」在采购单上对应五类完全不同的工位:阅片后处理、三维重建科研、国产信创、科室级推理、院级训练。配错工位比配低配置更贵。本文给出五类工位的判据、把「3 秒首幅」拆成可测的时延预算、一个 DICOM 读取/解码测量脚本,以及装机当天的验收清单。

图注:五类影像工位(来源:商红科技行业论坛原文配图;非实测)

图注:调优与部署路径(来源:商红科技行业论坛原文配图;非实测)
先说结论
- 阅片工位的瓶颈顺序是「在线存储 IOPS → 内存 → 显存」,不是显卡;
- 三维重建工位先问「体数据装不装得进显存」;
- 信创工位按「清单 → 操作系统 → 品牌整机」核验;
- 科室推理工位按「缓存体量 + 并发调阅」定配置;
- 院级训练工位先过配电与散热,再谈卡数。
一、五类工位对照
| 工位 | 谁在用 | 关键瓶颈 | 配置方向 |
|---|---|---|---|
| ① 阅片与后处理 | 放射科诊断医师 | 小文件随机读、多屏、单核与内存带宽 | 中端 CPU + 32--64GB 内存 + 16GB 显存级专业卡 |
| ② 三维重建与科研 | 影像科科研骨干 | 体数据能否装进显存、重建耗时 | 高主频多核 + 128GB 级内存 + 24--32GB 显存 |
| ③ 国产信创 | 有信创考核的公立/部队医院 | 信创清单与操作系统适配 | 海光/鲲鹏品牌整机 + 麒麟/统信 |
| ④ 科室级 AI 推理 | 影像科、超声科、病理科 | 模型显存、并发缓存、调阅时延 | 推理卡 + 大内存 + 独立缓存盘 |
| ⑤ 院级训练与共享算力 | 信息科、科研处 | 卡间互联、供电、散热 | 多卡平台 + 高压配电 + 机房改造 |
写需求时不要写「一台医学影像 AI 工作站」,要写「编号 X 工位,服务 N 人,日均处理 M 例」。这行写清楚,报价才有可比性。
二、把「3 秒首幅」拆成可测的时延预算
政策对医保影像云调阅给出了可量化指标:首幅图像 3 秒内显示;CT/MRI 每 10 幅加载不超过 1 秒;报告出具后 24 小时内上传。这三个数字可以直接写进验收条款,但要先知道它们分别考什么。
「3 秒首幅」不是显卡指标,它由五段组成:
| 环节 | 典型耗时 | 影响因素 | 怎么测 |
|---|---|---|---|
| 网络往返 | 20--100ms | 链路、跨院区、VPN | ping / curl 到 PACS 网关 |
| 存储排队 | 50--300ms | 在线层 IOPS、并发 | 存储侧时延监控 |
| 随机读 | 100--500ms | SSD/NVMe、文件大小 | 本地读文件计时 |
| 解码 | 100--600ms | DICOM 压缩方式、CPU 单核 | 解码脚本 |
| 渲染与显示 | 100--500ms | 显卡、视图复杂度、多屏 | 应用层打点 |
预算示例:网络 50ms + 排队 150ms + 读 300ms + 解码 400ms + 渲染 300ms = 1.2s,留 1.8s 余量。如果在线层还是 HDD,随机读可能从 300ms 变成 2s,直接吃掉全部余量。
「每 10 幅 ≤1 秒」是持续并发读,考的是 IOPS 与缓存。一个粗略的并发需求估算:
所需 IOPS ≈ 并发调阅会话数 × 每会话每秒加载幅数
例如 20 个会话同时翻片、每会话每秒 10 幅,就是 200 IOPS 的随机读,且要求 P95 时延稳定。这个量级对 NVMe 不高,对机械盘就很难。
三、DICOM 读取与解码测量脚本
下面脚本测单机路径的「读 + 解码」耗时,用于判断工位本地盘和 CPU 是否拖后腿。依赖 pydicom,未安装时只测文件读取
#!/usr/bin/env python3
"""DICOM 读取与解码耗时测量:输出 P50/P95。"""
import os
import statistics
import sys
import time
try:
import pydicom
except ImportError:
pydicom = None
def measure(path: str) -> dict:
t0 = time.perf_counter()
with open(path, "rb") as f:
data = f.read()
read_ms = (time.perf_counter() - t0) * 1000
decode_ms = None
shape = None
if pydicom is not None:
t1 = time.perf_counter()
ds = pydicom.dcmread(path)
arr = ds.pixel_array
decode_ms = (time.perf_counter() - t1) * 1000
shape = arr.shape
return {"file": os.path.basename(path),
"size_mb": round(len(data) / 1024 ** 2, 2),
"read_ms": round(read_ms, 1),
"decode_ms": None if decode_ms is None else round(decode_ms, 1),
"shape": shape}
def pct(values, p):
values = sorted(values)
if not values:
return None
k = max(0, min(len(values) - 1, int(round((p / 100) * (len(values) - 1)))))
return values[k]
if __name__ == "__main__":
if len(sys.argv) < 2:
print("用法: python dicom_latency.py <目录或文件> [采样数]")
raise SystemExit(1)
target = sys.argv[1]
limit = int(sys.argv[2]) if len(sys.argv) > 2 else 30
if os.path.isdir(target):
files = [os.path.join(target, f) for f in sorted(os.listdir(target))
if os.path.isfile(os.path.join(target, f))][:limit]
else:
files = [target]
rows = [measure(f) for f in files]
reads = [r["read_ms"] for r in rows]
decodes = [r["decode_ms"] for r in rows if r["decode_ms"] is not None]
print(f"样本数: {len(rows)}")
print(f"读取 P50/P95: {pct(reads,50):.1f} / {pct(reads,95):.1f} ms")
if decodes:
print(f"解码 P50/P95: {pct(decodes,50):.1f} / {pct(decodes,95):.1f} ms")
for r in rows:
print(r)
判读:
- 读取 P95 明显高于 P50:可能是磁盘竞争或网络存储抖动;
- 解码耗时远高于读取:CPU 单核或压缩方式(如 JPEG2000)是瓶颈;
- 两者都不高但医生仍觉得卡:去查应用层渲染与在线层并发。
四、存储分层:在线看 IOPS,归档看每 TB 成本
| 维度 | 在线调阅 | 归档 |
|---|---|---|
| 访问特征 | 小文件、随机读、低时延 | 大文件、顺序读、时延不敏感 |
| 关键指标 | 随机 IOPS 与 P95 时延 | 单位容量成本、可靠性 |
| 典型介质 | SSD / NVMe | 大容量 HDD、对象存储 |
| 失败代价 | 医生点不开片子 | 回溯慢,但可接受 |
把两者用同一套介质,一定有一头浪费。合理的做法是影像文件独立存储层,PACS 应用只跑应用,不与应用抢同一块盘的 IO。
五、装机当天必须跑完的九项
| 验收项 | 怎么验 | 谁签字 |
|---|---|---|
| 阅片时延 | 近/中/远期各 10 例,记录首幅耗时 | 放射科 + 信息科 |
| 并发调阅 | 模拟门诊高峰,观察时延曲线 | 信息科 |
| 多屏与外设 | 双屏/竖屏、打印机、扫码枪、U-key | 放射科 |
| 影像软件兼容 | PACS 客户端、后处理、报告系统实机跑通 | 信息科 |
| 操作系统适配 | 麒麟/统信版本号与厂商清单逐项核对 | 信息科 |
| 重建性能 | 本院真实体数据跑完整重建并计时 | 影像科 |
| 老数据可读 | 抽查归档层历史数据能否调阅 | 放射科 |
| 供电与散热 | 满载功耗、温度、噪音实测 | 设备科 + 后勤 |
| 资料交付 | 配置单、驱动清单、拓扑图、维保范围 | 信息科 + 设备科 |
第七项最容易被跳过,也最危险:新系统上线后老数据打不开,是影像项目里最难收场的故障之一。
六、合规边界:三件事不该找硬件商
- AI 辅助诊断软件:用于临床辅助诊断的软件属于第三类医疗器械,须取得注册证,采购对手方是持证器械厂商;
- PACS/RIS 与 DICOM 适配开发:属于医疗信息化厂商;
- 训练数据标注质量与合规判定:须由有资质医师完成,并过医务科与伦理审查。
硬件商能承接的是底层算力与存储这一段:容量测算、分层设计、整机与存储配置、部署与验收配合。把「AI 辅助诊断」和「工作站硬件」写在同一个包里,是最常见的责任错配。
边界与适用条件
- 文中时延预算为示例假设,不是任何一家医院的实测值;真实项目要按检查量、设备与网络重算。
- 政策指标以《「医保影像云」基础规范》及当地卫健部门解释为准。
- DICOM 文件大小差异极大,不要用「平均一张几 MB」拍脑袋,应从 PACS 库导出真实统计或抽样实测。
工程落地中的一个选择
如果正在做影像工位或存储扩容的立项,可以先把「日均检查量、并发调阅数、在线层时延目标」三项列出来,再让服务商按工位和分层做测算。商红科技做工作站、服务器与存储的方案交付,能按五类工位把算力、存储与验收边界一起过一遍;相关规格与场景边界,可回到行业论坛的原文核对。最终配置仍应以本院真实数据与验收结果为准。
商红科技能接的是工位算力、存储分层与部署验收这一段;PACS/RIS 软件、DICOM 适配与 AI 辅助诊断算法不在其交付范围。