Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
3813:aaaa442bfe39 | 3814:023b2a9f3aa1 |
---|---|
338 accessor.Remove(fileUuid, type); | 338 accessor.Remove(fileUuid, type); |
339 } | 339 } |
340 | 340 |
341 | 341 |
342 StoreStatus ServerContext::Store(std::string& resultPublicId, | 342 StoreStatus ServerContext::Store(std::string& resultPublicId, |
343 DicomInstanceToStore& dicom) | 343 DicomInstanceToStore& dicom, |
344 { | 344 StoreInstanceMode mode) |
345 { | |
346 bool overwrite; | |
347 switch (mode) | |
348 { | |
349 case StoreInstanceMode_Default: | |
350 overwrite = overwriteInstances_; | |
351 break; | |
352 | |
353 case StoreInstanceMode_OverwriteDuplicate: | |
354 overwrite = true; | |
355 break; | |
356 | |
357 case StoreInstanceMode_IgnoreDuplicate: | |
358 overwrite = false; | |
359 break; | |
360 | |
361 default: | |
362 throw OrthancException(ErrorCode_ParameterOutOfRange); | |
363 } | |
364 | |
345 try | 365 try |
346 { | 366 { |
347 MetricsRegistry::Timer timer(GetMetricsRegistry(), "orthanc_store_dicom_duration_ms"); | 367 MetricsRegistry::Timer timer(GetMetricsRegistry(), "orthanc_store_dicom_duration_ms"); |
348 StorageAccessor accessor(area_, GetMetricsRegistry()); | 368 StorageAccessor accessor(area_, GetMetricsRegistry()); |
349 | 369 |
404 attachments.push_back(jsonInfo); | 424 attachments.push_back(jsonInfo); |
405 | 425 |
406 typedef std::map<MetadataType, std::string> InstanceMetadata; | 426 typedef std::map<MetadataType, std::string> InstanceMetadata; |
407 InstanceMetadata instanceMetadata; | 427 InstanceMetadata instanceMetadata; |
408 StoreStatus status = index_.Store( | 428 StoreStatus status = index_.Store( |
409 instanceMetadata, dicom, attachments, overwriteInstances_); | 429 instanceMetadata, dicom, attachments, overwrite); |
410 | 430 |
411 // Only keep the metadata for the "instance" level | 431 // Only keep the metadata for the "instance" level |
412 dicom.GetMetadata().clear(); | 432 dicom.GetMetadata().clear(); |
413 | 433 |
414 for (InstanceMetadata::const_iterator it = instanceMetadata.begin(); | 434 for (InstanceMetadata::const_iterator it = instanceMetadata.begin(); |