comparison Framework/Plugins/IndexBackend.cpp @ 551:1a23f1ce3b98

move classes DatabaseConstraint and ISqlLookupFormatter into namespace OrthancDatabases
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 09 Sep 2024 15:19:28 +0200
parents aff02ad9fbbc
children 987460ae14c9
comparison
equal deleted inserted replaced
549:e620f36b8e09 551:1a23f1ce3b98
2019 ReadListOfStrings(childrenPublicIds, statement, args); 2019 ReadListOfStrings(childrenPublicIds, statement, args);
2020 } 2020 }
2021 2021
2022 2022
2023 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 2023 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1
2024 class IndexBackend::LookupFormatter : public Orthanc::ISqlLookupFormatter 2024 class IndexBackend::LookupFormatter : public ISqlLookupFormatter
2025 { 2025 {
2026 private: 2026 private:
2027 Dialect dialect_; 2027 Dialect dialect_;
2028 size_t count_; 2028 size_t count_;
2029 Dictionary dictionary_; 2029 Dictionary dictionary_;
2050 return "${" + key + "}"; 2050 return "${" + key + "}";
2051 } 2051 }
2052 2052
2053 virtual std::string FormatResourceType(Orthanc::ResourceType level) 2053 virtual std::string FormatResourceType(Orthanc::ResourceType level)
2054 { 2054 {
2055 return boost::lexical_cast<std::string>(Orthanc::Plugins::Convert(level)); 2055 return boost::lexical_cast<std::string>(Plugins::Convert(level));
2056 } 2056 }
2057 2057
2058 virtual std::string FormatWildcardEscape() 2058 virtual std::string FormatWildcardEscape()
2059 { 2059 {
2060 switch (dialect_) 2060 switch (dialect_)
2099 2099
2100 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 2100 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1
2101 // New primitive since Orthanc 1.5.2 2101 // New primitive since Orthanc 1.5.2
2102 void IndexBackend::LookupResources(IDatabaseBackendOutput& output, 2102 void IndexBackend::LookupResources(IDatabaseBackendOutput& output,
2103 DatabaseManager& manager, 2103 DatabaseManager& manager,
2104 const Orthanc::DatabaseConstraints& lookup, 2104 const DatabaseConstraints& lookup,
2105 OrthancPluginResourceType queryLevel_, 2105 OrthancPluginResourceType queryLevel_,
2106 const std::set<std::string>& labels, 2106 const std::set<std::string>& labels,
2107 Orthanc::LabelsConstraint labelsConstraint, 2107 LabelsConstraint labelsConstraint,
2108 uint32_t limit, 2108 uint32_t limit,
2109 bool requestSomeInstance) 2109 bool requestSomeInstance)
2110 { 2110 {
2111 LookupFormatter formatter(manager.GetDialect()); 2111 LookupFormatter formatter(manager.GetDialect());
2112 Orthanc::ResourceType queryLevel = Orthanc::Plugins::Convert(queryLevel_); 2112 Orthanc::ResourceType queryLevel = Plugins::Convert(queryLevel_);
2113 Orthanc::ResourceType lowerLevel, upperLevel; 2113 Orthanc::ResourceType lowerLevel, upperLevel;
2114 Orthanc::ISqlLookupFormatter::GetLookupLevels(lowerLevel, upperLevel, queryLevel, lookup); 2114 ISqlLookupFormatter::GetLookupLevels(lowerLevel, upperLevel, queryLevel, lookup);
2115 2115
2116 std::string sql; 2116 std::string sql;
2117 bool enableNewStudyCode = true; 2117 bool enableNewStudyCode = true;
2118 2118
2119 if (enableNewStudyCode && lowerLevel == queryLevel && upperLevel == queryLevel) 2119 if (enableNewStudyCode && lowerLevel == queryLevel && upperLevel == queryLevel)
2120 { 2120 {
2121 Orthanc::ISqlLookupFormatter::ApplySingleLevel(sql, formatter, lookup, queryLevel, labels, labelsConstraint, limit); 2121 ISqlLookupFormatter::ApplySingleLevel(sql, formatter, lookup, queryLevel, labels, labelsConstraint, limit);
2122 2122
2123 if (requestSomeInstance) 2123 if (requestSomeInstance)
2124 { 2124 {
2125 // Composite query to find some instance if requested 2125 // Composite query to find some instance if requested
2126 switch (queryLevel) 2126 switch (queryLevel)
2165 } 2165 }
2166 } 2166 }
2167 } 2167 }
2168 else 2168 else
2169 { 2169 {
2170 Orthanc::ISqlLookupFormatter::Apply(sql, formatter, lookup, queryLevel, labels, labelsConstraint, limit); 2170 ISqlLookupFormatter::Apply(sql, formatter, lookup, queryLevel, labels, labelsConstraint, limit);
2171 2171
2172 if (requestSomeInstance) 2172 if (requestSomeInstance)
2173 { 2173 {
2174 // Composite query to find some instance if requested 2174 // Composite query to find some instance if requested
2175 switch (queryLevel) 2175 switch (queryLevel)