Mercurial > hg > orthanc
diff OrthancServer/Sources/ServerContext.cpp @ 4505:97d103b57cd1
removed cached dicom summary from DicomInstanceToStore
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 10 Feb 2021 12:07:03 +0100 |
parents | 7d1eabfac6e0 |
children | ac69c9f76c71 |
line wrap: on
line diff
--- a/OrthancServer/Sources/ServerContext.cpp Wed Feb 10 11:29:53 2021 +0100 +++ b/OrthancServer/Sources/ServerContext.cpp Wed Feb 10 12:07:03 2021 +0100 @@ -512,19 +512,21 @@ throw OrthancException(ErrorCode_ParameterOutOfRange); } - bool hasPixelDataOffset; uint64_t pixelDataOffset; hasPixelDataOffset = DicomStreamReader::LookupPixelDataOffset( pixelDataOffset, dicom.GetBufferData(), dicom.GetBufferSize()); - - + + DicomMap summary; + OrthancConfiguration::DefaultExtractDicomSummary(summary, dicom.GetParsedDicomFile()); + try { MetricsRegistry::Timer timer(GetMetricsRegistry(), "orthanc_store_dicom_duration_ms"); StorageAccessor accessor(area_, GetMetricsRegistry()); - resultPublicId = dicom.GetHasher().HashInstance(); + DicomInstanceHasher hasher(summary); + resultPublicId = hasher.HashInstance(); Json::Value dicomAsJson; OrthancConfiguration::DefaultDicomDatasetToJson(dicomAsJson, dicom.GetParsedDicomFile()); @@ -588,8 +590,8 @@ typedef std::map<MetadataType, std::string> InstanceMetadata; InstanceMetadata instanceMetadata; - StoreStatus status = index_.Store( - instanceMetadata, dicom, attachments, overwrite, hasPixelDataOffset, pixelDataOffset); + StoreStatus status = index_.Store(instanceMetadata, dicom, summary, hasher, attachments, + overwrite, hasPixelDataOffset, pixelDataOffset); // Only keep the metadata for the "instance" level dicom.GetMetadata().clear(); @@ -656,9 +658,9 @@ { if (e.GetErrorCode() == ErrorCode_InexistentTag) { - dicom.GetSummary().LogMissingTagsForStore(); + summary.LogMissingTagsForStore(); } - + throw; } }