diff OrthancServer/Sources/OrthancWebDav.cpp @ 4460:6831de40acd9

New metadata automatically computed at the series level: "RemoteAET"
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 20 Jan 2021 14:20:37 +0100
parents d9473bd5ed43
children 8f9090b137f1
line wrap: on
line diff
--- a/OrthancServer/Sources/OrthancWebDav.cpp	Wed Jan 20 13:30:54 2021 +0100
+++ b/OrthancServer/Sources/OrthancWebDav.cpp	Wed Jan 20 14:20:37 2021 +0100
@@ -66,10 +66,11 @@
   static void LookupTime(boost::posix_time::ptime& target,
                          ServerContext& context,
                          const std::string& publicId,
+                         ResourceType level,
                          MetadataType metadata)
   {
     std::string value;
-    if (context.GetIndex().LookupMetadata(value, publicId, metadata))
+    if (context.GetIndex().LookupMetadata(value, publicId, level, metadata))
     {
       try
       {
@@ -168,7 +169,7 @@
         if (resource.get() != NULL)
         {
           boost::posix_time::ptime t;
-          LookupTime(t, context_, publicId, timeMetadata);
+          LookupTime(t, context_, publicId, level_, timeMetadata);
           resource->SetCreationTime(t);
           target_.AddResource(resource.release());
         }
@@ -221,7 +222,7 @@
       }
       else
       {
-        LookupTime(time_, context_, publicId, MetadataType_Instance_ReceptionDate);
+        LookupTime(time_, context_, publicId, ResourceType_Instance, MetadataType_Instance_ReceptionDate);
         context_.ReadDicom(target_, publicId);
         success_ = true;
       }
@@ -504,7 +505,7 @@
                it = resources.begin(); it != resources.end(); ++it)
         {
           boost::posix_time::ptime time;
-          LookupTime(time, context_, *it, MetadataType_Instance_ReceptionDate);
+          LookupTime(time, context_, *it, ResourceType_Instance, MetadataType_Instance_ReceptionDate);
 
           FileInfo info;
           if (context_.GetIndex().LookupAttachment(info, *it, FileContentType_Dicom))
@@ -537,7 +538,7 @@
         {
           mime = MimeType_Dicom;
           context_.ReadDicom(content, instanceId);
-          LookupTime(time, context_, instanceId, MetadataType_Instance_ReceptionDate);
+          LookupTime(time, context_, instanceId, ResourceType_Instance, MetadataType_Instance_ReceptionDate);
           return true;
         }
         catch (OrthancException&)
@@ -804,7 +805,7 @@
         for (ResourcesIndex::Map::const_iterator it = paths.begin(); it != paths.end(); ++it)
         {
           boost::posix_time::ptime time;
-          LookupTime(time, context_, it->second, timeMetadata_);
+          LookupTime(time, context_, it->second, index_->GetLevel(), timeMetadata_);
 
           std::unique_ptr<IWebDavBucket::Resource> resource(new IWebDavBucket::Folder(it->first));
           resource->SetCreationTime(time);