comparison 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
comparison
equal deleted inserted replaced
2663:228e2783ce83 2664:a21b244efb37
33 33
34 #include "../PrecompiledHeadersServer.h" 34 #include "../PrecompiledHeadersServer.h"
35 #include "ResourceModificationJob.h" 35 #include "ResourceModificationJob.h"
36 36
37 #include "../../Core/Logging.h" 37 #include "../../Core/Logging.h"
38 #include "../../Core/SerializationToolbox.h"
38 39
39 namespace Orthanc 40 namespace Orthanc
40 { 41 {
41 ResourceModificationJob::Output::Output(ResourceType level) : 42 ResourceModificationJob::Output::Output(ResourceType level) :
42 level_(level), 43 level_(level),
257 } 258 }
258 259
259 260
260 void ResourceModificationJob::SetOrigin(const RestApiCall& call) 261 void ResourceModificationJob::SetOrigin(const RestApiCall& call)
261 { 262 {
262 DicomInstanceOrigin tmp; 263 SetOrigin(DicomInstanceOrigin::FromRest(call));
263 tmp.SetRestOrigin(call); 264 }
264 SetOrigin(tmp); 265
266
267 const DicomModification& ResourceModificationJob::GetModification() const
268 {
269 if (modification_.get() == NULL)
270 {
271 throw OrthancException(ErrorCode_BadSequenceOfCalls);
272 }
273 else
274 {
275 return *modification_;
276 }
265 } 277 }
266 278
267 279
268 void ResourceModificationJob::GetPublicContent(Json::Value& value) 280 void ResourceModificationJob::GetPublicContent(Json::Value& value)
269 { 281 {
270 SetOfInstancesJob::GetPublicContent(value); 282 SetOfInstancesJob::GetPublicContent(value);
271 283
272 value["IsAnonymization"] = isAnonymization_; 284 value["IsAnonymization"] = isAnonymization_;
273 } 285 }
274 286
287
288 static const char* MODIFICATION = "Modification";
289 static const char* ORIGIN = "Origin";
290 static const char* IS_ANONYMIZATION = "IsAnonymization";
291
292
293 ResourceModificationJob::ResourceModificationJob(ServerContext& context,
294 const Json::Value& serialized) :
295 SetOfInstancesJob(serialized),
296 context_(context)
297 {
298 isAnonymization_ = SerializationToolbox::ReadBoolean(serialized, IS_ANONYMIZATION);
299 origin_ = DicomInstanceOrigin(serialized[ORIGIN]);
300 modification_.reset(new DicomModification(serialized[MODIFICATION]));
301 }
275 302
276 bool ResourceModificationJob::Serialize(Json::Value& value) 303 bool ResourceModificationJob::Serialize(Json::Value& value)
277 { 304 {
278 SetOfInstancesJob::Serialize(value); 305 if (!SetOfInstancesJob::Serialize(value))
279 306 {
280 Json::Value tmp; 307 return false;
281 modification_->Serialize(tmp); 308 }
282 value["Modification"] = tmp; 309 else
283 310 {
284 return true; 311 value[IS_ANONYMIZATION] = isAnonymization_;
312 origin_.Serialize(value[ORIGIN]);
313
314 Json::Value tmp;
315 modification_->Serialize(tmp);
316 value[MODIFICATION] = tmp;
317
318 return true;
319 }
285 } 320 }
286 } 321 }