diff --git a/rt_utils/rtstruct.py b/rt_utils/rtstruct.py index 3e22ccc..58673c5 100644 --- a/rt_utils/rtstruct.py +++ b/rt_utils/rtstruct.py @@ -104,9 +104,10 @@ def get_roi_mask_by_name(self, name) -> np.ndarray: """ Returns the 3D binary mask of the ROI with the given input name """ + name = name.casefold() if type(name) is str else name for structure_roi in self.ds.StructureSetROISequence: - if structure_roi.ROIName == name: + if structure_roi.ROIName.casefold() == name: contour_sequence = ds_helper.get_contour_sequence_by_roi_number( self.ds, structure_roi.ROINumber ) diff --git a/tests/test_rtstruct_builder.py b/tests/test_rtstruct_builder.py index c5947cf..34ba5b9 100644 --- a/tests/test_rtstruct_builder.py +++ b/tests/test_rtstruct_builder.py @@ -72,6 +72,25 @@ def test_add_valid_roi(new_rtstruct: RTStruct): assert new_rtstruct.get_roi_names() == [NAME] +def test_get_roi_by_name_case_insensitive(new_rtstruct: RTStruct): + NAME = "Test ROI" + mask = get_empty_mask(new_rtstruct) + mask[50:100, 50:100, 0] = 1 + new_rtstruct.add_roi(mask, name=NAME) + + assert type(new_rtstruct.get_roi_mask_by_name(name=NAME.upper())) is np.ndarray + + +def test_get_invalid_roi_by_none_name(new_rtstruct: RTStruct): + NAME = "Test ROI" + mask = get_empty_mask(new_rtstruct) + mask[50:100, 50:100, 0] = 1 + new_rtstruct.add_roi(mask, name=NAME) + + with pytest.raises(RTStruct.ROIException): + new_rtstruct.get_roi_mask_by_name(name=None) + + def test_get_invalid_roi_mask_by_name(new_rtstruct: RTStruct): assert new_rtstruct.get_roi_names() == [] with pytest.raises(RTStruct.ROIException):