Explorar o código

Added a function for removing selected items from the database and added some documentation

Andreas Fetzer %!s(int64=11) %!d(string=hai) anos
pai
achega
629be7fbfd

+ 38 - 0
Libs/DICOM/Widgets/ctkDICOMTableManager.cpp

@@ -41,6 +41,8 @@ public:
 
   void init();
   void setCTKDICOMDatabase(ctkDICOMDatabase *db);
+
+  ctkDICOMDatabase* dicomDatabase;
 };
 
 ctkDICOMTableManagerPrivate::ctkDICOMTableManagerPrivate(ctkDICOMTableManager &obj)
@@ -90,6 +92,7 @@ void ctkDICOMTableManagerPrivate::setCTKDICOMDatabase(ctkDICOMDatabase* db)
   this->patientsTable->setCTKDicomDataBase(db);
   this->studiesTable->setCTKDicomDataBase(db);
   this->seriesTable->setCTKDicomDataBase(db);
+  dicomDatabase = db;
 }
 
 //----------------------------------------------------------------------------
@@ -136,3 +139,38 @@ Qt::Orientation ctkDICOMTableManager::tableOrientation()
   Q_D(ctkDICOMTableManager);
   return d->tableSplitter->orientation();
 }
+
+void ctkDICOMTableManager::deleteSelectedRows()
+{
+  Q_D(ctkDICOMTableManager);
+  QStringList seriesUIDS = d->seriesTable->currentSelection();
+  if (seriesUIDS.size() != 0)
+    {
+      QString seriesUID;
+      foreach (seriesUID, seriesUIDS)
+        {
+          d->dicomDatabase->removeSeries(seriesUID);
+        }
+      return;
+    }
+  QStringList studiesUIDS = d->studiesTable->currentSelection();
+  if (studiesUIDS.size() != 0)
+    {
+      QString studyUID;
+      foreach (studyUID, studiesUIDS)
+        {
+          d->dicomDatabase->removeStudy(studyUID);
+        }
+      return;
+    }
+  QStringList patientsUIDS = d->patientsTable->currentSelection();
+  if (patientsUIDS.size() != 0)
+    {
+      QString patienUID;
+      foreach (patienUID, patientsUIDS)
+        {
+          d->dicomDatabase->removePatient(patienUID);
+        }
+      return;
+    }
+}

+ 12 - 0
Libs/DICOM/Widgets/ctkDICOMTableManager.h

@@ -46,12 +46,24 @@ public:
   ctkDICOMTableManager(ctkDICOMDatabase* db, QWidget* parent = 0);
   virtual ~ctkDICOMTableManager();
 
+  /**
+   * @brief Set the ctkDICOMDatabase
+   * @param db the dicom database which should be used
+   */
   void setCTKDICOMDatabase(ctkDICOMDatabase* db);
 
+  /**
+    * Property for setting the table layout either to vertical or horizontal alignment
+    */
   Q_PROPERTY(Qt::Orientation tableOrientation READ tableOrientation WRITE setTableOrientation)
   void setTableOrientation(const Qt::Orientation&);
   Qt::Orientation tableOrientation();
 
+  /**
+   * @brief Deletes the selected row from the database
+   */
+  void deleteSelectedRows();
+
 Q_SIGNALS:
   // Signals for propagating selection changes of the different tables
   void patientsSelectionChanged(const QItemSelection&, const QItemSelection&);