DICOM:没有 C-Find 的 C-Move(查询检索 SCU)
DICOM: C-Move without C-Find (Query Retrieve SCU)
在 DICOM 中,以下是为研究根目录中的 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
我已经在多个应用程序中实现了查询检索 SCP 和 SCU。在所有这些情况下,我总是同时实现 类。我首先执行 C-Find 以获取匹配数据列表。然后根据结果,我(自动或手动)执行 C-Move 以获取实例。所有这些实现都运行良好。
最近,我正在开发一个应用程序,它将 DICOM 与其他私有协议结合起来以满足一些特定的要求。如果可以直接执行 C-Move 而无需像 SCU 那样执行 C-Find,我就一直在想?
我已经知道要检索的标识符 (StudyInstanceUID),而且我也知道它确实存在于 SCP 上。
我查看了规格,但没有找到任何结论。我知道 SCU 可以在不同 connections/associations 上向 SCP 发出 C-Find 和 C-Move。所以乍一看,我的想法似乎是可行且合法的。
我使用过许多第三方 DICOM 应用程序; none 他们按照我的想法实现了 SCU。所有 SCU 都实现 C-Find 和 C-Move。
问题:
在没有C-Find命令的情况下实现Query Retrieve SCU C-Move命令的DICOM合法且实用吗?如果可能,请指出规格中的参考资料。
简短回答:是的,根据 DICOM 规范,这是完全合法的。
长答案:让我们考虑 DCMTK 参考 DICOM Q/R 实现。它提供了一套基本的SCU命令行工具,即findscu
和movescu
。这个想法是 pipe 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) 结果。
在 DICOM 中,以下是为研究根目录中的 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
我已经在多个应用程序中实现了查询检索 SCP 和 SCU。在所有这些情况下,我总是同时实现 类。我首先执行 C-Find 以获取匹配数据列表。然后根据结果,我(自动或手动)执行 C-Move 以获取实例。所有这些实现都运行良好。
最近,我正在开发一个应用程序,它将 DICOM 与其他私有协议结合起来以满足一些特定的要求。如果可以直接执行 C-Move 而无需像 SCU 那样执行 C-Find,我就一直在想?
我已经知道要检索的标识符 (StudyInstanceUID),而且我也知道它确实存在于 SCP 上。
我查看了规格,但没有找到任何结论。我知道 SCU 可以在不同 connections/associations 上向 SCP 发出 C-Find 和 C-Move。所以乍一看,我的想法似乎是可行且合法的。
我使用过许多第三方 DICOM 应用程序; none 他们按照我的想法实现了 SCU。所有 SCU 都实现 C-Find 和 C-Move。
问题:
在没有C-Find命令的情况下实现Query Retrieve SCU C-Move命令的DICOM合法且实用吗?如果可能,请指出规格中的参考资料。
简短回答:是的,根据 DICOM 规范,这是完全合法的。
长答案:让我们考虑 DCMTK 参考 DICOM Q/R 实现。它提供了一套基本的SCU命令行工具,即findscu
和movescu
。这个想法是 pipe 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) 结果。