Browse Source

Enable dicom query on date ranges

Steve Pieper 14 years ago
parent
commit
a674e7a2ad
2 changed files with 17 additions and 0 deletions
  1. 9 0
      Libs/DICOM/Core/ctkDICOMQuery.cpp
  2. 8 0
      Libs/DICOM/Widgets/ctkDICOMQueryWidget.cpp

+ 9 - 0
Libs/DICOM/Core/ctkDICOMQuery.cpp

@@ -302,6 +302,15 @@ void ctkDICOMQuery::query(ctkDICOMDatabase& database )
     }
   }
 
+  if ( d->Filters.keys().contains("StartDate") && d->Filters.keys().contains("EndDate") )
+  {
+    QString dateRange = d->Filters["StartDate"].toString() + 
+                          QString("-") + 
+                              d->Filters["EndDate"].toString();
+    d->query->putAndInsertString ( DCM_StudyDate, dateRange.toAscii().data() );
+    logger.debug("Query on study time " + dateRange);
+  }
+
   emit progress(30);
 
   FINDResponses *responses = new FINDResponses();

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

@@ -55,5 +55,13 @@ QMap<QString,QVariant> ctkDICOMQueryWidget::parameters()
     parameters["Modalities"] = d->ModalityWidget->selectedModalities();
   }
 
+  if ( !d->DateRangeWidget->isAnyDate() )
+  {
+    QDate startDate = d->DateRangeWidget->startDateTime().date();
+    QDate endDate = d->DateRangeWidget->endDateTime().date();
+    parameters["StartDate"] = startDate.toString("yyyyMMdd");
+    parameters["EndDate"] = endDate.toString("yyyyMMdd");
+  }
+
   return parameters;
 }