Mercurial > hg > orthanc-databases
annotate Framework/Plugins/IDatabaseBackend.h @ 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 |
rev | line source |
---|---|
202 | 1 /** |
2 * Orthanc - A Lightweight, RESTful DICOM Store | |
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics | |
4 * Department, University Hospital of Liege, Belgium | |
507
54d518dcd74a
updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
470
diff
changeset
|
5 * Copyright (C) 2017-2023 Osimis S.A., Belgium |
54d518dcd74a
updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
470
diff
changeset
|
6 * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium |
459
ecd0b719cff5
update year to 2024
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
403
diff
changeset
|
7 * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium |
202 | 8 * |
9 * This program is free software: you can redistribute it and/or | |
10 * modify it under the terms of the GNU Affero General Public License | |
11 * as published by the Free Software Foundation, either version 3 of | |
12 * the License, or (at your option) any later version. | |
13 * | |
14 * This program is distributed in the hope that it will be useful, but | |
15 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
17 * Affero General Public License for more details. | |
18 * | |
19 * You should have received a copy of the GNU Affero General Public License | |
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
21 **/ | |
22 | |
23 | |
24 | |
25 #pragma once | |
26 | |
401
a8774581adfc
replaced "WithLabels" and "WithoutLabels", by "Labels" and "LabelsConstraint"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
396
diff
changeset
|
27 #include "../../Resources/Orthanc/Databases/ISqlLookupFormatter.h" |
a8774581adfc
replaced "WithLabels" and "WithoutLabels", by "Labels" and "LabelsConstraint"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
396
diff
changeset
|
28 #include "../Common/DatabaseManager.h" |
207
d9ef3f16e6a2
wrapping transactions in API v3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
29 #include "../Common/DatabasesEnumerations.h" |
401
a8774581adfc
replaced "WithLabels" and "WithoutLabels", by "Labels" and "LabelsConstraint"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
396
diff
changeset
|
30 #include "IDatabaseBackendOutput.h" |
403
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
31 #include "IdentifierTag.h" |
202 | 32 |
33 #include <list> | |
34 | |
525
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
35 #include <orthanc/OrthancCPlugin.h> |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
36 |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
37 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in Orthanc 1.3.1 |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
38 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
39 # include <OrthancDatabasePlugin.pb.h> // Include protobuf messages for "Find()" |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
40 # endif |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
41 #endif |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
42 |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
43 namespace OrthancDatabases |
202 | 44 { |
45 class IDatabaseBackend : public boost::noncopyable | |
46 { | |
47 public: | |
48 virtual ~IDatabaseBackend() | |
49 { | |
50 } | |
51 | |
52 virtual OrthancPluginContext* GetContext() = 0; | |
53 | |
255
d663d9e44f8d
reintroduction of IDatabaseFactory into DatabaseManager
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
237
diff
changeset
|
54 virtual IDatabaseFactory* CreateDatabaseFactory() = 0; |
226
a4918d57435c
DatabaseManager doesn't IDatabaseFactory anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
55 |
403
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
56 /** |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
57 * This function is invoked once, even if multiple connections are |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
58 * open. It is notably used to update the schema of the database. |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
59 **/ |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
60 virtual void ConfigureDatabase(DatabaseManager& database, |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
61 bool hasIdentifierTags, |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
62 const std::list<IdentifierTag>& identifierTags) = 0; |
224
61c309e06797
added internal class DatabaseBackendAdapterV2::Adapter
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
221
diff
changeset
|
63 |
202 | 64 virtual void SetOutputFactory(IDatabaseBackendOutput::IFactory* factory) = 0; |
65 | |
66 virtual IDatabaseBackendOutput* CreateOutput() = 0; | |
67 | |
260
793bbbe11287
IDatabaseBackend::HasRevisionsSupport()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
256
diff
changeset
|
68 virtual bool HasRevisionsSupport() const = 0; |
793bbbe11287
IDatabaseBackend::HasRevisionsSupport()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
256
diff
changeset
|
69 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
70 virtual void AddAttachment(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
71 int64_t id, |
261
34e2b93a7ac1
implementing interface for revisions in attachments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
72 const OrthancPluginAttachment& attachment, |
34e2b93a7ac1
implementing interface for revisions in attachments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
73 int64_t revision) = 0; |
202 | 74 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
75 virtual void AttachChild(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
76 int64_t parent, |
202 | 77 int64_t child) = 0; |
78 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
79 virtual void ClearChanges(DatabaseManager& manager) = 0; |
202 | 80 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
81 virtual void ClearExportedResources(DatabaseManager& manager) = 0; |
202 | 82 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
83 virtual int64_t CreateResource(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
84 const char* publicId, |
202 | 85 OrthancPluginResourceType type) = 0; |
86 | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
87 virtual void DeleteAttachment(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
88 DatabaseManager& manager, |
202 | 89 int64_t id, |
90 int32_t attachment) = 0; | |
91 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
92 virtual void DeleteMetadata(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
93 int64_t id, |
202 | 94 int32_t metadataType) = 0; |
95 | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
96 virtual void DeleteResource(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
97 DatabaseManager& manager, |
202 | 98 int64_t id) = 0; |
99 | |
100 virtual void GetAllInternalIds(std::list<int64_t>& target, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
101 DatabaseManager& manager, |
202 | 102 OrthancPluginResourceType resourceType) = 0; |
103 | |
104 virtual void GetAllPublicIds(std::list<std::string>& target, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
105 DatabaseManager& manager, |
202 | 106 OrthancPluginResourceType resourceType) = 0; |
107 | |
108 virtual void GetAllPublicIds(std::list<std::string>& target, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
109 DatabaseManager& manager, |
202 | 110 OrthancPluginResourceType resourceType, |
385
346fe629d638
clarifying types of since/limit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
378
diff
changeset
|
111 int64_t since, |
346fe629d638
clarifying types of since/limit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
378
diff
changeset
|
112 uint32_t limit) = 0; |
202 | 113 |
114 /* Use GetOutput().AnswerChange() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
115 virtual void GetChanges(IDatabaseBackendOutput& output, |
202 | 116 bool& done /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
117 DatabaseManager& manager, |
202 | 118 int64_t since, |
385
346fe629d638
clarifying types of since/limit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
378
diff
changeset
|
119 uint32_t limit) = 0; |
202 | 120 |
532 | 121 virtual void GetChangesExtended(IDatabaseBackendOutput& output, |
122 bool& done /*out*/, | |
123 DatabaseManager& manager, | |
124 int64_t since, | |
125 int64_t to, | |
126 int32_t changeType, | |
127 uint32_t limit) = 0; | |
501
594859656a06
Added support for ExtendedApiV1: /changes
Alain Mazy <am@orthanc.team>
parents:
470
diff
changeset
|
128 |
202 | 129 virtual void GetChildrenInternalId(std::list<int64_t>& target /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
130 DatabaseManager& manager, |
202 | 131 int64_t id) = 0; |
132 | |
133 virtual void GetChildrenPublicId(std::list<std::string>& target /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
134 DatabaseManager& manager, |
202 | 135 int64_t id) = 0; |
136 | |
137 /* Use GetOutput().AnswerExportedResource() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
138 virtual void GetExportedResources(IDatabaseBackendOutput& output, |
202 | 139 bool& done /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
140 DatabaseManager& manager, |
202 | 141 int64_t since, |
385
346fe629d638
clarifying types of since/limit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
378
diff
changeset
|
142 uint32_t limit) = 0; |
202 | 143 |
144 /* Use GetOutput().AnswerChange() */ | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
145 virtual void GetLastChange(IDatabaseBackendOutput& output, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
146 DatabaseManager& manager) = 0; |
202 | 147 |
148 /* Use GetOutput().AnswerExportedResource() */ | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
149 virtual void GetLastExportedResource(IDatabaseBackendOutput& output, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
150 DatabaseManager& manager) = 0; |
202 | 151 |
152 /* Use GetOutput().AnswerDicomTag() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
153 virtual void GetMainDicomTags(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
154 DatabaseManager& manager, |
202 | 155 int64_t id) = 0; |
156 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
157 virtual std::string GetPublicId(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
158 int64_t resourceId) = 0; |
202 | 159 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
160 virtual uint64_t GetResourcesCount(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
161 OrthancPluginResourceType resourceType) = 0; |
202 | 162 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
163 virtual OrthancPluginResourceType GetResourceType(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
164 int64_t resourceId) = 0; |
202 | 165 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
166 virtual uint64_t GetTotalCompressedSize(DatabaseManager& manager) = 0; |
202 | 167 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
168 virtual uint64_t GetTotalUncompressedSize(DatabaseManager& manager) = 0; |
202 | 169 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
170 virtual bool IsExistingResource(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
171 int64_t internalId) = 0; |
202 | 172 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
173 virtual bool IsProtectedPatient(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
174 int64_t internalId) = 0; |
202 | 175 |
176 virtual void ListAvailableMetadata(std::list<int32_t>& target /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
177 DatabaseManager& manager, |
202 | 178 int64_t id) = 0; |
179 | |
180 virtual void ListAvailableAttachments(std::list<int32_t>& target /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
181 DatabaseManager& manager, |
202 | 182 int64_t id) = 0; |
183 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
184 virtual void LogChange(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
185 int32_t changeType, |
209 | 186 int64_t resourceId, |
187 OrthancPluginResourceType resourceType, | |
188 const char* date) = 0; | |
189 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
190 virtual void LogExportedResource(DatabaseManager& manager, |
378
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
191 OrthancPluginResourceType resourceType, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
192 const char* publicId, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
193 const char* modality, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
194 const char* date, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
195 const char* patientId, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
196 const char* studyInstanceUid, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
197 const char* seriesInstanceUid, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
198 const char* sopInstanceUid) = 0; |
202 | 199 |
200 /* Use GetOutput().AnswerAttachment() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
201 virtual bool LookupAttachment(IDatabaseBackendOutput& output, |
261
34e2b93a7ac1
implementing interface for revisions in attachments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
202 int64_t& revision /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
203 DatabaseManager& manager, |
202 | 204 int64_t id, |
205 int32_t contentType) = 0; | |
206 | |
207 virtual bool LookupGlobalProperty(std::string& target /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
208 DatabaseManager& manager, |
221
73cc85f3d9c1
implementation of the "serverIdentifier" information for global properties
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
209
diff
changeset
|
209 const char* serverIdentifier, |
202 | 210 int32_t property) = 0; |
211 | |
212 virtual void LookupIdentifier(std::list<int64_t>& target /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
213 DatabaseManager& manager, |
202 | 214 OrthancPluginResourceType resourceType, |
215 uint16_t group, | |
216 uint16_t element, | |
217 OrthancPluginIdentifierConstraint constraint, | |
218 const char* value) = 0; | |
219 | |
220 virtual void LookupIdentifierRange(std::list<int64_t>& target /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
221 DatabaseManager& manager, |
202 | 222 OrthancPluginResourceType resourceType, |
223 uint16_t group, | |
224 uint16_t element, | |
225 const char* start, | |
226 const char* end) = 0; | |
227 | |
228 virtual bool LookupMetadata(std::string& target /*out*/, | |
256
e184dcadf163
handling of revisions in metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
255
diff
changeset
|
229 int64_t& revision /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
230 DatabaseManager& manager, |
202 | 231 int64_t id, |
232 int32_t metadataType) = 0; | |
233 | |
234 virtual bool LookupParent(int64_t& parentId /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
235 DatabaseManager& manager, |
202 | 236 int64_t resourceId) = 0; |
237 | |
238 virtual bool LookupResource(int64_t& id /*out*/, | |
239 OrthancPluginResourceType& type /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
240 DatabaseManager& manager, |
202 | 241 const char* publicId) = 0; |
242 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
243 virtual bool SelectPatientToRecycle(int64_t& internalId /*out*/, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
244 DatabaseManager& manager) = 0; |
202 | 245 |
246 virtual bool SelectPatientToRecycle(int64_t& internalId /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
247 DatabaseManager& manager, |
202 | 248 int64_t patientIdToAvoid) = 0; |
249 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
250 virtual void SetGlobalProperty(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
251 const char* serverIdentifier, |
221
73cc85f3d9c1
implementation of the "serverIdentifier" information for global properties
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
209
diff
changeset
|
252 int32_t property, |
237
35598014f140
refactoring to remove GlobalProperties.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
253 const char* utf8) = 0; |
202 | 254 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
255 virtual void SetMainDicomTag(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
256 int64_t id, |
202 | 257 uint16_t group, |
258 uint16_t element, | |
259 const char* value) = 0; | |
260 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
261 virtual void SetIdentifierTag(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
262 int64_t id, |
202 | 263 uint16_t group, |
264 uint16_t element, | |
265 const char* value) = 0; | |
266 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
267 virtual void SetMetadata(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
268 int64_t id, |
202 | 269 int32_t metadataType, |
256
e184dcadf163
handling of revisions in metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
255
diff
changeset
|
270 const char* value, |
e184dcadf163
handling of revisions in metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
255
diff
changeset
|
271 int64_t revision) = 0; |
202 | 272 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
273 virtual void SetProtectedPatient(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
274 int64_t internalId, |
202 | 275 bool isProtected) = 0; |
276 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
277 virtual uint32_t GetDatabaseVersion(DatabaseManager& manager) = 0; |
202 | 278 |
279 /** | |
280 * Upgrade the database to the specified version of the database | |
281 * schema. The upgrade script is allowed to make calls to | |
282 * OrthancPluginReconstructMainDicomTags(). | |
283 **/ | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
284 virtual void UpgradeDatabase(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
285 uint32_t targetVersion, |
202 | 286 OrthancPluginStorageArea* storageArea) = 0; |
287 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
288 virtual void ClearMainDicomTags(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
289 int64_t internalId) = 0; |
202 | 290 |
291 virtual bool HasCreateInstance() const = 0; | |
292 | |
293 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
294 virtual void LookupResources(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
295 DatabaseManager& manager, |
536
4ecf50a4521c
sync ISqlLookupFormatter from Orthanc + fix bug 224: LIMIT shall not be used with MSSQL
Alain Mazy <am@orthanc.team>
parents:
532
diff
changeset
|
296 Orthanc::DatabaseConstraints& lookup, |
202 | 297 OrthancPluginResourceType queryLevel, |
401
a8774581adfc
replaced "WithLabels" and "WithoutLabels", by "Labels" and "LabelsConstraint"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
396
diff
changeset
|
298 const std::set<std::string>& labels, // New in Orthanc 1.12.0 |
a8774581adfc
replaced "WithLabels" and "WithoutLabels", by "Labels" and "LabelsConstraint"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
396
diff
changeset
|
299 Orthanc::LabelsConstraint labelsConstraint, // New in Orthanc 1.12.0 |
202 | 300 uint32_t limit, |
301 bool requestSomeInstance) = 0; | |
302 #endif | |
303 | |
304 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
305 virtual void CreateInstance(OrthancPluginCreateInstanceResult& result, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
306 DatabaseManager& manager, |
202 | 307 const char* hashPatient, |
308 const char* hashStudy, | |
309 const char* hashSeries, | |
310 const char* hashInstance) = 0; | |
311 #endif | |
312 | |
313 | |
314 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
315 virtual void SetResourcesContent( | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
316 DatabaseManager& manager, |
202 | 317 uint32_t countIdentifierTags, |
318 const OrthancPluginResourcesContentTags* identifierTags, | |
319 uint32_t countMainDicomTags, | |
320 const OrthancPluginResourcesContentTags* mainDicomTags, | |
321 uint32_t countMetadata, | |
322 const OrthancPluginResourcesContentMetadata* metadata) = 0; | |
323 #endif | |
324 | |
325 | |
326 virtual void GetChildrenMetadata(std::list<std::string>& target, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
327 DatabaseManager& manager, |
202 | 328 int64_t resourceId, |
329 int32_t metadata) = 0; | |
330 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
331 virtual int64_t GetLastChangeIndex(DatabaseManager& manager) = 0; |
202 | 332 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
333 virtual void TagMostRecentPatient(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
334 int64_t patientId) = 0; |
202 | 335 |
336 // NB: "parentPublicId" must be cleared if the resource has no parent | |
337 virtual bool LookupResourceAndParent(int64_t& id, | |
338 OrthancPluginResourceType& type, | |
339 std::string& parentPublicId, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
340 DatabaseManager& manager, |
202 | 341 const char* publicId) = 0; |
342 | |
343 virtual void GetAllMetadata(std::map<int32_t, std::string>& result, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
344 DatabaseManager& manager, |
202 | 345 int64_t id) = 0; |
391
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
346 |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
347 // New in Orthanc 1.12.0 |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
348 virtual bool HasLabelsSupport() const = 0; |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
349 |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
350 // New in Orthanc 1.12.0 |
396
7b3acfa95bd8
implementation of list/add/remove labels in postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
391
diff
changeset
|
351 virtual void AddLabel(DatabaseManager& manager, |
7b3acfa95bd8
implementation of list/add/remove labels in postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
391
diff
changeset
|
352 int64_t resource, |
391
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
353 const std::string& label) = 0; |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
354 |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
355 // New in Orthanc 1.12.0 |
396
7b3acfa95bd8
implementation of list/add/remove labels in postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
391
diff
changeset
|
356 virtual void RemoveLabel(DatabaseManager& manager, |
7b3acfa95bd8
implementation of list/add/remove labels in postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
391
diff
changeset
|
357 int64_t resource, |
391
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
358 const std::string& label) = 0; |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
359 |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
360 // New in Orthanc 1.12.0 |
396
7b3acfa95bd8
implementation of list/add/remove labels in postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
391
diff
changeset
|
361 virtual void ListLabels(std::list<std::string>& target, |
7b3acfa95bd8
implementation of list/add/remove labels in postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
391
diff
changeset
|
362 DatabaseManager& manager, |
391
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
363 int64_t resource) = 0; |
402
82921a29349a
implemented IDatabaseBackend::ListAllLabels()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
401
diff
changeset
|
364 |
82921a29349a
implemented IDatabaseBackend::ListAllLabels()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
401
diff
changeset
|
365 // New in Orthanc 1.12.0 |
82921a29349a
implemented IDatabaseBackend::ListAllLabels()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
401
diff
changeset
|
366 virtual void ListAllLabels(std::list<std::string>& target, |
82921a29349a
implemented IDatabaseBackend::ListAllLabels()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
401
diff
changeset
|
367 DatabaseManager& manager) = 0; |
431 | 368 |
470 | 369 // New in Orthanc 1.12.3 |
431 | 370 virtual bool HasAtomicIncrementGlobalProperty() = 0; |
371 | |
470 | 372 // New in Orthanc 1.12.3 |
431 | 373 virtual int64_t IncrementGlobalProperty(DatabaseManager& manager, |
374 const char* serverIdentifier, | |
375 int32_t property, | |
376 int64_t increment) = 0; | |
436
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
377 |
470 | 378 // New in Orthanc 1.12.3 |
436
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
379 virtual bool HasUpdateAndGetStatistics() = 0; |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
380 |
470 | 381 // New in Orthanc 1.12.3 |
436
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
382 virtual void UpdateAndGetStatistics(DatabaseManager& manager, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
383 int64_t& patientsCount, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
384 int64_t& studiesCount, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
385 int64_t& seriesCount, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
386 int64_t& instancesCount, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
387 int64_t& compressedSize, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
388 int64_t& uncompressedSize) = 0; |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
389 |
470 | 390 // New in Orthanc 1.12.3 |
447 | 391 virtual bool HasMeasureLatency() = 0; |
392 | |
470 | 393 // New in Orthanc 1.12.3 |
447 | 394 virtual uint64_t MeasureLatency(DatabaseManager& manager) = 0; |
395 | |
525
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
396 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
397 virtual bool HasFindSupport() const = 0; |
532 | 398 virtual bool HasExtendedChanges() const = 0; |
525
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
399 #endif |
447 | 400 |
525
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
401 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
402 // New in Orthanc 1.12.5 |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
403 virtual void ExecuteFind(Orthanc::DatabasePluginMessages::TransactionResponse& response, |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
404 DatabaseManager& manager, |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
405 const Orthanc::DatabasePluginMessages::Find_Request& request) = 0; |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
406 #endif |
202 | 407 }; |
408 } |