Skip to content

Commit

Permalink
Update patients_database.py
Browse files Browse the repository at this point in the history
  • Loading branch information
MaxenceLarose committed Dec 27, 2023
1 parent 4275996 commit 339c64e
Showing 1 changed file with 42 additions and 37 deletions.
79 changes: 42 additions & 37 deletions delia/databases/patients_database.py
Original file line number Diff line number Diff line change
Expand Up @@ -275,46 +275,49 @@ def create(
patient_path = patient_dataset.patient_path

if shallow_hierarchy is True:
patient_group = file
patient_group = file
else:
patient_group = file.create_group(name=patient_id)
patient_group = file.create_group(name=patient_id)

for image_idx, patient_image_data in enumerate(patient_dataset.data):

if shallow_hierarchy is True:
series_group = patient_group
image_name = os.path.basename(os.path.normpath(patient_path))
series_group = patient_group
image_name = os.path.basename(os.path.normpath(patient_path))
else:
series_group = patient_group.create_group(name=str(image_idx))
image_name = self.IMAGE
series_group = patient_group.create_group(name=str(image_idx))
image_name = self.IMAGE

self._add_dicom_attributes_to_hdf5_group(
patient_image_data, series_group, tags_to_use_as_attributes
)
self._add_dicom_attributes_to_hdf5_group(
patient_image_data, series_group, tags_to_use_as_attributes
)

if add_sitk_image_metadata_as_attributes:
self._add_sitk_image_attributes_to_hdf5_group(patient_image_data, series_group)
if add_sitk_image_metadata_as_attributes:
self._add_sitk_image_attributes_to_hdf5_group(patient_image_data, series_group)

series_group.create_dataset(
name=self.DICOM_HEADER,
data=json.dumps(patient_image_data.image.dicom_header.to_json_dict())
)
series_group.create_dataset(
name=self.DICOM_HEADER,
data=json.dumps(patient_image_data.image.dicom_header.to_json_dict())
)

if transpose is True:
image_array = self._transpose(sitk.GetArrayFromImage(patient_image_data.image.simple_itk_image))
image_array = self._transpose(sitk.GetArrayFromImage(patient_image_data.image.simple_itk_image))
else:
image_array = sitk.GetArrayFromImage(patient_image_data.image.simple_itk_image)
image_array = sitk.GetArrayFromImage(patient_image_data.image.simple_itk_image)

data_set = series_group.create_dataset(
name=image_name,
data=self._transpose(image_array)
)

if shallow_hierarchy is True:
self._add_dicom_attributes_to_hdf5_group(
patient_image_data, data_set, tags_to_use_as_attributes
)
if add_sitk_image_metadata_as_attributes:
self._add_sitk_image_attributes_to_hdf5_group(patient_image_data, data_set)
self._add_dicom_attributes_to_hdf5_group(
patient_image_data,
data_set,
tags_to_use_as_attributes
)
if add_sitk_image_metadata_as_attributes:
self._add_sitk_image_attributes_to_hdf5_group(patient_image_data, data_set)

if patient_image_data.segmentations:
for segmentation_idx, segmentation in enumerate(patient_image_data.segmentations):
Expand All @@ -323,7 +326,9 @@ def create(

for organ, simple_itk_label_map in segmentation.simple_itk_label_maps.items():
if transpose is True:
numpy_array_label_map = self._transpose(sitk.GetArrayFromImage(simple_itk_label_map))
numpy_array_label_map = self._transpose(
sitk.GetArrayFromImage(simple_itk_label_map)
)
else:
numpy_array_label_map = sitk.GetArrayFromImage(simple_itk_label_map)

Expand All @@ -336,21 +341,21 @@ def create(

for idx, transform in enumerate(patient_dataset.transforms_history.history):
if shallow_hierarchy is True:
data_set.attrs.create(
name=f"{self.TRANSFORMS}_{idx}",
data=json.dumps(
obj=transform,
default=patient_dataset.transforms_history.serialize
)
)
data_set.attrs.create(
name=f"{self.TRANSFORMS}_{idx}",
data=json.dumps(
obj=transform,
default=patient_dataset.transforms_history.serialize
)
)
else:
patient_group.attrs.create(
name=f"{self.TRANSFORMS}_{idx}",
data=json.dumps(
obj=transform,
default=patient_dataset.transforms_history.serialize
)
)
patient_group.attrs.create(
name=f"{self.TRANSFORMS}_{idx}",
data=json.dumps(
obj=transform,
default=patient_dataset.transforms_history.serialize
)
)

_logger.info(f"Progress : {patient_idx + 1}/{number_of_patients} patients added to database.")

Expand Down

0 comments on commit 339c64e

Please sign in to comment.