Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 1758:318c2e83c2bd db-changes
fix
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 28 Oct 2015 12:53:45 +0100 |
parents | 4941494b5dd8 |
children | e268412adcf1 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Wed Oct 28 12:29:12 2015 +0100 +++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Wed Oct 28 12:53:45 2015 +0100 @@ -944,7 +944,8 @@ request.isMember("Query") && request["Level"].type() == Json::stringValue && request["Query"].type() == Json::objectValue && - (!request.isMember("CaseSensitive") || request["CaseSensitive"].type() == Json::booleanValue)) + (!request.isMember("CaseSensitive") || request["CaseSensitive"].type() == Json::booleanValue) && + (!request.isMember("Limit") || request["Limit"].type() == Json::intValue)) { bool expand = false; if (request.isMember("Expand")) @@ -958,10 +959,19 @@ caseSensitive = request["CaseSensitive"].asBool(); } + size_t limit = 0; + if (request.isMember("Limit")) + { + limit = request["CaseSensitive"].asInt(); + if (limit < 0) + { + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + } + std::string level = request["Level"].asString(); - DicomFindQuery query; - query.SetLevel(StringToResourceType(level.c_str())); + LookupResource query(StringToResourceType(level.c_str())); Json::Value::Members members = request["Query"].getMemberNames(); for (size_t i = 0; i < members.size(); i++) @@ -971,14 +981,13 @@ throw OrthancException(ErrorCode_BadRequest); } - query.SetConstraint(FromDcmtkBridge::ParseTag(members[i]), - request["Query"][members[i]].asString(), - caseSensitive); + query.AddDicomConstraint(FromDcmtkBridge::ParseTag(members[i]), + request["Query"][members[i]].asString(), + caseSensitive); } std::list<std::string> resources; - ResourceFinder finder(context); - finder.Apply(resources, query); + context.Apply(resources, query, limit); AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, query.GetLevel(), expand); } else