[Insight-developers] GDCM SerieHelper::ImagePositionPatientOrdering

Miller, James V (GE, Research) millerjv at crd.ge.com
Fri May 19 15:08:52 EDT 2006


Well the reader simply reads the files provided to it.

It is the SeriesNamesGenerator that does the work of defining
what images in a directory belong to a series.  There are a number
of strategies for this.  The default is to check the series uid.
With the new GDCM, additional tags can be added to the definition 
of a series, for instance TR/TE numbers etc.

At issue here is what to do with a series that has gaps.  Originally, 
the GDCMSeriesHelper threw an error (?) if two images mapped
to the same "slot".  You'd have to look at the original code to see 
how a fixed length vector was used to sort the images
in linear time. This was causing us grief for large acquisitions
(say 2000 slices) where a single image was missing from the middle
of the series.  Because the number of images in the series was
wrong (with a slice missing the number of slices was N-1 not N), 
it was now possible to two images to map to the same "slot" in the 
series (due to round-off). An error was thrown and the result was that 
we could not read a series that was missing a slice.

With the changes we put in, we could read these series and the missing
slice would just be "compressed to nothing" (slices after the missing 
slice were just slid up).  Not perfect but allowed our automated analysis 
to proceed.

'Course, this does not address the issue of the scout being placed in the
same series or the series changing spacing across the acquisition (above just
a missing slice).  For instance, for the latter, some people may reconstruct
slices close together through the heart and reconstruct slices farther apart
further down the thorax, abdomen, appendages. Another pathological example 
is where the field of view changes over the series.  The series generators
work fine on this but the resulting series has a variety of pixel spacings
which is somethingelse we do not handle.

Jim


-----Original Message-----
From: insight-developers-bounces+millerjv=crd.ge.com at itk.org
[mailto:insight-developers-bounces+millerjv=crd.ge.com at itk.org]On Behalf
Of Stephen R. Aylward
Sent: Friday, May 19, 2006 2:20 PM
To: Bill Lorensen
Cc: Mathieu Malaterre; Insight Developers List; Lorensen, William E (GE,
Research)
Subject: Re: [Insight-developers] GDCM
SerieHelper::ImagePositionPatientOrdering


So, what is the goal of imageseriesreader?

I assumed it was to return a 3D volume.  The logic is simple, it is 
easier to identify that two 3D volumes have the same series number than 
it is to scan every image in a collection of slices and identify when 
the TR/TE numbers have changed (some multi-echo MR scans will have the 
same series numbers), when spacing has changed, when the first slice is 
a scout image for that series (sometime CT scanners give a 2D scout scan 
or a projection image the same series number as the 3D scan)....

Perhaps we need two functions:
1) one to return a 3D volume
2) one to return a list of 2D slices that can be analyzed by an app for 
the above "features"

Stephen

Bill Lorensen wrote:
> Stephen,
> 
> I understand that we don't support it yet. But, without these fixes, no 
> one can ever read a series with a gap. We have also found occasional 
> missing slices in large (~3000 slice) studies. We stil need to read them 
> and repair them.
> 
> Bill
> 
> At 05:29 PM 5/17/2006, Stephen R. Aylward wrote:
> 
>> itkImage doesn't currently support different spacing per slice in a 3D 
>> volume....
>>
>> Stephen
>>
>> Lorensen, William E (GE, Research) wrote:
>>
>>> I think the application should handle this. Some applications can 
>>> handle different spacing.
>>> That's the quick reply. I'll give it ome more thought.
>>> Bill
>>> -----Original Message-----
>>> From: insight-developers-bounces+lorensen=crd.ge.com at itk.org
>>> [mailto:insight-developers-bounces+lorensen=crd.ge.com at itk.org]On Behalf
>>> Of Mathieu Malaterre
>>> Sent: Wednesday, May 17, 2006 4:53 PM
>>> To: Insight Developers List
>>> Subject: [Insight-developers] GDCM
>>> SerieHelper::ImagePositionPatientOrdering
>>>
>>> Bill,
>>>         About 7months ago you rewrote the algorithm for 
>>> gdcm::SerieHelper::ImagePositionPatientOrdering :
>>> http://public.kitware.com/cgi-bin/cvsweb.cgi/Utilities/gdcm/src/gdcmSerieHelper.cxx?rev=1.22&root=Insight&view=log 
>>>
>>>         The problem is that you remove my check for inconsistant 
>>> spacing. For instance I have a series with a distance equal for each 
>>> slice to:
>>> 1555.5
>>> 1554.5
>>> 1538.5
>>> 1540.5
>>> 1552.5
>>> 1550.5
>>> 1546.5
>>> 1548.5
>>> 1542.5
>>> 1544.5
>>> so clearly I have two spacing: 1mm and 2mm. Shouldn't this be an error ?
>>> Thanks
>>> Mathieu
>>> Ps: This is a simple CT series
>>> _______________________________________________
>>> Insight-developers mailing list
>>> Insight-developers at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-developers
>>> _______________________________________________
>>> Insight-developers mailing list
>>> Insight-developers at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-developers
>>
>>
>> -- 
>> =============================================================
>> Stephen R. Aylward, Ph.D.
>> Chief Medical Scientist
>> Kitware, Inc.
>> http://www.kitware.com
>> _______________________________________________
>> Insight-developers mailing list
>> Insight-developers at itk.org
>> http://www.itk.org/mailman/listinfo/insight-developers
> 
> 
> _______________________________________________
> Insight-developers mailing list
> Insight-developers at itk.org
> http://www.itk.org/mailman/listinfo/insight-developers
> 

-- 
=============================================================
Stephen R. Aylward, Ph.D.
Chief Medical Scientist
Kitware, Inc.
http://www.kitware.com
_______________________________________________
Insight-developers mailing list
Insight-developers at itk.org
http://www.itk.org/mailman/listinfo/insight-developers


More information about the Insight-developers mailing list