检索dicom图像的基本movecu示例

时间:2018-07-07 10:30:13

标签: dicom dcm4che

我正在尝试使用dcm4che从免费的http://www.dicomserver.co.uk/下载图像。我已经克隆并签出了5.13.2版本,并使用mvn install进行了构建。现在,当我进入dcm4che-assembly/target/dcm4che-5.13.2-bin/dcm4che-5.13.2/bin目录并尝试下载StudyInstanceUID时:

./movescu -c DCMQRSCP@www.dicomserver.co.uk:104 -m StudyInstanceUID=1.2.826.0.1.3680043.11.105 --dest STORESCP

我得到了错误:

...
(0000,0902) LO [Unknown Move Destination: STORESCP] ErrorComment
...

该错误表明它无法连接到接收器。我尝试运行:

./storescp -b STORESCP:11112

没有太大的成功。我也尝试过以类似结果运行dcmqrscp

我的谦卑要求:请提供一个movescu的实用示例。


详细信息

我可以让findscu正常工作,例如:

./findscu -c DCMQRSCP@www.dicomserver.co.uk:104 -m StudyInstanceUID=1.2.826.0.1.3680043.11.105 -r PatientID

给予:

(0008,0005) CS [] SpecificCharacterSet
(0008,0052) CS [STUDY] QueryRetrieveLevel
(0008,0054) AE [DCMQRSCP] RetrieveAETitle
(0010,0020) LO [PAT004] PatientID
(0020,000D) UI [1.2.826.0.1.3680043.11.105] StudyInstanceUID

类似地,getscu命令似乎起作用:

>./getscu -c DCMQRSCP@www.dicomserver.co.uk:104 -m StudyInstanceUID=1.2.826.0.1.3680043.11.105

创建以下DICOM文件:

  

ls 1 * -lh

-rw-rw-r-- 1 max max  12M jul  7 12:16 1.2.276.0.7230010.3.1.4.39332053.7432.1527748041.31
-rw-rw-r-- 1 max max 150K jul  7 12:17 1.2.276.0.7230010.3.1.4.8323329.11391.1527939718.955155
-rw-rw-r-- 1 max max 6,0M jul  7 12:17 1.2.826.0.1.3680043.9.6384.2.2087.20180322152557.400.100
-rw-rw-r-- 1 max max 6,0M jul  7 12:17 1.2.826.0.1.3680043.9.6384.2.2087.20180322152557.400.104
-rw-rw-r-- 1 max max 6,0M jul  7 12:17 1.2.826.0.1.3680043.9.6384.2.2087.20180322152557.400.108
-rw-rw-r-- 1 max max 6,0M jul  7 12:17 1.2.826.0.1.3680043.9.6384.2.2087.20180322152557.400.112
-rw-rw-r-- 1 max max 6,0M jul  7 12:16 1.2.826.0.1.3680043.9.6384.2.2087.20180322152557.400.80
-rw-rw-r-- 1 max max 6,0M jul  7 12:17 1.2.826.0.1.3680043.9.6384.2.2087.20180322152557.400.84
-rw-rw-r-- 1 max max 6,0M jul  7 12:17 1.2.826.0.1.3680043.9.6384.2.2087.20180322152557.400.88
-rw-rw-r-- 1 max max 6,0M jul  7 12:17 1.2.826.0.1.3680043.9.6384.2.2087.20180322152557.400.92
-rw-rw-r-- 1 max max 6,0M jul  7 12:17 1.2.826.0.1.3680043.9.6384.2.2087.20180322152557.400.96

最后,很抱歉,如果这个问题属于重复类别。花了好几天没有在StackOverflow或dcm4che-forum上找到有效的movescu示例之后,我放弃了搜索。目标是要使用一个示例,以便我可以出于自己的目的修改底层Java代码。另外,如果您对整个movescu转储感兴趣,请告诉我。


更新

Tarmo 有用的提示之后,我尝试(1)使用正确的AE和端口,以及(2)更改为Orthanc。不幸的是,我仍然无法从dicomserver.co.uk检索图像,但是Orthanc解决方案有效。

以下是结果摘要:

Alt。 1:端口和端口合规性

似乎我的问题的一部分与RTFM有关:

  

使用任何您喜欢的主叫和被叫AE标题(如果需要检查日志,可以使它们专用于您),但是如果您希望使用C-MOVE,请确保主叫和目的地AET是,并且您在端口104上监听

我的第一个尝试是对齐两个AE标题:

./movescu -c STORESCP@www.dicomserver.co.uk:104 -m StudyInstanceUID=1.2.826.0.1.3680043.11.105 --dest STORESCP

这不起作用,事实证明目标端口是随机的。在两端(服务器日志+本地),可以发现端口为:

14:23:47,539 INFO  - MOVESCU->APA(1): close Socket
  [addr=www.dicomserver.co.uk/88.202.185.144,port=104,localport=57985]

localport在每次尝试之间都会改变。到目前为止,我已经尝试过的事情:

  • --dest(1)STORESCP:104,(2)STORESCP$localhost:104,(3)其他AE标题的变体
  • 通过sudo ./dcmqrscp -b STORESCP:104 --dicomdir /home/max/tmp/dcm(由于端口号较低,sudo)启动SCP并仅以AE标题作为目标进行呼叫
  • 与上述相同,但具有-b选项:./movescu -c STORESCP@www.dicomserver.co.uk:104 -b STORESCP@localhost:104 -m StudyInstanceUID=1.2.826.0.1.3680043.11.105 --dest STORESCP
  • 与上面相同,但没有SCP,但拥有我的本地IP /外部IP(未更改防火墙)
  • 我还尝试通过电话进行USB绑定,以绕过路由器,但电话运行在IPv6而非v4上

很高兴知道如何进行设置,因为它可能非常有用。我的猜测是,由于C-MOVE将原始IP地址提供给dicomserver,因此104端口需要转发到当前计算机。作为DICOM协议的新手,我发现其中许多功能有些神秘……

备用2:本地Orthanc服务器(工作!)

这是想要安装并运行测试系统(使用Ubuntu 18.04)的任何人的完整设置:

  1. sudo apt install orthanc并检查服务是否已启动systemsctl status orthanc.service
  2. /etc/orthanc/orthanc.json中,取消以下行的注释:"sample" : [ "STORESCP", "localhost", 2000 ]并重新启动服务器systemsctl restart orthanc.service
  3. 转到http://localhost:8042(除非您已更改/etc/orthanc/orthanc.json上的网络端口)
  4. 导航到上传并找到要上传的dcm文件(您可以在此处找到要下载的dcm文件:https://www.dicomlibrary.com/,也可以从上方使用getscu
  5. 将dcm文件拖放到http://localhost:8042/app/explorer.html#upload中,然后按“开始上传”
  6. 去病人那里并为上传的图像获取新的StudyInstanceUID
  7. 使用您在STORESCP中允许的2000/etc/orthanc/orthanc.json端口启动SCP服务,例如./dcmqrscp -b STORESCP:2000 --dicomdir /home/max/tmp/dcm
  8. 使用新的StudyInstanceUID(以下为了可读性在下面简称),将带有movescu的{​​{1}}调用到上面的SCP,例如:

    -b

就是这样!

1 个答案:

答案 0 :(得分:2)

请再次阅读http://www.dicomserver.co.uk/主页上的C-MOVE信息,以了解如何设置查询。您输入的命令语法正确,但是某些详细信息有误。

基本上,您需要两件事:

  1. 您的呼叫AE标题必须与目标AE标题相同。您现在有他们不同的地方
  2. 您的storecp必须可以从公共互联网上的同一端口访问,该端口用于连接到dicomserver.co.uk(在您的示例中为104)。他们的服务器需要重新建立与计算机的TCP连接,以便它可以正常工作。

我认为在本地计算机上安装轻量级PACS来测试您的应用程序(例如Orthanc)会更容易。在我看来,让DICOM C-MOVE在公共互联网上工作会带来麻烦。