dicom_parser package

Submodules

dicom_parser.header module

Definition of the Header class, which extends the functionality of pydicom.

class dicom_parser.header.Header(raw, parser=<class 'dicom_parser.parser.Parser'>, sequence_detector=<class 'dicom_parser.utils.sequence_detector.sequence_detector.SequenceDetector'>)

Bases: object

Facilitates access to DICOM header information from pydicom’s FileDataset.

detect_sequence() → str

Returns the detected imaging sequence using the modality’s sequence identifying header information.

Returns

Imaging sequence name

Return type

str

get(tag_or_keyword, default=None, parsed: bool = True, missing_ok: bool = True)

Returns the value of a pydicom data element, selected by tag (tuple) or keyword (str). Input may also be a list of such identifiers, in which case a dictionary will be returned with the identifiers as keys and header information as values.

Parameters
  • tag_or_keyword (tuple or str, or list) – Tag or keyword representing the requested data element, or a list of such.

  • parsed (bool, optional) – Whether to return a parsed or raw value (the default is True, which will return the parsed value).

Returns

The requested data element value (or a dict for multiple values)

Return type

type

get_csa_element_by_keyword(keyword: str)

Returns the CSA header for Siemens scans.

get_element(tag_or_keyword) → pydicom.dataelem.DataElement

Returns a pydicom DataElement from the associated FileDataset either by tag (passed as a tuple) or a keyword (passed as a string). If none found or the tag or keyword are invalid, returns None.

Parameters

tag_or_keyword (tuple or str) – Tag or keyword representing the requested data element

Returns

The requested data element

Return type

DataElement

get_element_by_keyword(keyword: str) → pydicom.dataelem.DataElement

Returns a pydicom DataElement from the header (FileDataset isntance) by keyword.

Parameters

keyword (str) – The keyword representing the DICOM data element in pydicom

Returns

The requested data element

Return type

DataElement

get_element_by_tag(tag: tuple) → pydicom.dataelem.DataElement

Returns a pydicom DataElement from the header (FileDataset isntance) by tag.

Parameters

tag (tuple) – The DICOM tag of the desired data element

Returns

The requested data element

Return type

DataElement

get_parsed_value(tag_or_keyword)

Returns the parsed value of pydicom data element using the this class’s parser attribute. The data element may be represented by tag or by its pydicom keyword. If none is found will return None.

Parameters

tag_or_keyword (tuple or str) – Tag or keyword representing the requested data element

Returns

Parsed data element value

Return type

type

get_raw_value(tag_or_keyword)

Returns the raw value for the requested data element, as returned by pydicom. If none is found will return None.

Parameters

tag_or_keyword (tuple or str) – Tag or keyword representing the requested data element.

Returns

The raw value of the data element

Return type

type

sequence_identifiers = {'mr': ['ScanningSequence', 'SequenceVariant']}

dicom_parser.parser module

class dicom_parser.parser.Parser

Bases: object

CODE_STRINGS_DICT = {'(0008, 0060)': <enum 'Modality'>, '(0010, 0040)': <enum 'Sex'>, '(0018, 0020)': <enum 'ScanningSequence'>, '(0018, 0021)': <enum 'SequenceVariant'>, '(0018, 5100)': <enum 'PatientPosition'>}
N_IN_YEAR = {'D': 365.2422, 'M': 12, 'W': 52.1429, 'Y': 1}
PARSING_METHOD = {<ValueRepresentation.AGE_STRING: 'AS'>: 'parse_age_string', <ValueRepresentation.DATE: 'DA'>: 'parse_date', <ValueRepresentation.TIME: 'TM'>: 'parse_time', <ValueRepresentation.DATE_TIME: 'DT'>: 'parse_datetime', <ValueRepresentation.INTEGER_STRING: 'IS'>: 'parse_integer_string', <ValueRepresentation.DECIMAL_STRING: 'DS'>: 'parse_decimal_string', <ValueRepresentation.UNKNOWN: 'UN'>: 'parse_unknown', <ValueRepresentation.CODE_STRING: 'CS'>: 'parse_code_string'}
SINGLE_VALUE_CODE_STRINGS = ['(0010, 0040)', '(0018, 5100)', '(0008, 0060)']
parse(element: pydicom.dataelem.DataElement)

Tries to parse a pydicom DICOM data element using its value-representation (VR) attribute. If no parser method is registered for the VR under the PARSING_METHOD dictionary, will simply return the raw value.

Parameters

element (DataElement) – DICOM data element as represented by pydicom.

Returns

Parsed DICOM data element value.

Return type

type

parse_age_string(element: pydicom.dataelem.DataElement) → float

Parses Age String (AS) data elements into a float representation of the age in years.

Parameters

element (DataElement) – DICOM Age String (AS) data element.

Returns

The age in years.

Return type

float

parse_code_string(element: pydicom.dataelem.DataElement)

Parses Code String (CS) data elements to a more readable string or list of strings. This method relies on an Enum representation of the data element’s possible values to be registered in the Parser’s CODE_STRINGS_DICT by tag. If no Enum is registered, will return None.

Parameters

element (DataElement) – DICOM Code String (CS) data element.

Returns

Parsed value/s.

Return type

str or list

parse_date(element: pydicom.dataelem.DataElement) → None.datetime.date

Parses Date (DA) data elements to date objects.

Parameters

element (DataElement) – DICOM Date (DA) data element.

Returns

Native python date object.

Return type

datetime.date

parse_datetime(element: pydicom.dataelem.DataElement) → datetime.datetime

Parses Date Time (DT) data elements to datetime objects.

Parameters

element (DataElement) – DICOM Date Time (DT) data element.

Returns

Native python datetime object.

Return type

datetime.time

parse_decimal_string(element: pydicom.dataelem.DataElement)

Parses Decimal String (DS) data elements to floats. In case the Value Multiplicity (VM) is greater than one, returns a list of floats.

Parameters

element (DataElement) – DICOM Decimal String (DS) data element.

Returns

Data element value/s.

Return type

float or list

parse_integer_string(element: pydicom.dataelem.DataElement) → int

Parses DICOM Integer String (IS) data elements to integers.

Parameters

element (DataElement) – DICOM Integer String (IS) data element.

Returns

Data element value.

Return type

int

parse_siemens_gradient_direction(value: bytes) → list

Parses a SIEMENS MR image’s B-vector as represented in the private (0019, 100E) DiffusionGradientDirection DICOM tag.

Parameters

value (bytes) – SIEMENS private DiffusionGradientDirection data element.

Returns

Gradient directions (B-vector).

Return type

list

parse_siemens_slice_timing(value: bytes) → list

Parses a SIEMENS MR image’s slice timing as saved in the private (0019, 1029) MosaicRefAcqTimes tag to a list of floats representing slice times in milliseconds.

Parameters

value (bytes) – SIEMENS private MosaicRefAcqTimes data element.

Returns

Slice times in milliseconds.

Return type

list

parse_time(element: pydicom.dataelem.DataElement) → None.datetime.time

Parses Time (TM) data elements to time objects.

Parameters

element (DataElement) – DICOM Time (TM) data element.

Returns

Native python time object.

Return type

datetime.time

parse_unknown(element: pydicom.dataelem.DataElement)

Parses private tags and other Unknown (UN) data elememts.

Parameters

element (DataElement) – DICOM Unknown (UN) data element.

Module contents