【转】01.Dicom 学习笔记-DICOM C-Store 消息服务

转自:https://www.jianshu.com/p/bab6a85d3486

引言

  之前总体介绍了 DICOM 的消息服务,可以参考这篇博文,但是有关每个服务的详细信息没有讲解,本文就结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Store 服务。

名词简介

  在正式讲解前我们还需要弄明白以下几个名词

  • SCU:Service Class User,可以理解为客户端(用户端);
  • SCP:Service Class Provider。可以理解为服务端;

C-Store 消息服务


  前文已经说明了 C-Store 服务用于一个 DIMSE-service-user 在同等的 DIMSE-service-user 上存储一个复合 SOP 实例,其实主要就是用来归档影像,在实际场景中,医院的设备(DR【普放】、CT【断层扫描】、MR【核磁】)做完检查后会产生影像文件(复合 SOP 实例),然后设备会通过 C-Store 服务将这些影像文件归档到 PACS 系统中。在这个过程中设备就相当于客户端,需要实现 C-Store SCU,PACS 系统相当于服务端,需要实现 C-Store SCP。
  C-Store 流程如下:

 

C-Store 流程

 

C-Store SCU

  结合开源库 fo-dicom 我们可以很轻松的实现 C-Store SCU,fo-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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle客房管理系统论文,[转载]基于WEB的酒店管理系统论文【1】

摘要现代化的酒店组织庞大、服务项目多、信息量大,要想提高劳动生产、降低成本、提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。酒店管理系统正是为此而设计的。优秀的酒店客房管理系统操作方便&#xff0…

使用C#和Excel进行报表开发(四)-复制单元格 【转】

在用Excel作报表的时候,可能会碰到分页的情况,这样就要分成多个Sheet显示,如果要在每页都保留表头,就需要将第一页作为模板设计的表头部分拷贝到其他的Sheet上,这时就要用用到Excel中的单元格拷贝。下面的代码说明如何…

【转】02.Dicom 学习笔记-DICOM C-Find 消息服务

引言 前篇介绍了 DICOM C-Store 消息服务,本文结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Find 服务。 C-Find 消息服务 C-Find 服务是一个查询服务,用于一个 DIMSE-service-user 在同等的DIMSE-service-user 上查询复合 SOP 实例的属性满足查询条件给出…

C++设计模式之三 单例模式

《Singleton.h》 #include<iostream> #include<string> using namespace std; class A{ public: static A* GetInstance(); void ShowAddress(); private: A(); virtual ~A(); static A* m_p; }; 《Singleton.cpp》 #include "Singleton.h&q…

oracle停止trace日志,关闭ORACLE客户端trace日志

TRACE时的注意事项1、确保所需trace组建的配置文件存在缺省情况下&#xff0c;Oracle会从下列位置搜索网络配置文件a.TNS_ADMIN environment variable (incl. Windows Registry Key)b./etc or /var/opt/oracle (Unix)c.$ORACLE_HOME/network/admin (Unix)d.%ORACLE_HOME%/Netwo…

随手小记·080911

随手小记 郑昀玩聚SD(科技、体育、娱乐)&#xff1a;1&#xff1a; 叙事逻辑的来历 在我漫长的Blog阅读史中&#xff0c;我整理出自己两种最常用的阅读方式&#xff1a;按照热点主题的阅读方式&#xff0c;跳过大段大段阐述直接阅读文中最经典的话&#xff0c;于是&#xff0c;…

【转】03.Dicom 学习笔记-DICOM C-Get 消息服务

转自&#xff1a;https://www.jianshu.com/p/c7f5b9fa597c 引言 前篇介绍了 DICOM C-Find 消息服务&#xff0c;本文结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Get 服务。 C-Get 消息服务 C-Get 服务主要用于获取影像&#xff0c;用于一个 DIMSE-service-user 在同等的DIMSE…

php dao类设计,DAO数据访问对象设计 - GoFrame官网 - 类似PHP-Laravel, Java-SpringBoot的Go企业级开发框架...

关于DAO数据访问对象设计其实是关于GoFrame框架工程化实践中比较重要一块设计。DAO设计结合GoFrame的ORM组件性能和易用性都很强&#xff0c;可以极大提高开发和维护效率。看完本章节内容之后&#xff0c;小伙伴们应该能够理解并体会到使用DAO数据库访问对象设计的优点。一、现…

再谈“我是怎么招聘程序员的”

我以前写过一篇“我是怎么招聘程序员的”的文章&#xff08;在CSDN那里有很多人进行了回复&#xff09;。今天&#xff0c;我想再谈谈关于招聘和面试这方面的东西&#xff0c;主要是以下这些原因&#xff1a; 近半年来我在进行了大量的招聘工作&#xff0c;对面试有一些新的体…

[SAP FI] Bank Master Vendor Master Creation Related Knowledge

*. Bank Key含义 Q : 国外的一个客户想要做Automatic Banking,需要输入bank key 和bank account在供应商主数据中, 问题是银行中文名字只能作为地址输入, 现在是关键的Bank key使用银行的英文简写加拼音的组合,比如中国工商银行上海分行,就使用ICBC_SH来代替这样子.而bank ac…

【转】DICOM图像像素值、灰度值与CT值!!!!!

转自&#xff1a;https://blog.csdn.net/syz201558503103/article/details/107238940 做医学图像处理会涉及DICOM图像&#xff0c;初学者应该要对图像像素有一定了解&#xff0c;在对像素处理中会一些算法会利用的更好。 图像灰度值的概念是什么&#xff1f;灰度也可以认为是…

linux服务器cc防御,Linux下简单的防止CC攻击

Nginx 0.7开始提供了2个限制用户连接的模块&#xff1a;NginxHttpLimitZoneModule和NginxHttpLimitReqModule。NginxHttpLimitZoneModule可以根据条件进行并发连接数控制。NginxHttpLimitReqModule可以根据条件进行请求频率的控制。http {limit_zone my_zone $binary_remote_ad…

深入浅出单实例Singleton设计模式

深入浅出单实例Singleton设计模式 陈皓 前序 单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了&#xff0c;这可能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的&#xff0c;比如…

一直追求技术好吗?

我在大一的时候开始接触了编程&#xff0c;一直到现在&#xff0c;都是个技术的狂热追求者。从最开始的数据结构到现在的设计模式&#xff0c;经常是一连好几天一直在看资料、写代码&#xff0c;疯狂得连做梦也在想着怎么写代码。我同时也是个新技术的追随着&#xff0c;javasc…

【转】04.Dicom 学习笔记-DICOM C-Move 消息服务

引言 前篇介绍了 DICOM C-Get 消息服务&#xff0c;本文结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Move 服务。 C-Move 消息服务 C-Move 服务可以用来获取影像和转存影像&#xff0c;用于一个 DIMSE-service-user 在同等的 DIMSE-service-user 上查询复合 SOP 实例的属性满足…

linux rar命令没找到,Linux没有rar解压命令

使用微软系统的同学都知道rar解压缩软件&#xff0c;它是一个商业的收费软件&#xff0c;那在免费开源的linux系统怎么解压后缀为rar的文件呢&#xff0c;我相信很多同学都是先把rar的文件下载到电脑本地&#xff0c;然后再用7-zip或者winrar 等等解压缩软件解压再压缩为zip的文…

PID是什么?在做系统的故障排除时如何使用它?

PID Process Identifier, 是一个全局唯一的用来标识进程的整数。在多任务系统中&#xff0c;可用来诊断系统中发生错误的进程。转载于:https://www.cnblogs.com/zhangliang2121/archive/2008/09/17/1292510.html

【转】05.Dicom 学习笔记-DICOM C-Echo 消息服务

引言 经过前面几篇的介绍&#xff0c;DIMSE-C 消息服务这块已经讲解了差不多了&#xff0c;还剩最后一个 C-Echo 消息服务&#xff0c;这个服务相对前面的4个服务来说更简单一些&#xff0c;本文结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Echo 服务。 C-Echo 消息服务 首先来…

查看linux不显示ip,linux系统查看IP地址,不显示IP地址或者只显示127.0.0.1

LUA学习笔记三&&num;183&semi;时间等操作系统库1.构造时间 2.时间制定格式输出 3.计时器(闭包)os.difftime (t2, t1) 返回以秒计算的时刻 t1 到 t2 的差值. (这里的时刻是由 os.time 返回的值). 在 POS ...String定义与方法//5种构造方法 public void Con(){ Strin…

哪些设计模式最值得学习

最近又在首页看到几篇设计模式相关的学习随笔。回想起来&#xff0c;这几年在园子里发布的有关设计模式的随笔都有一个共同的特点。那就是Factory和Singleton居多&#xff0c;如果是系列的&#xff0c;也往往是从这两个模式开始的。由于能够坚持把《设计模式》中所有模式都写完…