Explorar o código

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 %!s(int64=14) %!d(string=hai) anos
pai
achega
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;
 }