Help on customizing synchronization behavior for linked views of different volumes


When comparing two volumes of the same patient but different studies, it would be good to overlay the same portion together. Thus, I wondering how to customize the default behavior of scrolling, moving, scalling operations, such that they are not simple broad casting physical position through different sliceviews, but with a specified offset to overlay the same part together.

An example looks like this:

Thanks in advance!

All the best,

This is already supported: you can apply a the “offset” as a transform using Transforms module.

You can compute the correct alignment transform by automatic or semi-automatic image registration.

We already know the offset for each voxels for the two volumes. But we donot know how to customize the default behavior of scrolling, scaling, zooming, etc. to apply such values. In this way, the two volumes can be displayed in a way where the locations under the cursor are aligned. The transform is not nessary in this case as the two volumes are original DICOM volumes, and the offsets are manipulated.

Linking of views sets the slice views to the same physical location. To make the content consistently aligned in all views I would recommend applying the known transform.

Of course, you can do everything in 3D Slicer, and if you want you can browse slices with arbitrary offset/rotation between them. There are many ways to achieve this. To recommend the most suitable method, could you describe your clinical end goal?

In the meantime, here is a simple method for offset slice browsing without any custom scripting:

  • create a linear transforms ReslicingTransform and `OffsetTransform
  • set ReslicingTransform be a parent of OffsetTransform

  • use Volume Reslice Driver module to move the green and yellow slices with these transforms in Transverse mode

  • browse slices by adjusting the ReslicingTransform
  • adjust offset between slices using OffsetTransform