【问题标题】:Unable to access PACS using pynetdicom3无法使用 pynetdicom3 访问 PACS
【发布时间】:2018-06-12 11:22:04
【问题描述】:

我正在尝试使用 Python(特别是 pynetdicom3)连接到 PACS 服务器,但是我无法使用文档中指定的方法来连接。我可以使用 dcm4che 访问此服务器。例如。在命令行上运行 findscu -c AETitle@serverIP:port 有效(从 dcm4che 文件夹运行时)。

但是,当我尝试使用文档中的代码(当然稍作修改)通过 pynetdicom3 连接到服务器时,我收到有关“称为 AE 标题”的错误。这是代码:

from pynetdicom3 import AE, VerificationSOPClass

ae = AE(ae_title='AETitle',
        port=port,
        scu_sop_class=[VerificationSOPClass])

assoc = ae.associate(serverIP, port)

if assoc.is_established:
    print('Connection established')

这里的AETitle、port、serverIP和我在dcm4che中访问服务器时使用的一样,由管理员提供。

这是错误:

E: Association Rejected:
E: Result: Rejected Permanent, Source: Service User
E: Reason: Called AE title not recognised

运行 dcm4che 命令的输出指定“称为 AE 标题”与我在命令和代码中使用的相同。这是在pynetdicom3中指定AE标题的正确方法吗?如果不是,是什么?

【问题讨论】:

    标签: python dicom pydicom


    【解决方案1】:

    您当前正在定义本地应用程序实体,即您自己的带有 AE 标题“AETitle”的 Python 代码。

    在基本术语中,您的应用程序目前正在说“我是 AETitle”,而不是“我想与 AETitle 交谈”,因为服务器无法识别被调用的 AE 标题。

    您必须在关联方法调用中添加被调用的 AE 标题作为第三个参数。

    assoc = ae.associate(serverIP, port, "AEtitle")
    

    否则 pynetdicom3 将对调用的 AE 标题使用某种内部默认值或空值。

    【讨论】:

    • 是的,有效。我无法从文档中看出 AE 标题是关联函数中的一个参数,这更有意义。谢谢!
    • 但是另一个AE标题也很重要,你用ae = AE(ae_title='AETitle', port=port, scu_sop_class=[VerificationSOPClass])定义。在那里,您可以为传入的 DICOM 连接定义本地“调用 AE 标题”和本地侦听端口。因此,在一个完整的应用程序中,您需要适当地使用两者。
    • 调用 AE 标题的约定是什么?当我运行 dcm4che 命令时,它指定调用 AE 标题只是“FindSCU”,这是我在代码中使用的
    • 基本上任何你想要的。最好选择它,以便它正确地代表应用程序,并且必须是可配置的而不是硬编码的。 FindSCU 之类的东西非常通用,没有合理的 PACS 管理员希望在他们的网络上看到类似的东西,因为可能有几个不同的系统对 PACS 进行 C-FIND 查询并且需要被识别。因此,在每个特定情况下使用位置、部门或任何需要的内容,并听取您的 PACS 管理员的意见。如果每次我必须处理网络上另一个供应商默认的通用 AE 标题时我都有一美元....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2018-02-09
    • 2016-05-16
    • 2015-04-04
    • 2012-06-19
    • 2013-01-01
    • 2014-08-31
    相关资源
    最近更新 更多