pynetdicom.pdu_items.TransferSyntaxSubItem

class pynetdicom.pdu_items.TransferSyntaxSubItem

A Transfer Syntax Sub-item.

A Transfer Syntax is a set of encoding rules able to unambiguously represent the data elements defined by one or more Abstract Syntaxes [1]. In particular, it allows communicating Application Entities to agree on the encoding techniques they are able to support (e.g. byte ordering, compression, etc).

item_length

The number of bytes from the first byte following the Item Length field to the last byte of the Item.

Type:int
item_type

The Item Type field value (0x40).

Type:int
transfer_syntax

The Transfer Syntax Name field value.

Type:pydicom.uid.UID or None

Notes

A Transfer Syntax Sub-item requires the following parameters:

  • Item type (1, fixed value, 0x40)
  • Item length (1)
  • Transfer syntax name (1 or more)

Transfer Syntax Names

Transfer Syntax Names are OSI Object Identifiers in a numeric form as defined by ISO 8824 [2]. They may be either DICOM registered or privately defined. They’re encoded as an ISO 646:1990-Basic G0 Set Numeric String of bytes (characters 0-9), separated by the character . (0x2e) [3] and shall not exceed 64 total characters. No separator or padding shall be present before the first digit of the first component or after the last digit of the last component.

Encoding

When encoded, a Transfer Syntax Item has the following structure, taken from Table 9-15 [4] (offsets shown with Python indexing). Items are always encoded using Big Endian [5]. Encoding of the Transfer Syntax Name parameter follows the rules in Part 8, Annex F.

Offset Length Description
0 1 Item type
1 1 Reserved
2 2 Item length
4 Variable Transfer syntax name

References

[1]DICOM Standard, Part 8, Annex B
[2]ISO/IEC 8824-1:2015
[3]DICOM Standard, Part 8, Annex F
[4]DICOM Standard, Part 8, Section 9.3.2.2.2
[5]DICOM Standard, Part 8, Section 9.3.1
__init__()

Initialise a new Abstract Syntax Item.

Methods

__init__() Initialise a new Abstract Syntax Item.
decode(bytestream) Decode bytestream and use the result to set the field values of the PDU item.
encode() Return the encoded PDU as bytes.

Attributes

item_length Return the item’s Item Length field value as an int.
item_type Return the item’s Item Type field value as an int.
transfer_syntax Return the item’s Transfer Syntax Name field value.
transfer_syntax_name Return the item’s Transfer Syntax Name field value.
decode(bytestream)

Decode bytestream and use the result to set the field values of the PDU item.

Parameters:bytestream (bytes) – The PDU data to be decoded.
encode()

Return the encoded PDU as bytes.

Returns:The encoded PDU.
Return type:bytes
item_length

Return the item’s Item Length field value as an int.

item_type

Return the item’s Item Type field value as an int.

transfer_syntax

Return the item’s Transfer Syntax Name field value.

transfer_syntax_name

Return the item’s Transfer Syntax Name field value.