diff OrthancServer/Sources/Database/Compatibility/GenericFind.cpp @ 5565:def06a42e5ef find-refactoring

Updated FindRequest & FindResponse definitions
author Alain Mazy <am@orthanc.team>
date Tue, 23 Apr 2024 13:07:38 +0200
parents 12d8a1a266e9
children f3562c1a150d
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/Compatibility/GenericFind.cpp	Mon Apr 15 16:13:24 2024 +0200
+++ b/OrthancServer/Sources/Database/Compatibility/GenericFind.cpp	Tue Apr 23 13:07:38 2024 +0200
@@ -32,13 +32,12 @@
     void GenericFind::Execute(FindResponse& response,
                               const FindRequest& request)
     {
-      if (request.GetResponseType() == FindRequest::ResponseType_OrthancIdentifiers &&
+      if (request.GetResponseContent() == FindRequest::ResponseContent_IdentifiersOnly &&
           !request.GetOrthancIdentifiers().HasPatientId() &&
           !request.GetOrthancIdentifiers().HasStudyId() &&
           !request.GetOrthancIdentifiers().HasSeriesId() &&
           !request.GetOrthancIdentifiers().HasInstanceId() &&
           request.GetTagConstraintsCount() == 0 &&
-          request.GetMetadataMode() == FindRequest::MetadataMode_None &&
           !request.IsRetrieveTagsAtLevel(ResourceType_Patient) &&
           !request.IsRetrieveTagsAtLevel(ResourceType_Study) &&
           !request.IsRetrieveTagsAtLevel(ResourceType_Series) &&
@@ -63,7 +62,9 @@
           OrthancIdentifiers identifiers;
           identifiers.SetLevel(request.GetLevel(), *it);
 
-          response.Add(new FindResponse::Item(request.GetLevel(), identifiers));
+          response.Add(new FindResponse::Item(request.GetResponseContent(),
+                                              request.GetLevel(), 
+                                              identifiers));
         }
       }
       else
@@ -85,21 +86,13 @@
           throw OrthancException(ErrorCode_InternalError);
         }
 
-        switch (request.GetResponseType())
+        if (request.HasResponseContent(FindRequest::ResponseContent_MainDicomTags)
+            && !item.HasDicomMap())
         {
-          case FindRequest::ResponseType_OrthancIdentifiers:
-            break;
+          throw OrthancException(ErrorCode_InternalError);
+        }
 
-          case FindRequest::ResponseType_DicomMap:
-            if (!item.HasDicomMap())
-            {
-              throw OrthancException(ErrorCode_InternalError);
-            }
-            break;
-
-          default:
-            throw OrthancException(ErrorCode_NotImplemented);
-        }
+        // TODO: other sanity checks
       }
     }
   }