SCU 与 SCP 角色说明
约 496 字大约 2 分钟
PACSDICOMSCUSCP
2026-03-20
SCU 和 SCP 是理解 DICOM 通讯的核心概念。很多接口调用看起来只是“客户端请求服务端”,但在 C-MOVE、C-STORE 这种场景里,双方角色是会切换的。
1. 两个缩写分别表示什么
- SCU:Service Class User,发起某个服务请求的一方。
- SCP:Service Class Provider,提供对应服务的一方。
它们描述的是“当前这次服务调用里的角色”,不是一个系统永远固定的身份。
2. 在不同命令里的典型角色
C-ECHO
- 本地程序通常是 SCU。
- PACS 或设备通常是 SCP。
C-FIND
- 查询发起方是 SCU。
- 提供查询结果的一方是 SCP。
C-MOVE
- 本地程序对 PACS 发 MOVE 请求时,本地是 SCU,PACS 是 SCP。
- PACS 开始向目标接收端发送影像时,PACS 又会变成 C-STORE 的 SCU。
- 本地接收器或第三方接收器则变成 C-STORE 的 SCP。
C-STORE
- 主动上传文件的一方是 SCU。
- 接收并保存文件的一方是 SCP。
3. 为什么这个概念特别重要
因为一旦角色判断错,后续很多实现就会跟着错:
- 不知道本地到底该启动客户端还是服务端。
- 不知道哪一边应该监听端口。
- 不知道 C-MOVE 失败时该查请求端还是接收端。
- 不知道 PACS 为什么会“反向连接”本地机器。
4. 一个实用判断方法
如果你不确定自己现在是哪一边,可以先问两个问题:
- 这一步是谁先发请求。
- 这一步是谁负责返回结果或接收数据。
先发起请求的一方,通常就是这一轮服务里的 SCU。