Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def to_primitive(self):
"""Return an A-ABORT or A-P-ABORT primitive from the current PDU.
Returns
-------
pdu_primitives.A_ABORT or pdu_primitives.A_P_ABORT
The primitive representation of the current PDU.
"""
from pynetdicom.pdu_primitives import A_ABORT, A_P_ABORT
# User initiated abort
if self.source == 0x00:
primitive = A_ABORT()
primitive.abort_source = self.source
# User provider primitive abort
elif self.source == 0x02:
primitive = A_P_ABORT()
primitive.provider_reason = self.reason_diagnostic
return primitive
- ``0x00`` - the DUL service user
- ``0x02`` - the DUL service provider
Raises
------
ValueError
If the `source` value is invalid.
"""
if source not in [0x00, 0x02]:
raise ValueError("Invalid 'source' parameter value")
# The following parameters must be set for an A-ABORT primitive
# (* sent in A-ABORT PDU):
# Abort Source*
# Provider Reason* (not significant with source 0x00)
primitive = A_ABORT()
primitive.abort_source = source
self.dul.send_pdu(primitive)
self.assoc.is_aborted = True
self.assoc.is_established = False
def from_primitive(self, primitive):
"""Setup the current PDU using an A-ABORT or A-P-ABORT primitive.
Parameters
----------
primitive : pdu_primitives.A_ABORT or pdu_primitives.A_P_ABORT
The primitive to use to set the current PDU field values.
"""
from pynetdicom.pdu_primitives import A_ABORT, A_P_ABORT
# User initiated abort
if primitive.__class__ == A_ABORT:
# The reason field shall be 0x00 when the source is DUL
# service-user
self.reason_diagnostic = 0
self.source = primitive.abort_source
# User provider primitive abort
elif primitive.__class__ == A_P_ABORT:
self.reason_diagnostic = primitive.provider_reason
self.source = 2