浏览代码

Further infrastructure for query/retrieve through gui

Add widgets to specify where the selected images should be
moved to and on what port.  The server on the other end
also needs to be configured to allow this send to take place.
Steve Pieper 14 年之前
父节点
当前提交
2a9943994f

+ 19 - 2
Libs/DICOM/Widgets/ctkDICOMQueryRetrieveWidget.cpp

@@ -148,6 +148,8 @@ void ctkDICOMQueryRetrieveWidget::processRetrieve()
 {
 {
   Q_D(ctkDICOMQueryRetrieveWidget);
   Q_D(ctkDICOMQueryRetrieveWidget);
 
 
+  QMap<QString,QVariant> serverParameters = d->ServerNodeWidget->parameters();
+
   foreach( QString studyUID, d->queriesByStudyUID.keys() )
   foreach( QString studyUID, d->queriesByStudyUID.keys() )
   {
   {
     logger.debug("need to retrieve " + studyUID + " from " + d->queriesByStudyUID[studyUID]->host());
     logger.debug("need to retrieve " + studyUID + " from " + d->queriesByStudyUID[studyUID]->host());
@@ -156,8 +158,23 @@ void ctkDICOMQueryRetrieveWidget::processRetrieve()
     d->retrievalsByStudyUID[studyUID] = retrieve;
     d->retrievalsByStudyUID[studyUID] = retrieve;
     retrieve->setCallingAETitle( query->callingAETitle() );
     retrieve->setCallingAETitle( query->callingAETitle() );
     retrieve->setCalledAETitle( query->calledAETitle() );
     retrieve->setCalledAETitle( query->calledAETitle() );
-    retrieve->setHost( query->host() );
-    //retrieve->setCallingPort( query->port() );
     retrieve->setCalledPort( query->port() );
     retrieve->setCalledPort( query->port() );
+    retrieve->setHost( query->host() );
+
+    // pull from GUI
+    retrieve->setMoveDestinationAETitle( serverParameters["StorageAETitle"].toString() );
+    retrieve->setCallingPort( serverParameters["StoragePort"].toInt() );
+
+    logger.info ( "Starting to retrieve" );
+    try
+      {
+      retrieve->retrieveStudy ( studyUID, QDir("/tmp/ctk") );
+      }
+    catch (std::exception e)
+      {
+      logger.error ( "Retrieve failed" );
+      return;
+      }
+    logger.info ( "Retrieve success" );
   }
   }
 }
 }

+ 16 - 0
Libs/DICOM/Widgets/ctkDICOMServerNodeWidget.cpp

@@ -218,6 +218,20 @@ QString ctkDICOMServerNodeWidget::callingAETitle()
 }
 }
 
 
 //----------------------------------------------------------------------------
 //----------------------------------------------------------------------------
+QMap<QString,QVariant> ctkDICOMServerNodeWidget::parameters()
+{
+  Q_D(ctkDICOMServerNodeWidget);
+
+  QMap<QString, QVariant> parameters;
+
+  parameters["CallingAETitle"] = d->CallingAETitle->text();
+  parameters["StorageAETitle"] = d->StorageAETitle->text();
+  parameters["StoragePort"] = d->StoragePort->text();
+
+  return parameters;
+}
+
+//----------------------------------------------------------------------------
 QStringList ctkDICOMServerNodeWidget::nodes()
 QStringList ctkDICOMServerNodeWidget::nodes()
 {
 {
   Q_D(ctkDICOMServerNodeWidget);
   Q_D(ctkDICOMServerNodeWidget);
@@ -237,6 +251,7 @@ QMap<QString, QVariant> ctkDICOMServerNodeWidget::nodeParameters(QString &node)
   Q_D(ctkDICOMServerNodeWidget);
   Q_D(ctkDICOMServerNodeWidget);
 
 
   QMap<QString, QVariant> parameters;
   QMap<QString, QVariant> parameters;
+
   int count = d->NodeTable->rowCount();
   int count = d->NodeTable->rowCount();
   QStringList keys;
   QStringList keys;
   keys << "Name" << "AETitle" << "Address" << "Port";
   keys << "Name" << "AETitle" << "Address" << "Port";
@@ -254,5 +269,6 @@ QMap<QString, QVariant> ctkDICOMServerNodeWidget::nodeParameters(QString &node)
       }
       }
     }
     }
   }
   }
+
   return parameters;
   return parameters;
 }
 }

+ 1 - 0
Libs/DICOM/Widgets/ctkDICOMServerNodeWidget.h

@@ -41,6 +41,7 @@ public:
   virtual ~ctkDICOMServerNodeWidget();
   virtual ~ctkDICOMServerNodeWidget();
 
 
   QString callingAETitle();
   QString callingAETitle();
+  QMap<QString,QVariant> parameters();
   QStringList nodes();
   QStringList nodes();
   QMap<QString,QVariant> nodeParameters(QString &node);
   QMap<QString,QVariant> nodeParameters(QString &node);