Source code for ormir_mids.utils.OMidsMedVolume
from voxel import MedicalVolume as VoxelMedicalVolume
import copy
[docs]
def copy_headers(medical_volume_src, medical_volume_dest):
""" Copies the headers from one volume to another
Parameters:
medical_volume_src (MedicalVolume): the source volume
medical_volume_dest (MedicalVolume): the destination volume
Returns:
No return value
"""
for header in ['omids_header', 'meta_header', 'patient_header', 'extra_header']:
setattr(medical_volume_dest, header, copy.deepcopy(getattr(medical_volume_src, header, None)))
setattr(medical_volume_dest, 'bids_header', getattr(medical_volume_dest, 'omids_header')) # for compatibility
class OMidsMedVolume(VoxelMedicalVolume):
"""
A MedicalVolume with additional attributes for OMids.
This class is used to store the data and metadata of a medical volume in the OMids format.
It extends the MedicalVolume class from the voxel package.
"""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.omids_header = {}
self.patient_header = {}
self.extra_header = {}
self.meta_header = {}
self.bids_header = self.omids_header # For compatibility with BIDS
def _partial_clone(self, **kwargs):
clone = super()._partial_clone(**kwargs)
copy_headers(self, clone)
return clone
MedicalVolume = OMidsMedVolume