lassoan
(Andras Lasso)
November 11, 2019, 5:08pm
31
We continued the discussion in private and it came up that there is a risk that users ignore the warning that they get at loading and may proceed with loading the mixed localizer+3D volume slices, which may result in loading with incorrect geometry (mirroring). I copy posts from that private thread here below.
JoeCrozier:
I have downloaded the nightly 4.11.0 and loaded the image set into the new DICOM module.
When I pressed load, an error message pops up suggesting that I examine the data in advanced mode. If I press load anyway at this point then the a normal looking volume appears except that it is mirrored.
Now if I close the scene, reload the image set again and open the advanced area I notice that the images have been separated by image type and image orientation patient. If I load the two image groups separately as shown in the following screenshot then two volumes appear. One volume is just the ‘orientation’ image and the other is the main volume which in this case has loaded correctly and is not mirrored.
I would like to have sent you the offending anonymised DICOM but when I run the images through DICOM cleaner it actually does not exhibit the same behavior anymore, which is frustrating. When loading the anonymised DICOM it is still mirrored but looks obviously broken.
I guess the main danger is that people seem to casually ignore warnings which they don’t understand and just see what happens. In this case one of our technicians did just that and because the volume looked pretty normal and because it is difficult to pick up mirroring about the sagittal plane a mirrored biomodel was produced.
Perhaps when that first window pops up then the user should be forced to look at advanced mode instead of being able to skip past it by pressing ok? Or maybe by default the images should be separated by image orientation patient and loaded as separate volumes so that if the user casually skips past the warning then at least there would be less danger of an erroneous volume appearing?
A colleague also informed me that he has seen this error occur before on another image set so I don’t think that it is a one off.
pieper:
I’m seeing more and more of these pre-MPR’d series so I think we should find some way to detect and deal with them, but I don’t know if there is a good general solution.
What I think is happening here is that the orientation is coming from the first index image, and then the others are essentially sorted by some arbitrary value which sometimes is the exact opposite of what you want, hence the flipping.
Big picture though is that these reformats are not actually useful in Slicer anyway, since they just pre-compute views that you get anyway. So people should be using the original acquisition volume (typically one of the single-digit series, like 2,3,4, not 201, 801, etc).
Coincidentally, I have a study here that I can use to replicate, so I’ll investigate and see if there’s a fix possible.
lassoan:
It seems that “localizer” is the appropriate term for the extra slice (see this post and the ImageType containing “LOCALIZER” word and David Clunie’s DICOM faq).
In the discourse post referenced above, the series is a 3D XA spin reconstruction by Siemens. In this post the images are 3D XA spin reconstructions by GE. So, it is common that they are both 3D spin reconstructions and localizer image is stored in the same series, but image types are different:
Siemens:
Localizer slice: DERIVED, SECONDARY, LOCALIZER, MPR, , , PARALLEL
Volume slice: DERIVED, SECONDARY, AXIAL, MPR, , , PARALLEL
GE:
Localizer slice: DERIVED, SECONDARY, REFORMATTED
Volume slices: DERIVED, SECONDARY, REFORMATTED, AVERAGE
DICOM does not strictly specify how to organize series. According to the DICOM standard “Each Series may be associated with exactly one Frame of Reference IE, and if so associated all Composite Instances within the Series shall be spatially or temporally related to each other”. But this very loose definition makes it hard to implement software that can robustly interpret DICOM files, so I think the practice of storing different image types with the same series instance UID should be explicitly stated as valid or invalid in the DICOM standard.
@pieper Could you ask David Clunie’s opinion on this?
Also, would you mind if I copied the last few posts (without images) to the public forum topic?
pieper:
I agree, yes - the case I have here is the GE version, where the localizer (instance 1) is type 3 DERIVED, SECONDARY, REFORMATTED and the rest are type 4 DERIVED, SECONDARY, REFORMATTED, AVERAGE.
Interestingly, for the the localizer ImageOrientationPatient is 1, 0, 0, 0, 0, -1 while for the rest it is 0, 1, 0, 0, 0, -1. This makes sense since the localizer is coronal and the rest are sagittal.
Unfortunately we’re either going to end up with heuristics here or perhaps we need to have a more sophisticated user interface that makes it clear to the user what is going on and lets them decide.
For now I think the ScalarVolumePlugin should be hard-coded to detect this pattern (ignore a slice with one different image type).
Yes, I can ask David Clunie. We are at a meeting with him Wed-Fri this week.
It’s fine with me for this discussion to move to the public forum. This is something serious users should be made aware of.
lassoan:
David’s opinion (and eventually the DICOM standard) is important because based on that we could decide how to handle this: if it’s considered an invalid series then we would refuse to load it and add a rule to fix it in the DICOM Patcher; if it is a valid series then we need to detect the localizer slices in scalar volume plugin and ignore them by default.
localizer (instance 1) is type 3 DERIVED, SECONDARY, REFORMATTED and the rest are type 4 DERIVED, SECONDARY, REFORMATTED, AVERAGE
Note that “3” and “4” are just the multiplicity of the values and not part of the values.
pieper:
If it’s invalid we should definitely flag it, but I still would want to try to load it correctly if we feel we can do it confidently. This seems to be a common pattern. My guess is that David will say this is a valid series - it’s very common to have slices with different orientations, so the question is what part of the series maps to a valid Slicer scalar volume.
For most Slicer purposes, these reformats should be avoided in any case. In the study I’m looking at the series 8 is .8 x .8 x 1.0 while the reformat is .8 x .8 . 2.5. which makes is visibly blurry, but only if you zoom in, so I would avoid it for any kind of analysis or planning tasks.