diff OrthancServer/ServerJobs/ResourceModificationJob.cpp @ 2664:a21b244efb37 jobs

serialization of DicomModalityStoreJob, OrthancPeerStoreJob and ResourceModificationJob
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 07 Jun 2018 21:37:40 +0200
parents 228e2783ce83
children 8aa6aef11b70
line wrap: on
line diff
--- a/OrthancServer/ServerJobs/ResourceModificationJob.cpp	Thu Jun 07 18:18:02 2018 +0200
+++ b/OrthancServer/ServerJobs/ResourceModificationJob.cpp	Thu Jun 07 21:37:40 2018 +0200
@@ -35,6 +35,7 @@
 #include "ResourceModificationJob.h"
 
 #include "../../Core/Logging.h"
+#include "../../Core/SerializationToolbox.h"
 
 namespace Orthanc
 {
@@ -259,9 +260,20 @@
   
   void ResourceModificationJob::SetOrigin(const RestApiCall& call)
   {
-    DicomInstanceOrigin tmp;
-    tmp.SetRestOrigin(call);      
-    SetOrigin(tmp);
+    SetOrigin(DicomInstanceOrigin::FromRest(call));
+  }
+
+
+  const DicomModification& ResourceModificationJob::GetModification() const
+  {
+    if (modification_.get() == NULL)
+    {
+      throw OrthancException(ErrorCode_BadSequenceOfCalls);
+    }
+    else
+    {
+      return *modification_;
+    }
   }
 
 
@@ -272,15 +284,38 @@
     value["IsAnonymization"] = isAnonymization_;
   }
 
+
+  static const char* MODIFICATION = "Modification";
+  static const char* ORIGIN = "Origin";
+  static const char* IS_ANONYMIZATION = "IsAnonymization";
+  
+
+  ResourceModificationJob::ResourceModificationJob(ServerContext& context,
+                                                   const Json::Value& serialized) :
+    SetOfInstancesJob(serialized),
+    context_(context)
+  {
+    isAnonymization_ = SerializationToolbox::ReadBoolean(serialized, IS_ANONYMIZATION);
+    origin_ = DicomInstanceOrigin(serialized[ORIGIN]);
+    modification_.reset(new DicomModification(serialized[MODIFICATION]));
+  }
   
   bool ResourceModificationJob::Serialize(Json::Value& value)
   {
-    SetOfInstancesJob::Serialize(value);
+    if (!SetOfInstancesJob::Serialize(value))
+    {
+      return false;
+    }
+    else
+    {
+      value[IS_ANONYMIZATION] = isAnonymization_;
+      origin_.Serialize(value[ORIGIN]);
+      
+      Json::Value tmp;
+      modification_->Serialize(tmp);
+      value[MODIFICATION] = tmp;
 
-    Json::Value tmp;
-    modification_->Serialize(tmp);
-    value["Modification"] = tmp;
-
-    return true;
+      return true;
+    }
   }
 }