o- dicom CMove SCP实现良好

本文关键字:实现 SCP dicom CMove | 更新日期: 2023-09-27 18:06:27

我用foo -dicom实现了一个超级快的PACS服务器,我目前唯一真正的问题是处理CMove请求。

IDicomCMoveProvider有一个方法IEnumerable<DicomCMoveResponse> OnCMoveRequest(DicomCMoveRequest request);,但是我实现它的方式看起来是错误的,而且相当慢。

实现要点

特别是在CMove方法中,我正在创建一个新的CStore请求,我将其发送到必须接收研究的模态,对于每个实例,我创建一个新的CStore请求,一个新的DicomClient,然后我发送它并等待响应。接下来发生的是较慢的部分,每个实例完成整个DICOM通信,连接,关联,发送实例,解离,断开连接,并且需要很长时间才能发送整个研究。

我的问题是你应该如何正确地实现这一点,以便它只打开一个连接,发送所有图像并关闭。下面是使用foo -dicom完成此操作的一个理想示例。

o- dicom CMove SCP实现良好

当您在打开C-STORE关联之前收到c - move请求时,可以:

  • 确定受请求
  • 影响的匹配SOP实例(图像)的列表
  • 为所有匹配实例(即按SOP类UID分组)构建一个表示上下文列表
  • 在向C-MOVE目标AE的单个关联请求中协商所有表示上下文
  • 发送此关联中的每个图像

通过这种方式实现,您可以为受c - move请求影响的每个单独图像摆脱"DICOM通信混乱"。