Mercurial > hg > orthanc
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 } |