Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
1360:0649c5aef34a | 1361:94ffb597d297 |
---|---|
34 #include "OrthancRestApi.h" | 34 #include "OrthancRestApi.h" |
35 | 35 |
36 #include "../ServerToolbox.h" | 36 #include "../ServerToolbox.h" |
37 #include "../FromDcmtkBridge.h" | 37 #include "../FromDcmtkBridge.h" |
38 #include "../ResourceFinder.h" | 38 #include "../ResourceFinder.h" |
39 #include "../DicomFindQuery.h" | |
39 | 40 |
40 #include <glog/logging.h> | 41 #include <glog/logging.h> |
41 | 42 |
42 namespace Orthanc | 43 namespace Orthanc |
43 { | 44 { |
866 expand = request["Expand"].asBool(); | 867 expand = request["Expand"].asBool(); |
867 } | 868 } |
868 | 869 |
869 std::string level = request["Level"].asString(); | 870 std::string level = request["Level"].asString(); |
870 | 871 |
871 /*ResourceFinder finder(context); | 872 DicomFindQuery query; |
872 finder.SetLevel(StringToResourceType(level.c_str())); | 873 query.SetLevel(StringToResourceType(level.c_str())); |
873 | |
874 if (request.isMember("CaseSensitive")) | |
875 { | |
876 finder.SetCaseSensitive(request["CaseSensitive"].asBool()); | |
877 } | |
878 | 874 |
879 Json::Value::Members members = request["Query"].getMemberNames(); | 875 Json::Value::Members members = request["Query"].getMemberNames(); |
880 for (size_t i = 0; i < members.size(); i++) | 876 for (size_t i = 0; i < members.size(); i++) |
881 { | 877 { |
882 if (request["Query"][members[i]].type() != Json::stringValue) | 878 if (request["Query"][members[i]].type() != Json::stringValue) |
883 { | 879 { |
884 throw OrthancException(ErrorCode_BadRequest); | 880 throw OrthancException(ErrorCode_BadRequest); |
885 } | 881 } |
886 | 882 |
887 finder.AddTag(members[i], request["Query"][members[i]].asString()); | 883 query.SetConstraint(FromDcmtkBridge::ParseTag(members[i]), |
888 } | 884 request["Query"][members[i]].asString()); |
889 | 885 } |
886 | |
890 std::list<std::string> resources; | 887 std::list<std::string> resources; |
891 finder.Apply(resources); | 888 ResourceFinder finder(context); |
892 AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, finder.GetLevel(), expand);*/ | 889 finder.Apply(resources, query); |
890 AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, query.GetLevel(), expand); | |
893 } | 891 } |
894 else | 892 else |
895 { | 893 { |
896 throw OrthancException(ErrorCode_BadRequest); | 894 throw OrthancException(ErrorCode_BadRequest); |
897 } | 895 } |