设为首页 加入收藏

TOP

DICOM医学图形处理:storescp.exe与storescu.exe源码剖析,学习C-STORE请求(续)(二)
2015-07-20 17:42:17 来源: 作者: 【 】 浏览:4
Tags:DICOM 医学 图形处理 storescp.exe storescu.exe 源码 剖析 学习 C-STORE 请求
服务中常用到的几种;而TransferSyntax关注的是信息传输交互时的编码规则,是Explicit还是Implicit,是LittleEndian还是BigEndian,常见的有UID_LittleEndianImplicitTransferSyntax、UID_LittleEndianExplicitTransferSyntax等等,具体的可以自行查看dcuid.h文件。而上面传递丢失的presID参数就是包括了这两种最重要的交互信息。因此会导致整个C-STORE服务失败。

2)storescp.cc与scp.cc整体再对比

那么storescp.exe工具包和DcmScp类又是在什么时刻?什么位置来设置这些参数的呢?下面我们就再一次对比分析一下两种工具的实现流程(细节可参照上一篇博文DICOM医学图像处理:storescp.exe与storescu.exe源码剖析,学习C-STORE请求)。

2.1 scp.cc源码文件

借助上一篇博文的图片来分析一下DcmSCP类中对于Presentation Context(即AbstractSyntax和TransferSyntax)的具体操作。

\

上图中给出了DcmSCP类中设置Presentation Context上下文环境的具体位置和使用的函数。

2.2 storescp.exe源码文件

想必storescp.exe工具包中的设置流程也基本是相似的,接下来我们同样借助上一篇博文的图来分析一下。

\

对比两个图片我们可以发现DcmSCP和storescp.exe都是在处理真正的DIMSE消息之前对连接的Presentation Context上下文进行配置,至于这么多UID(无论是AbstractSyntax还是TransferSyntax都是在dcuid.h文件中用统一的UID来定义的)存储到哪里了呢?结合上一篇博文的分析,我们知道外部循环开始后主要的核心函数都有一个T_ASC_Association类型的参数assoc(storescp.exe中)或m_assoc(DcmSCP类中),查看一下T_ASC_Association类型的定义,并逐级打开,可以发现正如我们预料中的一样,该变量中存储了连接的上下文的所有UID,如下图所示:

\

至此我们对于DcmSCP类和storescp.exe工具的源码的剖析总算告一段落了,希望大家能够对DICOM的网络通讯服务有一个更深刻的认识。

3)对新版DCMTK中DcmSCP和DcmStoreSCP实现的初步猜想

通过此次使用DcmSCP类的工程发现,该类的设计有些欠妥,开放的接口不够合理,无法轻松的实现扩展来响应C-STORE等其他请求。猜想新版的DCMTK肯定会进行修改,通过查看dcmtk3.6.1的官方说明,发现新版的dcmtk开源库中的确对DcmSCP和DcmSCU基类进行了大的修改,开放了众多新的接口(如下图)方便用户进行扩展,另外新版的库中直接给出了封装好的DcmStoreSCP和DcmStoreSCU类,所以大家就不要使用我给出的代码ZSDcmStoreSCP类啦,仅供测试使用,具体运用是还是赶紧安装最新版的dcmtk开源库吧。

下载:

1)CSDN资源下载:

连接:http://download.csdn.net/detail/zssureqh/7870789,需要1个积分奥。

2)Github免费下载

连接:https://github.com/zssure-thu/CSDN

后续专栏博文预告:

1)dcmtk3.6.0的DcmSCP与dcmtk3.6.1的DcmSCP分析,以及dcmtk3.6.1的DcmStoreSCP和DcmStoreSCU的使用

2)Dcmtk与fo-dicom保存文件的不同设计模式:单线程VS多线程

3)wlmscpfs.exe与findscu.exe的源码剖析:学习C-FIND请求


作者:zssure@163com

时间:2014-09-13


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU4994-Revenge of Nim(博弈) 下一篇线性表 - 双链表

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 安装及连接-腾 (2025-12-25 06:20:28)
·MySQL的下载、安装、 (2025-12-25 06:20:26)
·MySQL 中文网:探索 (2025-12-25 06:20:23)
·Shell脚本:Linux Sh (2025-12-25 05:50:11)
·VMware虚拟机安装Lin (2025-12-25 05:50:08)