# HG changeset patch # User Sebastien Jodogne # Date 1544096476 -3600 # Node ID d0250d096acc10b00fa47c03d3948c694af0936d # Parent ee0b2c5ad49bd289c3e15bc200e515bde321736e cont diff -r ee0b2c5ad49b -r d0250d096acc OrthancServer/OrthancRestApi/OrthancRestArchive.cpp --- a/OrthancServer/OrthancRestApi/OrthancRestArchive.cpp Thu Dec 06 12:27:30 2018 +0100 +++ b/OrthancServer/OrthancRestApi/OrthancRestArchive.cpp Thu Dec 06 12:41:16 2018 +0100 @@ -211,6 +211,32 @@ } + template + static void CreateSinglePost(RestApiPostCall& call) + { + ServerContext& context = OrthancRestApi::GetContext(call); + + std::string id = call.GetUriComponent("id", ""); + + Json::Value body; + if (call.ParseJsonRequest(body)) + { + bool synchronous, extended; + int priority; + GetJobParameters(synchronous, extended, priority, body, DEFAULT_IS_EXTENDED); + + std::auto_ptr job(new ArchiveJob(context, IS_MEDIA, extended)); + job->AddResource(id); + SubmitJob(call.GetOutput(), context, job, priority, synchronous, id + ".zip"); + } + else + { + throw OrthancException(ErrorCode_BadFileFormat); + } + } + + void OrthancRestApi::RegisterArchive() { Register("/patients/{id}/archive", @@ -220,6 +246,13 @@ Register("/series/{id}/archive", CreateSingleGet); + Register("/patients/{id}/archive", + CreateSinglePost); + Register("/studies/{id}/archive", + CreateSinglePost); + Register("/series/{id}/archive", + CreateSinglePost); + Register("/patients/{id}/media", CreateSingleGet); Register("/studies/{id}/media", @@ -227,6 +260,13 @@ Register("/series/{id}/media", CreateSingleGet); + Register("/patients/{id}/media", + CreateSinglePost); + Register("/studies/{id}/media", + CreateSinglePost); + Register("/series/{id}/media", + CreateSinglePost); + Register("/tools/create-archive", CreateBatch); Register("/tools/create-media",