comparison OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp @ 974:83622b0f544c

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 30 Jun 2014 14:44:05 +0200
parents 84513f2ee1f3
children 2f76b92addd4
comparison
equal deleted inserted replaced
972:2047e6f033bd 974:83622b0f544c
110 return "Anonymized" + boost::lexical_cast<std::string>(seq); 110 return "Anonymized" + boost::lexical_cast<std::string>(seq);
111 } 111 }
112 112
113 113
114 static bool ParseModifyRequest(DicomModification& target, 114 static bool ParseModifyRequest(DicomModification& target,
115 const RestApi::PostCall& call) 115 const RestApiPostCall& call)
116 { 116 {
117 // curl http://localhost:8042/series/95a6e2bf-9296e2cc-bf614e2f-22b391ee-16e010e0/modify -X POST -d '{"Replace":{"InstitutionName":"My own clinic"}}' 117 // curl http://localhost:8042/series/95a6e2bf-9296e2cc-bf614e2f-22b391ee-16e010e0/modify -X POST -d '{"Replace":{"InstitutionName":"My own clinic"}}'
118 118
119 Json::Value request; 119 Json::Value request;
120 if (call.ParseJsonRequest(request) && request.isObject()) 120 if (call.ParseJsonRequest(request) && request.isObject())
142 } 142 }
143 } 143 }
144 144
145 145
146 static bool ParseAnonymizationRequest(DicomModification& target, 146 static bool ParseAnonymizationRequest(DicomModification& target,
147 RestApi::PostCall& call) 147 RestApiPostCall& call)
148 { 148 {
149 // curl http://localhost:8042/instances/6e67da51-d119d6ae-c5667437-87b9a8a5-0f07c49f/anonymize -X POST -d '{"Replace":{"PatientName":"hello","0010-0020":"world"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": null,"Remove":["Modality"]}' > Anonymized.dcm 149 // curl http://localhost:8042/instances/6e67da51-d119d6ae-c5667437-87b9a8a5-0f07c49f/anonymize -X POST -d '{"Replace":{"PatientName":"hello","0010-0020":"world"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": null,"Remove":["Modality"]}' > Anonymized.dcm
150 150
151 target.SetupAnonymization(); 151 target.SetupAnonymization();
152 std::string patientName = target.GetReplacement(DICOM_TAG_PATIENT_NAME); 152 std::string patientName = target.GetReplacement(DICOM_TAG_PATIENT_NAME);
189 } 189 }
190 } 190 }
191 191
192 192
193 static void AnonymizeOrModifyInstance(DicomModification& modification, 193 static void AnonymizeOrModifyInstance(DicomModification& modification,
194 RestApi::PostCall& call) 194 RestApiPostCall& call)
195 { 195 {
196 std::string id = call.GetUriComponent("id", ""); 196 std::string id = call.GetUriComponent("id", "");
197 197
198 ServerContext::DicomCacheLocker locker(OrthancRestApi::GetContext(call), id); 198 ServerContext::DicomCacheLocker locker(OrthancRestApi::GetContext(call), id);
199 199
205 205
206 static void AnonymizeOrModifyResource(DicomModification& modification, 206 static void AnonymizeOrModifyResource(DicomModification& modification,
207 MetadataType metadataType, 207 MetadataType metadataType,
208 ChangeType changeType, 208 ChangeType changeType,
209 ResourceType resourceType, 209 ResourceType resourceType,
210 RestApi::PostCall& call) 210 RestApiPostCall& call)
211 { 211 {
212 bool isFirst = true; 212 bool isFirst = true;
213 Json::Value result(Json::objectValue); 213 Json::Value result(Json::objectValue);
214 214
215 ServerContext& context = OrthancRestApi::GetContext(call); 215 ServerContext& context = OrthancRestApi::GetContext(call);
331 call.GetOutput().AnswerJson(result); 331 call.GetOutput().AnswerJson(result);
332 } 332 }
333 333
334 334
335 335
336 static void ModifyInstance(RestApi::PostCall& call) 336 static void ModifyInstance(RestApiPostCall& call)
337 { 337 {
338 DicomModification modification; 338 DicomModification modification;
339 339
340 if (ParseModifyRequest(modification, call)) 340 if (ParseModifyRequest(modification, call))
341 { 341 {
359 AnonymizeOrModifyInstance(modification, call); 359 AnonymizeOrModifyInstance(modification, call);
360 } 360 }
361 } 361 }
362 362
363 363
364 static void AnonymizeInstance(RestApi::PostCall& call) 364 static void AnonymizeInstance(RestApiPostCall& call)
365 { 365 {
366 DicomModification modification; 366 DicomModification modification;
367 367
368 if (ParseAnonymizationRequest(modification, call)) 368 if (ParseAnonymizationRequest(modification, call))
369 { 369 {
372 } 372 }
373 373
374 374
375 template <enum ChangeType changeType, 375 template <enum ChangeType changeType,
376 enum ResourceType resourceType> 376 enum ResourceType resourceType>
377 static void ModifyResource(RestApi::PostCall& call) 377 static void ModifyResource(RestApiPostCall& call)
378 { 378 {
379 DicomModification modification; 379 DicomModification modification;
380 380
381 if (ParseModifyRequest(modification, call)) 381 if (ParseModifyRequest(modification, call))
382 { 382 {
387 } 387 }
388 388
389 389
390 template <enum ChangeType changeType, 390 template <enum ChangeType changeType,
391 enum ResourceType resourceType> 391 enum ResourceType resourceType>
392 static void AnonymizeResource(RestApi::PostCall& call) 392 static void AnonymizeResource(RestApiPostCall& call)
393 { 393 {
394 DicomModification modification; 394 DicomModification modification;
395 395
396 if (ParseAnonymizationRequest(modification, call)) 396 if (ParseAnonymizationRequest(modification, call))
397 { 397 {
399 changeType, resourceType, call); 399 changeType, resourceType, call);
400 } 400 }
401 } 401 }
402 402
403 403
404 static void Create(RestApi::PostCall& call) 404 static void Create(RestApiPostCall& call)
405 { 405 {
406 // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World"}' 406 // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World"}'
407 // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World","PixelData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gUGDDcB53FulQAAAElJREFUGNNtj0sSAEEEQ1+U+185s1CtmRkblQ9CZldsKHJDk6DLGLJa6chjh0ooQmpjXMM86zPwydGEj6Ed/UGykkEM8X+p3u8/8LcOJIWLGeMAAAAASUVORK5CYII="}' 407 // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World","PixelData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gUGDDcB53FulQAAAElJREFUGNNtj0sSAEEEQ1+U+185s1CtmRkblQ9CZldsKHJDk6DLGLJa6chjh0ooQmpjXMM86zPwydGEj6Ed/UGykkEM8X+p3u8/8LcOJIWLGeMAAAAASUVORK5CYII="}'
408 408
409 Json::Value request; 409 Json::Value request;