在关联突然中止时获取StudyInstanceUID

2024-09-30 18:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个DICOM SCP商店的示例。我使用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

Tags: debugselfeventishandlersmsgloggerevt