comparison OrthancServer/OrthancRestApi/OrthancRestArchive.cpp @ 2978:d0250d096acc

cont
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 06 Dec 2018 12:41:16 +0100
parents cb5d75143da0
children 4e43e67f8ecf
comparison
equal deleted inserted replaced
2977:ee0b2c5ad49b 2978:d0250d096acc
209 SubmitJob(call.GetOutput(), context, job, 0 /* priority */, 209 SubmitJob(call.GetOutput(), context, job, 0 /* priority */,
210 true /* synchronous */, id + ".zip"); 210 true /* synchronous */, id + ".zip");
211 } 211 }
212 212
213 213
214 template <bool IS_MEDIA,
215 bool DEFAULT_IS_EXTENDED /* only makes sense for media (i.e. not ZIP archives) */ >
216 static void CreateSinglePost(RestApiPostCall& call)
217 {
218 ServerContext& context = OrthancRestApi::GetContext(call);
219
220 std::string id = call.GetUriComponent("id", "");
221
222 Json::Value body;
223 if (call.ParseJsonRequest(body))
224 {
225 bool synchronous, extended;
226 int priority;
227 GetJobParameters(synchronous, extended, priority, body, DEFAULT_IS_EXTENDED);
228
229 std::auto_ptr<ArchiveJob> job(new ArchiveJob(context, IS_MEDIA, extended));
230 job->AddResource(id);
231 SubmitJob(call.GetOutput(), context, job, priority, synchronous, id + ".zip");
232 }
233 else
234 {
235 throw OrthancException(ErrorCode_BadFileFormat);
236 }
237 }
238
239
214 void OrthancRestApi::RegisterArchive() 240 void OrthancRestApi::RegisterArchive()
215 { 241 {
216 Register("/patients/{id}/archive", 242 Register("/patients/{id}/archive",
217 CreateSingleGet<false /* ZIP */, false /* extended makes no sense in ZIP */>); 243 CreateSingleGet<false /* ZIP */, false /* extended makes no sense in ZIP */>);
218 Register("/studies/{id}/archive", 244 Register("/studies/{id}/archive",
219 CreateSingleGet<false /* ZIP */, false /* extended makes no sense in ZIP */>); 245 CreateSingleGet<false /* ZIP */, false /* extended makes no sense in ZIP */>);
220 Register("/series/{id}/archive", 246 Register("/series/{id}/archive",
221 CreateSingleGet<false /* ZIP */, false /* extended makes no sense in ZIP */>); 247 CreateSingleGet<false /* ZIP */, false /* extended makes no sense in ZIP */>);
222 248
249 Register("/patients/{id}/archive",
250 CreateSinglePost<false /* ZIP */, false /* extended makes no sense in ZIP */>);
251 Register("/studies/{id}/archive",
252 CreateSinglePost<false /* ZIP */, false /* extended makes no sense in ZIP */>);
253 Register("/series/{id}/archive",
254 CreateSinglePost<false /* ZIP */, false /* extended makes no sense in ZIP */>);
255
223 Register("/patients/{id}/media", 256 Register("/patients/{id}/media",
224 CreateSingleGet<true /* media */, false /* not extended by default */>); 257 CreateSingleGet<true /* media */, false /* not extended by default */>);
225 Register("/studies/{id}/media", 258 Register("/studies/{id}/media",
226 CreateSingleGet<true /* media */, false /* not extended by default */>); 259 CreateSingleGet<true /* media */, false /* not extended by default */>);
227 Register("/series/{id}/media", 260 Register("/series/{id}/media",
228 CreateSingleGet<true /* media */, false /* not extended by default */>); 261 CreateSingleGet<true /* media */, false /* not extended by default */>);
229 262
263 Register("/patients/{id}/media",
264 CreateSinglePost<true /* media */, false /* not extended by default */>);
265 Register("/studies/{id}/media",
266 CreateSinglePost<true /* media */, false /* not extended by default */>);
267 Register("/series/{id}/media",
268 CreateSinglePost<true /* media */, false /* not extended by default */>);
269
230 Register("/tools/create-archive", 270 Register("/tools/create-archive",
231 CreateBatch<false /* ZIP */, false /* extended makes no sense in ZIP */>); 271 CreateBatch<false /* ZIP */, false /* extended makes no sense in ZIP */>);
232 Register("/tools/create-media", 272 Register("/tools/create-media",
233 CreateBatch<true /* media */, false /* not extended by default */>); 273 CreateBatch<true /* media */, false /* not extended by default */>);
234 Register("/tools/create-media-extended", 274 Register("/tools/create-media-extended",