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 
30 class ctkDICOMBrowserPrivate;
31 class ctkDICOMDatabase;
33 class ctkFileDialog;
34 class ctkThumbnailLabel;
35 class QMenu;
36 class QModelIndex;
37 
55 class 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 
68 public:
70 
71  typedef QWidget Superclass;
72  explicit ctkDICOMBrowser(QWidget* parent=0);
73  virtual ~ctkDICOMBrowser();
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 
124 public Q_SLOTS:
125 
133 
134  void setDatabaseDirectory(const QString& directory);
135  void onFileIndexed(const QString& filePath);
136 
145 
150 
151  void onTablesDensityComboBox(QString);
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 
179 Q_SIGNALS:
181  void databaseDirectoryChanged(const QString&);
186 
187 protected:
188  QScopedPointer<ctkDICOMBrowserPrivate> d_ptr;
189 
196  bool confirmDeleteSelectedUIDs(QStringList uids);
197 
198 protected 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 
234 private:
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.
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)
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()
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)
Q_INVOKABLE ctkDICOMDatabase * database()
void exportSelectedPatients(QString dirPath, QStringList uids)
bool confirmDeleteSelectedUIDs(QStringList uids)
const QStringList tagsToPrecache()
Q_INVOKABLE void updateDatabaseSchemaIfNeeded()
void onImportDirectoryComboBoxCurrentIndexChanged(int index)
int studiesAddedDuringImport()
Q_INVOKABLE ctkFileDialog * importDialog() const
Return instance of import dialog.
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()
Q_INVOKABLE ctkDICOMTableManager * dicomTableManager()
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)