Mercurial > hg > orthanc
diff OrthancServer/Sources/Database/StatelessDatabaseOperations.h @ 5221:d0f7c742d397 db-protobuf
started implementation of labels
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 03 Apr 2023 20:53:14 +0200 |
parents | df39c7583a49 |
children | 3a61fd50f804 |
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.h Mon Apr 03 18:09:04 2023 +0200 +++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.h Mon Apr 03 20:53:14 2023 +0200 @@ -62,6 +62,9 @@ size_t fileSize_; std::string fileUuid_; int indexInSeries_; + + // New in Orthanc 1.12.0 + std::set<std::string> labels_; }; enum ExpandResourceDbFlags @@ -70,10 +73,12 @@ ExpandResourceDbFlags_IncludeMetadata = (1 << 0), ExpandResourceDbFlags_IncludeChildren = (1 << 1), ExpandResourceDbFlags_IncludeMainDicomTags = (1 << 2), + ExpandResourceDbFlags_IncludeLabels = (1 << 3), ExpandResourceDbFlags_Default = (ExpandResourceDbFlags_IncludeMetadata | ExpandResourceDbFlags_IncludeChildren | - ExpandResourceDbFlags_IncludeMainDicomTags) + ExpandResourceDbFlags_IncludeMainDicomTags | + ExpandResourceDbFlags_IncludeLabels) }; class StatelessDatabaseOperations : public boost::noncopyable @@ -82,6 +87,12 @@ typedef std::list<FileInfo> Attachments; typedef std::map<std::pair<ResourceType, MetadataType>, std::string> MetadataMap; + enum LabelOperation + { + LabelOperation_Add, + LabelOperation_Remove + }; + class ITransactionContext : public IDatabaseListener { public: @@ -312,6 +323,12 @@ { return transaction_.LookupResourceAndParent(id, type, parentPublicId, publicId); } + + void ListLabels(std::set<std::string>& target, + int64_t id) + { + transaction_.ListLabels(target, id); + } }; @@ -424,6 +441,18 @@ unsigned int maximumPatients, uint64_t addedInstanceSize, const std::string& newPatientId); + + void AddLabel(int64_t id, + const std::string& label) + { + transaction_.AddLabel(id, label); + } + + void RemoveLabel(int64_t id, + const std::string& label) + { + transaction_.RemoveLabel(id, label); + } }; @@ -687,5 +716,14 @@ bool hasOldRevision, int64_t oldRevision, const std::string& oldMd5); + + void ListLabels(std::set<std::string>& target, + const std::string& publicId, + ResourceType level); + + void ModifyLabel(const std::string& publicId, + ResourceType level, + const std::string& label, + LabelOperation operation); }; }