【问题标题】:DICOM: C-Move without C-Find (Query Retrieve SCU)DICOM:没有 C-Find 的 C-Move(查询检索 SCU)
【发布时间】:2017-02-07 17:31:34
【问题描述】:

在 DICOM 中,以下是在 Study Root 为 C-Find 和 C-Move 定义的类。

Study Root Query/Retrieve Information Model - FIND: 1.2.840.10008.5.1.4.1.2.2.1
Study Root Query/Retrieve Information Model - MOVE: 1.2.840.10008.5.1.4.1.2.2.2

我已经在多个应用程序中实现了 Query Retrieve SCP 和 SCU。在所有这些情况下,我总是实现这两个类。我首先进行 C-Find 以获取匹配数据的列表。然后根据结果,我(自动或手动)C-Move 来获取实例。所有这些实现都运行良好。

最近,我正在开发一个将 DICOM 与其他私有协议相结合的应用程序,以满足某些特定要求。如果可以直接进行 C-Move 而无需将 C-Find 作为 SCU 就可以让我一直在想吗?

我已经知道要检索的标识符 (StudyInstanceUID),而且我也知道它确实存在于 SCP 上。

我查看了规格,但找不到任何结论性的东西。我知道 SCU 可以在不同的连接/关联上向 SCP 发出 C-Find 和 C-Move。因此,乍一看,我的想法似乎是可行且合法的。

我使用过许多第三方 DICOM 应用程序;他们都没有按照我的想法实现 SCU。所有 SCU 都实现了 C-Find 和 C-Move。

问题:

在没有C-Find命令的情况下实现Query Retrieve SCU C-Move命令DICOM合法实用吗?如果可能,请指出我在规范中的参考。

【问题讨论】:

  • 您自己已经回答了这个问题:您使用私有协议而不是 DICOM C-FIND 检索了 StudyInstanceUID。除非你想备份整个数据库(我猜),否则没有 C-FIND 的 C-MOVE 几乎没有用处。
  • 否;我不想备份整个数据库。我的申请已经通过私人协议收到了可用研究的列表。根据需要,我想在我的应用程序中获取实例。 Find 的目的是检查实例是否存在并获取标识符并相应地发出 Move。由于我已经知道这些实例确实存在于 SCP 上并且我也知道标识符,我为什么要发出 Find 呢?我唯一担心的是,这是否 DICOM 合法。

标签: dicom


【解决方案1】:

简短回答:是的,根据 DICOM 规范,这是完全合法的。

长答案:让我们考虑 DCMTK 参考 DICOM Q/R 实现。它提供了一套基本的SCU命令行工具,即findscumovescu。这个想法是将findscu 的输出管道movescu 以构造一个有效的C-MOVE (SCU) 请求。

根据您的要求,您只需将 findscu 步骤替换为不依赖于公开定义的 C-FIND (SCU) 协议而是通过另一种机制(DICOM 扩展)的私有实现。

所以是的,您的 C-MOVE (SCU) 实现完全有效,因为在此查询期间不需要提供 C-FIND (SCU)。


我了解您并没有尝试使用 C-MOVE (SCU) 备份整个数据库,这只是一种可能的情况,即有人会尝试使用 C-MOVE (SCU) 而没有首先使用有效的 C-FIND 进行查询(SCU) 结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    相关资源
    最近更新 更多