Mercurial > hg > orthanc
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 } } }