DICOM C-GET vs C-MOVE

本文深入探讨了DICOM协议中的C-Get和C-Move操作的区别,从安全性、功能性和实施难度等方面进行了对比,并提供了在PACS系统中选择使用C-Get还是C-Move的建议。

DICOM中C-Get 和C-Move的区别。

C-Move操作基本上都包含了C-Get的功能,而且有些地方,C-Get无法替代C-Move。

比如:

 

1、C-Move可以实现从一个AE将DICOM文件发送另外一个AE。而C-Get只能实现从SCP获取dicom到自身。从这个方面来说,C-Get功能有点多余。

2、从系统安全角度,C-Get随机开放了一个未绑定的端口来接收服务端图像。C-Move却需要两步连接,在发出C-MoveRequest后,必须采用C-Store来监听接收服务端的图像数据。而对于C-Store操作,都是绑定固定端口的,比较安全。C-Get就相当于电子邮箱,有了账号和密码,任何人都可以登陆操作。而是C-Move还有一个绑定目标计算机的操作,相当于授权目标计算机才能接收数据。

 

I have to develop a SCU (Service Class User) application for querying PACS and retrieve the DICOM images.

Should I use C-GET or C-MOVE DICOM protocol to retrieve the images?

3 Answers


You can use either, but the preferred is C-Move.


Do we have any reasons for why C-Move is preferred. –  Ramakrishna  Dec 24 '09 at 6:40
3
I think there are two reasons for this. 1) With C-Move you can also request sending images from one AET to some other AET. This is not possible if you only have C-Get. With C-Move, C-Get becomes redundant. 2)IT security issues. With C-Get, the client opens a random inbound port to recieve images. C-Move involves two associations with the second association being a C-Store from server to client. C-Store happens over well defined server port and is more trusted by the IT support. –  Canopus  Dec 24 '09 at 8:16
2
Correct. In security terms, a C-GET is as secure as retrieving your email... anyone can do it from anywhere if they have your username and password. A C-MOVE requires that the server recognizes YOUR COMPUTER as an authorized machine to receive information, so without explicit access, even if you have all the information to QUERY the server, you still can't retrieve anything. You CAN implement "promiscuous" mode, where if the DestinationAE isn't recognized, it sends the requested information back to the caller, but it's highly discouraged from all I've seen. –  Nathan Wheeler  Sep 8 '10 at 17:55

The point is not only about security, but about implementation.

In C-MOVE, the SCP list the supported transfer syntaxes for each image matching the previous query. Then the SCU agree with any.

On the other side, in the C-GET, the SCU list its supporting transfer syntaxes before any query is made, and the SCP has to pick any and compromise to send whatever the SCU ask for in that format.

So, the C-GET implementation for PACS is harder and more complex since it has to be able to encode anything to anything. While in the C-MOVE is the client who has to be able to decode and show anything which is much easier...




DICOM - SCU (Service Class User) application for querying PACS

DICOM The Digital Imaging and Communications in Medicine is a standard which is used for the exchange of images and related information. The DICOM standard can be thought of as having several levels of support, such as the support for image exchange for both senders and receivers, the underlying information model and information management services. This blog provides a rich information / overview of the characteristic elements of the DICOM standard.

I have found a link which contains all of its detail with coding. It may be helpful for you. Complete description of DICOM - Just at single page.

<think>我们注意到用户可能拼写错误,将DICOM写成了DIOCM。根据上下文,用户实际想了解的是DICOM协议中的C-GET和C-MOVE服务。 上一次回答中已经对DICOM、C-GET和C-MOVE做了基本介绍,本次用户要求更详细的使用方法、原理、应用场景等信息。 根据用户提供的引用[1]和引用[2](尽管引用[2]是转述的),我们将重点展开C-GET和C-MOVE的工作原理、使用方法和应用场景,并对比它们的差异。 计划回答结构: 1. 纠正拼写并简要回顾DICOM 2. 详细解释C-GET(原理、使用方法、应用场景) 3. 详细解释C-MOVE(原理、使用方法、应用场景) 4. 对比总结 5. 生成相关问题 注意:引用[1]提到C-GET是双方服务(单个TCP连接),C-MOVE是三方服务(两个TCP连接),这是关键区别。引用[2]提到C-GET的流程图和标准定义在DICOM标准第4部分C.1.4节,但我们的回答中会以原理性描述为主。 </think>### DICOM、C-GET与C-MOVE详解 #### 1. **DICOM基础** DICOM(Digital Imaging and Communications in Medicine)是医学影像领域国际标准协议,核心功能包括: - **数据格式标准化**:统一医学影像存储格式(CT/MRI/X光等) - **通信协议**:规范设备间数据传输规则 - **实体关系模型**:定义患者-检查-影像层级关系(如患者$\mapsto$检查$\mapsto$影像序列) - **互操作性**:确保不同厂商设备兼容(如CT机与PACS系统交互)[^2] #### 2. **C-GET详解** ##### 原理 - **点对点架构**:基于单个TCP连接的双向通信 $$ \text{SCU(客户端)} \xleftrightarrow{\text{单TCP连接}} \text{SCP(服务端)} $$ - **操作流程**: 1. SCU发送查询请求(如根据患者ID查询影像) 2. SCP返回匹配结果集元数据 3. SCU发送传输指令 4. SCP直接通过同一连接传输数据 - **编程实现**:需实现`IDicomCGetProvider`接口,核心方法`OnCGetRequest`处理请求[^2] ##### 应用场景 - **快速检索**:医生工作站调取单个患者最新影像 - **实时诊断**:术中即时获取对比图像 - **轻量传输**:小规模数据(如单次超声影像) ##### 优点 - 延迟低(无额外连接建立) - 实现简单 - 资源消耗小 #### 3. **C-MOVE详解** ##### 原理 - **三方架构**:需两个独立TCP连接 $$ \text{SCU} \xleftrightarrow{\text{控制连接}} \text{SCP} \xleftrightarrow{\text{数据连接}} \text{目标设备} $$ - **操作流程**: 1. SCU向SCP发送传输指令(含目标设备地址) 2. SCP与目标设备建立新连接 3. 数据通过新连接传输 4. 状态通过控制连接返回SCU ##### 应用场景 - **批量迁移**:将当日所有CT影像归档到存储服务器 - **跨机构共享**:医院A向医院B传输会诊影像 - **负载均衡**:将影像分发到多个处理节点 ##### 优点 - 支持异步传输 - 适合大数据量 - 目标设备灵活性高 #### 4. **核心对比** | **特性** | **C-GET** | **C-MOVE** | |----------------|-----------------------------------|-------------------------------------| | 连接类型 | 单TCP连接(点对点) | 双TCP连接(三方服务)[^1] | | 数据传输路径 | 直接返回请求方 | 发送至第三方设备 | | 适用数据量 | 小型数据集(单次检查) | 大型数据集(批量归档) | | 网络开销 | 低($O(n)$连接复杂度) | 高($O(2n)$连接复杂度) | | 典型场景 | 工作站实时调图 | PACS系统间数据同步 | #### 5. **技术实践要点** - **C-GET优化**: 使用字节范围请求(Byte-Range)实现部分传输,减少带宽消耗 - **C-MOVE配置**: 目标设备需预设AE Title(应用实体标题),例如: ```dicom MoveDestination = "ARCHIVE_SERVER_1" ``` - **错误处理**: - C-GET:连接中断时需重新发起请求 - C-MOVE:需监控控制连接的状态响应(如`0xA701`表示目标设备拒绝)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值