无法使用pynetdicom3访问PACS

时间:2018-06-12 11:22:05

标签: python dicom pydicom

我尝试使用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中用于访问服务器的AETitle,port和serverIP相同。

这是错误:

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

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

1 个答案:

答案 0 :(得分:4)

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

从基本的角度来看,你的申请目前正在说“我是AETitle”,而不是“我想和AETitle交谈”,因为服务器没有识别出被叫AE标题。

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

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

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