diff 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
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp	Wed Sep 03 14:08:15 2014 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp	Wed Sep 03 16:49:26 2014 +0200
@@ -34,6 +34,7 @@
 #include "OrthancRestApi.h"
 
 #include "../FromDcmtkBridge.h"
+#include "../../Core/Uuid.h"
 
 #include <glog/logging.h>
 
@@ -424,7 +425,7 @@
   }
 
 
-  static void Create(RestApiPostCall& call)
+  static void CreateDicom(RestApiPostCall& call)
   {
     // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World"}'
     // curl http://localhost:8042/tools/create-dicom -X POST -d '{"PatientName":"Hello^World","PixelData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gUGDDcB53FulQAAAElJREFUGNNtj0sSAEEEQ1+U+185s1CtmRkblQ9CZldsKHJDk6DLGLJa6chjh0ooQmpjXMM86zPwydGEj6Ed/UGykkEM8X+p3u8/8LcOJIWLGeMAAAAASUVORK5CYII="}'
@@ -433,8 +434,15 @@
     if (call.ParseJsonRequest(request) && request.isObject())
     {
       DicomModification modification;
+      modification.SetLevel(ResourceType_Patient);
       ParseReplacements(modification, request);
 
+      // If no PatientID is specified, create a random one
+      if (!modification.IsReplaced(DICOM_TAG_PATIENT_ID))
+      {
+        modification.Replace(DICOM_TAG_PATIENT_ID, Toolbox::GenerateUuid());
+      }
+
       ParsedDicomFile dicom;
 
       if (modification.IsReplaced(DICOM_TAG_PIXEL_DATA))
@@ -474,6 +482,6 @@
     Register("/studies/{id}/anonymize", AnonymizeResource<ChangeType_ModifiedStudy, ResourceType_Study>);
     Register("/patients/{id}/anonymize", AnonymizeResource<ChangeType_ModifiedPatient, ResourceType_Patient>);
 
-    Register("/tools/create-dicom", Create);
+    Register("/tools/create-dicom", CreateDicom);
   }
 }