]> Creatis software - clitk.git/blobdiff - vv/vvQDicomSeriesSelector.cxx
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvQDicomSeriesSelector.cxx
index 51f11a886cf7227b63af99d1a6b119aaec6287f2..d5444cdbe5b168317880b97895b8f741f7379045 100644 (file)
@@ -20,7 +20,7 @@
 #include <itkGDCMImageIO.h>
 #include <itkGDCMSeriesFileNames.h>
 #include <gdcmFile.h>
-#if GDCM_MAJOR_VERSION == 2
+#if GDCM_MAJOR_VERSION >= 2
 #include <gdcmImageReader.h>
 #include <gdcmDataSetHelper.h>
 #include <gdcmStringFilter.h>
@@ -58,6 +58,8 @@ vvDicomSeriesSelector::vvDicomSeriesSelector(QWidget* parent)
           this, SLOT(itemSelectionChanged()));
   connect(ui.mDicomDetailsListWidget, SIGNAL(itemSelectionChanged()),
           this, SLOT(itemDetailsSelectionChanged()));
+  connect(ui.mIsMatrixCheckBox, SIGNAL(stateChanged(int)),
+          this, SLOT(itemMatrixSelectionChanged(int)));
 
   // Initialization
   /*   if (config::get_current_path() != QString(0))
@@ -67,6 +69,8 @@ vvDicomSeriesSelector::vvDicomSeriesSelector(QWidget* parent)
 
   mPreviousPath = mFoldername;
   ui.mFolderLineEdit->setText(mFoldername);
+  ui.mIsMatrixCheckBox->setChecked(0);
+  mPatientCoordinateSystem = false;
   //  ui.mTableWidget->setRowCount(0);
 }
 //====================================================================
@@ -94,8 +98,12 @@ void vvDicomSeriesSelector::close()
 void vvDicomSeriesSelector::BrowseButtonRelease()
 {
   QFileDialog dialog(this);
+  QStringList filters;
+  filters << "DICOM files (*.dcm)"
+          << "All files (*)";
   dialog.setFileMode(QFileDialog::AnyFile);
-  dialog.setFilter("DICOM files (*.dcm); All files (*)");
+  dialog.setNameFilters(filters);
+  //dialog.setFilter(tr("DICOM files (*.dcm); All files (*)"));
   mFoldername = dialog.getExistingDirectory(this,
                 "Select a folder to find DICOM image",
                 mPreviousPath);
@@ -136,7 +144,7 @@ void vvDicomSeriesSelector::SearchButtonRelease()
       mListOfSeriesFilenames[seriesUID[i]] = filenames;
 
       // store first header
-#if GDCM_MAJOR_VERSION == 2
+#if GDCM_MAJOR_VERSION >= 2
       mDicomHeader[seriesUID[i]].SetFileName( (*filenames)[0].c_str() );
       mDicomHeader[seriesUID[i]].Read();
 #else
@@ -225,10 +233,10 @@ void vvDicomSeriesSelector::itemDetailsSelectionChanged()
   if (i<mFilenames->size()) {
     if (mDicomDetails[(*mFilenames)[i]] == "") {
       std::ostringstream s;
-      mDicomHeader[mCurrentSerie].GetFile().Print(s);
-
       QString l;
-#if GDCM_MAJOR_VERSION == 2
+
+#if GDCM_MAJOR_VERSION >= 2
+      mDicomHeader[mCurrentSerie].GetFile().Print(s);
       const gdcm::File& header = mDicomHeader[mCurrentSerie].GetFile();
       gdcm::StringFilter sf;
       sf.SetFile( header );
@@ -255,6 +263,7 @@ void vvDicomSeriesSelector::itemDetailsSelectionChanged()
           }
         }
 #else
+      mDicomHeader[mCurrentSerie]->Print(s);
       gdcm::File * header = mDicomHeader[mCurrentSerie];
       gdcm::DocEntry * e = header->GetFirstEntry();
       while (e) {
@@ -275,7 +284,7 @@ void vvDicomSeriesSelector::itemDetailsSelectionChanged()
 //====================================================================
 
 //====================================================================
-#if GDCM_MAJOR_VERSION == 2
+#if GDCM_MAJOR_VERSION >= 2
 QString vvDicomSeriesSelector::MakeDicomInfo(std::string & s, const gdcm::Reader& header)
 {
   QString n = QString("%1").arg(mListOfSeriesFilenames[s]->size());
@@ -348,14 +357,14 @@ QString vvDicomSeriesSelector::MakeDicomInfo(std::string & s, gdcm::File *header
 //====================================================================
 QString vvDicomSeriesSelector::AddInfo(const gdcm::File *header, QString n, uint16_t group, uint16_t elem)
 {
-#if GDCM_MAJOR_VERSION == 2
+#if GDCM_MAJOR_VERSION >= 2
   gdcm::StringFilter sf;
   sf.SetFile( *header );
   gdcm::Tag t( group, elem );
   std::string s = sf.ToString( t );
   return AddInfo(n.toStdString(), s);
 #else
-  return AddInfo(n.toStdString(), header->GetEntryValue(group, elem));
+  return AddInfo(n.toStdString(), const_cast<gdcm::File*>(header)->GetEntryValue(group, elem));
 #endif
 }
 //====================================================================
@@ -372,7 +381,7 @@ QString vvDicomSeriesSelector::AddInfo(std::string n, std::string m)
 //====================================================================
 void vvDicomSeriesSelector::AddSerieToTheTable(int i, std::vector<std::string> & filenames)
 {
-#if GDCM_MAJOR_VERSION == 2
+#if GDCM_MAJOR_VERSION >= 2
 #else
   gdcm::File *header = new gdcm::File();
   header->SetFileName(filenames[0]);
@@ -396,4 +405,13 @@ void vvDicomSeriesSelector::AddSerieToTheTable(int i, std::vector<std::string> &
 }
 //====================================================================
 
+
+//====================================================================
+void vvDicomSeriesSelector::itemMatrixSelectionChanged(int state)
+{
+  mPatientCoordinateSystem = state;
+}
+//====================================================================
+
+
 #endif // VVDICOMSERIESSELECTOR_CXX