# HG changeset patch # User Sebastien Jodogne # Date 1527511162 -7200 # Node ID 75a404e40323c33211fdfdc1d061142f7f79ac26 # Parent 25ae209dcea9f85fb722ce9bbf5c3e929c88866b simplification diff -r 25ae209dcea9 -r 75a404e40323 OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp --- a/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp Mon May 28 10:58:07 2018 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp Mon May 28 14:39:22 2018 +0200 @@ -110,12 +110,18 @@ } - static void AnonymizeOrModifyResource(DicomModification& modification, + static void AnonymizeOrModifyResource(DicomModification* modificationRaw, // Takes ownership MetadataType metadataType, - ChangeType changeType, ResourceType resourceType, RestApiPostCall& call) { + if (modificationRaw == NULL) + { + throw OrthancException(ErrorCode_NullPointer); + } + + std::auto_ptr modification(modificationRaw); + bool isFirst = true; Json::Value result(Json::objectValue); @@ -163,7 +169,7 @@ **/ std::auto_ptr modified(original.Clone(true)); - modification.Apply(*modified); + modification->Apply(*modified); DicomInstanceToStore toStore; toStore.SetRestOrigin(call); @@ -289,30 +295,24 @@ } - template + template static void ModifyResource(RestApiPostCall& call) { - DicomModification modification; - - ParseModifyRequest(modification, call); + std::auto_ptr modification(new DicomModification); + ParseModifyRequest(*modification, call); - modification.SetLevel(resourceType); - AnonymizeOrModifyResource(modification, MetadataType_ModifiedFrom, - changeType, resourceType, call); + modification->SetLevel(resourceType); + AnonymizeOrModifyResource(modification.release(), MetadataType_ModifiedFrom, resourceType, call); } - template + template static void AnonymizeResource(RestApiPostCall& call) { - DicomModification modification; + std::auto_ptr modification(new DicomModification); + ParseAnonymizationRequest(*modification, call); - ParseAnonymizationRequest(modification, call); - - AnonymizeOrModifyResource(modification, MetadataType_AnonymizedFrom, - changeType, resourceType, call); + AnonymizeOrModifyResource(modification.release(), MetadataType_AnonymizedFrom, resourceType, call); } @@ -729,14 +729,14 @@ void OrthancRestApi::RegisterAnonymizeModify() { Register("/instances/{id}/modify", ModifyInstance); - Register("/series/{id}/modify", ModifyResource); - Register("/studies/{id}/modify", ModifyResource); - Register("/patients/{id}/modify", ModifyResource); + Register("/series/{id}/modify", ModifyResource); + Register("/studies/{id}/modify", ModifyResource); + Register("/patients/{id}/modify", ModifyResource); Register("/instances/{id}/anonymize", AnonymizeInstance); - Register("/series/{id}/anonymize", AnonymizeResource); - Register("/studies/{id}/anonymize", AnonymizeResource); - Register("/patients/{id}/anonymize", AnonymizeResource); + Register("/series/{id}/anonymize", AnonymizeResource); + Register("/studies/{id}/anonymize", AnonymizeResource); + Register("/patients/{id}/anonymize", AnonymizeResource); Register("/tools/create-dicom", CreateDicom); }