# HG changeset patch # User Sebastien Jodogne # Date 1720269826 -7200 # Node ID 74f3aab95886890067294e31b14ac4be43767d7d # Parent ebcbb448bea87635e09becc15fc0e434887a7c73 simplification diff -r ebcbb448bea8 -r 74f3aab95886 OrthancServer/Sources/Database/Compatibility/GenericFind.cpp --- a/OrthancServer/Sources/Database/Compatibility/GenericFind.cpp Sat Jul 06 14:31:22 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/GenericFind.cpp Sat Jul 06 14:43:46 2024 +0200 @@ -546,14 +546,6 @@ } } - for (std::set::const_iterator it = request.GetRetrieveChildrenMetadata().begin(); - it != request.GetRetrieveChildrenMetadata().end(); ++it) - { - std::list values; - transaction_.GetChildrenMetadata(values, internalId, *it); - resource->AddChildrenMetadata(*it, values); - } - if (request.IsRetrieveOneInstanceIdentifier() && !request.GetChildrenRetrieveSpecification(ResourceType_Instance).IsRetrieveIdentifiers()) { diff -r ebcbb448bea8 -r 74f3aab95886 OrthancServer/Sources/Database/FindRequest.cpp --- a/OrthancServer/Sources/Database/FindRequest.cpp Sat Jul 06 14:31:22 2024 +0200 +++ b/OrthancServer/Sources/Database/FindRequest.cpp Sat Jul 06 14:43:46 2024 +0200 @@ -293,19 +293,6 @@ } - void FindRequest::AddRetrieveChildrenMetadata(MetadataType metadata) - { - if (IsRetrieveChildrenMetadata(metadata)) - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } - else - { - retrieveChildrenMetadata_.insert(metadata); - } - } - - void FindRequest::SetRetrieveOneInstanceIdentifier(bool retrieve) { if (level_ == ResourceType_Instance) diff -r ebcbb448bea8 -r 74f3aab95886 OrthancServer/Sources/Database/FindRequest.h --- a/OrthancServer/Sources/Database/FindRequest.h Sat Jul 06 14:31:22 2024 +0200 +++ b/OrthancServer/Sources/Database/FindRequest.h Sat Jul 06 14:43:46 2024 +0200 @@ -269,7 +269,6 @@ ChildrenRetrieveSpecification retrieveChildrenStudies_; ChildrenRetrieveSpecification retrieveChildrenSeries_; ChildrenRetrieveSpecification retrieveChildrenInstances_; - std::set retrieveChildrenMetadata_; bool retrieveOneInstanceIdentifier_; std::unique_ptr mainDicomTagsRegistry_; @@ -411,18 +410,6 @@ return const_cast(*this).GetChildrenRetrieveSpecification(level); } - void AddRetrieveChildrenMetadata(MetadataType metadata); - - bool IsRetrieveChildrenMetadata(MetadataType metadata) const - { - return retrieveChildrenMetadata_.find(metadata) != retrieveChildrenMetadata_.end(); - } - - const std::set& GetRetrieveChildrenMetadata() const - { - return retrieveChildrenMetadata_; - } - void SetRetrieveOneInstanceIdentifier(bool retrieve); bool IsRetrieveOneInstanceIdentifier() const diff -r ebcbb448bea8 -r 74f3aab95886 OrthancServer/Sources/Database/FindResponse.cpp --- a/OrthancServer/Sources/Database/FindResponse.cpp Sat Jul 06 14:31:22 2024 +0200 +++ b/OrthancServer/Sources/Database/FindResponse.cpp Sat Jul 06 14:43:46 2024 +0200 @@ -377,16 +377,6 @@ } - FindResponse::Resource::~Resource() - { - for (ChildrenMetadata::iterator it = childrenMetadata_.begin(); it != childrenMetadata_.end(); ++it) - { - assert(it->second != NULL); - delete it->second; - } - } - - void FindResponse::Resource::SetParentIdentifier(const std::string& id) { if (level_ == ResourceType_Patient) @@ -475,37 +465,6 @@ } - void FindResponse::Resource::AddChildrenMetadata(MetadataType metadata, - const std::list& values) - { - if (childrenMetadata_.find(metadata) == childrenMetadata_.end()) - { - childrenMetadata_[metadata] = new std::list(values); - } - else - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } - } - - - bool FindResponse::Resource::LookupChildrenMetadata(std::list& values, - MetadataType metadata) const - { - ChildrenMetadata::const_iterator found = childrenMetadata_.find(metadata); - if (found == childrenMetadata_.end()) - { - return false; - } - else - { - assert(found->second != NULL); - values = *found->second; - return true; - } - } - - const std::string& FindResponse::Resource::GetOneInstanceIdentifier() const { const std::set& instances = GetChildrenInformation(ResourceType_Instance).GetIdentifiers(); @@ -657,25 +616,6 @@ target["Attachments"] = v; } - for (std::set::const_iterator it = request.GetRetrieveChildrenMetadata().begin(); - it != request.GetRetrieveChildrenMetadata().end(); ++it) - { - std::list l; - if (LookupChildrenMetadata(l, *it)) - { - Json::Value v = Json::arrayValue; - for (std::list::const_iterator it2 = l.begin(); it2 != l.end(); ++it2) - { - v.append(*it2); - } - target["ChildrenMetadata"][EnumerationToString(*it)] = v; - } - else - { - throw OrthancException(ErrorCode_DatabasePlugin); - } - } - if (request.IsRetrieveOneInstanceIdentifier()) { target["OneInstance"] = GetOneInstanceIdentifier(); diff -r ebcbb448bea8 -r 74f3aab95886 OrthancServer/Sources/Database/FindResponse.h --- a/OrthancServer/Sources/Database/FindResponse.h Sat Jul 06 14:31:22 2024 +0200 +++ b/OrthancServer/Sources/Database/FindResponse.h Sat Jul 06 14:43:46 2024 +0200 @@ -123,7 +123,6 @@ ChildrenInformation childrenInstancesInformation_; std::set labels_; std::map attachments_; - ChildrenMetadata childrenMetadata_; // TODO-FIND: REMOVE MainDicomTagsAtLevel& GetMainDicomTagsAtLevel(ResourceType level); @@ -149,8 +148,6 @@ { } - ~Resource(); - ResourceType GetLevel() const { return level_; @@ -269,14 +266,6 @@ return attachments_; } - // TODO-FIND: REMOVE - void AddChildrenMetadata(MetadataType metadata, - const std::list& values); - - // TODO-FIND: REMOVE - bool LookupChildrenMetadata(std::list& values, - MetadataType metadata) const; - const std::string& GetOneInstanceIdentifier() const; bool HasOneInstanceIdentifier() const diff -r ebcbb448bea8 -r 74f3aab95886 OrthancServer/Sources/ResourceFinder.cpp --- a/OrthancServer/Sources/ResourceFinder.cpp Sat Jul 06 14:31:22 2024 +0200 +++ b/OrthancServer/Sources/ResourceFinder.cpp Sat Jul 06 14:43:46 2024 +0200 @@ -132,15 +132,12 @@ return SeriesStatus_Unknown; } - std::list values; - if (!resource.LookupChildrenMetadata(values, MetadataType_Instance_IndexInSeries)) - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } + std::set values; + resource.GetChildrenMetadataValues(values, ResourceType_Instance, MetadataType_Instance_IndexInSeries); std::set instances; - for (std::list::const_iterator + for (std::set::const_iterator it = values.begin(); it != values.end(); ++it) { int64_t index; @@ -438,7 +435,7 @@ break; case ResourceType_Series: - request_.AddRetrieveChildrenMetadata(MetadataType_Instance_IndexInSeries); // required for the SeriesStatus + request_.GetChildrenRetrieveSpecification(ResourceType_Instance).AddMetadata(MetadataType_Instance_IndexInSeries); // required for the SeriesStatus request_.GetChildrenRetrieveSpecification(ResourceType_Instance).SetRetrieveIdentifiers(true); request_.SetRetrieveParentIdentifier(true); break;