瀏覽代碼

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 年之前
父節點
當前提交
ed686fe898
共有 2 個文件被更改,包括 6 次插入4 次删除
  1. 4 4
      Libs/DICOM/Widgets/ctkDICOMQueryRetrieveWidget.cpp
  2. 2 0
      Libs/DICOM/Widgets/ctkDICOMQueryWidget.cpp

+ 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;
 }