Mercurial > hg > orthanc
diff OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp @ 5683:0c218d90096e
moved handling of labels out of DatabaseLookup
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 09 Jul 2024 11:33:37 +0200 |
parents | 65a509cac161 |
children | 9b3816c21008 |
line wrap: on
line diff
--- a/OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp Tue Jul 09 10:09:57 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp Tue Jul 09 11:33:37 2024 +0200 @@ -3324,6 +3324,8 @@ } } + std::set<std::string> labels; + if (request.isMember(KEY_LABELS)) // New in Orthanc 1.12.0 { for (Json::Value::ArrayIndex i = 0; i < request[KEY_LABELS].size(); i++) @@ -3334,27 +3336,27 @@ } else { - query.AddLabel(request[KEY_LABELS][i].asString()); + labels.insert(request[KEY_LABELS][i].asString()); } } } - query.SetLabelsConstraint(LabelsConstraint_All); + LabelsConstraint labelsConstraint = LabelsConstraint_All; if (request.isMember(KEY_LABELS_CONSTRAINT)) { const std::string& s = request[KEY_LABELS_CONSTRAINT].asString(); if (s == "All") { - query.SetLabelsConstraint(LabelsConstraint_All); + labelsConstraint = LabelsConstraint_All; } else if (s == "Any") { - query.SetLabelsConstraint(LabelsConstraint_Any); + labelsConstraint = LabelsConstraint_Any; } else if (s == "None") { - query.SetLabelsConstraint(LabelsConstraint_None); + labelsConstraint = LabelsConstraint_None; } else { @@ -3363,7 +3365,7 @@ } FindVisitor visitor(OrthancRestApi::GetDicomFormat(request, DicomToJsonFormat_Human), context.GetFindStorageAccessMode()); - context.Apply(visitor, query, level, since, limit); + context.Apply(visitor, query, level, labels, labelsConstraint, since, limit); visitor.Answer(call.GetOutput(), context, level, expand, requestedTags); } }