comparison Framework/Inputs/DicomPyramid.cpp @ 69:d529d9ce3c7e

cache for DicomPyramidInstance
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 25 Nov 2016 21:56:07 +0100
parents f45cec2c32e2
children ff0ef01c332c
comparison
equal deleted inserted replaced
68:c619c8bd72ed 69:d529d9ce3c7e
58 } 58 }
59 } 59 }
60 } 60 }
61 61
62 62
63 void DicomPyramid::RegisterInstances(const std::string& seriesId) 63 void DicomPyramid::RegisterInstances(const std::string& seriesId,
64 bool useCache)
64 { 65 {
65 Json::Value series; 66 Json::Value series;
66 OrthancPlugins::IOrthancConnection::RestApiGet(series, orthanc_, "/series/" + seriesId); 67 OrthancPlugins::IOrthancConnection::RestApiGet(series, orthanc_, "/series/" + seriesId);
67 68
68 if (series.type() != Json::objectValue || 69 if (series.type() != Json::objectValue ||
84 85
85 std::string instance = instances[i].asString(); 86 std::string instance = instances[i].asString();
86 87
87 try 88 try
88 { 89 {
89 instances_.push_back(new DicomPyramidInstance(orthanc_, instance)); 90 instances_.push_back(new DicomPyramidInstance(orthanc_, instance, useCache));
90 } 91 }
91 catch (Orthanc::OrthancException&) 92 catch (Orthanc::OrthancException&)
92 { 93 {
93 LOG(ERROR) << "Skipping a DICOM instance that is not part of a whole-slide image: " << instance; 94 LOG(ERROR) << "Skipping a DICOM instance that is not part of a whole-slide image: " << instance;
94 } 95 }
136 } 137 }
137 } 138 }
138 139
139 140
140 DicomPyramid::DicomPyramid(OrthancPlugins::IOrthancConnection& orthanc, 141 DicomPyramid::DicomPyramid(OrthancPlugins::IOrthancConnection& orthanc,
141 const std::string& seriesId) : 142 const std::string& seriesId,
143 bool useCache) :
142 orthanc_(orthanc), 144 orthanc_(orthanc),
143 seriesId_(seriesId) 145 seriesId_(seriesId)
144 { 146 {
145 RegisterInstances(seriesId); 147 RegisterInstances(seriesId, useCache);
146 148
147 // Sort the instances of the pyramid by decreasing total widths 149 // Sort the instances of the pyramid by decreasing total widths
148 std::sort(instances_.begin(), instances_.end(), Comparator()); 150 std::sort(instances_.begin(), instances_.end(), Comparator());
149 151
150 try 152 try