Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
4459:16392fe89ce0 | 4460:6831de40acd9 |
---|---|
64 | 64 |
65 | 65 |
66 static void LookupTime(boost::posix_time::ptime& target, | 66 static void LookupTime(boost::posix_time::ptime& target, |
67 ServerContext& context, | 67 ServerContext& context, |
68 const std::string& publicId, | 68 const std::string& publicId, |
69 ResourceType level, | |
69 MetadataType metadata) | 70 MetadataType metadata) |
70 { | 71 { |
71 std::string value; | 72 std::string value; |
72 if (context.GetIndex().LookupMetadata(value, publicId, metadata)) | 73 if (context.GetIndex().LookupMetadata(value, publicId, level, metadata)) |
73 { | 74 { |
74 try | 75 try |
75 { | 76 { |
76 target = boost::posix_time::from_iso_string(value); | 77 target = boost::posix_time::from_iso_string(value); |
77 return; | 78 return; |
166 } | 167 } |
167 | 168 |
168 if (resource.get() != NULL) | 169 if (resource.get() != NULL) |
169 { | 170 { |
170 boost::posix_time::ptime t; | 171 boost::posix_time::ptime t; |
171 LookupTime(t, context_, publicId, timeMetadata); | 172 LookupTime(t, context_, publicId, level_, timeMetadata); |
172 resource->SetCreationTime(t); | 173 resource->SetCreationTime(t); |
173 target_.AddResource(resource.release()); | 174 target_.AddResource(resource.release()); |
174 } | 175 } |
175 } | 176 } |
176 } | 177 } |
219 { | 220 { |
220 success_ = false; // Two matches => Error | 221 success_ = false; // Two matches => Error |
221 } | 222 } |
222 else | 223 else |
223 { | 224 { |
224 LookupTime(time_, context_, publicId, MetadataType_Instance_ReceptionDate); | 225 LookupTime(time_, context_, publicId, ResourceType_Instance, MetadataType_Instance_ReceptionDate); |
225 context_.ReadDicom(target_, publicId); | 226 context_.ReadDicom(target_, publicId); |
226 success_ = true; | 227 success_ = true; |
227 } | 228 } |
228 } | 229 } |
229 }; | 230 }; |
502 | 503 |
503 for (std::list<std::string>::const_iterator | 504 for (std::list<std::string>::const_iterator |
504 it = resources.begin(); it != resources.end(); ++it) | 505 it = resources.begin(); it != resources.end(); ++it) |
505 { | 506 { |
506 boost::posix_time::ptime time; | 507 boost::posix_time::ptime time; |
507 LookupTime(time, context_, *it, MetadataType_Instance_ReceptionDate); | 508 LookupTime(time, context_, *it, ResourceType_Instance, MetadataType_Instance_ReceptionDate); |
508 | 509 |
509 FileInfo info; | 510 FileInfo info; |
510 if (context_.GetIndex().LookupAttachment(info, *it, FileContentType_Dicom)) | 511 if (context_.GetIndex().LookupAttachment(info, *it, FileContentType_Dicom)) |
511 { | 512 { |
512 std::unique_ptr<File> resource(new File(*it + ".dcm")); | 513 std::unique_ptr<File> resource(new File(*it + ".dcm")); |
535 { | 536 { |
536 try | 537 try |
537 { | 538 { |
538 mime = MimeType_Dicom; | 539 mime = MimeType_Dicom; |
539 context_.ReadDicom(content, instanceId); | 540 context_.ReadDicom(content, instanceId); |
540 LookupTime(time, context_, instanceId, MetadataType_Instance_ReceptionDate); | 541 LookupTime(time, context_, instanceId, ResourceType_Instance, MetadataType_Instance_ReceptionDate); |
541 return true; | 542 return true; |
542 } | 543 } |
543 catch (OrthancException&) | 544 catch (OrthancException&) |
544 { | 545 { |
545 // File was removed | 546 // File was removed |
802 const ResourcesIndex::Map& paths = index_->GetPathToResource(); | 803 const ResourcesIndex::Map& paths = index_->GetPathToResource(); |
803 | 804 |
804 for (ResourcesIndex::Map::const_iterator it = paths.begin(); it != paths.end(); ++it) | 805 for (ResourcesIndex::Map::const_iterator it = paths.begin(); it != paths.end(); ++it) |
805 { | 806 { |
806 boost::posix_time::ptime time; | 807 boost::posix_time::ptime time; |
807 LookupTime(time, context_, it->second, timeMetadata_); | 808 LookupTime(time, context_, it->second, index_->GetLevel(), timeMetadata_); |
808 | 809 |
809 std::unique_ptr<IWebDavBucket::Resource> resource(new IWebDavBucket::Folder(it->first)); | 810 std::unique_ptr<IWebDavBucket::Resource> resource(new IWebDavBucket::Folder(it->first)); |
810 resource->SetCreationTime(time); | 811 resource->SetCreationTime(time); |
811 target.AddResource(resource.release()); | 812 target.AddResource(resource.release()); |
812 } | 813 } |