#include <gdcmFile.h>
#if GDCM_MAJOR_VERSION == 2
+ #include <gdcmReader.h>
+ #include <gdcmTag.h>
+ #include <gdcmAttribute.h>
#else
-#include <gdcm.h>
-#include <gdcmSQItem.h>
+ #include <gdcm.h>
+ #include <gdcmSQItem.h>
#endif
#include <vtkSmartPointer.h>
assert(filename!="");
std::vector<std::pair<int, std::string> > roi_names;
#if GDCM_MAJOR_VERSION == 2
+ // duplicate code from clitk::DicomRT_StructureSet::Read
+ gdcm::Reader reader;
+ reader.SetFileName( filename.c_str() );
+ reader.Read();
+
+ const gdcm::DataSet &ds = reader.GetFile().GetDataSet();
+
+ gdcm::Tag tssroisq(0x3006,0x0020);
+ const gdcm::DataElement &ssroisq = ds.GetDataElement( tssroisq );
+ gdcm::SmartPointer<gdcm::SequenceOfItems> roi_seq = ssroisq.GetValueAsSQ();
+ assert(roi_seq); // TODO error message
+ for(unsigned int ridx = 0; ridx < roi_seq->GetNumberOfItems(); ++ridx)
+ {
+ gdcm::Item & item = roi_seq->GetItem( ridx + 1); // Item starts at 1
+ const gdcm::DataSet& nestedds = item.GetNestedDataSet();
+ if( nestedds.FindDataElement( gdcm::Tag(0x3006,0x22) ) )
+ {
+ gdcm::Attribute<0x3006,0x26> roiname;
+ roiname.SetFromDataSet( nestedds );
+ std::string name = roiname.GetValue(); // 0x3006,0x0026 = [ROI Name]
+ gdcm::Attribute<0x3006,0x0022> roinumber;
+ roinumber.SetFromDataSet( nestedds );
+ int nb = roinumber.GetValue(); // 0x3006,0x0022 = [ROI Number]
+
+ roi_names.push_back(make_pair(nb,name));
+ }
+ }
#else
gdcm::File reader;
reader.SetFileName(filename.c_str());
#include <gdcmImageReader.h>
#include <gdcmDataSetHelper.h>
#include <gdcmStringFilter.h>
+#include <gdcmImageHelper.h>
#else
#include <gdcmDocEntry.h>
#endif
if (mDicomInfo[mCurrentSerie] == "") {
// QString m;
// m = QString("Patient : <font color=\"blue\">%1</font><br>").arg(mDicomHeader[s]->GetEntryValue(0x0010,0x0010).c_str()); // Patient's name
+ DD(mCurrentSerie)
mDicomInfo[mCurrentSerie] = MakeDicomInfo(mCurrentSerie, mDicomHeader[mCurrentSerie]);
}
ui.mDicomInfoPanel->setText(mDicomInfo[mCurrentSerie]);
{
QString n = QString("%1").arg(mListOfSeriesFilenames[s]->size());
#if GDCM_MAJOR_VERSION == 2
- QString ss;
+ const gdcm::File &f = *header;
+ std::vector<double> thespacing = gdcm::ImageHelper::GetSpacingValue(f);
+ std::vector<double> theorigin = gdcm::ImageHelper::GetOriginValue(f);
+
+ QString size = QString("%1x%2x%3")
+ .arg(0)
+ .arg(0)
+ .arg(0);
+ QString spacing = QString("%1x%2x%3")
+ .arg(thespacing[0])
+ .arg(thespacing[1])
+ .arg(thespacing[2]);
+ QString origin = QString("%1x%2x%3")
+ .arg(theorigin[0])
+ .arg(theorigin[1])
+ .arg(theorigin[2]);
+
+ QString ss =
+ //AddInfo( "Serie ID : ", s)+
+ AddInfo(header, "Patient : ", 0x0010,0x0010)+
+ AddInfo( "Folder : ", QFileInfo((*mFilenames)[0].c_str()).canonicalPath().toStdString())+
+ AddInfo(header, "Series Description : ", 0x0008,0x103e)+
+ AddInfo(header, "Modality : ", 0x0008,0x0060)+
+ AddInfo(header, "# images : ", 0x0020,0x0013)+
+ AddInfo( "# files : ", n.toStdString())+
+ AddInfo( "Size : ", size.toStdString())+
+ AddInfo( "Spacing : ", spacing.toStdString())+
+ AddInfo( "Origin : ", origin.toStdString())+
+ AddInfo(header, "Pixel size : ", 0x0028,0x0100)+
+ AddInfo( "Pixel type : ", 0);
#else
QString size = QString("%1x%2x%3")
.arg(header->GetXSize())