Mercurial > hg > orthanc
diff OrthancServer/Sources/OrthancRestApi/OrthancRestSystem.cpp @ 5249:f22c8fac764b db-protobuf
added "/tools/labels" to list all the labels that are associated with any resource
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 07 Apr 2023 22:54:57 +0200 |
parents | 367e8af46cfd |
children | b5c502bcaf99 |
line wrap: on
line diff
--- a/OrthancServer/Sources/OrthancRestApi/OrthancRestSystem.cpp Fri Apr 07 22:18:37 2023 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestSystem.cpp Fri Apr 07 22:54:57 2023 +0200 @@ -1047,6 +1047,31 @@ } + static void ListAllLabels(RestApiGetCall& call) + { + if (call.IsDocumentation()) + { + call.GetDocumentation() + .SetTag("System") + .SetSummary("Get all the used labels") + .SetDescription("List all the labels that are associated with any resource of the Orthanc database") + .AddAnswerType(MimeType_Json, "JSON array containing the labels"); + return; + } + + std::set<std::string> labels; + OrthancRestApi::GetIndex(call).ListAllLabels(labels); + + Json::Value json = Json::arrayValue; + for (std::set<std::string>::const_iterator it = labels.begin(); it != labels.end(); ++it) + { + json.append(*it); + } + + call.GetOutput().AnswerJson(json); + } + + void OrthancRestApi::RegisterSystem(bool orthancExplorerEnabled) { if (orthancExplorerEnabled) @@ -1094,5 +1119,7 @@ Register("/tools/accepted-transfer-syntaxes", SetAcceptedTransferSyntaxes); Register("/tools/unknown-sop-class-accepted", GetUnknownSopClassAccepted); Register("/tools/unknown-sop-class-accepted", SetUnknownSopClassAccepted); + + Register("/tools/labels", ListAllLabels); // New in Orthanc 1.12.0 } }