diff OrthancServer/DicomProtocol/DicomUserConnection.cpp @ 2319:ae6245053bcf

made some manufacturer obsolete: MedInria (that was not used), Syngovia & AgfaImpax (replaced by GenericNoWildcardInDates) + added 'GenericNoWildcards'
author amazy
date Thu, 13 Jul 2017 12:37:55 +0200
parents a3a65de1840f
children 174c3616ab6d
line wrap: on
line diff
--- a/OrthancServer/DicomProtocol/DicomUserConnection.cpp	Thu Jul 13 11:42:14 2017 +0200
+++ b/OrthancServer/DicomProtocol/DicomUserConnection.cpp	Thu Jul 13 12:37:55 2017 +0200
@@ -484,27 +484,29 @@
   static ParsedDicomFile* ConvertQueryFields(const DicomMap& fields,
                                              ModalityManufacturer manufacturer)
   {
+    // Fix outgoing C-Find requests
+    // issue for Syngo.Via and its solution was reported by
+    // Emsy Chan by private mail on 2015-06-17. According to
+    // Robert van Ommen (2015-11-30), the same fix is required for
+    // Agfa Impax.
+    // solutions was generalized for generic manufacturer since it seems to affect PhilipsADW, GEWAServer as well (check issue #31)
+
     switch (manufacturer)
     {
-      case ModalityManufacturer_AgfaImpax:
-      case ModalityManufacturer_SyngoVia:
+      case ModalityManufacturer_GenericNoWildcardInDates:
+      case ModalityManufacturer_GenericNoWildcards:
       {
         std::auto_ptr<DicomMap> fix(fields.Clone());
 
-        // This issue for Syngo.Via and its solution was reported by
-        // Emsy Chan by private mail on 2015-06-17. According to
-        // Robert van Ommen (2015-11-30), the same fix is required for
-        // Agfa Impax.
         std::set<DicomTag> tags;
         fix->GetTags(tags);
 
         for (std::set<DicomTag>::const_iterator it = tags.begin(); it != tags.end(); ++it)
         {
-          if (FromDcmtkBridge::LookupValueRepresentation(*it) == ValueRepresentation_Date)
+          // Replace a "*" query by an empty query ("") for "date" or "all" value representations depending on the manufacturer.
+          if ((manufacturer == ModalityManufacturer_GenericNoWildcards)
+              || (manufacturer == ModalityManufacturer_GenericNoWildcardInDates && FromDcmtkBridge::LookupValueRepresentation(*it) == ValueRepresentation_Date))
           {
-            // Replace a "*" query by an empty query ("") for "date"
-            // value representations. Necessary to search over dates
-            // in Syngo.Via.
             const DicomValue* value = fix->TestAndGetValue(*it);
 
             if (value != NULL &&