Mercurial > hg > orthanc-databases
comparison Framework/Plugins/DatabaseBackendAdapterV4.cpp @ 536:4ecf50a4521c find-refactoring
sync ISqlLookupFormatter from Orthanc + fix bug 224: LIMIT shall not be used with MSSQL
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Fri, 06 Sep 2024 16:56:37 +0200 |
parents | 25cfcb752af6 |
children | 12f1c5265081 |
comparison
equal
deleted
inserted
replaced
535:03a4a1bc852a | 536:4ecf50a4521c |
---|---|
117 { | 117 { |
118 private: | 118 private: |
119 Orthanc::DatabasePluginMessages::DeleteAttachment::Response* deleteAttachment_; | 119 Orthanc::DatabasePluginMessages::DeleteAttachment::Response* deleteAttachment_; |
120 Orthanc::DatabasePluginMessages::DeleteResource::Response* deleteResource_; | 120 Orthanc::DatabasePluginMessages::DeleteResource::Response* deleteResource_; |
121 Orthanc::DatabasePluginMessages::GetChanges::Response* getChanges_; | 121 Orthanc::DatabasePluginMessages::GetChanges::Response* getChanges_; |
122 Orthanc::DatabasePluginMessages::GetChangesExtended::Response* getChangesExtended_; | |
122 Orthanc::DatabasePluginMessages::GetExportedResources::Response* getExportedResources_; | 123 Orthanc::DatabasePluginMessages::GetExportedResources::Response* getExportedResources_; |
123 Orthanc::DatabasePluginMessages::GetLastChange::Response* getLastChange_; | 124 Orthanc::DatabasePluginMessages::GetLastChange::Response* getLastChange_; |
124 Orthanc::DatabasePluginMessages::GetLastExportedResource::Response* getLastExportedResource_; | 125 Orthanc::DatabasePluginMessages::GetLastExportedResource::Response* getLastExportedResource_; |
125 Orthanc::DatabasePluginMessages::GetMainDicomTags::Response* getMainDicomTags_; | 126 Orthanc::DatabasePluginMessages::GetMainDicomTags::Response* getMainDicomTags_; |
126 Orthanc::DatabasePluginMessages::LookupAttachment::Response* lookupAttachment_; | 127 Orthanc::DatabasePluginMessages::LookupAttachment::Response* lookupAttachment_; |
129 void Clear() | 130 void Clear() |
130 { | 131 { |
131 deleteAttachment_ = NULL; | 132 deleteAttachment_ = NULL; |
132 deleteResource_ = NULL; | 133 deleteResource_ = NULL; |
133 getChanges_ = NULL; | 134 getChanges_ = NULL; |
135 getChangesExtended_ = NULL; | |
134 getExportedResources_ = NULL; | 136 getExportedResources_ = NULL; |
135 getLastChange_ = NULL; | 137 getLastChange_ = NULL; |
136 getLastExportedResource_ = NULL; | 138 getLastExportedResource_ = NULL; |
137 getMainDicomTags_ = NULL; | 139 getMainDicomTags_ = NULL; |
138 lookupAttachment_ = NULL; | 140 lookupAttachment_ = NULL; |
155 Output(Orthanc::DatabasePluginMessages::GetChanges::Response& getChanges) | 157 Output(Orthanc::DatabasePluginMessages::GetChanges::Response& getChanges) |
156 { | 158 { |
157 Clear(); | 159 Clear(); |
158 getChanges_ = &getChanges; | 160 getChanges_ = &getChanges; |
159 } | 161 } |
160 | 162 |
163 Output(Orthanc::DatabasePluginMessages::GetChangesExtended::Response& getChangesExtended) | |
164 { | |
165 Clear(); | |
166 getChangesExtended_ = &getChangesExtended; | |
167 } | |
168 | |
161 Output(Orthanc::DatabasePluginMessages::GetExportedResources::Response& getExportedResources) | 169 Output(Orthanc::DatabasePluginMessages::GetExportedResources::Response& getExportedResources) |
162 { | 170 { |
163 Clear(); | 171 Clear(); |
164 getExportedResources_ = &getExportedResources; | 172 getExportedResources_ = &getExportedResources; |
165 } | 173 } |
307 Orthanc::DatabasePluginMessages::ServerIndexChange* change; | 315 Orthanc::DatabasePluginMessages::ServerIndexChange* change; |
308 | 316 |
309 if (getChanges_ != NULL) | 317 if (getChanges_ != NULL) |
310 { | 318 { |
311 change = getChanges_->add_changes(); | 319 change = getChanges_->add_changes(); |
320 } | |
321 else if (getChangesExtended_ != NULL) | |
322 { | |
323 change = getChangesExtended_->add_changes(); | |
312 } | 324 } |
313 else if (getLastChange_ != NULL) | 325 else if (getLastChange_ != NULL) |
314 { | 326 { |
315 if (getLastChange_->found()) | 327 if (getLastChange_->found()) |
316 { | 328 { |
547 static void ApplyLookupResources(Orthanc::DatabasePluginMessages::LookupResources_Response& response, | 559 static void ApplyLookupResources(Orthanc::DatabasePluginMessages::LookupResources_Response& response, |
548 const Orthanc::DatabasePluginMessages::LookupResources_Request& request, | 560 const Orthanc::DatabasePluginMessages::LookupResources_Request& request, |
549 IndexBackend& backend, | 561 IndexBackend& backend, |
550 DatabaseManager& manager) | 562 DatabaseManager& manager) |
551 { | 563 { |
552 std::vector<Orthanc::DatabaseConstraint> lookup; | 564 Orthanc::DatabaseConstraints lookup; |
553 lookup.reserve(request.lookup().size()); | |
554 | 565 |
555 size_t countValues = 0; | 566 size_t countValues = 0; |
556 | 567 |
557 for (int i = 0; i < request.lookup().size(); i++) | 568 for (int i = 0; i < request.lookup().size(); i++) |
558 { | 569 { |
622 assert(values.size() < countValues); | 633 assert(values.size() < countValues); |
623 values.push_back(constraint.values(j).c_str()); | 634 values.push_back(constraint.values(j).c_str()); |
624 } | 635 } |
625 } | 636 } |
626 | 637 |
627 lookup.push_back(Orthanc::DatabaseConstraint(c)); | 638 lookup.AddConstraint(new Orthanc::DatabaseConstraint(c)); |
628 } | 639 } |
629 | 640 |
630 assert(values.size() == countValues); | 641 assert(values.size() == countValues); |
631 | 642 |
632 std::set<std::string> labels; | 643 std::set<std::string> labels; |
789 break; | 800 break; |
790 } | 801 } |
791 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) | 802 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) |
792 case Orthanc::DatabasePluginMessages::OPERATION_GET_CHANGES_EXTENDED: | 803 case Orthanc::DatabasePluginMessages::OPERATION_GET_CHANGES_EXTENDED: |
793 { | 804 { |
794 Output output(*response.mutable_get_changes()); | 805 Output output(*response.mutable_get_changes_extended()); |
795 | 806 |
796 bool done; | 807 bool done; |
797 backend.GetChangesExtended(output, done, manager, request.get_changes_extended().since(), request.get_changes_extended().to(), static_cast<OrthancPluginChangeType>(request.get_changes_extended().change_type()), request.get_changes_extended().limit()); | 808 backend.GetChangesExtended(output, done, manager, request.get_changes_extended().since(), request.get_changes_extended().to(), static_cast<OrthancPluginChangeType>(request.get_changes_extended().change_type()), request.get_changes_extended().limit()); |
798 | 809 |
799 response.mutable_get_changes_extended()->set_done(done); | 810 response.mutable_get_changes_extended()->set_done(done); |