Mercurial > hg > orthanc
diff OrthancServer/ServerContext.cpp @ 3814:023b2a9f3aa1 transcoding
new enum: StoreInstanceMode
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 07 Apr 2020 17:35:44 +0200 |
parents | aaaa442bfe39 |
children | 5bba4d249422 |
line wrap: on
line diff
--- a/OrthancServer/ServerContext.cpp Tue Apr 07 14:03:33 2020 +0200 +++ b/OrthancServer/ServerContext.cpp Tue Apr 07 17:35:44 2020 +0200 @@ -340,8 +340,28 @@ StoreStatus ServerContext::Store(std::string& resultPublicId, - DicomInstanceToStore& dicom) + DicomInstanceToStore& dicom, + StoreInstanceMode mode) { + bool overwrite; + switch (mode) + { + case StoreInstanceMode_Default: + overwrite = overwriteInstances_; + break; + + case StoreInstanceMode_OverwriteDuplicate: + overwrite = true; + break; + + case StoreInstanceMode_IgnoreDuplicate: + overwrite = false; + break; + + default: + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + try { MetricsRegistry::Timer timer(GetMetricsRegistry(), "orthanc_store_dicom_duration_ms"); @@ -406,7 +426,7 @@ typedef std::map<MetadataType, std::string> InstanceMetadata; InstanceMetadata instanceMetadata; StoreStatus status = index_.Store( - instanceMetadata, dicom, attachments, overwriteInstances_); + instanceMetadata, dicom, attachments, overwrite); // Only keep the metadata for the "instance" level dicom.GetMetadata().clear();