我尝试使用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标题的正确方法,如果不是,那么是什么?
答案 0 :(得分:4)
您当前正在定义本地应用程序实体,即您自己的具有AE标题“AETitle”的python代码。
从基本的角度来看,你的申请目前正在说“我是AETitle”,而不是“我想和AETitle交谈”,因为服务器没有识别出被叫AE标题。
您必须在关联方法调用中添加被调用的AE标题作为第三个参数。
assoc = ae.associate(serverIP, port, "AEtitle")
否则pynetdicom3将对被调用的AE标题使用某种内部默认值或空值。