Format the output of the data set printingΒΆ

This example illustrates how to print the data set in your own format.

Out:

 Image Type = ['DERIVED', 'SECONDARY', 'OTHER']
 Instance Creation Date = '20040826'
 Instance Creation Time = '185434'
 Instance Creator UID = '1.3.6.1.4.1.5962.3'
 SOP Class UID = '1.2.840.10008.5.1.4.1.1.4'
 SOP Instance UID = '1.3.6.1.4.1.5962.1.1.4.1.1.20040826185059.5457'
 Study Date = '20040826'
 Series Date = ''
 Acquisition Date = ''
 Study Time = '185059'
 Series Time = ''
 Acquisition Time = ''
 Accession Number = ''
 Modality = 'MR'
 Manufacturer = 'TOSHIBA_MEC'
 Institution Name = 'TOSHIBA'
 Referring Physician's Name = ''
 Timezone Offset From UTC = '-0400'
 Station Name = '000000000'
 Name of Physician(s) Reading Study = '----'
 Operators' Name = '----'
 Manufacturer's Model Name = 'MRT50H1'
 Patient's Name = 'CompressedSamples^MR1'
 Patient ID = '4MR1'
 Patient's Birth Date = ''
 Patient's Sex = 'F'
 Patient's Size = ''
 Patient's Weight = "80.0000"
 Contrast/Bolus Agent = ''
 Scanning Sequence = 'SE'
 Sequence Variant = 'NONE'
 Scan Options = ''
 MR Acquisition Type = '3D'
 Slice Thickness = "0.8000"
 Repetition Time = "4000.0000"
 Echo Time = "240.0000"
 Number of Averages = "1.0000"
 Imaging Frequency = "63.92433900"
 Imaged Nucleus = 'H'
 Echo Number(s) = "1"
 Echo Train Length = ''
 Device Serial Number = '-0000200'
 Software Version(s) = 'V3.51*P25'
 Flip Angle = "90"
 Patient Position = 'HFS'
 Study Instance UID = '1.3.6.1.4.1.5962.1.2.4.20040826185059.5457'
 Series Instance UID = '1.3.6.1.4.1.5962.1.3.4.1.20040826185059.5457'
 Study ID = '4MR1'
 Series Number = "1"
 Acquisition Number = "0"
 Instance Number = "1"
 Image Position (Patient) = ['-83.9063', '-91.2000', '6.6406']
 Image Orientation (Patient) = ['1.0000', '0.0000', '0.0000', '0.0000', '1.0000',...
 Frame of Reference UID = '1.3.6.1.4.1.5962.1.4.4.1.20040826185059.5457'
 Laterality = ''
 Position Reference Indicator = ''
 Slice Location = "0.0000"
 Image Comments = 'Uncompressed'
 Samples per Pixel = 1
 Photometric Interpretation = 'MONOCHROME2'
 Rows = 64
 Columns = 64
 Pixel Spacing = ['0.3125', '0.3125']
 Bits Allocated = 16
 Bits Stored = 16
 High Bit = 15
 Pixel Representation = 1
 Smallest Image Pixel Value = 0
 Largest Image Pixel Value = 4000
 Window Center = "600"
 Window Width = "1600"
<item not printed -- in the "don't print" list>
 Data Set Trailing Padding = b'\n\x00\xfe\x00\x04\x00\x01\x00\x00\x00\x00\x00\x...

# authors : Guillaume Lemaitre <g.lemaitre58@gmail.com>
# license : MIT

from __future__ import print_function

import pydicom
from pydicom.data import get_testdata_files

print(__doc__)


def myprint(dataset, indent=0):
    """Go through all items in the dataset and print them with custom format

    Modelled after Dataset._pretty_str()
    """
    dont_print = ['Pixel Data', 'File Meta Information Version']

    indent_string = "   " * indent
    next_indent_string = "   " * (indent + 1)

    for data_element in dataset:
        if data_element.VR == "SQ":   # a sequence
            print(indent_string, data_element.name)
            for sequence_item in data_element.value:
                myprint(sequence_item, indent + 1)
                print(next_indent_string + "---------")
        else:
            if data_element.name in dont_print:
                print("""<item not printed -- in the "don't print" list>""")
            else:
                repr_value = repr(data_element.value)
                if len(repr_value) > 50:
                    repr_value = repr_value[:50] + "..."
                print("{0:s} {1:s} = {2:s}".format(indent_string,
                                                   data_element.name,
                                                   repr_value))


filename = get_testdata_files('MR_small.dcm')[0]
ds = pydicom.dcmread(filename)

myprint(ds)

Total running time of the script: ( 0 minutes 0.041 seconds)

Gallery generated by Sphinx-Gallery