Browse Source

Add support for filtered queries

Have the ctkDICOMQueryWidget expose the parameters of the query
and have the ctkDICOMQuery use them as part of the dicom
transaction.
Steve Pieper 14 years ago
parent
commit
ed686fe898

+ 4 - 4
Libs/DICOM/Widgets/ctkDICOMQueryRetrieveWidget.cpp

@@ -93,15 +93,15 @@ void ctkDICOMQueryRetrieveWidget::processQuery()
     QMap<QString, QVariant> parameters = d->ServerNodeWidget->nodeParameters(server);
     if ( parameters["CheckState"] == Qt::Checked )
     {
+      // create a query for the current server
       d->queries[server] = new ctkDICOMQuery;
       d->queries[server]->setCallingAETitle(d->ServerNodeWidget->callingAETitle());
       d->queries[server]->setCalledAETitle(parameters["AETitle"].toString());
       d->queries[server]->setHost(parameters["Address"].toString());
       d->queries[server]->setPort(parameters["Port"].toInt());
-      // TODO: add interface to ctkDICOMQuery for specifying query params
-      // for now, query for everything
 
-      //d->queries[server]->setFilters( d->
+      // populate the query with the current search options
+      d->queries[server]->setFilters( d->QueryWidget->parameters() );
 
       try
       {
@@ -115,7 +115,7 @@ void ctkDICOMQueryRetrieveWidget::processQuery()
     }
   }
 
-  // checkable headers.
+  // checkable headers - allow user to select the patient/studies to retrieve
   d->results->setModel(&d->model);
   d->model.setHeaderData(0, Qt::Horizontal, Qt::Unchecked, Qt::CheckStateRole);
   QHeaderView* previousHeaderView = d->results->header();

+ 2 - 0
Libs/DICOM/Widgets/ctkDICOMQueryWidget.cpp

@@ -48,5 +48,7 @@ QMap<QString,QVariant> ctkDICOMQueryWidget::parameters()
   parameters["Series"] = d->SeriesSearch->text();
   parameters["ID"] = d->IdSearch->text();
 
+  parameters["Modalities"] = d->ModalityWidget->selectedModalities();
+
   return parameters;
 }