comparison OrthancServer/OrthancRestApi/OrthancRestModalities.cpp @ 999:db18c071fbd7 lua-scripting

store-scu filter
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 04 Jul 2014 14:09:53 +0200
parents 83622b0f544c
children 13e230bbd882
comparison
equal deleted inserted replaced
998:4136fab6a639 999:db18c071fbd7
34 #include "OrthancRestApi.h" 34 #include "OrthancRestApi.h"
35 35
36 #include "../OrthancInitialization.h" 36 #include "../OrthancInitialization.h"
37 #include "../../Core/HttpClient.h" 37 #include "../../Core/HttpClient.h"
38 #include "../FromDcmtkBridge.h" 38 #include "../FromDcmtkBridge.h"
39 #include "../Scheduler/ServerJob.h"
40 #include "../Scheduler/StoreScuFilter.h"
39 41
40 #include <glog/logging.h> 42 #include <glog/logging.h>
41 43
42 namespace Orthanc 44 namespace Orthanc
43 { 45 {
319 { 321 {
320 return; 322 return;
321 } 323 }
322 324
323 RemoteModalityParameters p = Configuration::GetModalityUsingSymbolicName(remote); 325 RemoteModalityParameters p = Configuration::GetModalityUsingSymbolicName(remote);
324 ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), p); 326
325 327 ServerJob job;
326 for (std::list<std::string>::const_iterator 328 for (std::list<std::string>::const_iterator
327 it = instances.begin(); it != instances.end(); ++it) 329 it = instances.begin(); it != instances.end(); ++it)
328 { 330 {
329 LOG(INFO) << "Sending resource " << *it << " to modality \"" << remote << "\""; 331 job.AddFilter(new StoreScuFilter(context, p)).AddInput(*it);
330 332 }
331 std::string dicom; 333
332 context.ReadFile(dicom, *it, FileContentType_Dicom); 334 job.SetDescription("Store-SCU from HTTP to modality \"" + remote + "\"");
333 locker.GetConnection().Store(dicom); 335 context.GetScheduler().SubmitAndWait(job);
334 }
335 336
336 call.GetOutput().AnswerBuffer("{}", "application/json"); 337 call.GetOutput().AnswerBuffer("{}", "application/json");
337 } 338 }
338 339
339 340