[Dcmlib] Re: Images axial acquisition order

Sean McInerney seanm at nmr.mgh.harvard.edu
Tue Jul 19 02:13:48 CEST 2005


Hi All,

Conceptually, many axis swaps are no more correct than another.
Typically, in brain imaging, such swaps depend on the viewer's
perspective. "Radiological" convention holds that the practitioner views
the patient from the foot of their bed. "Neurological" convention is the
reverse, viewing from the head of the bed.

Such swaps can very easily be affected by the user and may lie outside
the scope of a DICOM compatibility library ... unless such facilities
are specified by the standard. For example, if using vtkGdcm (i.e.
post-gdcm), the user simply passes a permutation matrix to the
SetTransform subclass (vtkImageReader) method.

I once wrote a more detailed discussion of how to construct such a
matrix here:
http://public.kitware.com/pipermail/vtkusers/2004-March/072831.html

I realize that a heuristic derivable from the header data is what you're
after ... but I think that ordering may be application-dependent in many
cases. Enumerating typical cases is not a bad idea, but concepts like
cardiac, radiological, neurological, or dental seem application level.
What may be a "sane" default for some, may not be a sane default for all
... of course, the mob may rule ;-)

Just my two Euro cents worth ...

-Sean

Jean-Pierre Roux wrote:
> Emmanuel Olart wrote:
> 
>> Hi all,
>>
>> Jean-Pierre ROUX a écrit :
>>
>>>
> [...]
> 
>>> I guess there are some heuristics to 'discover', before writting the
>>> code.
>>> I'm going to ask to our friends from THERALYS, I'm almost sure they
>>> *had* to do the job, maybe in C++, or in Python.
>>
>>
>> We had to do this work, JP is right. our heuristic is based both on
>> Image Position Patient (0x0020, 0x0032) and Image Orientation Patient
>> (0x0020, 0x0037) fields.
>> I didn't do it myself, a large part of the work was conducted by
>> Eduardo Davila who works now for creatis (I believe ?).
> 
> 
> Eduardo works now for the Cardological Hospital. I met him this morning.
> He told me Fabrice Vincent gave him some theory about the general pb.
> He wrote the heuristics (6 different cases) in Python, and let the code
> at Theralys'.
> 
>> The outcome of our algorithm is an "Orientation type" that can be
>> Axial(feet to head), Axial invert (head to feet), Coronal, Coronal
>> invert, etc ...
>> I'll have a look at the code to see if I can give you some useful
>> hints. It has been writen in Python.
> 
> 
> Could you send me the piece of code, I'll convert it into C++, add it to
> gdcm.
> 
>> Please note that we didn't have time to test this heuristic
>> extensively on all DICOM images we are working with. So it *may* not
>> work with some images .
> 
> 
> I think gdcm users will tell us if something is wrong somewhere.
> And we all have a stronger heuristics.
> 
> -> BTW, Luca, could you upload somewhere the images you're working on?
> (I think we never had to deal with 'teeth images' -only brain and
> heart-, so we can see if Eduardo's heuristics works on them)
> 
> Thx to everybody.
> 
> JP
> 
> 
>>
>>> ==> Emmanuel, are you on holydays ?
>>> Or still reading the mails?
>>>
>> I'm there, no holidays for me until september (maybe ...) ;)
>>
>> Manu
>>
>> THERALYS <http://www.theralys.com/>
> 
> 
> _______________________________________________
> Dcmlib mailing list
> Dcmlib at creatis.insa-lyon.fr
> http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib
> 
> 
> 





More information about the Dcmlib mailing list