我正在尝试使用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解决方案有效。
以下是结果摘要:
似乎我的问题的一部分与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
很高兴知道如何进行设置,因为它可能非常有用。我的猜测是,由于C-MOVE将原始IP地址提供给dicomserver,因此104端口需要转发到当前计算机。作为DICOM协议的新手,我发现其中许多功能有些神秘……
这是想要安装并运行测试系统(使用Ubuntu 18.04)的任何人的完整设置:
sudo apt install orthanc
并检查服务是否已启动systemsctl status orthanc.service
/etc/orthanc/orthanc.json
中,取消以下行的注释:"sample" : [ "STORESCP", "localhost", 2000 ]
并重新启动服务器systemsctl restart orthanc.service
/etc/orthanc/orthanc.json
上的网络端口)getscu
)STORESCP
中允许的2000
和/etc/orthanc/orthanc.json
端口启动SCP服务,例如./dcmqrscp -b STORESCP:2000 --dicomdir /home/max/tmp/dcm
使用新的StudyInstanceUID(以下为了可读性在下面简称),将带有movescu
的{{1}}调用到上面的SCP,例如:
-b
就是这样!
答案 0 :(得分:2)
请再次阅读http://www.dicomserver.co.uk/主页上的C-MOVE信息,以了解如何设置查询。您输入的命令语法正确,但是某些详细信息有误。
基本上,您需要两件事:
我认为在本地计算机上安装轻量级PACS来测试您的应用程序(例如Orthanc)会更容易。在我看来,让DICOM C-MOVE在公共互联网上工作会带来麻烦。