Mercurial > hg > orthanc
comparison OrthancServer/OrthancFindRequestHandler.cpp @ 2039:e33e0ae51d7b
new configuration option AllowFindSopClassesInStudy
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 21 Jun 2016 15:17:49 +0200 |
parents | 655489d9165d |
children | b9428d5f7eaf |
comparison
equal
deleted
inserted
replaced
2038:235319b3ddf0 | 2039:e33e0ae51d7b |
---|---|
110 static void ExtractTagFromInstances(std::set<std::string>& target, | 110 static void ExtractTagFromInstances(std::set<std::string>& target, |
111 ServerContext& context, | 111 ServerContext& context, |
112 const DicomTag& tag, | 112 const DicomTag& tag, |
113 const std::list<std::string>& instances) | 113 const std::list<std::string>& instances) |
114 { | 114 { |
115 // WARNING: This function is slow, as it reads the JSON file | |
116 // summarizing each instance of interest from the hard drive. | |
117 | |
115 std::string formatted = tag.Format(); | 118 std::string formatted = tag.Format(); |
116 | 119 |
117 for (std::list<std::string>::const_iterator | 120 for (std::list<std::string>::const_iterator |
118 it = instances.begin(); it != instances.end(); ++it) | 121 it = instances.begin(); it != instances.end(); ++it) |
119 { | 122 { |
221 boost::lexical_cast<std::string>(instances.size()), false); | 224 boost::lexical_cast<std::string>(instances.size()), false); |
222 } | 225 } |
223 | 226 |
224 if (query.HasTag(DICOM_TAG_SOP_CLASSES_IN_STUDY)) | 227 if (query.HasTag(DICOM_TAG_SOP_CLASSES_IN_STUDY)) |
225 { | 228 { |
226 std::set<std::string> values; | 229 if (Configuration::GetGlobalBoolParameter("AllowFindSopClassesInStudy", false)) |
227 ExtractTagFromInstances(values, context, DICOM_TAG_SOP_CLASS_UID, instances); | 230 { |
228 StoreSetOfStrings(result, DICOM_TAG_SOP_CLASSES_IN_STUDY, values); | 231 std::set<std::string> values; |
232 ExtractTagFromInstances(values, context, DICOM_TAG_SOP_CLASS_UID, instances); | |
233 StoreSetOfStrings(result, DICOM_TAG_SOP_CLASSES_IN_STUDY, values); | |
234 } | |
235 else | |
236 { | |
237 result.SetValue(DICOM_TAG_SOP_CLASSES_IN_STUDY, "", false); | |
238 LOG(WARNING) << "The handling of \"SOP Classes in Study\" (0008,0062) " | |
239 << "in C-FIND requests is disabled"; | |
240 } | |
229 } | 241 } |
230 } | 242 } |
231 | 243 |
232 | 244 |
233 static void ComputeSeriesCounters(DicomMap& result, | 245 static void ComputeSeriesCounters(DicomMap& result, |