diff OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp @ 1005:84b6d7bca6db lua-scripting

refactoring of ServerContext::Store
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 08 Jul 2014 14:34:11 +0200
parents b067017a8a5b
children 160dfe770618
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp	Tue Jul 08 14:06:05 2014 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp	Tue Jul 08 14:34:11 2014 +0200
@@ -258,6 +258,9 @@
       std::auto_ptr<ParsedDicomFile> modified(original.Clone());
       modification.Apply(*modified);
 
+      DicomInstanceToStore toStore;
+      toStore.SetParsedDicomFile(*modified);
+
 
       /**
        * Prepare the metadata information to associate with the
@@ -265,25 +268,24 @@
        **/
 
       DicomInstanceHasher modifiedHasher = modified->GetHasher();
-      ServerIndex::MetadataMap metadata;
 
       if (originalHasher.HashSeries() != modifiedHasher.HashSeries())
       {
-        metadata[std::make_pair(ResourceType_Series, metadataType)] = originalHasher.HashSeries();
+        toStore.AddMetadata(ResourceType_Series, metadataType, originalHasher.HashSeries());
       }
 
       if (originalHasher.HashStudy() != modifiedHasher.HashStudy())
       {
-        metadata[std::make_pair(ResourceType_Study, metadataType)] = originalHasher.HashStudy();
+        toStore.AddMetadata(ResourceType_Study, metadataType, originalHasher.HashStudy());
       }
 
       if (originalHasher.HashPatient() != modifiedHasher.HashPatient())
       {
-        metadata[std::make_pair(ResourceType_Patient, metadataType)] = originalHasher.HashPatient();
+        toStore.AddMetadata(ResourceType_Patient, metadataType, originalHasher.HashPatient());
       }
 
       assert(*it == originalHasher.HashInstance());
-      metadata[std::make_pair(ResourceType_Instance, metadataType)] = *it;
+      toStore.AddMetadata(ResourceType_Instance, metadataType, *it);
 
 
       /**
@@ -291,7 +293,7 @@
        **/
 
       std::string modifiedInstance;
-      if (context.Store(modifiedInstance, *modified, metadata) != StoreStatus_Success)
+      if (context.Store(modifiedInstance, toStore) != StoreStatus_Success)
       {
         LOG(ERROR) << "Error while storing a modified instance " << *it;
         return;
@@ -429,8 +431,11 @@
 
       modification.Apply(dicom);
 
+      DicomInstanceToStore toStore;
+      toStore.SetParsedDicomFile(dicom);
+
       std::string id;
-      StoreStatus status = OrthancRestApi::GetContext(call).Store(id, dicom);
+      StoreStatus status = OrthancRestApi::GetContext(call).Store(id, toStore);
 
       if (status == StoreStatus_Failure)
       {