comparison OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp @ 2518:63d2cc0fb40a

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 29 Mar 2018 14:41:41 +0200
parents d3d306bc4b99
children 2e6b7862ccf2
comparison
equal deleted inserted replaced
2517:d3d306bc4b99 2518:63d2cc0fb40a
198 } 198 }
199 } 199 }
200 200
201 201
202 static void ParseAnonymizationRequest(DicomModification& target, 202 static void ParseAnonymizationRequest(DicomModification& target,
203 const Json::Value& request, 203 bool& patientNameReplaced,
204 ServerContext& context) 204 const Json::Value& request)
205 { 205 {
206 if (!request.isObject()) 206 if (!request.isObject())
207 { 207 {
208 throw OrthancException(ErrorCode_BadFileFormat); 208 throw OrthancException(ErrorCode_BadFileFormat);
209 } 209 }
247 if (request.isMember("Keep")) 247 if (request.isMember("Keep"))
248 { 248 {
249 ParseListOfTags(target, request["Keep"], TagOperation_Keep, force); 249 ParseListOfTags(target, request["Keep"], TagOperation_Keep, force);
250 } 250 }
251 251
252 if (target.IsReplaced(DICOM_TAG_PATIENT_NAME) && 252 patientNameReplaced = (target.IsReplaced(DICOM_TAG_PATIENT_NAME) &&
253 target.GetReplacement(DICOM_TAG_PATIENT_NAME) == patientName) 253 target.GetReplacement(DICOM_TAG_PATIENT_NAME) == patientName);
254 {
255 // Overwrite the random Patient's Name by one that is more
256 // user-friendly (provided none was specified by the user)
257 target.Replace(DICOM_TAG_PATIENT_NAME, GeneratePatientName(context), true);
258 }
259 } 254 }
260 255
261 256
262 static void ParseModifyRequest(DicomModification& target, 257 static void ParseModifyRequest(DicomModification& target,
263 const RestApiPostCall& call) 258 const RestApiPostCall& call)
283 278
284 Json::Value request; 279 Json::Value request;
285 if (call.ParseJsonRequest(request) && 280 if (call.ParseJsonRequest(request) &&
286 request.isObject()) 281 request.isObject())
287 { 282 {
288 ParseAnonymizationRequest(target, request, OrthancRestApi::GetContext(call)); 283 bool patientNameReplaced;
284 ParseAnonymizationRequest(target, patientNameReplaced, request);
285
286 if (patientNameReplaced)
287 {
288 // Overwrite the random Patient's Name by one that is more
289 // user-friendly (provided none was specified by the user)
290 target.Replace(DICOM_TAG_PATIENT_NAME, GeneratePatientName(OrthancRestApi::GetContext(call)), true);
291 }
289 } 292 }
290 else 293 else
291 { 294 {
292 throw OrthancException(ErrorCode_BadFileFormat); 295 throw OrthancException(ErrorCode_BadFileFormat);
293 } 296 }