Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
QmitkDicomImportWidget.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef QmitkDicomImportWidget_h
14 #define QmitkDicomImportWidget_h
15 
16 #include <MitkDICOMUIExports.h>
17 
18 #include <QWidget>
19 #include <memory>
20 
21 class ctkFileDialog;
22 class ctkDICOMDatabase;
23 class ctkDICOMIndexer;
24 
25 class QProgressDialog;
26 class QTemporaryFile;
27 
28 namespace Ui
29 {
31 }
32 
45 {
46  Q_OBJECT
47 
48 public:
53  explicit QmitkDicomImportWidget(QWidget* parent = nullptr);
54 
57 
58 signals:
59 
64  void Import(const QStringList& files);
65 
71  void ViewSeries(const std::vector<std::pair<std::string, std::optional<std::string>>>& series);
72 
73 private slots:
74  void OnAddToLocalStorageButtonClicked();
75  void OnImport(const QString& directory);
76  void OnIndexingComplete(int, int, int, int);
77  void OnProgress(int value);
78  void OnProgressDetail(const QString& detail);
79  void OnProgressStep(const QString& step);
80  void OnAnySelectionChanged();
81  void OnViewButtonClicked();
82 
83 private:
84  void showEvent(QShowEvent* event) override;
85 
86  QStringList GetFileNamesFromSelection();
87  void SetupProgressDialog();
88 
89  bool OpenDatabase();
90  void CloseDatabase();
91 
92  QTemporaryFile* m_DatabaseFile;
93  ctkDICOMDatabase* m_Database;
94  ctkDICOMIndexer* m_Indexer;
95  ctkFileDialog* m_ImportDialog;
96  QProgressDialog* m_ProgressDialog;
97  QString m_ProgressStep;
98 
99  std::unique_ptr<Ui::QmitkDicomImportWidget> m_Ui;
100 };
101 
102 #endif
#define MITKDICOMUI_EXPORT
Widget for browsing and importing DICOM data from the filesystem.
void ViewSeries(const std::vector< std::pair< std::string, std::optional< std::string >>> &series)
Emitted when the View button is clicked to load selected series.
void Import(const QStringList &files)
Emitted when a request is made to import DICOM data into local storage.
~QmitkDicomImportWidget() override
Destructor. Closes the temporary database.
QmitkDicomImportWidget(QWidget *parent=nullptr)
Constructor.