Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi.cpp @ 483:8c3573d28868
export dicom instances to the filesystem
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 16 Jul 2013 12:01:39 +0200 |
parents | 7a966b440f19 |
children | b8ace6fc1d1f |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi.cpp Tue Jul 16 11:30:24 2013 +0200 +++ b/OrthancServer/OrthancRestApi.cpp Tue Jul 16 12:01:39 2013 +0200 @@ -735,6 +735,21 @@ } + static void ExportInstanceFile(RestApi::PostCall& call) + { + RETRIEVE_CONTEXT(call); + + std::string publicId = call.GetUriComponent("id", ""); + + std::string dicom; + context.ReadFile(dicom, publicId, FileContentType_Dicom); + + Toolbox::WriteFile(dicom, call.GetPostBody()); + + call.GetOutput().AnswerBuffer("{}", "application/json"); + } + + template <bool simplify> static void GetInstanceTags(RestApi::GetCall& call) { @@ -1654,6 +1669,7 @@ Register("/patients/{id}/protected", IsProtectedPatient); Register("/patients/{id}/protected", SetPatientProtection); Register("/instances/{id}/file", GetInstanceFile); + Register("/instances/{id}/export", ExportInstanceFile); Register("/instances/{id}/tags", GetInstanceTags<false>); Register("/instances/{id}/simplified-tags", GetInstanceTags<true>); Register("/instances/{id}/frames", ListFrames);