comparison OrthancServer/OrthancRestApi2.cpp @ 211:b7aea293b965

list of resources
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 29 Nov 2012 09:56:46 +0100
parents 96b7918a6a18
children f276b175dcaf
comparison
equal deleted inserted replaced
210:96b7918a6a18 211:b7aea293b965
47 47
48 48
49 namespace Orthanc 49 namespace Orthanc
50 { 50 {
51 // System information ------------------------------------------------------- 51 // System information -------------------------------------------------------
52
53 static void ServeRoot(RestApi::GetCall& call)
54 {
55 call.GetOutput().Redirect("app/explorer.html");
56 }
52 57
53 static void GetSystemInformation(RestApi::GetCall& call) 58 static void GetSystemInformation(RestApi::GetCall& call)
54 { 59 {
55 RETRIEVE_CONTEXT(call); 60 RETRIEVE_CONTEXT(call);
56 61
57 Json::Value result = Json::objectValue; 62 Json::Value result = Json::objectValue;
58 result["Version"] = ORTHANC_VERSION; 63 result["Version"] = ORTHANC_VERSION;
59 result["Name"] = GetGlobalStringParameter("Name", ""); 64 result["Name"] = GetGlobalStringParameter("Name", "");
60 result["TotalCompressedSize"] = boost::lexical_cast<std::string>(context.GetIndex().GetTotalCompressedSize()); 65 result["TotalCompressedSize"] = boost::lexical_cast<std::string>(context.GetIndex().GetTotalCompressedSize());
61 result["TotalUncompressedSize"] = boost::lexical_cast<std::string>(context.GetIndex().GetTotalUncompressedSize()); 66 result["TotalUncompressedSize"] = boost::lexical_cast<std::string>(context.GetIndex().GetTotalUncompressedSize());
67 call.GetOutput().AnswerJson(result);
68 }
69
70
71 // List all the patients, studies, series or instances ----------------------
72
73 template <enum ResourceType resourceType>
74 static void ListResources(RestApi::GetCall& call)
75 {
76 RETRIEVE_CONTEXT(call);
77
78 Json::Value result;
79 context.GetIndex().GetAllUuids(result, resourceType);
62 call.GetOutput().AnswerJson(result); 80 call.GetOutput().AnswerJson(result);
63 } 81 }
64 82
65 83
66 // Changes API -------------------------------------------------------------- 84 // Changes API --------------------------------------------------------------
124 index_(index), 142 index_(index),
125 storage_(path) 143 storage_(path)
126 { 144 {
127 GetListOfDicomModalities(modalities_); 145 GetListOfDicomModalities(modalities_);
128 146
147 Register("/", ServeRoot);
129 Register("/system", GetSystemInformation); 148 Register("/system", GetSystemInformation);
130 Register("/changes", GetChanges); 149 Register("/changes", GetChanges);
131 Register("/modalities", ListModalities); 150 Register("/modalities", ListModalities);
151
152 Register("/instances", ListResources<ResourceType_Instance>);
153 Register("/patients", ListResources<ResourceType_Patient>);
154 Register("/series", ListResources<ResourceType_Series>);
155 Register("/studies", ListResources<ResourceType_Study>);
132 } 156 }
133 } 157 }