]> Creatis software - clitk.git/blob - vv/vvQPacsConnection.h
Add patient ID and patient name search available.
[clitk.git] / vv / vvQPacsConnection.h
1 #ifndef __vvQPacsConnection_h_INCLUDED__
2 #define __vvQPacsConnection_h_INCLUDED__
3
4 #include <QTGUI/QWidget>
5 #include "ui_vvPacsConnection.h"
6 #include "gdcmCompositeNetworkFunctions.h"
7 #include <QtGui/QStandardItemModel.h>
8 #include <QtGui/QStringListModel.h>
9 #include <QFileDialog>
10 #include "vvDicomServerQueryFactory.h"
11
12   /**
13    * \ingroup GUI
14    */
15   //=====================================================================
16  //======================================================================
17   class vvQPacsConnection : public QDialog 
18   {
19           Q_OBJECT
20   public:
21           //vvQPacsConnection(){}    
22           vvQPacsConnection(QWidget *parent=0);
23     
24           ~vvQPacsConnection(){}
25         void refreshNetworks();
26         std::vector <std::string> getFileNames();
27
28 public slots:
29         void selectStudies(const QModelIndex &index);
30         void selectSeries(const QModelIndex &index);
31         void selectImages(const QModelIndex &index);
32   private slots:
33     void on_scanButton_clicked();
34         void on_clearButton_clicked();
35         void on_optionsButton_clicked();
36         void on_check_ModAll_clicked(bool state);
37         void on_importButton_clicked();
38  void chooseServer(int index);
39  void removeServer();
40  void modifyServer();
41
42   private :
43           Ui::vvPacsConnection ui;
44         std::vector< std::pair<gdcm::Tag, std::string> > getKeys();
45         std::vector< std::pair<gdcm::Tag, std::string> > getPatientKeys(const std::string , const std::string );
46         std::vector< std::pair<gdcm::Tag, std::string> > getStudyKeys(const std::string);
47         std::vector< std::pair<gdcm::Tag, std::string> > getSeriesKeys(const std::string i_val);
48         std::vector< std::pair<gdcm::Tag, std::string> > getImageKeys(const std::string i_val);
49         void manageStudiesFilter(bool i_enable);
50         void createTreeView();
51         void cleanTree();
52         void setNewPacs();
53         QStandardItemModel *Patientmodel;
54         QStandardItemModel *Studymodel;
55         QStandardItemModel *Seriesmodel;
56         QStandardItemModel *Imagesmodel;
57         void convertDataSet(std::vector<gdcm::DataSet> i_ds, QStandardItemModel *i_model, std::vector< std::pair<gdcm::Tag, std::string> > keys);
58         void manageSeriesFilter(bool i_enable);
59         std::vector< std::pair<gdcm::Tag, std::string> > fillMoveKeys();
60         std::string m_patient;
61         std::string m_study;
62         std::string m_series;
63         gdcm::EQueryLevel m_level;
64         std::string m_port;
65         std::string m_aetitle;
66         std::string m_adress;
67         std::string m_nickname;
68         vvDicomServerQueryFactory mquery;
69         gdcm::SmartPointer<gdcm::BaseRootQuery> m_query;
70          gdcm::Directory::FilenamesType m_files;
71         
72   }; // class vvQPacsConnection
73   //=====================================================================
74
75   
76
77 #endif // __vvQPacsConnection_h_INCLUDED__
78
79