Mercurial > hg > orthanc-databases
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) |