Mercurial > hg > orthanc
diff OrthancServer/Sources/Database/FindResponse.h @ 5671:b4c97c51f9db find-refactoring
added FindResponse::Resource::ChildrenInformation
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 06 Jul 2024 13:57:14 +0200 |
parents | aa231c18b9d2 |
children | e300f22a46f0 |
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/FindResponse.h Sat Jul 06 01:04:25 2024 +0200 +++ b/OrthancServer/Sources/Database/FindResponse.h Sat Jul 06 13:57:14 2024 +0200 @@ -66,6 +66,20 @@ void Export(DicomMap& target) const; }; + class ChildrenInformation : public boost::noncopyable + { + private: + std::set<std::string> identifiers_; + + public: + void AddIdentifier(const std::string& identifier); + + const std::set<std::string>& GetIdentifiers() const + { + return identifiers_; + } + }; + public: class Resource : public boost::noncopyable @@ -85,9 +99,9 @@ std::map<MetadataType, std::string> metadataStudy_; std::map<MetadataType, std::string> metadataSeries_; std::map<MetadataType, std::string> metadataInstance_; - std::set<std::string> childrenStudiesIdentifiers_; - std::set<std::string> childrenSeriesIdentifiers_; - std::set<std::string> childrenInstancesIdentifiers_; + ChildrenInformation childrenStudiesInformation_; + ChildrenInformation childrenSeriesInformation_; + ChildrenInformation childrenInstancesInformation_; std::set<std::string> labels_; std::map<FileContentType, FileInfo> attachments_; ChildrenMetadata childrenMetadata_; @@ -99,7 +113,12 @@ return const_cast<Resource&>(*this).GetMainDicomTagsAtLevel(level); } - std::set<std::string>& GetChildrenIdentifiers(ResourceType level); + ChildrenInformation& GetChildrenInformation(ResourceType level); + + const ChildrenInformation& GetChildrenInformation(ResourceType level) const + { + return const_cast<Resource&>(*this).GetChildrenInformation(level); + } public: Resource(ResourceType level, @@ -171,11 +190,14 @@ MetadataType metadata) const; void AddChildIdentifier(ResourceType level, - const std::string& childId); + const std::string& childId) + { + GetChildrenInformation(level).AddIdentifier(childId);; + } const std::set<std::string>& GetChildrenIdentifiers(ResourceType level) const { - return const_cast<Resource&>(*this).GetChildrenIdentifiers(level); + return GetChildrenInformation(level).GetIdentifiers(); } void AddLabel(const std::string& label);