.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/metadata_processing/plot_anonymize.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_metadata_processing_plot_anonymize.py: ==================== Anonymize DICOM data ==================== This example is a starting point to anonymize DICOM data. It shows how to read data and replace tags: person names, patient id, optionally remove curves and private tags, and write the results in a new file. .. GENERATED FROM PYTHON SOURCE LINES 12-24 .. code-block:: Python # authors : Guillaume Lemaitre # license : MIT import tempfile import pydicom from pydicom.data import get_testdata_file print(__doc__) .. GENERATED FROM PYTHON SOURCE LINES 25-27 Anonymize a single file ############################################################################## .. GENERATED FROM PYTHON SOURCE LINES 27-36 .. code-block:: Python filename = get_testdata_file('MR_small.dcm') dataset = pydicom.dcmread(filename) data_elements = ['PatientID', 'PatientBirthDate'] for de in data_elements: print(dataset.data_element(de)) .. rst-class:: sphx-glr-script-out .. code-block:: none (0010, 0020) Patient ID LO: '4MR1' (0010, 0030) Patient's Birth Date DA: '' .. GENERATED FROM PYTHON SOURCE LINES 37-40 We can define a callback function to find all tags corresponding to a person names inside the dataset. We can also define a callback function to remove curves tags. .. GENERATED FROM PYTHON SOURCE LINES 40-52 .. code-block:: Python def person_names_callback(dataset, data_element): if data_element.VR == "PN": data_element.value = "anonymous" def curves_callback(dataset, data_element): if data_element.tag.group & 0xFF00 == 0x5000: del dataset[data_element.tag] .. GENERATED FROM PYTHON SOURCE LINES 53-55 We can use the different callback function to iterate through the dataset but also some other tags such that patient ID, etc. .. GENERATED FROM PYTHON SOURCE LINES 55-60 .. code-block:: Python dataset.PatientID = "id" dataset.walk(person_names_callback) dataset.walk(curves_callback) .. GENERATED FROM PYTHON SOURCE LINES 61-62 pydicom allows to remove private tags using ``remove_private_tags`` method .. GENERATED FROM PYTHON SOURCE LINES 62-65 .. code-block:: Python dataset.remove_private_tags() .. GENERATED FROM PYTHON SOURCE LINES 66-68 Data elements of type 3 (optional) can be easily deleted using ``del`` or ``delattr``. .. GENERATED FROM PYTHON SOURCE LINES 68-75 .. code-block:: Python if 'OtherPatientIDs' in dataset: delattr(dataset, 'OtherPatientIDs') if 'OtherPatientIDsSequence' in dataset: del dataset.OtherPatientIDsSequence .. GENERATED FROM PYTHON SOURCE LINES 76-78 For data elements of type 2, this is possible to blank it by assigning a blank string. .. GENERATED FROM PYTHON SOURCE LINES 78-83 .. code-block:: Python tag = 'PatientBirthDate' if tag in dataset: dataset.data_element(tag).value = '19000101' .. GENERATED FROM PYTHON SOURCE LINES 84-85 Finally, this is possible to store the image .. GENERATED FROM PYTHON SOURCE LINES 85-93 .. code-block:: Python data_elements = ['PatientID', 'PatientBirthDate'] for de in data_elements: print(dataset.data_element(de)) output_filename = tempfile.NamedTemporaryFile().name dataset.save_as(output_filename) .. rst-class:: sphx-glr-script-out .. code-block:: none (0010, 0020) Patient ID LO: 'id' (0010, 0030) Patient's Birth Date DA: '19000101' .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.009 seconds) .. _sphx_glr_download_auto_examples_metadata_processing_plot_anonymize.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_anonymize.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_anonymize.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_