我是DICOM和DCMTK中的新手。我试图使用Movescu命令从公共测试服务器(http://www.dicomserver.co.uk(检索DCM文件。但这不起作用。我能够成功运行FindScu,但这只是获取数据。这是我尝试的:
findscu -v -P --call COMMON --patient --key 0008,0052=PATIENT --key 0010,0020="PAT004" www.dicomserver.co.uk 104
它起作用,但同一件事对Movescu不起作用:
movescu -v -P --call COMMON +P 104 --patient --key 0008,0052=PATIENT --key 0010,0020="PAT004" www.dicomserver.co.uk 104
输出:
I: Requesting Association
I: Association Accepted (Max Send PDV: 65524)
I: Sending Move Request (MsgID 1)
I: Request Identifiers:
I:
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0008,0052) CS [PATIENT] # 8, 1 QueryRetrieveLevel
I: (0010,0020) LO [PAT004] # 6, 1 PatientID
I:
W: Move response with error status (Failed: UnableToProcess)
I: Received Final Move Response (Failed: UnableToProcess)
I: Releasing Association
我没有运行任何本地DICOM服务器或其他任何东西。实现这一目标的正确方法是什么?
根据DICOM标准(PS3.4(,您必须为C-MOVE请求指定患者级别的唯一密钥。患者的姓名(0010,0010(不应是"*"(查询阶段的"通配符匹配"(,但患者ID(0010,0020(应具有实际值,即您拥有的患者ID之一使用" FindScu"查询。
顺便说一句,您是否还在系统上启动了一个存储SCP,以在端口104上收听?请参阅http://dicomserver.co.uk/的在线文档。如果不是,则可以使用附加命令行选项" p 104"启动" movescu"(因为此工具具有一个构建(。
以防有人在这个问题上遇到麻烦:
- 每个查询都必须包括studyinstanceuid seriesInstanceuid daterIdId
- 因为检索过程使PACS创建了一个SCP会话,以了解需要知道如何接近它的运行Movescu。AE是要发送的(机器的(名称,默认是Movescu(可以使用AEC/AET标志标志更改,但是PACS Hosts文件必须具有该IP-to-name映射(
- 默认情况下,该协议在端口104上运行,该协议受到限制。您可以用 p标志更改此端口高于1024(尚未尝试验证PACS回收此端口号(,也可以使用sudo/root 运行movescu
- 我不知道什么是默认存储目录,但可以用-od标志来定义。
工作示例:
sudo/usr/bin/movescu -v -od/path/to/dir pacs_ip 104 -k stuceInstanceUID = 1.2.3.4.5 -k seriperinStanceUID = 1.2.3.4.5 -k耐心p>