【转】05.Dicom 学习笔记-DICOM C-Echo 消息服务
引言
经过前面几篇的介绍,DIMSE-C 消息服务这块已经讲解了差不多了,还剩最后一个 C-Echo 消息服务,这个服务相对前面的4个服务来说更简单一些,本文结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Echo 服务。
C-Echo 消息服务
首先来看一下 DICOM 标准中的描述:
The C-ECHO service is invoked by a DIMSE-service-user to verify end-to-end communications with a peer DIMSE-service-user. It is a confirmed service.
C-Echo 服务就是用来验证两个同等的 DIMSE-service-user 之间端到端的通信是否成功。在实际场景中,用来验证两个 PACS 系统之间或设备和 PACS 系统之间的通信是否成功。
C-Echo 服务的流程图比较简单,如下:
C-Echo Flowchart
C-Echo SCU
借助开源 DICOM 库 fo-dicom 封装的 DicomCEchoRequest.cs,实现 C-Echo SCU 的代码如下:
using Dicom.Network;
using System;
static void Main(string[] args)
{var client = new DicomClient();client.NegotiateAsyncOps();var request = new DicomCEchoRequest();request.OnResponseReceived += (DicomCEchoRequest req, DicomCEchoResponse response) =>{Console.WriteLine("C-Echo Status: " + response.Status);};client.AddRequest(request);client.Send({C-Echo SCP IP}, {C-Echo SCP Port}, false, {C-Echo SCU AE Title}, {C-Echo SCP AE Title});Console.ReadLine();
}
- C-Echo SCP IP:C-Echo 服务端的 IP 地址或机器名;
- C-Echo SCP Port:C-Echo 服务端的端口;
- C-Echo SCU AE Title:C-Echo 客户端应用实体的名称;
- C-Echo SCP AE Title:C-Echo 服务端应用实体的名称;
C-Echo SCP
实现 C-Echo SCP 的代码参考如下:
using Dicom.Network;
using System;
static void Main(string[] args)
{var server = DicomServer.Create<DicomCEchoProvider>(104);Console.ReadLine();
}
C-Echo 过程分析
C-Echo 的交互过程比较简单,完整的数据包详见下图:
C-Echo Packet
- 最上面红色框内的三行是建立 TCP 连接(三次握手)的过程;
- 接着蓝色框内的两行是两个 AE 建立 Association 连接的过程;
- 中间黄色框内的两行是两个 AE 之间 C-Echo 请求和响应的过程;
- 最后面的蓝色框内的两行是两个 AE 通过 A-RELEASE 请求交互释放 Association 连接的过程;
下图是 C-Echo Response 数据包的详细内容,可以看到里面包含 C-Echo 请求的结果,Success 说明两边的通信是正常的。
C-Echo Response
以上就是针对 C-Echo 消息服务数据包的完整分析。
作者:Statmoon
链接:https://www.jianshu.com/p/ef577f069f4b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【转】05.Dicom 学习笔记-DICOM C-Echo 消息服务相关推荐
- 【转】Dicom 学习笔记-Dicom 消息服务(DIMSE-C/DIMSE-N)
转自:https://www.jianshu.com/p/2812b0b6e548 引言 DICOM(Digital Imaging and Communications in Medicine) ...
- Dicom 学习笔记-Dicom 消息服务(DIMSE-C/DIMSE-N)
引言 DICOM(Digital Imaging and Communications in Medicine)医学数字成像与通信,是医疗影像领域一个非常重要的标准,本文主要简单介绍 DICOM ...
- 【转】04.Dicom 学习笔记-DICOM C-Move 消息服务
引言 前篇介绍了 DICOM C-Get 消息服务,本文结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Move 服务. C-Move 消息服务 C-Move 服务可以用来获取影 ...
- 【转】03.Dicom 学习笔记-DICOM C-Get 消息服务
转自:https://www.jianshu.com/p/c7f5b9fa597c 引言 前篇介绍了 DICOM C-Find 消息服务,本文结合开源 DICOM 库 fo-dicom 详细介绍一 ...
- 【转】02.Dicom 学习笔记-DICOM C-Find 消息服务
引言 前篇介绍了 DICOM C-Store 消息服务,本文结合开源 DICOM 库 fo-dicom 详细介绍一下 C-Find 服务. C-Find 消息服务 C-Find 服务是一个查询 ...
- 【转】01.Dicom 学习笔记-DICOM C-Store 消息服务
转自:https://www.jianshu.com/p/bab6a85d3486 引言 之前总体介绍了 DICOM 的消息服务,可以参考这篇博文,但是有关每个服务的详细信息没有讲解,本文就结合开 ...
- 【转】医疗业务学习笔记--DICOM协议的基础内容!!!!!!!!!!
转自:医疗业务学习笔记--DICOM协议的基础内容 - 知乎 本文首发于"雨夜随笔"公众号,欢迎关注. DICOM协议是医疗领域对如何处理.存储.打印和传输医疗图片的一系列标准.D ...
- Windows消息机制学习笔记(三)—— 消息的接收与分发
Windows消息机制学习笔记(三)-- 消息的接收与分发 要点回顾 消息循环 消息队列 消息的接收 GetMessage 实验1:理解GetMessage 第一步:编译并运行程序A 第二步:编译并运 ...
- Windows消息机制学习笔记(一)—— 消息队列
Windows消息机制学习笔记(一)-- 消息队列 基本概念 实验一:使用代码画出最简单窗口 第一步:编译并运行以下代码 第二步:查看运行结果 第三步:使用其它窗口对其进行覆盖,观察效果 总结 消息队 ...
最新文章
- 2018 react 大会_React Conf 2018的经验教训
- MySQL索引知识总结
- 荣耀X8碎屏2020-05-14
- Linux常用命令全网最全
- hiho一下 第六十六周
- windows环境下VS2013编译openSSL
- Leetcode 278.第一个错误的版本
- Atitit uuid 的概念与实现与最佳实践总结 目录 1. 概念与组成	1 1.1. 在空间(Space)与时间(Time)上的唯一性	1 1.2. UUID	1 1.3. 组成	2 1.3.1
- 计算机等级考试一级wps office 教程,全国计算机等级考试一级WPSOffice教程
- java 加载类失败_java-动态类加载在运行时失败
- 简单逆向10(z3-solver)
- android.hardware.Camera 5.1之后操作照相机是不是不能用啦,我用小米手机(基本android 6.0)
- Win11全新功能来袭!每天都有新亮点!
- 最长公共子序列 【DP】+【最长公共子序列】
- PHP jQuery微信大转盘抽奖源代码分享
- 模电学习笔记(十一)——微分电路
- 毕业设计-基于BP神经网络预测系统的设计- MATLAB
- #yyds干货盘点# Kubernetes 怎样控制业务的资源水位?(16)
- PostgreSql数据库增删改查以及其他基本命令
- 百度总裁张亚勤宣布10月退休,李彦宏的人才建设要加紧了...