comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp @ 5680:68fc5af30c03

added container class DatabaseConstraints
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 09 Jul 2024 10:09:57 +0200
parents e47ac5e133b1
children 77875b51cf95
comparison
equal deleted inserted replaced
5678:e47ac5e133b1 5680:68fc5af30c03
403 LoadTags(ResourceType_Study); 403 LoadTags(ResourceType_Study);
404 LoadTags(ResourceType_Series); 404 LoadTags(ResourceType_Series);
405 LoadTags(ResourceType_Instance); 405 LoadTags(ResourceType_Instance);
406 } 406 }
407 407
408 void NormalizeLookup(std::vector<DatabaseConstraint>& target, 408 void NormalizeLookup(DatabaseConstraints& target,
409 const DatabaseLookup& source, 409 const DatabaseLookup& source,
410 ResourceType queryLevel) const 410 ResourceType queryLevel) const
411 { 411 {
412 target.clear(); 412 target.Clear();
413 target.reserve(source.GetConstraintsCount());
414 413
415 for (size_t i = 0; i < source.GetConstraintsCount(); i++) 414 for (size_t i = 0; i < source.GetConstraintsCount(); i++)
416 { 415 {
417 ResourceType level; 416 ResourceType level;
418 DicomTagType type; 417 DicomTagType type;
427 queryLevel != ResourceType_Patient) 426 queryLevel != ResourceType_Patient)
428 { 427 {
429 level = ResourceType_Study; 428 level = ResourceType_Study;
430 } 429 }
431 430
432 target.push_back(source.GetConstraint(i).ConvertToDatabaseConstraint(level, type)); 431 target.AddConstraint(source.GetConstraint(i).ConvertToDatabaseConstraint(level, type));
433 } 432 }
434 } 433 }
435 } 434 }
436 }; 435 };
437 436
1685 1684
1686 result.clear(); 1685 result.clear();
1687 1686
1688 DicomTagConstraint c(tag, ConstraintType_Equal, value, true, true); 1687 DicomTagConstraint c(tag, ConstraintType_Equal, value, true, true);
1689 1688
1690 std::vector<DatabaseConstraint> query; 1689 DatabaseConstraints query;
1691 query.push_back(c.ConvertToDatabaseConstraint(level, DicomTagType_Identifier)); 1690 query.AddConstraint(c.ConvertToDatabaseConstraint(level, DicomTagType_Identifier));
1692 1691
1693 1692
1694 class Operations : public IReadOnlyOperations 1693 class Operations : public IReadOnlyOperations
1695 { 1694 {
1696 private: 1695 private:
1697 std::vector<std::string>& result_; 1696 std::vector<std::string>& result_;
1698 const std::vector<DatabaseConstraint>& query_; 1697 const DatabaseConstraints& query_;
1699 ResourceType level_; 1698 ResourceType level_;
1700 1699
1701 public: 1700 public:
1702 Operations(std::vector<std::string>& result, 1701 Operations(std::vector<std::string>& result,
1703 const std::vector<DatabaseConstraint>& query, 1702 const DatabaseConstraints& query,
1704 ResourceType level) : 1703 ResourceType level) :
1705 result_(result), 1704 result_(result),
1706 query_(query), 1705 query_(query),
1707 level_(level) 1706 level_(level)
1708 { 1707 {
1984 ResourceType queryLevel, 1983 ResourceType queryLevel,
1985 const std::set<std::string>& labels, 1984 const std::set<std::string>& labels,
1986 LabelsConstraint labelsConstraint, 1985 LabelsConstraint labelsConstraint,
1987 uint32_t limit) 1986 uint32_t limit)
1988 { 1987 {
1989 class Operations : public ReadOnlyOperationsT6<bool, const std::vector<DatabaseConstraint>&, ResourceType, 1988 class Operations : public ReadOnlyOperationsT6<bool, const DatabaseConstraints&, ResourceType,
1990 const std::set<std::string>&, LabelsConstraint, size_t> 1989 const std::set<std::string>&, LabelsConstraint, size_t>
1991 { 1990 {
1992 private: 1991 private:
1993 std::list<std::string> resourcesList_; 1992 std::list<std::string> resourcesList_;
1994 std::list<std::string> instancesList_; 1993 std::list<std::string> instancesList_;
2030 for (std::set<std::string>::const_iterator it = labels.begin(); it != labels.end(); ++it) 2029 for (std::set<std::string>::const_iterator it = labels.begin(); it != labels.end(); ++it)
2031 { 2030 {
2032 ServerToolbox::CheckValidLabel(*it); 2031 ServerToolbox::CheckValidLabel(*it);
2033 } 2032 }
2034 2033
2035 std::vector<DatabaseConstraint> normalized; 2034 DatabaseConstraints normalized;
2036 2035
2037 assert(mainDicomTagsRegistry_.get() != NULL); 2036 assert(mainDicomTagsRegistry_.get() != NULL);
2038 mainDicomTagsRegistry_->NormalizeLookup(normalized, lookup, queryLevel); 2037 mainDicomTagsRegistry_->NormalizeLookup(normalized, lookup, queryLevel);
2039 2038
2040 Operations operations; 2039 Operations operations;