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&)