Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi/OrthancRestSystem.cpp @ 2573:3372c5255333 jobs
StoreScuJob, Orthanc Explorer for jobs
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 09 May 2018 17:56:14 +0200 |
parents | 8cc3ca64a534 |
children | b3da733d984c |
comparison
equal
deleted
inserted
replaced
2570:2e879c796ec7 | 2573:3372c5255333 |
---|---|
144 GetFileResource(statement, EmbeddedResources::DICOM_CONFORMANCE_STATEMENT); | 144 GetFileResource(statement, EmbeddedResources::DICOM_CONFORMANCE_STATEMENT); |
145 call.GetOutput().AnswerBuffer(statement, "text/plain"); | 145 call.GetOutput().AnswerBuffer(statement, "text/plain"); |
146 } | 146 } |
147 | 147 |
148 | 148 |
149 static void GetDefaultEncoding(RestApiGetCall& call) | |
150 { | |
151 Encoding encoding = GetDefaultDicomEncoding(); | |
152 call.GetOutput().AnswerBuffer(EnumerationToString(encoding), "text/plain"); | |
153 } | |
154 | |
155 | |
156 static void SetDefaultEncoding(RestApiPutCall& call) | |
157 { | |
158 Encoding encoding = StringToEncoding(call.GetBodyData()); | |
159 | |
160 Configuration::SetDefaultEncoding(encoding); | |
161 | |
162 call.GetOutput().AnswerBuffer(EnumerationToString(encoding), "text/plain"); | |
163 } | |
164 | |
165 | |
166 | |
149 // Plugins information ------------------------------------------------------ | 167 // Plugins information ------------------------------------------------------ |
150 | 168 |
151 static void ListPlugins(RestApiGetCall& call) | 169 static void ListPlugins(RestApiGetCall& call) |
152 { | 170 { |
153 Json::Value v = Json::arrayValue; | 171 Json::Value v = Json::arrayValue; |
249 | 267 |
250 call.GetOutput().AnswerBuffer(s, "application/javascript"); | 268 call.GetOutput().AnswerBuffer(s, "application/javascript"); |
251 } | 269 } |
252 | 270 |
253 | 271 |
254 static void GetDefaultEncoding(RestApiGetCall& call) | 272 |
255 { | 273 |
256 Encoding encoding = GetDefaultDicomEncoding(); | 274 // Jobs information ------------------------------------------------------ |
257 call.GetOutput().AnswerBuffer(EnumerationToString(encoding), "text/plain"); | 275 |
258 } | 276 static void ListJobs(RestApiGetCall& call) |
259 | 277 { |
260 | 278 bool expand = call.HasArgument("expand"); |
261 static void SetDefaultEncoding(RestApiPutCall& call) | 279 |
262 { | 280 Json::Value v = Json::arrayValue; |
263 Encoding encoding = StringToEncoding(call.GetBodyData()); | 281 |
264 | 282 std::set<std::string> jobs; |
265 Configuration::SetDefaultEncoding(encoding); | 283 OrthancRestApi::GetContext(call).GetJobsEngine().GetRegistry().ListJobs(jobs); |
266 | 284 |
267 call.GetOutput().AnswerBuffer(EnumerationToString(encoding), "text/plain"); | 285 for (std::set<std::string>::const_iterator it = jobs.begin(); |
268 } | 286 it != jobs.end(); ++it) |
269 | 287 { |
270 | 288 if (expand) |
289 { | |
290 JobInfo info; | |
291 if (OrthancRestApi::GetContext(call).GetJobsEngine().GetRegistry().GetJobInfo(info, *it)) | |
292 { | |
293 Json::Value tmp; | |
294 info.Serialize(tmp); | |
295 v.append(tmp); | |
296 } | |
297 } | |
298 else | |
299 { | |
300 v.append(*it); | |
301 } | |
302 } | |
303 | |
304 call.GetOutput().AnswerJson(v); | |
305 } | |
306 | |
307 static void GetJobInfo(RestApiGetCall& call) | |
308 { | |
309 std::string id = call.GetUriComponent("id", ""); | |
310 | |
311 JobInfo info; | |
312 if (OrthancRestApi::GetContext(call).GetJobsEngine().GetRegistry().GetJobInfo(info, id)) | |
313 { | |
314 Json::Value json; | |
315 info.Serialize(json); | |
316 call.GetOutput().AnswerJson(json); | |
317 } | |
318 } | |
319 | |
320 static void PauseJob(RestApiPostCall& call) | |
321 { | |
322 std::string id = call.GetUriComponent("id", ""); | |
323 | |
324 if (OrthancRestApi::GetContext(call).GetJobsEngine().GetRegistry().Pause(id)) | |
325 { | |
326 call.GetOutput().AnswerBuffer("{}", "application/json"); | |
327 } | |
328 } | |
329 | |
330 | |
271 void OrthancRestApi::RegisterSystem() | 331 void OrthancRestApi::RegisterSystem() |
272 { | 332 { |
273 Register("/", ServeRoot); | 333 Register("/", ServeRoot); |
274 Register("/system", GetSystemInformation); | 334 Register("/system", GetSystemInformation); |
275 Register("/statistics", GetStatistics); | 335 Register("/statistics", GetStatistics); |
282 Register("/tools/default-encoding", SetDefaultEncoding); | 342 Register("/tools/default-encoding", SetDefaultEncoding); |
283 | 343 |
284 Register("/plugins", ListPlugins); | 344 Register("/plugins", ListPlugins); |
285 Register("/plugins/{id}", GetPlugin); | 345 Register("/plugins/{id}", GetPlugin); |
286 Register("/plugins/explorer.js", GetOrthancExplorerPlugins); | 346 Register("/plugins/explorer.js", GetOrthancExplorerPlugins); |
347 | |
348 Register("/jobs", ListJobs); | |
349 Register("/jobs/{id}", GetJobInfo); | |
350 Register("/jobs/{id}/pause", PauseJob); | |
287 } | 351 } |
288 } | 352 } |