comparison OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp @ 1120:009dce4ea2f6

/tools/create-dicom now accepts PatientID
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 03 Sep 2014 16:49:26 +0200
parents 160dfe770618
children 8dabdc0d3007
comparison
equal deleted inserted replaced
1119:af8628ea91b3 1120:009dce4ea2f6
32 32
33 #include "../PrecompiledHeadersServer.h" 33 #include "../PrecompiledHeadersServer.h"
34 #include "OrthancRestApi.h" 34 #include "OrthancRestApi.h"
35 35
36 #include "../FromDcmtkBridge.h" 36 #include "../FromDcmtkBridge.h"
37 #include "../../Core/Uuid.h"
37 38
38 #include <glog/logging.h> 39 #include <glog/logging.h>
39 40
40 namespace Orthanc 41 namespace Orthanc
41 { 42 {
422 changeType, resourceType, call); 423 changeType, resourceType, call);
423 } 424 }
424 } 425 }
425 426
426 427
427 static void Create(RestApiPostCall& call) 428 static void CreateDicom(RestApiPostCall& call)
428 { 429 {
429 // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World"}' 430 // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World"}'
430 // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World","PixelData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gUGDDcB53FulQAAAElJREFUGNNtj0sSAEEEQ1+U+185s1CtmRkblQ9CZldsKHJDk6DLGLJa6chjh0ooQmpjXMM86zPwydGEj6Ed/UGykkEM8X+p3u8/8LcOJIWLGeMAAAAASUVORK5CYII="}' 431 // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World","PixelData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gUGDDcB53FulQAAAElJREFUGNNtj0sSAEEEQ1+U+185s1CtmRkblQ9CZldsKHJDk6DLGLJa6chjh0ooQmpjXMM86zPwydGEj6Ed/UGykkEM8X+p3u8/8LcOJIWLGeMAAAAASUVORK5CYII="}'
431 432
432 Json::Value request; 433 Json::Value request;
433 if (call.ParseJsonRequest(request) && request.isObject()) 434 if (call.ParseJsonRequest(request) && request.isObject())
434 { 435 {
435 DicomModification modification; 436 DicomModification modification;
437 modification.SetLevel(ResourceType_Patient);
436 ParseReplacements(modification, request); 438 ParseReplacements(modification, request);
439
440 // If no PatientID is specified, create a random one
441 if (!modification.IsReplaced(DICOM_TAG_PATIENT_ID))
442 {
443 modification.Replace(DICOM_TAG_PATIENT_ID, Toolbox::GenerateUuid());
444 }
437 445
438 ParsedDicomFile dicom; 446 ParsedDicomFile dicom;
439 447
440 if (modification.IsReplaced(DICOM_TAG_PIXEL_DATA)) 448 if (modification.IsReplaced(DICOM_TAG_PIXEL_DATA))
441 { 449 {
472 Register("/instances/{id}/anonymize", AnonymizeInstance); 480 Register("/instances/{id}/anonymize", AnonymizeInstance);
473 Register("/series/{id}/anonymize", AnonymizeResource<ChangeType_ModifiedSeries, ResourceType_Series>); 481 Register("/series/{id}/anonymize", AnonymizeResource<ChangeType_ModifiedSeries, ResourceType_Series>);
474 Register("/studies/{id}/anonymize", AnonymizeResource<ChangeType_ModifiedStudy, ResourceType_Study>); 482 Register("/studies/{id}/anonymize", AnonymizeResource<ChangeType_ModifiedStudy, ResourceType_Study>);
475 Register("/patients/{id}/anonymize", AnonymizeResource<ChangeType_ModifiedPatient, ResourceType_Patient>); 483 Register("/patients/{id}/anonymize", AnonymizeResource<ChangeType_ModifiedPatient, ResourceType_Patient>);
476 484
477 Register("/tools/create-dicom", Create); 485 Register("/tools/create-dicom", CreateDicom);
478 } 486 }
479 } 487 }