获得 called_/calling_ae_title
Get called_/calling_ae_title
我正在实施 SCP,但我不确定如何正确获得 calling_/called_ae_title。
我想在服务器端的连接(客户端发送 DICOM 图像)期间获得 called_/calling_ae_title。我不强制执行 called_ae_title(ae.require_called_aet = False),而是在 SCP 中设置默认 AE 标题。我想将 called_/calling_ae_title 用于审计目的。
因此,我从 pytnetdicom SCP 的调试日志中可以看出,此信息在 A-ASSOCIATE-RQ PDU
中可用
D: Request Parameters:
D: ======================= INCOMING A-ASSOCIATE-RQ PDU ========================
D: Their Implementation Class UID: 1.2.276.0.7230010.3.0.3.6.1
D: Their Implementation Version Name: OSIRIX_361
D: Application Context Name: 1.2.840.10008.3.1.1.1
D: Calling Application Name: NO_CLIENT
D: Called Application Name: PYDS
D: Their Max PDU Receive Size: 16384
D: Presentation Context:
我在服务器端试过了。
from pynetdicom.pdu import (A_ASSOCIATE_RQ, A_ASSOCIATE_AC)
...
...
pdu = A_ASSOCIATE_RQ()
print(type(pdu.calling_ae_title))
print(pdu.calling_ae_title)
我的输出是在连接期间:
<class 'bytes'>
b'Default '
我总是得到“默认”值而不是实际值。
我做错了什么?或者这是一个错误?当我调用它时,calling_ae_title 和 called_ae_title 都会产生相同的“默认”输出。
非常感谢!
当您创建新的 A_ASSOCIATE_RQ
实例时,您将获得其默认值(即 b'Default'
),因为它尚未在任何关联中使用。
如果您希望关联请求者使用实际的调用 AE 标题,则可以通过 Association.acceptor and Association.requestor 属性获得有关本地和对等方关联协商建议的信息:
from pynetdicom import AE, evt
from pynetdicom.sop_class import VerificationSOPClass
def handle_requests(event):
primitive = event.assoc.requestor.primitive
print(type(primitive), primitive.calling_ae_title)
ae = AE()
ae.add_supported_context(VerificationSOPClass)
ae.start_server(('', 11112), evt_handlers=[(evt.EVT_REQUESTED, handle_requests)])
这里的 primitive
是一个 A-ASSOCIATE primitive.
我正在实施 SCP,但我不确定如何正确获得 calling_/called_ae_title。 我想在服务器端的连接(客户端发送 DICOM 图像)期间获得 called_/calling_ae_title。我不强制执行 called_ae_title(ae.require_called_aet = False),而是在 SCP 中设置默认 AE 标题。我想将 called_/calling_ae_title 用于审计目的。 因此,我从 pytnetdicom SCP 的调试日志中可以看出,此信息在 A-ASSOCIATE-RQ PDU
中可用D: Request Parameters:
D: ======================= INCOMING A-ASSOCIATE-RQ PDU ========================
D: Their Implementation Class UID: 1.2.276.0.7230010.3.0.3.6.1
D: Their Implementation Version Name: OSIRIX_361
D: Application Context Name: 1.2.840.10008.3.1.1.1
D: Calling Application Name: NO_CLIENT
D: Called Application Name: PYDS
D: Their Max PDU Receive Size: 16384
D: Presentation Context:
我在服务器端试过了。
from pynetdicom.pdu import (A_ASSOCIATE_RQ, A_ASSOCIATE_AC)
...
...
pdu = A_ASSOCIATE_RQ()
print(type(pdu.calling_ae_title))
print(pdu.calling_ae_title)
我的输出是在连接期间:
<class 'bytes'>
b'Default '
我总是得到“默认”值而不是实际值。
我做错了什么?或者这是一个错误?当我调用它时,calling_ae_title 和 called_ae_title 都会产生相同的“默认”输出。 非常感谢!
当您创建新的 A_ASSOCIATE_RQ
实例时,您将获得其默认值(即 b'Default'
),因为它尚未在任何关联中使用。
如果您希望关联请求者使用实际的调用 AE 标题,则可以通过 Association.acceptor and Association.requestor 属性获得有关本地和对等方关联协商建议的信息:
from pynetdicom import AE, evt
from pynetdicom.sop_class import VerificationSOPClass
def handle_requests(event):
primitive = event.assoc.requestor.primitive
print(type(primitive), primitive.calling_ae_title)
ae = AE()
ae.add_supported_context(VerificationSOPClass)
ae.start_server(('', 11112), evt_handlers=[(evt.EVT_REQUESTED, handle_requests)])
这里的 primitive
是一个 A-ASSOCIATE primitive.