DICOM:基于JMeter+dcm4che2测试PACS服务器性能的解决方案(续篇)

本文档介绍了基于dcm4che2扩展JMeter进行DICOM服务器性能测试的方法。作者分析了dcm4che2的dcmsnd工具源码,创建了自己的DcmSend类,以便更好地控制Dcm文件发送和生成测试文件。通过自定义修改DCM文件的UID,实现了模拟海量测试文件的能力,提高了测试效率和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

前一篇博文通过扩展JMeter的java请求,结合dcm4che2现有的工具包dcmsnd.bat实现了简单的测试DICOM服务器C-STORE SCP性能的尝试。由于借用了现有的dcmsnd.bat命令行工具,会有诸多的局限性,比如:

1)必须构造命令行中的参数,才能调用dcmsnd.bat,操作多此一举
2)无法准确跟踪一张图像上传完成后的准确时间
3)既然要模拟海量用户并发,需要准备对应的数量的文件,无法通过自动生成dcm的三级UID来自动生成海量测试文件。

针对上述情况,本篇博文在剖析dcm4che2的dcmsnd工具源码的基础上,给出了自己的DcmSend类,通过该类可自由控制dcm文件发送,与此同时可通过修改单一文件的各级UID来自动模拟出海量dcm文件,提高了测试效率和准确性。下面就给出具体过程。

dcm4che2介绍:

相较于之前常用的dcmtk和fo-dicom,在dcm4che中对于DICOM标准的实现更全面一些,出现了部分之前少有提及的概念,但不必担心,这些新的概念都是对以往概念的总结和归纳 。在dcmsnd.bat工具包源码中用到的几个新概念主要是DICOM3.0标准第15部分,这里主要介绍附录H中的几个核心概念:
1)Device:这里指的是从服务概念来划分的,并不一定指的是物理上的一台设备,有可能是多台设备(比如PET-CT,我也不是很确定?)。但是通常Device可以认为是物理上的一台设备。
2)Transfer Capability:这个在DICOM3.0标准的附录H中被划分成了NetworkAE、NetworkConnection和Transfer Capability三部分,三者的具体关系如下图:
这里写图片描述
简单来说,Transfer Capability类同于我们之前介绍的Presentation Context(即描述上下文),两者含有的内容是一样的,都是AbstractSyntax+TransferSyntax,即服务类别+编码格式。但两者所描述的范围不同,Transfer Capability是用于描述设备(暂且认为Device对应一台物理设备)的功能,是设备说明书的一部分;而Presentation Context是我们在讲解DICOM网络传输时用到的概念,是在连接建立的握手过程中用于表明连接双方请求的服务和编码格式的,因此从概念上来说Transfer Capability用于宏观,Presentation Context用于微观;Transfer Capability对应于实体(即设备),而PresentationContext对应于服务(即通讯)
总之简单来说,在编码时,可以通过Transfer Capability来设置连接具体交互时的PresentationContext。这一点在DcmSnd.java类的configureTransferCapability,以及的NetworkApplicationEntity.javamakeAAssociateRQ</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zssure

己欲立而立人,己欲达而达人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值