我正在编写一个示例 DICOM SCP Store。我使用 SCU Store 命令模拟了许多 DCM 文件夹的传输(从连接到我的 LAN 的另一台计算机)。同时模拟3个传输。由于未知原因,其中一项传输被中止。我试图跟踪中止的关联以取回相关的 StudyInstanceUID。这是我的SCP:
from pynetdicom import AE, debug_logger, AllStoragePresentationContexts, evt
debug_logger()
def handle_store(event):
"""Handle EVT_C_STORE events."""
ds = event.dataset
ds.file_meta = event.file_meta
return 0x0000
handlers = [(evt.EVT_C_STORE, handle_store)]
ae = AE()
# Unlimited PDU size
ae.maximum_pdu_size = 0
#ae.add_supported_context
ae.supported_contexts = AllStoragePresentationContexts
ae.start_server(('', 11112), block=True, evt_handlers=handlers)
我在 association.py 中找到了相关消息,但有机会获得中止的 dataset.StudyInstanceUID :
# Check for abort
if self.acse.is_aborted():
msg = "Association Aborted"
if self.acse.is_aborted('a-p-abort'):
msg += " (A-P-ABORT)"
LOGGER.info(msg)
self.is_aborted = True
self.is_established = False
evt.trigger(self, evt.EVT_ABORTED, {})
self.kill()
return