Mercurial > hg > orthanc
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; |