]> Creatis software - clitk.git/commitdiff
add move a single image
authorcervenansky <frederic.cervenansky@creatis.insa-lyon.fr>
Wed, 17 Jul 2013 14:26:11 +0000 (16:26 +0200)
committercervenansky <frederic.cervenansky@creatis.insa-lyon.fr>
Wed, 17 Jul 2013 14:26:11 +0000 (16:26 +0200)
vv/vvDicomServerQueryFactory.cxx
vv/vvDicomServerQueryFactory.h
vv/vvQPacsConnection.cxx
vv/vvQPacsConnection.h

index 9ae656f8c5e7133d5f4bda3e8c9d18533fc29d21..1e31f241e6122c9c2ce4579ce33217e564a439b9 100644 (file)
@@ -15,7 +15,7 @@ vvQuery vvDicomServerQueryFactory::getQueryforStudy(const  std::string patient_i
        query.keys = getQueryKeysforStudy( patient_id, bdisplay);
        query.theRoot = gdcm::ePatientRootType;
        query.theLevel = gdcm::eStudy;
-       m_query = query;
+       m_query = getQueryPatient("",patient_id);
        return query;
 }
 
@@ -133,10 +133,43 @@ std::vector< std::pair<gdcm::Tag, std::string> > vvDicomServerQueryFactory::getS
 
        if(!bdisplay)
        {
+               //Patient UID
+               keys.push_back(std::make_pair(gdcm::Tag (0x0010,0x0020), patient_id));
+
+               //Study UID
+               keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000d), study_id));
                // Study Instance UID
                gdcm::Tag tagsid(0x0020,0x1209);
-               keys.push_back(std::make_pair(tagsid, study_id));
+       //      keys.push_back(std::make_pair(tagsid, study_id));
        }
 
+       return keys;
+}
+
+void vvDicomServerQueryFactory::setQueryforImage(const std::string patient_id, const std::string study_id, const std::string series_id,const std::string image_id)
+{
+       vvQuery query;
+       query.theRoot = gdcm::ePatientRootType;
+       query.theLevel = gdcm::eImage;
+       query.keys = getQueryKeysforImage(patient_id, study_id, series_id, image_id);
+       m_query = query;
+}
+
+std::vector< std::pair<gdcm::Tag, std::string> > vvDicomServerQueryFactory::getQueryKeysforImage(const std::string patient_id, const std::string study_id, const std::string series_id,const std::string image_id)
+{
+
+       std::vector< std::pair<gdcm::Tag, std::string> > keys;
+
+               //Patient UID
+               keys.push_back(std::make_pair(gdcm::Tag (0x0010,0x0020), patient_id));
+
+               //Study UID
+               keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000d), study_id));
+       
+               //Series UID
+               keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000e), series_id));
+       
+       //SOP Instance UID
+       keys.push_back(std::make_pair(gdcm::Tag(0x0008,0x0018), image_id));
        return keys;
 }
\ No newline at end of file
index b5c86db2474fa871553ca0e5fe8a39699b3f9b7c..1b2f19cc38ed97a87797ae44efdbb690a234a101 100644 (file)
@@ -24,13 +24,15 @@ public:
         vvQuery getQueryforSeries(const std::string patient_id, const std::string study_id, bool bdisplay);
        vvQuery getQueryforStudy(const std::string patient_id, bool bdisplay);
         vvQuery getQueryPatient(const std::string i_patname, const std::string i_patid);
-
+        void setQueryforImage(const std::string patient_id,  const std::string study_id,const std::string series_id,const std::string image_id);
 
 
    std::vector< std::pair<gdcm::Tag, std::string> > getQueryKeysforStudy(const std::string patient_id, bool bdisplay);
        std::vector< std::pair<gdcm::Tag, std::string> > getPatientKeys(const std::string , const std::string );
        std::vector< std::pair<gdcm::Tag, std::string> > getSeriesKeys(const std::string patient_id, const std::string study_id, bool bdisplay);
        std::vector< std::pair<gdcm::Tag, std::string> > getQueryKeysforImages(const std::string patient_id, const std::string study_id, const std::string series_id,bool bdisplay);
+       std::vector< std::pair<gdcm::Tag, std::string> > getQueryKeysforImage(const std::string patient_id, const std::string study_id, const std::string series_id,const std::string image_id);
+
 
        vvQuery getMoveQuery() { return m_query;}
 
index ff768af6414ac32c4460f10d7aa97921ca375989..920876877e43f1cdf996abece4163803cee248ae 100644 (file)
@@ -169,7 +169,7 @@ void vvQPacsConnection::createTreeView()
        Seriesmodel->setHorizontalHeaderLabels(Serieslist);
        ui.seriesTreeView->setModel(Seriesmodel);
        connect(ui.seriesTreeView, SIGNAL(clicked(QModelIndex)), this, SLOT(selectImages(QModelIndex)));
-
+               connect(ui.imagesTreeView, SIGNAL(clicked(QModelIndex)), this, SLOT(selectImage(QModelIndex)));
        // Images Tree View
        Imagesmodel = new QStandardItemModel(0,1,this); 
        QStringList Imageslist;
@@ -223,6 +223,13 @@ void vvQPacsConnection::selectImages(const QModelIndex &index)
  
 }
 
+void vvQPacsConnection::selectImage(const QModelIndex &index)
+{
+       std::string _image = Imagesmodel->data(index.sibling(index.row(),1)).toString().toStdString();
+       mQFactory.setQueryforImage(m_patient,m_study, m_series, _image);
+       
+}
+
 
 std::vector<gdcm::DataSet> vvQPacsConnection::findQuery(vvQuery i_query)
 {
index 3e7ce48cda587550d45a2faed5a4c4480ab61592..e17c3b3b32a6284d4de729ce92f75a3575d2ae82 100644 (file)
@@ -32,6 +32,7 @@ public slots:
        void selectStudies(const QModelIndex &index);
        void selectSeries(const QModelIndex &index);
        void selectImages(const QModelIndex &index);
+       void selectImage(const QModelIndex &index);
   private slots:
     void on_scanButton_clicked();
        void on_clearButton_clicked();