# HG changeset patch # User Sebastien Jodogne # Date 1732894186 -3600 # Node ID 9b73ec6a07bebab118638ad1f221c109db31c796 # Parent 207371ec031ec2d03a94eee60bd9e0ce4641de33 refactoring StatelessDatabaseOperations::ListAvailableAttachments() diff -r 207371ec031e -r 9b73ec6a07be OrthancServer/Sources/Database/FindResponse.cpp --- a/OrthancServer/Sources/Database/FindResponse.cpp Fri Nov 29 10:54:20 2024 +0100 +++ b/OrthancServer/Sources/Database/FindResponse.cpp Fri Nov 29 16:29:46 2024 +0100 @@ -528,6 +528,18 @@ } + void FindResponse::Resource::ListAttachments(std::set& target) const + { + target.clear(); + + for (std::map::const_iterator + it = attachments_.begin(); it != attachments_.end(); ++it) + { + target.insert(it->first); + } + } + + void FindResponse::Resource::SetOneInstanceMetadataAndAttachments(const std::string& instancePublicId, const std::map& metadata, const std::map& attachments) diff -r 207371ec031e -r 9b73ec6a07be OrthancServer/Sources/Database/FindResponse.h --- a/OrthancServer/Sources/Database/FindResponse.h Fri Nov 29 10:54:20 2024 +0100 +++ b/OrthancServer/Sources/Database/FindResponse.h Fri Nov 29 16:29:46 2024 +0100 @@ -362,6 +362,8 @@ return attachments_; } + void ListAttachments(std::set& target) const; + void SetOneInstanceMetadataAndAttachments(const std::string& instancePublicId, const std::map& metadata, const std::map& attachments); diff -r 207371ec031e -r 9b73ec6a07be OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp --- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Fri Nov 29 10:54:20 2024 +0100 +++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Fri Nov 29 16:29:46 2024 +0100 @@ -949,6 +949,8 @@ void StatelessDatabaseOperations::GetChildInstances(std::list& result, const std::string& publicId) { + // TODO-FIND + class Operations : public ReadOnlyOperationsT2&, const std::string&> { public: @@ -1042,28 +1044,12 @@ const std::string& publicId, ResourceType expectedType) { - class Operations : public ReadOnlyOperationsT3&, const std::string&, ResourceType> - { - public: - virtual void ApplyTuple(ReadOnlyTransaction& transaction, - const Tuple& tuple) ORTHANC_OVERRIDE - { - ResourceType type; - int64_t id; - if (!transaction.LookupResource(id, type, tuple.get<1>()) || - tuple.get<2>() != type) - { - throw OrthancException(ErrorCode_UnknownResource); - } - else - { - transaction.ListAvailableAttachments(tuple.get<0>(), id); - } - } - }; - - Operations operations; - operations.Apply(*this, target, publicId, expectedType); + FindRequest request(expectedType); + request.SetOrthancId(expectedType, publicId); + request.SetRetrieveAttachments(true); + + FindResponse response; + ExecuteSingleResource(response, request).ListAttachments(target); }