小时的网站建设,php发布wordpress文章,石龙网站设计,二手交易网站建设方案ppt转自#xff1a;https://www.jianshu.com/p/bab6a85d3486
引言 之前总体介绍了 DICOM 的消息服务#xff0c;可以参考这篇博文#xff0c;但是有关每个服务的详细信息没有讲解#xff0c;本文就结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Store 服务。
名词简介 在正式讲…转自https://www.jianshu.com/p/bab6a85d3486
引言 之前总体介绍了 DICOM 的消息服务可以参考这篇博文但是有关每个服务的详细信息没有讲解本文就结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Store 服务。
名词简介 在正式讲解前我们还需要弄明白以下几个名词
SCUService Class User可以理解为客户端用户端SCPService Class Provider。可以理解为服务端
C-Store 消息服务 前文已经说明了 C-Store 服务用于一个 DIMSE-service-user 在同等的 DIMSE-service-user 上存储一个复合 SOP 实例其实主要就是用来归档影像在实际场景中医院的设备DR【普放】、CT【断层扫描】、MR【核磁】做完检查后会产生影像文件复合 SOP 实例然后设备会通过 C-Store 服务将这些影像文件归档到 PACS 系统中。在这个过程中设备就相当于客户端需要实现 C-Store SCUPACS 系统相当于服务端需要实现 C-Store SCP。 C-Store 流程如下 C-Store 流程 C-Store SCU 结合开源库 fo-dicom 我们可以很轻松的实现 C-Store SCUfo-dicom 已经封装好了 C-Store Request具体代码可以在 GitHub 上查看 DicomCStoreRequest.cs我们只需要如下的代码就可以实现 C-Store SCU 这里需要引用命名空间【Dicom.Network】 using Dicom.Network;var client new DicomClient();
client.NegotiateAsyncOps();
var request new DicomCStoreRequest({DICOM file path});request.OnResponseReceived (req, response)
{Console.WriteLine(C-Store Response Received, Status: response.Status);
};client.AddRequest(request);
client.Send({C-Store SCP IP}, {C-Store SCP Port}, false, {C-Store SCU AE Title}, {C-Store SCP AE Title});DICOM file path 指待归档的 DICOM 文件路径C-Store SCP IP 指 C-Store 服务端的 IP 地址或机器名C-Store SCP Port 指 C-Store 服务端的端口C-Store SCU AE Title 指 C-Store 客户端应用实体的名称C-Store SCP AE Title 指 C-Store 服务端应用实体的名称 基于以上代码就实现了一个简单的 C-Store 客户端可用于归档单张影像涉及到多张影像归档可在外层增加循环实现。C-Store SCP C-Store SCP 可以通过派生 DicomService 服务类来实现 Dicom 服务的基本框架然后实现 IDicomServiceProvider 和 IDicomCStoreProvider 接口来实现。具体代码可以参考这里。 最后我们将 C-Store SCP 的代码运行起来然后使用上面 C-Store SCU 的代码来归档一张影像然后我们会在 C-Store SCU 收到如下成功的消息【C-Store Response Received, Status: Success】同时在 C-Store SCP 工程的【bin】目录下能找到一个【DICOM】文件夹文件夹里面就是刚刚测试归档的影像。 Demo 作者Statmoon 链接https://www.jianshu.com/p/bab6a85d3486 来源简书 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。