diff OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp @ 1982:b5d4f9c156ad

Modification of instances can now replace PixelData
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 22 Apr 2016 10:28:55 +0200
parents 72a2fd7fed8b
children 2b1520efa282
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp	Fri Apr 22 09:05:06 2016 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp	Fri Apr 22 10:28:55 2016 +0200
@@ -480,7 +480,8 @@
       }
       else
       {
-        dicom.Replace(tag, value);
+        // This is V1, don't try and decode data URI scheme
+        dicom.ReplacePlainString(tag, value);
       }
     }
   }
@@ -526,7 +527,7 @@
         }
         else
         {
-          dicom.Replace(tag, tags[name], decodeBinaryTags);
+          dicom.Replace(tag, tags[name], decodeBinaryTags, DicomReplaceMode_InsertIfAbsent);
         }
       }
     }
@@ -542,8 +543,8 @@
     assert(content.size() > 0);
     ServerContext& context = OrthancRestApi::GetContext(call);
 
-    base.Replace(DICOM_TAG_IMAGES_IN_ACQUISITION, boost::lexical_cast<std::string>(content.size()));
-    base.Replace(DICOM_TAG_NUMBER_OF_TEMPORAL_POSITIONS, "1");
+    base.ReplacePlainString(DICOM_TAG_IMAGES_IN_ACQUISITION, boost::lexical_cast<std::string>(content.size()));
+    base.ReplacePlainString(DICOM_TAG_NUMBER_OF_TEMPORAL_POSITIONS, "1");
 
     std::string someInstance;
 
@@ -580,8 +581,8 @@
         }
 
         dicom->EmbedContent(payload->asString());
-        dicom->Replace(DICOM_TAG_INSTANCE_NUMBER, boost::lexical_cast<std::string>(i + 1));
-        dicom->Replace(DICOM_TAG_IMAGE_INDEX, boost::lexical_cast<std::string>(i + 1));
+        dicom->ReplacePlainString(DICOM_TAG_INSTANCE_NUMBER, boost::lexical_cast<std::string>(i + 1));
+        dicom->ReplacePlainString(DICOM_TAG_IMAGE_INDEX, boost::lexical_cast<std::string>(i + 1));
 
         StoreCreatedInstance(someInstance, call, *dicom);
       }
@@ -730,12 +731,12 @@
           const Json::Value& tag = siblingTags[t];
           if (tag["Type"] == "Null")
           {
-            dicom.Replace(*it, "");
+            dicom.ReplacePlainString(*it, "");
           }
           else if (tag["Type"] == "String")
           {
             std::string value = tag["Value"].asString();
-            dicom.Replace(*it, Toolbox::ConvertFromUtf8(value, dicom.GetEncoding()));
+            dicom.ReplacePlainString(*it, Toolbox::ConvertFromUtf8(value, dicom.GetEncoding()));
           }
         }
       }
@@ -758,26 +759,26 @@
     // Inject time-related information
     std::string date, time;
     Toolbox::GetNowDicom(date, time);
-    dicom.Replace(DICOM_TAG_ACQUISITION_DATE, date);
-    dicom.Replace(DICOM_TAG_ACQUISITION_TIME, time);
-    dicom.Replace(DICOM_TAG_CONTENT_DATE, date);
-    dicom.Replace(DICOM_TAG_CONTENT_TIME, time);
-    dicom.Replace(DICOM_TAG_INSTANCE_CREATION_DATE, date);
-    dicom.Replace(DICOM_TAG_INSTANCE_CREATION_TIME, time);
+    dicom.ReplacePlainString(DICOM_TAG_ACQUISITION_DATE, date);
+    dicom.ReplacePlainString(DICOM_TAG_ACQUISITION_TIME, time);
+    dicom.ReplacePlainString(DICOM_TAG_CONTENT_DATE, date);
+    dicom.ReplacePlainString(DICOM_TAG_CONTENT_TIME, time);
+    dicom.ReplacePlainString(DICOM_TAG_INSTANCE_CREATION_DATE, date);
+    dicom.ReplacePlainString(DICOM_TAG_INSTANCE_CREATION_TIME, time);
 
     if (parentType == ResourceType_Patient ||
         parentType == ResourceType_Study ||
         parentType == ResourceType_Instance /* no parent */)
     {
-      dicom.Replace(DICOM_TAG_SERIES_DATE, date);
-      dicom.Replace(DICOM_TAG_SERIES_TIME, time);
+      dicom.ReplacePlainString(DICOM_TAG_SERIES_DATE, date);
+      dicom.ReplacePlainString(DICOM_TAG_SERIES_TIME, time);
     }
 
     if (parentType == ResourceType_Patient ||
         parentType == ResourceType_Instance /* no parent */)
     {
-      dicom.Replace(DICOM_TAG_STUDY_DATE, date);
-      dicom.Replace(DICOM_TAG_STUDY_TIME, time);
+      dicom.ReplacePlainString(DICOM_TAG_STUDY_DATE, date);
+      dicom.ReplacePlainString(DICOM_TAG_STUDY_TIME, time);
     }