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);