我正在尝试使用Python(特别是pynetdicom3)连接到PACS服务器,但是无法使用文档中指定的方法来连接我可以使用dcm4che访问此服务器例如,在命令行上运行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、port和serverip与管理员提供的dcm4che中用于访问服务器的aetitle、port和serverip相同。
这是错误:
E: Association Rejected:
E: Result: Rejected Permanent, Source: Service User
E: Reason: Called AE title not recognised

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

最佳答案

您当前正在定义本地应用程序实体,即您自己的带有AE title标题的python代码。
基本上说,您的应用程序目前正在说“我是AE title”,而不是“我想与AETitle交谈”,因为服务器无法识别所谓的AETitle。
必须在关联方法调用中添加被调用的AE title作为第三个参数。

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

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

09-10 04:45
查看更多