[Insight-users] GDCMSeriesFileNames.cxx "No Series were found" error help?
C G
luckylakeway at gmail.com
Fri Oct 8 22:26:47 EDT 2010
Hi anyone, I am attempting to read in DICOMs and I am getting the warning
from itkGDCMSeriesFileNames.cxx "No Series were found," which of course
creates an error shortly thereafter. I have ITK and InsightApplications
3.10.0.
my function code up to the problem point is below. this code works for one
dicom series I have, but not for another, and I cannot figure out why:
-------------------------------------------------------------------------------------
typedef itk::ImageSeriesReader< IImageType3d > ReaderType;
typedef itk::GDCMImageIO ImageIOType;
typedef itk::GDCMSeriesFileNames NamesGeneratorType;
ReaderType::Pointer myreader = ReaderType::New();
ImageIOType::Pointer mydicomIO = ImageIOType::New();
myreader-> SetImageIO(mydicomIO);
NamesGeneratorType::Pointer mynameGenerator = NamesGeneratorType::New();
//mynameGenerator->SetUseSeriesDetails(true); //using vs not using this
does not make a difference it seems
mynameGenerator->SetInputDirectory(directory);
typedef std::vector<std::string> SeriesIdContainer;
const SeriesIdContainer & seriesUID = mynameGenerator->GetSeriesUIDs();
//THIS LINE GENERATES THE WARNING
std::string seriesIdentifier;
seriesIdentifier = seriesUID.begin()->c_str(); //since i have no series
UID this line kills the program
-------------------------------------------------------------------------------------
the GetSeriesUIDs function (where I'm failing to get info from my dicom) in
the GDCMSeriesFileNames.cxx file contains:
gdcm::FileList *flist = m_SerieHelper->GetFirstSingleSerieUIDFileSet();
which is returning a null pointer.
this function is, in turn, from the gdcmSerieHelper class:
FileList *SerieHelper::GetFirstSingleSerieUIDFileSet()
{
ItFileSetHt = SingleSerieUIDFileSetHT.begin();
........
SingleSerieUIDFileSetHT is defined as
typedef std::map<std::string, FileList *> SingleSerieUIDFileSetmap;
SingleSerieUIDFileSetmap SingleSerieUIDFileSetHT;
*****
I can't seem to go any deeper into the code than that without having no idea
what I'm looking at anymore. The weird issue is that this code WORKS in one
case, fails in another.
Both folders contain 1 series each, with many individual slice files. Both
do have a value for the key pair 0020,000E (Series Instance UID), which is
the one that the GetSeriesUIDs function actually grabs (I viewed both image
sets in DicomWorks - also that key value does appear to be the same for all
slices so that shouldn't be the problem). Both series are numerically
ordered, with no DIRFILE or DICOMDIR files anywhere (if that makes a
difference...).
My code is based on the example code in the ITK guide and I don't see any
big discrepancies with it. It works fine for the one dicom series and I
can't see what the big difference is between these two image sets,
particularly since the key I think it wants appears to be present and valid
for both image sets.
Any help or ideas would be greatly appreciated!
-courtenay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20101008/1f1ca813/attachment.htm>
More information about the Insight-users
mailing list