# pydicom.dicomdir.DicomDir

class `pydicom.dicomdir.``DicomDir`(filename_or_obj, dataset, preamble=None, file_meta=None, is_implicit_VR=True, is_little_endian=True)

  Hold a DICOMDIR dataset read from file.

  Derived from `FileDataset`, but additional methods are available, specific to the Directory structure

  `__init__`(filename_or_obj, dataset, preamble=None, file_meta=None, is_implicit_VR=True, is_little_endian=True)

    Initialize a DICOMDIR dataset read from a DICOM file.

    Carries forward all the initialization from `FileDataset`

    Parameters:

    - filename_or_obj (str or None) – Full path and filename to the file of `None` if `io.BytesIO`.
    - dataset (dataset.Dataset) – Some form of dictionary, usually a `FileDataset` from `dcmread()`.
    - preamble (bytes) – The 128-byte DICOM preamble.
    - file_meta (dataset.Dataset) – The file meta `Dataset`, such as the one returned by `read_file_meta_info()`, or an empty `Dataset` if no file meta information is in the file.
    - is_implicit_VR (bool) – `True` if implicit VR transfer syntax used (default); `False` if explicit VR.
    - is_little_endian (bool) – `True` if little endian transfer syntax used (default); `False` if big endian.

    Raises: | `InvalidDicomError` – If the file transfer syntax is not Little Endian Explicit and `enforce_valid_values` is `True`.

  Methods

  `__init__`(filename_or_obj, dataset[, …]) | Initialize a DICOMDIR dataset read from a DICOM file.
  `add`(data_element) | Add an element to the `Dataset`.
  `add_new`(tag, VR, value) | Create a new element and add it to the `Dataset`.
  `clear`() | Delete all the elements from the `Dataset`.
  `convert_pixel_data`([handler_name]) | Convert pixel data to a `numpy.ndarray` internally.
  `copy`() |
  `data_element`(name) | Return the element corresponding to the element keyword name.
  `decode`() | Apply character set decoding to the elements in the `Dataset`.
  `decompress`([handler_name]) | Decompresses Pixel Data and modifies the `Dataset` in-place.
  `dir`(*filters) | Return an alphabetical list of element keywords in the `Dataset`.
  `elements`() | Yield the top-level elements of the `Dataset`.
  `ensure_file_meta`() | Create an empty `Dataset.file_meta` if none exists.
  `fix_meta_info`([enforce_standard]) | Ensure the file meta info exists and has the correct values for transfer syntax and media storage UIDs.
  `formatted_lines`([element_format, …]) | Iterate through the `Dataset` yielding formatted `str` for each element.
  `from_json`(json_dataset[, bulk_data_uri_handler]) | Add elements to the `Dataset` from DICOM JSON format.
  `fromkeys` | Create a new dictionary with keys from iterable and values set to value.
  `get`(key[, default]) | Simulate `dict.get()` to handle element tags and keywords.
  `get_item`(key) | Return the raw data element if possible.
  `get_private_item`(group, element_offset, …) | Return the data element for the given private tag group.
  `group_dataset`(group) | Return a `Dataset` containing only elements of a certain group.
  `items`() | Return the `Dataset` items to simulate `dict.items()`.
  `iterall`() | Iterate through the `Dataset`, yielding all the elements.
  `keys`() | Return the `Dataset` keys to simulate `dict.keys()`.
  `overlay_array`(group) | Return the Overlay Data in group as a `numpy.ndarray`.
  `parse_records`() | Build the hierarchy of given directory records, and structure into Patient, Studies, Series, Images hierarchy.
  `pop`(key, *args) | Emulate `dict.pop()` with support for tags and keywords.
  `popitem`() | Remove and return a (key, value) pair as a 2-tuple.
  `private_block`(group, private_creator[, create]) | Return the block for the given tag group and private_creator.
  `private_creators`(group) | Return a list of private creator names in the given group.
  `remove_private_tags`() | Remove all private elements from the `Dataset`.
  `save_as`(filename[, write_like_original]) | Write the `Dataset` to filename.
  `set_original_encoding`(is_implicit_vr, …) | Set the values for the original transfer syntax and encoding.
  `setdefault`(key[, default]) | Emulate `dict.setdefault()` with support for tags and keywords.
  `to_json`([bulk_data_threshold, …]) | Return a JSON representation of the `Dataset`.
  `to_json_dict`([bulk_data_threshold, …]) | Return a dictionary representation of the `Dataset` conforming to the DICOM JSON Model as described in the DICOM Standard, Part 18, Annex F.
  `top`() | Return a `str` representation of the top level elements.
  `trait_names`() | Return a `list` of valid names for auto-completion code.
  `update`(dictionary) | Extend `dict.update()` to handle DICOM tags and keywords.
  `values`() | Return the `Dataset` values to simulate `dict.values()`.
  `walk`(callback[, recursive]) | Iterate through the `Dataset's` elements and run callback on each.

  Attributes

  `default_element_format` |
  `default_sequence_element_format` |
  `indent_chars` |
  `is_original_encoding` | Return `True` if the encoding to be used for writing is set and is the same as that used to originally encode the `Dataset`.
  `pixel_array` | Return the pixel data as a `numpy.ndarray`.

  `parse_records`()

    Build the hierarchy of given directory records, and structure into Patient, Studies, Series, Images hierarchy.

    This is intended for initial read of file only, it will not reorganize correctly if records are changed.