comparison OrthancServer/OrthancRestApi.cpp @ 314:4f17834a50b6

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 21 Dec 2012 13:53:24 +0100
parents 60429bb2551e
children fc856d175d18
comparison
equal deleted inserted replaced
313:60429bb2551e 314:4f17834a50b6
1091 return false; 1091 return false;
1092 } 1092 }
1093 } 1093 }
1094 1094
1095 1095
1096 static void ModifyInstance(RestApi::PostCall& call) 1096 static void AnonymizeOrModifyInstance(Removals removals,
1097 Replacements replacements,
1098 bool removePrivateTags,
1099 RestApi::PostCall& call)
1097 { 1100 {
1098 RETRIEVE_CONTEXT(call); 1101 RETRIEVE_CONTEXT(call);
1099 1102
1100 std::string id = call.GetUriComponent("id", ""); 1103 std::string id = call.GetUriComponent("id", "");
1101 ParsedDicomFile& dicom = context.GetDicomFile(id); 1104 ParsedDicomFile& dicom = context.GetDicomFile(id);
1102 1105
1106 std::auto_ptr<ParsedDicomFile> modified(dicom.Clone());
1107 ReplaceInstanceInternal(*modified, removals, replacements, DicomReplaceMode_InsertIfAbsent, removePrivateTags);
1108 modified->Answer(call.GetOutput());
1109 }
1110
1111
1112 static void ModifyInstance(RestApi::PostCall& call)
1113 {
1103 Removals removals; 1114 Removals removals;
1104 Replacements replacements; 1115 Replacements replacements;
1105 bool removePrivateTags; 1116 bool removePrivateTags;
1106 1117
1107 if (ParseModifyRequest(removals, replacements, removePrivateTags, call)) 1118 if (ParseModifyRequest(removals, replacements, removePrivateTags, call))
1108 { 1119 {
1109 std::auto_ptr<ParsedDicomFile> modified(dicom.Clone()); 1120 AnonymizeOrModifyInstance(removals, replacements, removePrivateTags, call);
1110 ReplaceInstanceInternal(*modified, removals, replacements, DicomReplaceMode_InsertIfAbsent, removePrivateTags);
1111 modified->Answer(call.GetOutput());
1112 } 1121 }
1113 } 1122 }
1114 1123
1115 1124
1116 static void AnonymizeInstance(RestApi::PostCall& call) 1125 static void AnonymizeInstance(RestApi::PostCall& call)
1117 { 1126 {
1118 RETRIEVE_CONTEXT(call); 1127 RETRIEVE_CONTEXT(call);
1119
1120 std::string id = call.GetUriComponent("id", "");
1121 ParsedDicomFile& dicom = context.GetDicomFile(id);
1122 1128
1123 Removals removals; 1129 Removals removals;
1124 Replacements replacements; 1130 Replacements replacements;
1125 bool removePrivateTags; 1131 bool removePrivateTags;
1126 1132
1137 { 1143 {
1138 replacements.insert(std::make_pair(DICOM_TAG_PATIENT_ID, 1144 replacements.insert(std::make_pair(DICOM_TAG_PATIENT_ID,
1139 FromDcmtkBridge::GenerateUniqueIdentifier(DicomRootLevel_Patient))); 1145 FromDcmtkBridge::GenerateUniqueIdentifier(DicomRootLevel_Patient)));
1140 } 1146 }
1141 1147
1142 std::auto_ptr<ParsedDicomFile> anonymized(dicom.Clone()); 1148 AnonymizeOrModifyInstance(removals, replacements, removePrivateTags, call);
1143 ReplaceInstanceInternal(*anonymized, removals, replacements, DicomReplaceMode_InsertIfAbsent, removePrivateTags);
1144 anonymized->Answer(call.GetOutput());
1145 } 1149 }
1146 } 1150 }
1147 1151
1148 1152
1149 static void ModifySeriesInplace(RestApi::PostCall& call) 1153 static void ModifySeriesInplace(RestApi::PostCall& call)