19 #include <QMessageBox> 20 #include <QProgressDialog> 26 : QWidget(parent), m_LocalIndexer(new ctkDICOMIndexer(parent)), m_Controls(nullptr)
40 m_Controls =
new Ui::QmitkDicomLocalStorageWidgetControls;
47 SIGNAL(seriesSelectionChanged(
const QStringList &)),
51 SIGNAL(seriesSelectionChanged(
const QStringList &)),
59 m_Controls->ctkDicomBrowser->setTableOrientation(Qt::Vertical);
89 m_Controls->ctkDicomBrowser->updateTableViews();
94 auto selectedPatientUIDs =
m_Controls->ctkDicomBrowser->currentPatientsSelection();
96 if (!selectedPatientUIDs.empty())
98 QStringList studyUIDs;
100 for (
const auto &patientUID : selectedPatientUIDs)
103 QStringList seriesUIDs;
105 for (
const auto &studyUID : studyUIDs)
108 auto answer = QMessageBox::question(
nullptr,
110 QString(
"Do you really want to delete %1 %2, containing %3 series in %4 %5?")
111 .arg(selectedPatientUIDs.count())
112 .arg(selectedPatientUIDs.count() != 1 ?
"patients" :
"patient")
113 .arg(seriesUIDs.count())
114 .arg(studyUIDs.count())
115 .arg(studyUIDs.count() != 1 ?
"studies" :
"study"),
116 QMessageBox::Yes | QMessageBox::No,
119 if (answer == QMessageBox::Yes)
121 for (
const auto &patientUID : selectedPatientUIDs)
133 auto selectedStudyUIDs =
m_Controls->ctkDicomBrowser->currentStudiesSelection();
135 if (!selectedStudyUIDs.empty())
137 QStringList seriesUIDs;
139 for (
const auto &studyUID : selectedStudyUIDs)
142 auto answer = QMessageBox::question(
nullptr,
144 QString(
"Do you really want to delete %1 %2, containing %3 series?")
145 .arg(selectedStudyUIDs.count())
146 .arg(selectedStudyUIDs.count() != 1 ?
"studies" :
"study")
147 .arg(seriesUIDs.count()),
148 QMessageBox::Yes | QMessageBox::No,
151 if (answer == QMessageBox::Yes)
153 for (
const auto &studyUID : selectedStudyUIDs)
165 auto selectedSeriesUIDs =
m_Controls->ctkDicomBrowser->currentSeriesSelection();
167 if (!selectedSeriesUIDs.empty())
170 QMessageBox::question(
nullptr,
172 QString(
"Do you really want to delete %1 series?").arg(selectedSeriesUIDs.count()),
173 QMessageBox::Yes | QMessageBox::No,
176 if (answer == QMessageBox::Yes)
178 for (
const auto &seriesUID : selectedSeriesUIDs)
190 QStringList uids =
m_Controls->ctkDicomBrowser->currentSeriesSelection();
195 QHash<QString, QVariant> eventProperty;
196 eventProperty.insert(
"FilesForSeries", filesForSeries);
197 if (!filesForSeries.isEmpty())
199 QString modality =
m_LocalDatabase->fileValue(filesForSeries.at(0),
"0008,0060");
200 eventProperty.insert(
"Modality", modality);
208 QDir databaseDirecory = QDir(newDatatbaseDirectory);
209 if (!databaseDirecory.exists())
211 databaseDirecory.mkpath(databaseDirecory.absolutePath());
213 QString newDatatbaseFile = databaseDirecory.absolutePath() + QString(
"/ctkDICOM.sql");
227 m_Controls->viewInternalDataButton->setEnabled((s.size() != 0));