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 }