Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 1361:94ffb597d297
refactoring of C-Find SCP
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 15 May 2015 17:19:33 +0200 |
parents | 0649c5aef34a |
children | b22ba8c5edbe a1745d9be6e9 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Fri May 15 15:34:32 2015 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Fri May 15 17:19:33 2015 +0200 @@ -36,6 +36,7 @@ #include "../ServerToolbox.h" #include "../FromDcmtkBridge.h" #include "../ResourceFinder.h" +#include "../DicomFindQuery.h" #include <glog/logging.h> @@ -868,13 +869,8 @@ std::string level = request["Level"].asString(); - /*ResourceFinder finder(context); - finder.SetLevel(StringToResourceType(level.c_str())); - - if (request.isMember("CaseSensitive")) - { - finder.SetCaseSensitive(request["CaseSensitive"].asBool()); - } + DicomFindQuery query; + query.SetLevel(StringToResourceType(level.c_str())); Json::Value::Members members = request["Query"].getMemberNames(); for (size_t i = 0; i < members.size(); i++) @@ -884,12 +880,14 @@ throw OrthancException(ErrorCode_BadRequest); } - finder.AddTag(members[i], request["Query"][members[i]].asString()); - } - + query.SetConstraint(FromDcmtkBridge::ParseTag(members[i]), + request["Query"][members[i]].asString()); + } + std::list<std::string> resources; - finder.Apply(resources); - AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, finder.GetLevel(), expand);*/ + ResourceFinder finder(context); + finder.Apply(resources, query); + AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, query.GetLevel(), expand); } else {