个人理解 Dicom C-get 就是在没有设置任何验证情况下请求QR服务,而C-move是有验证的情况下请求QR服务。一般都是C-move,因为机器都需要验证。

Dicom C-move 原理:自己写一个SCU程序,通过scu发送请求给QR服务,再用自己的SCP来接收QR的C-Store回传的影像。

需要引用Dicom.Core 4.0.8.0或以下

  /// <summary>
/// C-Store SCP AE Title:影像归档目的地的 AE Title,之所以这样写,是因为 C-Move 既可以是两方通信,也可以是三方通信,如果是两方通信,那么 C-Move SCU 同时需要提供 C-Store SCP 的功
/// 能,这里就可以写 C-Move SCU 的 AE Title;如果是三方通信,那么这个影像归档的目的地之需要提供 C-Store SCP 的功能,所以这里的参数就要写C-Store SCP 的 AE Title;
/// StudyInstanceUID:检查唯一标识;
/// C-Move SCP IP:C-Move 服务端的 IP 地址或机器名;
/// C-Move SCP Port:C-Move 服务端的端口;
/// C-Move SCU AE Title:C-Move 客户端应用实体的名称;
/// C-Move SCP AE Title:C-Move 服务端应用实体的名称;
/// </summary>
[Obsolete]
private void C_Move(string studyInstanceUID)
{
try
{ SQLDBHelper helper = new SQLDBHelper(); var model = helper.GetByStudyID(studyInstanceUID);
if (model != null && model.ID > 0)
return; var successNum = new List<int>();
var client = new DicomClient();
//var request = new DicomCMoveRequest({ C - Store SCP AE Title }, { StudyInstanceUID}); var destinationAe = ConfigurationManager.AppSettings["DestinationAe"];
string host = ConfigurationManager.AppSettings["DicomHost"];
int port = int.Parse(ConfigurationManager.AppSettings["DicomPort"]);
bool useTls = bool.Parse(ConfigurationManager.AppSettings["DicomUseTls"]);
string callingAe = ConfigurationManager.AppSettings["DicomcallingAe"];
string calledAe = ConfigurationManager.AppSettings["DicomcalledAe"]; var request = new DicomCMoveRequest(destinationAe, studyInstanceUID);
client.AddRequest(request); request.OnResponseReceived += (DicomCMoveRequest requ, DicomCMoveResponse response) =>
{
if (response.Status.State == DicomState.Pending)
{
successNum.Add(response.Remaining);
//Console.WriteLine("Sending is in progress. please wait: " + response.Remaining + " SOP instances need to do C-Store options");
}
else if (response.Status.State == DicomState.Success)
{
if (successNum != null && successNum.Count > 0)
{
var maxNum = successNum.Max(); helper.Insert(studyInstanceUID, maxNum + 1);
} //Console.WriteLine("Sending successfully finished");
}
else if (response.Status.State == DicomState.Failure)
{
//Console.WriteLine("Error sending datasets: " + response.Status.Description);
}
//Console.WriteLine(response.Status);
}; //client.Send({ C - Move SCP IP}, { C - Move SCP Port}, false, { C - Move SCU AE Title}, { C - Move SCP AE Title}); client.Send(host, port, useTls, callingAe, calledAe); }
catch (Exception ex)
{
Logger.Instance().Error("用C-MOVE获取图像失败:" + ex.Message + " ,具体错误如下" + ex);
}
}

Dicom C-move 请求QR服务的更多相关文章

  1. Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符、ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务、ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序

    问题1:ORA-12154: TNS: 无法解析指定的连接标识符 在一台服务器上部署了Oracle客户端,使用IP/SID的方式访问,老是报ORA-12154错误,而使用tnsnames访问却没有问题 ...

  2. Node.js 使用 soap 模块请求 WebService 服务接口

    项目开发中需要请求webservice服务,前端主要使用node.js 作为运行环境,因此可以使用soap进行请求. 使用SOAP请求webservice服务的流程如下: 1.进入项目目录,安装 so ...

  3. 安装完oracle重新启动后报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务(重启前正常)

    安装完oracle重新启动后报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务(重启前正常) 刚安装完后用plSql登录正常. 在dos命令行下 输入  sqlplus 用户 ...

  4. Android应用程序请求SurfaceFlinger服务渲染Surface的过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7932268 在前面一篇文章中,我们分析了And ...

  5. Android应用程序请求SurfaceFlinger服务创建Surface的过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7884628 前面我们已经学习过Android应 ...

  6. sql2008r2,以前好好可以用的,但装了vs2017后,连接不上了,服务也停了,结果手动也 启动不了, 无法加载或初始化请求的服务提供程

    日志: 2017-12-14 12:33:17.53 服务器 A self-generated certificate was successfully loaded for encryption.2 ...

  7. http客户端请求及服务端详解

    http客户端请求及服务端详解 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...

  8. kmspico_setup.exe运行提示系统资源不足,无法完成请求的服务

    在使用KMSpico激活office时,windows下运行exe会提示系统资源不足,无法完成请求的服务. 我的解决方法是:卸载电脑上的wps...

  9. node socket :10106无法加载或初始化请求的服务提供程序

    node socket :10106无法加载或初始化请求的服务提供程序 无端端的,不知道怎么回事,node突然就坏掉 了,应该是某些配置无意中改动了,问题如下: 目前能想到的解决办法就是:重置配置,用 ...

  10. python服务器端、客户端的模型,客服端发送请求,服务端进行响应(web.py)

    服务器端.客户端的模型,客服端发送的请求,服务端的响应 相当于启动了一个web server install web.py 接口框架用到的包 http://webpy.org/tutorial3.zh ...

随机推荐

  1. openEuler搭建k8s(1.28.2版本)

    目录 k8s搭建(1.28.2版本) 1. 安装containerd 1.1 下载tar包 1.2 编写服务单元文件 2. 安装runc 3. 安装cni插件 3.1 下载文件 3.2 设置crict ...

  2. Nginx服务器配置---反向代理服务时proxy_pass的转发规则

    nginx是由俄罗斯开发的一款http web服务器,我们经常用这款服务器做负载均衡和反向代理.今天我们就来聊聊Nginx作为反向代理时,如何进行路由配置.假设你已经部署好Nginx了,我们进入Ngi ...

  3. MySQL报错注入之Xpath报错&floor函数报错

    目录 前言 Xpath报错注入 updatexml()函数 extractvalue()函数 floor函数报错 count与group by的虚拟表 总结 PostGIS函数报错 ST_LatFro ...

  4. 2024-11-27:字符串的分数。用go语言,给定一个字符串 s,我们可以定义其“分数”为相邻字符的 ASCII 码差值绝对值的总和。 请计算并返回字符串 s 的分数。 输入:s = “hello“

    2024-11-27:字符串的分数.用go语言,给定一个字符串 s,我们可以定义其"分数"为相邻字符的 ASCII 码差值绝对值的总和. 请计算并返回字符串 s 的分数. 输入:s ...

  5. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online (The 2nd Universal Cup

    The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online (The 2nd Universal Cup. Stage 1: Qingdao) J ...

  6. 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(6)

    1.问题描述: 推送通知到手机,怎么配置拉起应用指定的页面? 解决方案: 1.如果点击通知栏打开默认Ability的话, actionType可以设置为0, 同时可以在.clickAction.dat ...

  7. Vue.js slot插槽

    1.插槽的基本用法 组件的插槽允许用户将其他组件或者html片段插入到组件当中 // App.vue <template> <div id="app"> & ...

  8. S2P医药营销智能管理平台特点和优势

    S2P医药营销智能管理平台是正也科技打造的一个专为医药行业设计的综合性营销解决方案,旨在通过智能化.数据驱动的方式提升医药企业的营销效率和效果.以下是关于S2P医药营销智能管理平台的一些主要特点和优势 ...

  9. 反编译wx小程序遇到的问题

    怎么反编译就不说了,有很多文章,推荐两个 http://t.csdnimg.cn/DrvBZ http://t.csdnimg.cn/NOEys 下面开始说问题 _typeof3 is not a f ...

  10. 在PlatformIO IDE中对ESP32的CPU主频等进行配置

    前言 rt,有一天开发中需要尽可能发挥ESP32的全部性能,提高主频自然是首选,在Arduino IDE中修改主频很方便,但在PlatformIO IDE中修改主频的方法网上说的却很少,今天就总结一下 ...