Presentation Context Negotiation#
Consider an acceptor that supports the following abstract syntax/transfer syntaxes:
Verification SOP Class
Implicit VR Little Endian
Explicit VR Little Endian
CT Image Storage
Implicit VR Little Endian
MR Image Storage
JPEG Baseline
And a requestor that proposes the following presentation contexts:
Context 1: Verification SOP Class
Implicit VR Little Endian
Explicit VR Little Endian
Explicit VR Big Endian
JPEG Baseline
Context 3: CT Image Storage
Implicit VR Little Endian
Explicit VR Little Endian
Explicit VR Big Endian
Context 5: MR Image Storage
Implicit VR Little Endian
Explicit VR Little Endian
Context 7: CR Image Storage
Implicit VR Little Endian
Explicit VR Little Endian
Then the outcome of the presentation context negotiation will be:
Context 1: Accepted (with the acceptor choosing either Implicit or Explicit VR Little Endian to use as the transfer syntax)
Context 3: Accepted with Implicit VR Little Endian transfer syntax
Context 5: Rejected (transfer syntax not supported) because the acceptor and requestor have no matching transfer syntax for the context.
Context 7: Rejected (abstract syntax not supported) because the acceptor doesn’t support the CR Image Storage abstract syntax.
Contexts 1 and 3 have been accepted and can be used for sending data while 5 and 7 have been rejected and are not available.
Implementation Note#
When acting as an acceptor, pynetdicom will choose the first matching
transfer syntax in PresentationContext.transfer_syntax
. For example, if
the requestor proposes the following:
Abstract Syntax: Verification SOP Class Transfer Syntax(es): =Implicit VR Little Endian =Explicit VR Little Endian =Explicit VR Big Endian
While the acceptor supports:
Abstract Syntax: Verification SOP Class Transfer Syntax(es): =Explicit VR Little Endian =Implicit VR Little Endian =Explicit VR Big Endian
Then the accepted transfer syntax will be Explicit VR Little Endian.