pynetdicom.presentation.PresentationContext

class pynetdicom.presentation.PresentationContext[source]

A Presentation Context primitive.

Rules

  • Each Presentation Context (request) contains:

    • One context ID, an odd integer between 1 and 255.

    • One abstract syntax.

    • One or more transfer syntaxes.

  • Each Presentation Context (response) contains:

    • One context ID, corresponding to a Presentation Context received from the Requestor

    • A result, one of 0x00 (acceptance), 0x01 (user rejection), 0x02 (provider rejection), 0x03 (abstract syntax not supported) or 0x04 (transfer syntaxes not supported).

    • If the result is 0x00, then a transfer syntax.

    • If any other result, then a transfer syntax may or may not be present.

  • If the result is not 0x00 then the transfer syntax in the reply is not significant.

  • The same abstract syntax can be present in more than one Presententation Context.

  • Only one transfer syntax can be accepted per Presentation Context.

  • The Presentation Contexts may be sent by the Requestor in any order.

  • The Presentation Contexts may be sent by the Acceptor in any order.

SCP/SCU Role Selection Negotiation

  • If no role selection negotiation then the Requestor is SCU and the Acceptor is SCP

  • The association Acceptor cannot accept a role that has not been proposed (i.e. cannot return 1 when the proposed value is 0).

  • The association Requestor may be SCP only, SCU only or both SCU and SCP.

Requestor

Acceptor

Outcome

Notes

scu_role

scp_role

scu_role

scp_role

Req.

Acc.

N/A

N/A

N/A

N/A

SCU

SCP

Default

True

True

False

False

N/A

N/A

Rejected

True

SCP

SCU

True

False

SCU

SCP

Default

True

SCU/SCP

SCU/SCP

True

False

False

False

N/A

N/A

Rejected

True

SCU

SCP

Default

False

True

False

False

N/A

N/A

Rejected

True

SCP

SCU

False

False

False

False

N/A

N/A

Rejected

As can be seen from the above table there are four possible outcomes:

  • Requestor is SCU, Acceptor is SCP (default roles)

  • Requestor is SCP, Acceptor is SCU

  • Requestor and Acceptor are both SCU/SCP

  • Requestor and Acceptor are neither (context rejected)

result

If part of an A-ASSOCIATE (request) then None. If part of an A-ASSOCIATE (response) then one of 0x00, 0x01, 0x02, 0x03, 0x04.

Type:

int or None

References

__init__() None[source]

Create a new object.

Methods

__init__()

Create a new object.

add_transfer_syntax(syntax)

Append a transfer syntax to the presentation context.

Attributes

abstract_syntax

Get or set the context's Abstract Syntax as UID.

as_scp

Return True if can act as an SCP for the context.

as_scu

Return True if can act as an SCU for the context.

as_tuple

Return a namedtuple representation of the presentation context.

context_id

Return the context's ID parameter as an int.

scp_role

Get or set if a proposed SCP role will be accepted.

scu_role

Get or set if a proposed SCU role will be accepted.

status

Return a descriptive str of the context's Result.

transfer_syntax

Get or set the context's Transfer Syntaxes as a list.

property abstract_syntax: UID | None

Get or set the context’s Abstract Syntax as UID.

Parameters:

value (str or bytes or pydicom.uid.UID) – The abstract syntax UID.

add_transfer_syntax(syntax: None | str | bytes | UID) None[source]

Append a transfer syntax to the presentation context.

Parameters:

syntax (pydicom.uid.UID, bytes or str) – The transfer syntax to add to the presentation context.

property as_scp: bool | None

Return True if can act as an SCP for the context.

If True then the association Acceptor can act as SCP for the current context, otherwise it cannot. A non-None value is only available after association negotiation has been completed.

property as_scu: bool | None

Return True if can act as an SCU for the context.

If True then the association Acceptor can act as SCU for the current context, otherwise it cannot. A non-None value is only available after association negotiation has been completed.

property as_tuple: PresentationContextTuple

Return a namedtuple representation of the presentation context.

Intended to be used when the result is 0x00 (accepted) as only the first transfer syntax item is returned in the tuple.

Returns:

A representation of an accepted presentation context.

Return type:

PresentationContextTuple

property context_id: int | None

Return the context’s ID parameter as an int.

property scp_role: bool | None

Get or set if a proposed SCP role will be accepted.

Parameters:

val (bool or None) – If True then accept if the association Requestor proposes the SCP role for itself, False to reject the proposal. If None (default) then no SCP/SCU Role Selection reply will be sent. If either of scu_role or scp_role is None then both will assumed to be.

property scu_role: bool | None

Get or set if a proposed SCU role will be accepted.

Parameters:

val (bool or None) – If True then accept if the association Requestor proposes the SCU role for itself, False to reject the proposal. If None (default) then no SCP/SCU Role Selection reply will be sent. If either of scu_role or scp_role is None then both will assumed to be.

property status: str

Return a descriptive str of the context’s Result.

Returns:

The string representation of the negotiated result.

Return type:

str

property transfer_syntax: List[UID]

Get or set the context’s Transfer Syntaxes as a list.

Returns:

The context’s transfer syntaxes.

Return type:

list of pydicom.uid.UID