CTK 0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkDICOMBrowser.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Library: CTK
4
5 Copyright (c) Kitware Inc.
6
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0.txt
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18
19=========================================================================*/
20
21#ifndef __ctkDICOMBrowser_h
22#define __ctkDICOMBrowser_h
23
24// Qt includes
25#include <QItemSelection>
26#include <QWidget>
27
28#include "ctkDICOMWidgetsExport.h"
29
30class ctkDICOMBrowserPrivate;
33class ctkFileDialog;
35class QMenu;
36class QModelIndex;
37
55class CTK_DICOM_WIDGETS_EXPORT ctkDICOMBrowser : public QWidget
56{
57 Q_OBJECT
58 Q_ENUMS(ImportDirectoryMode)
59 Q_PROPERTY(QString databaseDirectory READ databaseDirectory WRITE setDatabaseDirectory)
60 Q_PROPERTY(int patientsAddedDuringImport READ patientsAddedDuringImport)
61 Q_PROPERTY(int studiesAddedDuringImport READ studiesAddedDuringImport)
62 Q_PROPERTY(int seriesAddedDuringImport READ seriesAddedDuringImport)
63 Q_PROPERTY(int instancesAddedDuringImport READ instancesAddedDuringImport)
64 Q_PROPERTY(QStringList tagsToPrecache READ tagsToPrecache WRITE setTagsToPrecache)
65 Q_PROPERTY(bool displayImportSummary READ displayImportSummary WRITE setDisplayImportSummary)
66 Q_PROPERTY(ctkDICOMBrowser::ImportDirectoryMode ImportDirectoryMode READ importDirectoryMode WRITE setImportDirectoryMode)
67
68public:
70
71 typedef QWidget Superclass;
72 explicit ctkDICOMBrowser(QWidget* parent=0);
74
76 QString databaseDirectory() const;
77
79 Q_INVOKABLE static QString databaseDirectorySettingsKey();
80
85 void setTagsToPrecache(const QStringList tags);
86 const QStringList tagsToPrecache();
87
91 Q_INVOKABLE void updateDatabaseSchemaIfNeeded();
92
93 Q_INVOKABLE ctkDICOMDatabase* database();
94
96
107
109 {
110 ImportDirectoryCopy = 0,
111 ImportDirectoryAddLink
112 };
113
118
122 Q_INVOKABLE ctkFileDialog* importDialog()const;
123
124public Q_SLOTS:
125
133
134 void setDatabaseDirectory(const QString& directory);
135 void onFileIndexed(const QString& filePath);
136
145
150
152
160 void importDirectories(QStringList directories, ctkDICOMBrowser::ImportDirectoryMode mode = ImportDirectoryAddLink);
161
167 void importDirectory(QString directory, ctkDICOMBrowser::ImportDirectoryMode mode = ImportDirectoryAddLink);
168
170 void onImportDirectory(QString directory, ctkDICOMBrowser::ImportDirectoryMode mode = ImportDirectoryAddLink);
171
174 void onPatientAdded(int, QString, QString, QString);
175 void onStudyAdded(QString);
176 void onSeriesAdded(QString);
177 void onInstanceAdded(QString);
178
179Q_SIGNALS:
181 void databaseDirectoryChanged(const QString&);
186
187protected:
188 QScopedPointer<ctkDICOMBrowserPrivate> d_ptr;
189
196 bool confirmDeleteSelectedUIDs(QStringList uids);
197
198protected Q_SLOTS:
199
206 void onImportDirectoriesSelected(QStringList directories);
207
209
210 void onModelSelected(const QItemSelection&, const QItemSelection&);
211
213 void onPatientsRightClicked(const QPoint &point);
214
216 void onStudiesRightClicked(const QPoint &point);
217
219 void onSeriesRightClicked(const QPoint &point);
220
223 void exportSelectedSeries(QString dirPath, QStringList uids);
226 void exportSelectedStudies(QString dirPath, QStringList uids);
229 void exportSelectedPatients(QString dirPath, QStringList uids);
230
233
234private:
235 Q_DECLARE_PRIVATE(ctkDICOMBrowser);
236 Q_DISABLE_COPY(ctkDICOMBrowser);
237};
238
240
241#endif
The DICOM browser widget provides an interface to organize DICOM data stored in a local ctkDICOMDatab...
void importDirectory(QString directory, ctkDICOMBrowser::ImportDirectoryMode mode=ImportDirectoryAddLink)
Import a directory.
int patientsAddedDuringImport()
Accessors to status of last directory import operation.
void onRemoveAction()
void databaseDirectoryChanged(const QString &)
Emited when directory is changed.
Q_INVOKABLE ctkDICOMTableManager * dicomTableManager()
void queryRetrieveFinished()
Emited when query/retrieve operation has happened.
void onStudyAdded(QString)
void onImportDirectoriesSelected(QStringList directories)
Import directories.
void onTablesDensityComboBox(QString)
void onPatientAdded(int, QString, QString, QString)
Q_INVOKABLE ctkDICOMDatabase * database()
void importDirectories(QStringList directories, ctkDICOMBrowser::ImportDirectoryMode mode=ImportDirectoryAddLink)
Import directories.
void onImportDirectory(QString directory, ctkDICOMBrowser::ImportDirectoryMode mode=ImportDirectoryAddLink)
QString databaseDirectory() const
Directory being used to store the dicom database.
void setDisplayImportSummary(bool)
bool displayImportSummary()
Q_INVOKABLE ctkFileDialog * importDialog() const
Return instance of import dialog.
void directoryImported()
Emited when the directory import operation has completed.
void onFileIndexed(const QString &filePath)
void onQueryRetrieveFinished()
To be called when dialog finishes.
void setDatabaseDirectory(const QString &directory)
void exportSelectedPatients(QString dirPath, QStringList uids)
bool confirmDeleteSelectedUIDs(QStringList uids)
const QStringList tagsToPrecache()
Q_INVOKABLE void updateDatabaseSchemaIfNeeded()
void onImportDirectoryComboBoxCurrentIndexChanged(int index)
int studiesAddedDuringImport()
void onPatientsRightClicked(const QPoint &point)
Called when a right mouse click is made in the patients table.
void onStudiesRightClicked(const QPoint &point)
Called when a right mouse click is made in the studies table.
virtual ~ctkDICOMBrowser()
void setImportDirectoryMode(ctkDICOMBrowser::ImportDirectoryMode mode)
Set value of ImportDirectoryMode settings.
ctkDICOMBrowser::ImportDirectoryMode importDirectoryMode() const
Get value of ImportDirectoryMode settings.
void openQueryDialog()
static Q_INVOKABLE QString databaseDirectorySettingsKey()
Return settings key used to store the directory.
void openImportDialog()
Pop-up file dialog allowing to select and import one or multiple DICOM directories.
ctkDICOMBrowser Self
void onModelSelected(const QItemSelection &, const QItemSelection &)
void onSeriesRightClicked(const QPoint &point)
Called when a right mouse click is made in the series table.
void onRepairAction()
void setTagsToPrecache(const QStringList tags)
QScopedPointer< ctkDICOMBrowserPrivate > d_ptr
int instancesAddedDuringImport()
ctkDICOMBrowser(QWidget *parent=0)
void onInstanceAdded(QString)
void onSeriesAdded(QString)
void exportSelectedStudies(QString dirPath, QStringList uids)
void exportSelectedSeries(QString dirPath, QStringList uids)
int seriesAddedDuringImport()
void openExportDialog()
Q_DECLARE_METATYPE(ctkDICOMPersonName)