[Insight-developers] itkGDCMImageIO and itkImageSeriesReader problem

Patrick Cheng cheng at isis.georgetown.edu
Tue Jan 18 11:53:22 EST 2011


Hi Luis,

I found the problem.

It seems that, the dicom tags stored in the meta dictionary is now:

"(0010|0010)" instead of "0010|0010"

An extra pair of brackets have been added somewhere.

Should be an easy fix. Let me know what is your solution, with or 
without brackets.

Patrick

On 1/18/2011 11:42 AM, Patrick Cheng wrote:
> Hi Luis,
>
> Thank you for the answer.
>
> I ran the test and it could not find the dicom tags.
>
> Here is the link to the testing file:
> http://dl.dropbox.com/u/77341/I0092932.dcm
>
> -------------------------------------------------------------------------------------------------------------------------------------
>
> C:\Research\Bin\ITK-VS10\bin\Release>DicomPrintPatientInformation.exe
> I0092932.dcm
> Patient Name : NOT FOUND
> Patient ID : NOT FOUND
> Patient Sex : NOT FOUND
> Patient Age : NOT FOUND
> Study Date : NOT FOUND
> Modality : NOT FOUND
> Manufacturer : NOT FOUND
> Institution : NOT FOUND
> Model : NOT FOUND
> -------------------------------------------------------------------------------------------------------------------------------------
>
>
> Patrick
>
> On 1/18/2011 10:44 AM, Luis Ibanez wrote:
>> Hi Patrick,
>>
>>
>> 1) Please try the example:
>>
>> ITK/Code/IO/DicomPrintPatientInformation.cxx
>>
>> (from today's Git version),
>>
>> To see if you can get that tag from that specific DICOM file.
>>
>> No changes have been made to the metadata dictionary
>> itself, so, this may be a secondary effect from migrating
>> to GDCM 2.0.... we need your help to track the real source
>> of the problem.
>>
>>
>>
>> 2) Problem 2, has always been there,
>>
>> If you reuse a reader, you must call
>>
>> reader->UpdateLargestPossibleRegion()
>>
>> instead of simply calling
>>
>> reader->Update().
>>
>>
>> This is because a call to Update() doesn't recompute
>> the largest size of the image.
>>
>> This applies to both the ImageFileReader and the
>> ImageSeriesReader.
>>
>>
>> Luis
>>
>>
>> ----------------------------------------------------------------------------------
>>
>> On Fri, Jan 14, 2011 at 1:49 PM, Patrick Cheng
>> <cheng at isis.georgetown.edu> wrote:
>>> Hi All,
>>>
>>> Recent changes in ITK (I am using nightly build as of Jan 12, 2011)
>>> broke
>>> our code in IGSTK.
>>>
>>> There are two issues emerged:
>>>
>>> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>
>>> Problem 1: Fail to expose DICOM tags.
>>>
>>> itk::MetaDataDictionary& dict = m_ImageIO->GetMetaDataDictionary();
>>>
>>> tagkey = "0018|1120";
>>>
>>> if( itk::ExposeMetaData<std::string>(dict,tagkey, m_GantryTilt ) )
>>> {
>>> ..... // Will not reach here
>>> }
>>>
>>> Are these code still valid for checking DICOM tags?
>>>
>>> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>
>>> Problem 2: Memory effect of the GDCMImageIO class
>>> This happens when we ask the m_ImageSeriesReader to read a new set of
>>> image
>>> that is smaller than the old one, it will throw an exception:
>>>
>>> m_ImageIO = itk::GDCMImageIO::New();
>>> m_ImageIO->SetGlobalWarningDisplay(this->GetGlobalWarningDisplay());
>>> m_ImageSeriesReader = ImageSeriesReaderType::New();
>>> m_ImageSeriesReader->SetImageIO( m_ImageIO );
>>> ........
>>> m_ImageSeriesReader->SetFileNames( m_FileNames->GetFileNames(
>>> seriesUID.front().c_str()
>>> ) );
>>> ........
>>> try
>>> {
>>> m_ImageSeriesReader->Update();
>>> }
>>> catch( itk::ExceptionObject& excp )
>>> {
>>> ....//Exception: Requested region is (at least partially) outside
>>> region.
>>> }
>>>
>>> It looks like the ImageSeriesReader needs to be reset every time it
>>> accepts
>>> new file names.
>>> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>
>>>
>>> Thank you,
>>>
>>> Patrick
>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Kitware offers ITK Training Courses, for more information visit:
>>> http://kitware.com/products/protraining.html
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.itk.org/mailman/listinfo/insight-developers
>>>
>>>
>>
>>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers
>
>


More information about the Insight-developers mailing list