gpt4 book ai didi

dicom - 如何获取在 C-MOVE 调用期间未成功检索的所有 SOP 实例的列表?

转载 作者:行者123 更新时间:2023-12-03 23:41:38 25 4
gpt4 key购买 nike

我正在使用 PyNetDicom 从 PACS 服务器下载(C-MOVE)图像。我已经实现了一个向 PACS 发送 C-MOVE 请求的 SCU,以及一个接收 C-STORE 请求的 SCP。
我下载整个研究,意味着一次几千个 DICOM 图像。出于某种原因,我未能收到其中的一些。我从 C-MOVE 请求中得到的响应显示了成功发送的图像数量和失败的图像数量(以及正在进行的图像数量,以及任何警告)。
我不仅想知道失败的次数,还想知道失败的次数,这意味着我想获得失败的 SOP 实例 UID 列表。这是我的代码的相关部分:

# Not shown: Implementation of association (assoc) and making a dataset to query PACS (query_dataset)
responses = assoc.send_c_move(query_dataset, b'NAME_OF_STORAGE_SCP', StudyRootQueryRetrieveInformationModelMove)

for (status, identifier) in responses:
# This works
remaining_operations = status.NumberOfRemainingOperations
completed_operations = status.NumberOfCompletedOperations
failed_operations = status.NumberOfFailedOperations
warning_operations = status.NumberOfWarningOperations

if identifier:
failed_UID_list = identifier.FailedSOPInstanceUIDList # This does not work
这不起作用,标识符总是 None ,即使 status.Status显示操作失败。我做错了什么,还是我关联的 PACS 不符合 DICOM 标准?

最佳答案

当您充当 C-MOVE SCU 时,无法获取失败实例的标识符(SOP 实例 UID)。

  • 您可以使用 C-MOVE SCP 单独获取详细信息/日志(从 DICOM 中获取)。
  • 如果故障发生在 您的 C-STORE SCP,检查那里的日志或详细信息。如果故障发生在 C-STORE SCU(其他系统)上,这可能没有帮助,您需要再次使用它们。

  • 不完全是解决方案,但是,您可以在 C-MOVE 之前执行 SERIES 级别查询 (C-FIND) 并提前获取要提取的实例数 ( NumberOfSeriesRelatedInstances )。但这只是一个计数;不是标识符。 STUDY 和 PATIENT 级别的查询也是如此。
    在这种情况下,存储 promise 可能没有用,因为同样,您的系统上不存在实例;你不知道标识符。
    使用 IMAGE 级别查询 (C-FIND),您可以传递系列实例 UID 并获取该系列的实例列表。但是,我遇到了一些也强制 SOP 实例 UID 的系统。如果您的案例中的其他系统支持此功能,您可以执行以下操作:
  • 逐步进行患者、研究、系列和图像级别查询 (C-FIND)。您可以引用this回答更多细节。
  • 将输出存储在某处(内存列表或数据库或其他)。
  • 执行常规的 C-MOVE 并将接收到的实例与您存储的列表进行比较。无论缺少什么,都是您正在寻找的 list 。

  • 回复您的评论:
    我错过了 Failed SOP Instance UID List (0008,0058)标签。

    C.4.2.1.4.2 Response Identifier Structure
    The Failed SOP Instance UID List (0008,0058) specifies a list of UIDs of the C-STORE sub-operation SOP Instances for which this C-MOVE operation has failed. An Identifier in a C-MOVE response shall conditionally contain the Failed SOP Instance UID List (0008,0058) based on the C-MOVE response status value. If no C-STORE sub-operation failed, Failed SOP Instance UID List (0008,0058) is absent and therefore no Data Set shall be sent in the C-MOVE response.
    Reference: DICOM PS3.4 2020e - Service Class Specifications


    看来它应该可以完成您的工作。但坦率地说,我从未遇到(或没有注意到)发送此类失败实例列表的 C-MOVE SCP。从您的代码中,您也没有收到数据。我会建议不要依赖它。

    关于dicom - 如何获取在 C-MOVE 调用期间未成功检索的所有 SOP 实例的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65398619/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com