def create_data_element(dicom_dataset): """Return a ``gdcm.DataElement`` for the *Pixel Data*. Parameters ---------- dicom_dataset : dataset.Dataset The :class:`~pydicom.dataset.Dataset` containing the *Pixel Data*. Returns ------- gdcm.DataElement The converted *Pixel Data* element. """ data_element = gdcm.DataElement(gdcm.Tag(0x7fe0, 0x0010)) if dicom_dataset.file_meta.TransferSyntaxUID.is_compressed: if getattr(dicom_dataset, 'NumberOfFrames', 1) > 1: pixel_data_sequence = pydicom.encaps.decode_data_sequence( dicom_dataset.PixelData) else: pixel_data_sequence = [ pydicom.encaps.defragment_data(dicom_dataset.PixelData) ] fragments = gdcm.SequenceOfFragments.New() for pixel_data in pixel_data_sequence: fragment = gdcm.Fragment() fragment.SetByteStringValue(pixel_data) fragments.AddFragment(fragment) data_element.SetValue(fragments.__ref__()) else: data_element.SetByteStringValue(dicom_dataset.PixelData) return data_element
def create_data_element(dicom_dataset): """Create a gdcm.DataElement containing PixelData from a FileDataset Parameters ---------- dicom_dataset : FileDataset Returns ------- gdcm.DataElement Converted PixelData element """ data_element = gdcm.DataElement(gdcm.Tag(0x7fe0, 0x0010)) if dicom_dataset.file_meta.TransferSyntaxUID.is_compressed: if getattr(dicom_dataset, 'NumberOfFrames', 1) > 1: pixel_data_sequence = pydicom.encaps.decode_data_sequence( dicom_dataset.PixelData) else: pixel_data_sequence = [ pydicom.encaps.defragment_data(dicom_dataset.PixelData) ] fragments = gdcm.SequenceOfFragments.New() for pixel_data in pixel_data_sequence: fragment = gdcm.Fragment() fragment.SetByteStringValue(pixel_data) fragments.AddFragment(fragment) data_element.SetValue(fragments.__ref__()) else: data_element.SetByteStringValue(dicom_dataset.PixelData) return data_element
def create_data_element(ds: "Dataset") -> "DataElement": """Return a ``gdcm.DataElement`` for the *Pixel Data*. Parameters ---------- ds : dataset.Dataset The :class:`~pydicom.dataset.Dataset` containing the *Pixel Data*. Returns ------- gdcm.DataElement The converted *Pixel Data* element. """ file_meta: "FileMetaDataset" = ds.file_meta # type: ignore[has-type] tsyntax = cast(UID, file_meta.TransferSyntaxUID) data_element = gdcm.DataElement(gdcm.Tag(0x7fe0, 0x0010)) if tsyntax.is_compressed: if getattr(ds, 'NumberOfFrames', 1) > 1: pixel_data_sequence = ( pydicom.encaps.decode_data_sequence(ds.PixelData) ) else: pixel_data_sequence = [ pydicom.encaps.defragment_data(ds.PixelData) ] fragments = gdcm.SequenceOfFragments.New() for pixel_data in pixel_data_sequence: fragment = gdcm.Fragment() fragment.SetByteStringValue(pixel_data) fragments.AddFragment(fragment) data_element.SetValue(fragments.__ref__()) else: data_element.SetByteStringValue(ds.PixelData) return data_element