Mercurial > hg > orthanc
comparison OrthancServer/Sources/ServerContext.cpp @ 5420:d37dff2c0028 am-new-cache
Optimized the MemoryStringCache to prevent loading the same file multiple times if multiple users request the same file at the same time
author | Alain Mazy <am@osimis.io> |
---|---|
date | Mon, 13 Nov 2023 17:01:59 +0100 |
parents | 16cbfefa15e9 |
children | c65e036d649b |
comparison
equal
deleted
inserted
replaced
5419:ac4e9fb87615 | 5420:d37dff2c0028 |
---|---|
1076 | 1076 |
1077 std::string dicom; | 1077 std::string dicom; |
1078 | 1078 |
1079 { | 1079 { |
1080 StorageAccessor accessor(area_, storageCache_, GetMetricsRegistry()); | 1080 StorageAccessor accessor(area_, storageCache_, GetMetricsRegistry()); |
1081 accessor.ReadStartRange(dicom, attachment.GetUuid(), FileContentType_Dicom, pixelDataOffset); | 1081 accessor.ReadStartRange(dicom, attachment, pixelDataOffset); |
1082 } | 1082 } |
1083 | 1083 |
1084 assert(dicom.size() == pixelDataOffset); | 1084 assert(dicom.size() == pixelDataOffset); |
1085 ParsedDicomFile parsed(dicom); | 1085 ParsedDicomFile parsed(dicom); |
1086 OrthancConfiguration::DefaultDicomDatasetToJson(result, parsed, ignoreTagLength); | 1086 OrthancConfiguration::DefaultDicomDatasetToJson(result, parsed, ignoreTagLength); |
1217 { | 1217 { |
1218 uint64_t pixelDataOffset = boost::lexical_cast<uint64_t>(s); | 1218 uint64_t pixelDataOffset = boost::lexical_cast<uint64_t>(s); |
1219 | 1219 |
1220 StorageAccessor accessor(area_, storageCache_, GetMetricsRegistry()); | 1220 StorageAccessor accessor(area_, storageCache_, GetMetricsRegistry()); |
1221 | 1221 |
1222 accessor.ReadStartRange(dicom, attachment.GetUuid(), attachment.GetContentType(), pixelDataOffset); | 1222 accessor.ReadStartRange(dicom, attachment, pixelDataOffset); |
1223 assert(dicom.size() == pixelDataOffset); | 1223 assert(dicom.size() == pixelDataOffset); |
1224 | 1224 |
1225 return true; // Success | 1225 return true; // Success |
1226 } | 1226 } |
1227 catch (boost::bad_lexical_cast&) | 1227 catch (boost::bad_lexical_cast&) |