Mercurial > hg > orthanc
diff 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 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestModalities.cpp Thu Jul 03 18:30:23 2014 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestModalities.cpp Fri Jul 04 14:09:53 2014 +0200 @@ -36,6 +36,8 @@ #include "../OrthancInitialization.h" #include "../../Core/HttpClient.h" #include "../FromDcmtkBridge.h" +#include "../Scheduler/ServerJob.h" +#include "../Scheduler/StoreScuFilter.h" #include <glog/logging.h> @@ -321,17 +323,16 @@ } RemoteModalityParameters p = Configuration::GetModalityUsingSymbolicName(remote); - ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), p); + ServerJob job; for (std::list<std::string>::const_iterator it = instances.begin(); it != instances.end(); ++it) { - LOG(INFO) << "Sending resource " << *it << " to modality \"" << remote << "\""; + job.AddFilter(new StoreScuFilter(context, p)).AddInput(*it); + } - std::string dicom; - context.ReadFile(dicom, *it, FileContentType_Dicom); - locker.GetConnection().Store(dicom); - } + job.SetDescription("Store-SCU from HTTP to modality \"" + remote + "\""); + context.GetScheduler().SubmitAndWait(job); call.GetOutput().AnswerBuffer("{}", "application/json"); }