.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/input_output/plot_write_dicom.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_input_output_plot_write_dicom.py: ================ Write DICOM data ================ This example shows how to write a DICOM file from scratch using pydicom. This example does not produce a DICOM standards compliant file as written, you will have to change UIDs to valid values and add all required DICOM data elements. .. GENERATED FROM PYTHON SOURCE LINES 11-78 .. rst-class:: sphx-glr-script-out .. code-block:: none Setting file meta information... Setting dataset values... Writing test file /tmp/tmp1g3qryii.dcm File saved. Writing test file as Big Endian Explicit VR /tmp/tmp3nnbacxw.dcm Load file /tmp/tmp1g3qryii.dcm ... Dataset.file_meta ------------------------------- (0002, 0002) Media Storage SOP Class UID UI: CT Image Storage (0002, 0003) Media Storage SOP Instance UID UI: 1.2.3 (0002, 0012) Implementation Class UID UI: 1.2.3.4 ------------------------------------------------- (0008, 0023) Content Date DA: '20231203' (0008, 0033) Content Time TM: '220438.044135' (0010, 0010) Patient's Name PN: 'Test^Firstname' (0010, 0020) Patient ID LO: '123456' Remove file /tmp/tmp1g3qryii.dcm ... Load file /tmp/tmp3nnbacxw.dcm ... Dataset.file_meta ------------------------------- (0002, 0002) Media Storage SOP Class UID UI: CT Image Storage (0002, 0003) Media Storage SOP Instance UID UI: 1.2.3 (0002, 0010) Transfer Syntax UID UI: Explicit VR Big Endian (0002, 0012) Implementation Class UID UI: 1.2.3.4 ------------------------------------------------- (0008, 0023) Content Date DA: '20231203' (0008, 0033) Content Time TM: '220438.044135' (0010, 0010) Patient's Name PN: 'Test^Firstname' (0010, 0020) Patient ID LO: '123456' Remove file /tmp/tmp3nnbacxw.dcm ... | .. code-block:: Python # authors : Guillaume Lemaitre # license : MIT import datetime import os import tempfile import pydicom from pydicom.dataset import FileDataset, FileMetaDataset from pydicom.uid import UID # Create some temporary filenames suffix = '.dcm' filename_little_endian = tempfile.NamedTemporaryFile(suffix=suffix).name filename_big_endian = tempfile.NamedTemporaryFile(suffix=suffix).name print("Setting file meta information...") # Populate required values for file meta information file_meta = FileMetaDataset() file_meta.MediaStorageSOPClassUID = UID('1.2.840.10008.5.1.4.1.1.2') file_meta.MediaStorageSOPInstanceUID = UID("1.2.3") file_meta.ImplementationClassUID = UID("1.2.3.4") print("Setting dataset values...") # Create the FileDataset instance (initially no data elements, but file_meta # supplied) ds = FileDataset(filename_little_endian, {}, file_meta=file_meta, preamble=b"\0" * 128) # Add the data elements -- not trying to set all required here. Check DICOM # standard ds.PatientName = "Test^Firstname" ds.PatientID = "123456" # Set the transfer syntax ds.is_little_endian = True ds.is_implicit_VR = True # Set creation date/time dt = datetime.datetime.now() ds.ContentDate = dt.strftime('%Y%m%d') timeStr = dt.strftime('%H%M%S.%f') # long format with micro seconds ds.ContentTime = timeStr print("Writing test file", filename_little_endian) ds.save_as(filename_little_endian) print("File saved.") # Write as a different transfer syntax XXX shouldn't need this but pydicom # 0.9.5 bug not recognizing transfer syntax ds.file_meta.TransferSyntaxUID = pydicom.uid.ExplicitVRBigEndian ds.is_little_endian = False ds.is_implicit_VR = False print("Writing test file as Big Endian Explicit VR", filename_big_endian) ds.save_as(filename_big_endian) # reopen the data just for checking for filename in (filename_little_endian, filename_big_endian): print('Load file {} ...'.format(filename)) ds = pydicom.dcmread(filename) print(ds) # remove the created file print('Remove file {} ...'.format(filename)) os.remove(filename) .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.006 seconds) .. _sphx_glr_download_auto_examples_input_output_plot_write_dicom.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_write_dicom.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_write_dicom.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_