Open brendan-whelan-seetreat opened 1 month ago
Thanks for reporting this @brendan-whelan-seetreat. Yeah think is definitely something we should resolve. @rnfinnegan and I have had a few discussions on how we could improve this function. One idea was to actually ignore the paired image or RTDOSE entirely, and just generate a structure mask which would cover the bounds of the structure at a predefined resolution (e.g. 1x1xSliceThickness but this could also be configurable)... Then you can just resample the resulting binary mask to the target space as needed (whether thats the image or dose space).
I think it would be good to keep the current function compatible with how it is currently used though, since most users probably just want to a binary mask that matches their image. But I will discuss with Rob to see if we can build in some flexibility and ensure a correct structure mask is returned including the use case you described.
Actually, the functionality is nearly already there with the spacing_override
- just that the default use will not detect any problems
In transform_point_set_from_dicom_struct, each contour slice is associated with some location in the input
dicom_image
using the sitk functionTransformPhysicalPointToIndex
.The issue arises if the z coordinates of the input sitk.Image are not well aligned with the contour z spacing. This happens commonly with an RT-STRUCT and an RT-DOSE file. I believe that
TransformPhysicalPointToIndex
will find the closest index. This index is not the same location as the contour z coordinate if the strucuture set and image have different z spacing, hence the returned structure will have incorrect z coordinates.Possible fixes