diff Core/DicomNetworking/DicomUserConnection.cpp @ 3370:872bd3b6ec72

"/modalities/{id}/query": New argument "Normalize"
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 14 May 2019 10:30:43 +0200
parents 20b38a533254
children cf31b5bacce3
line wrap: on
line diff
--- a/Core/DicomNetworking/DicomUserConnection.cpp	Tue May 14 10:03:11 2019 +0200
+++ b/Core/DicomNetworking/DicomUserConnection.cpp	Tue May 14 10:30:43 2019 +0200
@@ -482,9 +482,9 @@
   }
 
 
-  static void FixFindQuery(DicomMap& fixedQuery,
-                           ResourceType level,
-                           const DicomMap& fields)
+  static void NormalizeFindQuery(DicomMap& fixedQuery,
+                                 ResourceType level,
+                                 const DicomMap& fields)
   {
     std::set<DicomTag> allowedTags;
 
@@ -657,24 +657,25 @@
 
   void DicomUserConnection::Find(DicomFindAnswers& result,
                                  ResourceType level,
-                                 const DicomMap& originalFields)
+                                 const DicomMap& originalFields,
+                                 bool normalize)
   {
     CheckIsOpen();
 
     std::auto_ptr<ParsedDicomFile> query;
 
-    if (0)
+    if (normalize)
+    {
+      DicomMap fields;
+      NormalizeFindQuery(fields, level, originalFields);
+      query.reset(ConvertQueryFields(fields, manufacturer_));
+    }
+    else
     {
       query.reset(new ParsedDicomFile(originalFields,
                                       GetDefaultDicomEncoding(),
                                       false /* be strict */));
     }
-    else
-    {
-      DicomMap fields;
-      FixFindQuery(fields, level, originalFields);
-      query.reset(ConvertQueryFields(fields, manufacturer_));
-    }
     
     DcmDataset* dataset = query->GetDcmtkObject().getDataset();