Mercurial > hg > orthanc
comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.h @ 5568:b0b5546f1b9f find-refactoring
find refactor: re-use existing code. /studies?expand is almost fully implemented with new code
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Thu, 25 Apr 2024 09:22:07 +0200 |
parents | 12d8a1a266e9 |
children | 738f80622e91 |
comparison
equal
deleted
inserted
replaced
5567:f3562c1a150d | 5568:b0b5546f1b9f |
---|---|
78 fileSize_(0), | 78 fileSize_(0), |
79 indexInSeries_(0) | 79 indexInSeries_(0) |
80 { | 80 { |
81 } | 81 } |
82 | 82 |
83 ExpandedResource(const FindResponse::Item& item); | |
84 | |
83 void SetResource(ResourceType level, | 85 void SetResource(ResourceType level, |
84 const std::string& id) | 86 const std::string& id) |
85 { | 87 { |
86 level_ = level; | 88 level_ = level; |
87 id_ = id; | 89 id_ = id; |
109 }; | 111 }; |
110 | 112 |
111 enum ExpandResourceFlags | 113 enum ExpandResourceFlags |
112 { | 114 { |
113 ExpandResourceFlags_None = 0, | 115 ExpandResourceFlags_None = 0, |
116 // used to fetch from DB and for output | |
114 ExpandResourceFlags_IncludeMetadata = (1 << 0), | 117 ExpandResourceFlags_IncludeMetadata = (1 << 0), |
115 ExpandResourceFlags_IncludeChildren = (1 << 1), | 118 ExpandResourceFlags_IncludeChildren = (1 << 1), |
116 ExpandResourceFlags_IncludeMainDicomTags = (1 << 2), | 119 ExpandResourceFlags_IncludeMainDicomTags = (1 << 2), |
117 ExpandResourceFlags_IncludeLabels = (1 << 3), | 120 ExpandResourceFlags_IncludeLabels = (1 << 3), |
118 | 121 |
119 ExpandResourceFlags_Default = (ExpandResourceFlags_IncludeMetadata | | 122 // only used for output |
120 ExpandResourceFlags_IncludeChildren | | 123 ExpandResourceFlags_IncludeAllMetadata = (1 << 4), // new in Orthanc 1.12.4 |
121 ExpandResourceFlags_IncludeMainDicomTags | | 124 ExpandResourceFlags_IncludeIsStable = (1 << 5), // new in Orthanc 1.12.4 |
122 ExpandResourceFlags_IncludeLabels) | 125 |
126 ExpandResourceFlags_DefaultExtract = (ExpandResourceFlags_IncludeMetadata | | |
127 ExpandResourceFlags_IncludeChildren | | |
128 ExpandResourceFlags_IncludeMainDicomTags | | |
129 ExpandResourceFlags_IncludeLabels), | |
130 | |
131 ExpandResourceFlags_DefaultOutput = (ExpandResourceFlags_IncludeMetadata | | |
132 ExpandResourceFlags_IncludeChildren | | |
133 ExpandResourceFlags_IncludeMainDicomTags | | |
134 ExpandResourceFlags_IncludeLabels | | |
135 ExpandResourceFlags_IncludeIsStable) | |
123 }; | 136 }; |
124 | 137 |
125 class StatelessDatabaseOperations : public boost::noncopyable | 138 class StatelessDatabaseOperations : public boost::noncopyable |
126 { | 139 { |
127 public: | 140 public: |
376 { | 389 { |
377 transaction_.ListAllLabels(target); | 390 transaction_.ListAllLabels(target); |
378 } | 391 } |
379 | 392 |
380 void ExecuteFind(FindResponse& response, | 393 void ExecuteFind(FindResponse& response, |
381 const FindRequest& request) | 394 const FindRequest& request, |
382 { | 395 const std::vector<DatabaseConstraint>& normalized) |
383 transaction_.ExecuteFind(response, request); | 396 { |
397 transaction_.ExecuteFind(response, request, normalized); | |
384 } | 398 } |
385 }; | 399 }; |
386 | 400 |
387 | 401 |
388 class ReadWriteTransaction : public ReadOnlyTransaction | 402 class ReadWriteTransaction : public ReadOnlyTransaction |
561 unsigned int maxRetries_; | 575 unsigned int maxRetries_; |
562 | 576 |
563 void NormalizeLookup(std::vector<DatabaseConstraint>& target, | 577 void NormalizeLookup(std::vector<DatabaseConstraint>& target, |
564 const DatabaseLookup& source, | 578 const DatabaseLookup& source, |
565 ResourceType level) const; | 579 ResourceType level) const; |
580 | |
581 void NormalizeLookup(std::vector<DatabaseConstraint>& target, | |
582 const FindRequest& findRequest) const; | |
566 | 583 |
567 void ApplyInternal(IReadOnlyOperations* readOperations, | 584 void ApplyInternal(IReadOnlyOperations* readOperations, |
568 IReadWriteOperations* writeOperations); | 585 IReadWriteOperations* writeOperations); |
569 | 586 |
570 protected: | 587 protected: |