소스 검색

Add filtering by modality

Seems to work against dcm4chee servers, but not against conquest.
Steve Pieper 14 년 전
부모
커밋
079c7e723e
1개의 변경된 파일12개의 추가작업 그리고 0개의 파일을 삭제
  1. 12 0
      Libs/DICOM/Core/ctkDICOMQuery.cpp

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

@@ -250,6 +250,18 @@ void ctkDICOMQuery::query(ctkDICOMDatabase& database )
       d->query->putAndInsertString( DCM_PatientID,
         (QString("*") + d->Filters[key].toString() + QString("*")).toAscii().data());
     }
+    if ( key == QString("Modalities") )
+    {
+      // make the filter be an "OR" of modalities using backslash (dicom-style)
+      QString modalitySearch("");
+      foreach (QString modality, d->Filters[key].toStringList())
+      {
+        modalitySearch += modality + QString("\\");
+      }
+      modalitySearch.chop(1); // remove final backslash
+      logger.debug("modalitySearch " + modalitySearch);
+      d->query->putAndInsertString( DCM_ModalitiesInStudy, modalitySearch.toAscii().data() );
+    }
   }
 
   FINDResponses *responses = new FINDResponses();