2

我是 DICOM 和 DCMTK 的新手。我试图使用 movecu 命令从公共测试服务器( 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

它有效,但同样的事情不适用于 movecu 像这样:

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 服务器或其他任何东西。实现这一目标的正确方法是什么?

4

2 回答 2

3

根据 DICOM 标准 (PS3.4),您必须为 C-MOVE 请求指定 PATIENT 级别的唯一键。患者姓名 (0010,0010) 不应为“*”(即查询阶段的“通配符匹配”),但患者 ID (0010,0020) 应具有实际值,即您拥有的患者 ID 之一使用“findscu”查询。

顺便问一下,您是否还在系统上启动了一个 Storage SCP 来监听端口 104?请参阅http://dicomserver.co.uk/的在线文档。如果没有,您可以使用附加的命令行选项“+P 104”启动“movescu”(因为这个工具有一个内置)。

于 2018-02-08T12:38:42.403 回答
1

如果有人仍然遇到此问题:

  • 每个查询必须包括 StudyInstanceUID + SeriesInstanceUID + PatientID
  • 因为检索过程使 PACS 为正在运行的 movecu 创建一个 SCP 会话,所以它需要知道如何处理它。AE 是正在发送的(机器的)名称,默认为 MOVESCU(可以使用 aec/aet 标志更改,但 PACS 主机文件必须具有该 ip-to-name 映射)
  • 默认情况下,此协议在端口 104 上运行,该端口是受限制的。您可以使用 +P 标志将其更改为高于 1024 的端口(尚未尝试验证 PACS 收到此端口号)或仅使用 sudo/root 运行movescu
  • 我不知道默认存储目录是什么,但这可以用 -od 标志定义。

工作示例:

sudo /usr/bin/movescu -v -od /path/to/dir PACS_IP 104 -k StudyInstanceUID=1.2.3.4.5 -k SeriesInstanceUID=1.2.3.4.5 -k PatientID=12345 +P 104

于 2020-08-26T12:01:52.743 回答