# HG changeset patch # User Sebastien Jodogne # Date 1356094404 -3600 # Node ID 4f17834a50b61a58264c11ea681d26c997140fc8 # Parent 60429bb2551e1dd22d514addffb97c95c32005f5 refactoring diff -r 60429bb2551e -r 4f17834a50b6 OrthancServer/OrthancRestApi.cpp --- a/OrthancServer/OrthancRestApi.cpp Fri Dec 21 13:44:38 2012 +0100 +++ b/OrthancServer/OrthancRestApi.cpp Fri Dec 21 13:53:24 2012 +0100 @@ -1093,22 +1093,31 @@ } - static void ModifyInstance(RestApi::PostCall& call) + static void AnonymizeOrModifyInstance(Removals removals, + Replacements replacements, + bool removePrivateTags, + RestApi::PostCall& call) { RETRIEVE_CONTEXT(call); std::string id = call.GetUriComponent("id", ""); ParsedDicomFile& dicom = context.GetDicomFile(id); + std::auto_ptr modified(dicom.Clone()); + ReplaceInstanceInternal(*modified, removals, replacements, DicomReplaceMode_InsertIfAbsent, removePrivateTags); + modified->Answer(call.GetOutput()); + } + + + static void ModifyInstance(RestApi::PostCall& call) + { Removals removals; Replacements replacements; bool removePrivateTags; if (ParseModifyRequest(removals, replacements, removePrivateTags, call)) { - std::auto_ptr modified(dicom.Clone()); - ReplaceInstanceInternal(*modified, removals, replacements, DicomReplaceMode_InsertIfAbsent, removePrivateTags); - modified->Answer(call.GetOutput()); + AnonymizeOrModifyInstance(removals, replacements, removePrivateTags, call); } } @@ -1117,9 +1126,6 @@ { RETRIEVE_CONTEXT(call); - std::string id = call.GetUriComponent("id", ""); - ParsedDicomFile& dicom = context.GetDicomFile(id); - Removals removals; Replacements replacements; bool removePrivateTags; @@ -1139,9 +1145,7 @@ FromDcmtkBridge::GenerateUniqueIdentifier(DicomRootLevel_Patient))); } - std::auto_ptr anonymized(dicom.Clone()); - ReplaceInstanceInternal(*anonymized, removals, replacements, DicomReplaceMode_InsertIfAbsent, removePrivateTags); - anonymized->Answer(call.GetOutput()); + AnonymizeOrModifyInstance(removals, replacements, removePrivateTags, call); } }