无法使用 pynetdicom3 访问 PACS

Unable to access PACS using pynetdicom3

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

但是,当我尝试使用文档中的代码(当然略有修改)通过 pynetdicom3 连接到服务器时,我收到有关 "called AE title" 的错误。这是代码:

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、端口、serverIP与我在dcm4che中访问服务器时使用的相同,由管理员提供。

这是错误:

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

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

您当前正在定义本地应用程序实体,即您自己的 python 代码和 AE 标题 "AETitle"。

从根本上说,您的应用程序目前说的是 "I am AETitle",而不是它应该说的 "I want to talk to AETitle",因为服务器无法识别调用的 AE 标题。

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

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

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