Mercurial > hg > orthanc-databases
annotate Framework/Plugins/IDatabaseBackend.h @ 580:35d2df9572b1 find-refactoring tip
count-resources
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Tue, 15 Oct 2024 15:52:39 +0200 |
parents | 22bbce1f88ff |
children |
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 "../Common/DatabaseManager.h" |
207
d9ef3f16e6a2
wrapping transactions in API v3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
28 #include "../Common/DatabasesEnumerations.h" |
401
a8774581adfc
replaced "WithLabels" and "WithoutLabels", by "Labels" and "LabelsConstraint"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
396
diff
changeset
|
29 #include "IDatabaseBackendOutput.h" |
547
b8e6e7a19424
un-sharing DatabaseConstraint and ISqlLookupFormatter with Orthanc core
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
538
diff
changeset
|
30 #include "ISqlLookupFormatter.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 | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
35 namespace OrthancDatabases |
202 | 36 { |
37 class IDatabaseBackend : public boost::noncopyable | |
38 { | |
39 public: | |
40 virtual ~IDatabaseBackend() | |
41 { | |
42 } | |
43 | |
44 virtual OrthancPluginContext* GetContext() = 0; | |
45 | |
255
d663d9e44f8d
reintroduction of IDatabaseFactory into DatabaseManager
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
237
diff
changeset
|
46 virtual IDatabaseFactory* CreateDatabaseFactory() = 0; |
226
a4918d57435c
DatabaseManager doesn't IDatabaseFactory anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
47 |
403
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
48 /** |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
49 * 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
|
50 * 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
|
51 **/ |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
52 virtual void ConfigureDatabase(DatabaseManager& database, |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
53 bool hasIdentifierTags, |
91124cc8a8c7
database plugins are informed about the identifier tags
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
402
diff
changeset
|
54 const std::list<IdentifierTag>& identifierTags) = 0; |
224
61c309e06797
added internal class DatabaseBackendAdapterV2::Adapter
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
221
diff
changeset
|
55 |
202 | 56 virtual void SetOutputFactory(IDatabaseBackendOutput::IFactory* factory) = 0; |
57 | |
58 virtual IDatabaseBackendOutput* CreateOutput() = 0; | |
59 | |
260
793bbbe11287
IDatabaseBackend::HasRevisionsSupport()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
256
diff
changeset
|
60 virtual bool HasRevisionsSupport() const = 0; |
793bbbe11287
IDatabaseBackend::HasRevisionsSupport()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
256
diff
changeset
|
61 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
62 virtual void AddAttachment(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
63 int64_t id, |
261
34e2b93a7ac1
implementing interface for revisions in attachments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
64 const OrthancPluginAttachment& attachment, |
34e2b93a7ac1
implementing interface for revisions in attachments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
65 int64_t revision) = 0; |
202 | 66 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
67 virtual void AttachChild(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
68 int64_t parent, |
202 | 69 int64_t child) = 0; |
70 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
71 virtual void ClearChanges(DatabaseManager& manager) = 0; |
202 | 72 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
73 virtual void ClearExportedResources(DatabaseManager& manager) = 0; |
202 | 74 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
75 virtual int64_t CreateResource(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
76 const char* publicId, |
202 | 77 OrthancPluginResourceType type) = 0; |
78 | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
79 virtual void DeleteAttachment(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
80 DatabaseManager& manager, |
202 | 81 int64_t id, |
82 int32_t attachment) = 0; | |
83 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
84 virtual void DeleteMetadata(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
85 int64_t id, |
202 | 86 int32_t metadataType) = 0; |
87 | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
88 virtual void DeleteResource(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
89 DatabaseManager& manager, |
202 | 90 int64_t id) = 0; |
91 | |
92 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
|
93 DatabaseManager& manager, |
202 | 94 OrthancPluginResourceType resourceType) = 0; |
95 | |
96 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
|
97 DatabaseManager& manager, |
202 | 98 OrthancPluginResourceType resourceType) = 0; |
99 | |
100 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
|
101 DatabaseManager& manager, |
202 | 102 OrthancPluginResourceType resourceType, |
385
346fe629d638
clarifying types of since/limit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
378
diff
changeset
|
103 int64_t since, |
346fe629d638
clarifying types of since/limit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
378
diff
changeset
|
104 uint32_t limit) = 0; |
202 | 105 |
106 /* Use GetOutput().AnswerChange() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
107 virtual void GetChanges(IDatabaseBackendOutput& output, |
202 | 108 bool& done /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
109 DatabaseManager& manager, |
202 | 110 int64_t since, |
385
346fe629d638
clarifying types of since/limit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
378
diff
changeset
|
111 uint32_t limit) = 0; |
202 | 112 |
532 | 113 virtual void GetChangesExtended(IDatabaseBackendOutput& output, |
114 bool& done /*out*/, | |
115 DatabaseManager& manager, | |
116 int64_t since, | |
117 int64_t to, | |
567
22bbce1f88ff
changes extended: support multiple filters
Alain Mazy <am@orthanc.team>
parents:
553
diff
changeset
|
118 const std::set<uint32_t>& changeTypes, |
532 | 119 uint32_t limit) = 0; |
501
594859656a06
Added support for ExtendedApiV1: /changes
Alain Mazy <am@orthanc.team>
parents:
470
diff
changeset
|
120 |
202 | 121 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
|
122 DatabaseManager& manager, |
202 | 123 int64_t id) = 0; |
124 | |
125 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
|
126 DatabaseManager& manager, |
202 | 127 int64_t id) = 0; |
128 | |
129 /* Use GetOutput().AnswerExportedResource() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
130 virtual void GetExportedResources(IDatabaseBackendOutput& output, |
202 | 131 bool& done /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
132 DatabaseManager& manager, |
202 | 133 int64_t since, |
385
346fe629d638
clarifying types of since/limit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
378
diff
changeset
|
134 uint32_t limit) = 0; |
202 | 135 |
136 /* Use GetOutput().AnswerChange() */ | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
137 virtual void GetLastChange(IDatabaseBackendOutput& output, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
138 DatabaseManager& manager) = 0; |
202 | 139 |
140 /* Use GetOutput().AnswerExportedResource() */ | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
141 virtual void GetLastExportedResource(IDatabaseBackendOutput& output, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
142 DatabaseManager& manager) = 0; |
202 | 143 |
144 /* Use GetOutput().AnswerDicomTag() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
145 virtual void GetMainDicomTags(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
146 DatabaseManager& manager, |
202 | 147 int64_t id) = 0; |
148 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
149 virtual std::string GetPublicId(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
150 int64_t resourceId) = 0; |
202 | 151 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
152 virtual uint64_t GetResourcesCount(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
153 OrthancPluginResourceType resourceType) = 0; |
202 | 154 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
155 virtual OrthancPluginResourceType GetResourceType(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
156 int64_t resourceId) = 0; |
202 | 157 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
158 virtual uint64_t GetTotalCompressedSize(DatabaseManager& manager) = 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 GetTotalUncompressedSize(DatabaseManager& manager) = 0; |
202 | 161 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
162 virtual bool IsExistingResource(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
163 int64_t internalId) = 0; |
202 | 164 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
165 virtual bool IsProtectedPatient(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
166 int64_t internalId) = 0; |
202 | 167 |
168 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
|
169 DatabaseManager& manager, |
202 | 170 int64_t id) = 0; |
171 | |
172 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
|
173 DatabaseManager& manager, |
202 | 174 int64_t id) = 0; |
175 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
176 virtual void LogChange(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
177 int32_t changeType, |
209 | 178 int64_t resourceId, |
179 OrthancPluginResourceType resourceType, | |
180 const char* date) = 0; | |
181 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
182 virtual void LogExportedResource(DatabaseManager& manager, |
378
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
183 OrthancPluginResourceType resourceType, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
184 const char* publicId, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
185 const char* modality, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
186 const char* date, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
187 const char* patientId, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
188 const char* studyInstanceUid, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
189 const char* seriesInstanceUid, |
9db9e0275ec0
refactoring IndexBackend::LogExportedResource()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
359
diff
changeset
|
190 const char* sopInstanceUid) = 0; |
202 | 191 |
192 /* Use GetOutput().AnswerAttachment() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
193 virtual bool LookupAttachment(IDatabaseBackendOutput& output, |
261
34e2b93a7ac1
implementing interface for revisions in attachments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
194 int64_t& revision /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
195 DatabaseManager& manager, |
202 | 196 int64_t id, |
197 int32_t contentType) = 0; | |
198 | |
199 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
|
200 DatabaseManager& manager, |
221
73cc85f3d9c1
implementation of the "serverIdentifier" information for global properties
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
209
diff
changeset
|
201 const char* serverIdentifier, |
202 | 202 int32_t property) = 0; |
203 | |
204 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
|
205 DatabaseManager& manager, |
202 | 206 OrthancPluginResourceType resourceType, |
207 uint16_t group, | |
208 uint16_t element, | |
209 OrthancPluginIdentifierConstraint constraint, | |
210 const char* value) = 0; | |
211 | |
212 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
|
213 DatabaseManager& manager, |
202 | 214 OrthancPluginResourceType resourceType, |
215 uint16_t group, | |
216 uint16_t element, | |
217 const char* start, | |
218 const char* end) = 0; | |
219 | |
220 virtual bool LookupMetadata(std::string& target /*out*/, | |
256
e184dcadf163
handling of revisions in metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
255
diff
changeset
|
221 int64_t& revision /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
222 DatabaseManager& manager, |
202 | 223 int64_t id, |
224 int32_t metadataType) = 0; | |
225 | |
226 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
|
227 DatabaseManager& manager, |
202 | 228 int64_t resourceId) = 0; |
229 | |
230 virtual bool LookupResource(int64_t& id /*out*/, | |
231 OrthancPluginResourceType& type /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
232 DatabaseManager& manager, |
202 | 233 const char* publicId) = 0; |
234 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
235 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
|
236 DatabaseManager& manager) = 0; |
202 | 237 |
238 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
|
239 DatabaseManager& manager, |
202 | 240 int64_t patientIdToAvoid) = 0; |
241 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
242 virtual void SetGlobalProperty(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
243 const char* serverIdentifier, |
221
73cc85f3d9c1
implementation of the "serverIdentifier" information for global properties
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
209
diff
changeset
|
244 int32_t property, |
237
35598014f140
refactoring to remove GlobalProperties.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
245 const char* utf8) = 0; |
202 | 246 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
247 virtual void SetMainDicomTag(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
248 int64_t id, |
202 | 249 uint16_t group, |
250 uint16_t element, | |
251 const char* value) = 0; | |
252 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
253 virtual void SetIdentifierTag(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
254 int64_t id, |
202 | 255 uint16_t group, |
256 uint16_t element, | |
257 const char* value) = 0; | |
258 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
259 virtual void SetMetadata(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
260 int64_t id, |
202 | 261 int32_t metadataType, |
256
e184dcadf163
handling of revisions in metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
255
diff
changeset
|
262 const char* value, |
e184dcadf163
handling of revisions in metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
255
diff
changeset
|
263 int64_t revision) = 0; |
202 | 264 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
265 virtual void SetProtectedPatient(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
266 int64_t internalId, |
202 | 267 bool isProtected) = 0; |
268 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
269 virtual uint32_t GetDatabaseVersion(DatabaseManager& manager) = 0; |
202 | 270 |
271 /** | |
272 * Upgrade the database to the specified version of the database | |
273 * schema. The upgrade script is allowed to make calls to | |
274 * OrthancPluginReconstructMainDicomTags(). | |
275 **/ | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
276 virtual void UpgradeDatabase(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
277 uint32_t targetVersion, |
202 | 278 OrthancPluginStorageArea* storageArea) = 0; |
279 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
280 virtual void ClearMainDicomTags(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
281 int64_t internalId) = 0; |
202 | 282 |
283 virtual bool HasCreateInstance() const = 0; | |
284 | |
285 #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
|
286 virtual void LookupResources(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
287 DatabaseManager& manager, |
551
1a23f1ce3b98
move classes DatabaseConstraint and ISqlLookupFormatter into namespace OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
547
diff
changeset
|
288 const DatabaseConstraints& lookup, |
202 | 289 OrthancPluginResourceType queryLevel, |
551
1a23f1ce3b98
move classes DatabaseConstraint and ISqlLookupFormatter into namespace OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
547
diff
changeset
|
290 const std::set<std::string>& labels, // New in Orthanc 1.12.0 |
1a23f1ce3b98
move classes DatabaseConstraint and ISqlLookupFormatter into namespace OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
547
diff
changeset
|
291 LabelsConstraint labelsConstraint, // New in Orthanc 1.12.0 |
202 | 292 uint32_t limit, |
293 bool requestSomeInstance) = 0; | |
294 #endif | |
295 | |
296 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
297 virtual void CreateInstance(OrthancPluginCreateInstanceResult& result, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
298 DatabaseManager& manager, |
202 | 299 const char* hashPatient, |
300 const char* hashStudy, | |
301 const char* hashSeries, | |
302 const char* hashInstance) = 0; | |
303 #endif | |
304 | |
305 | |
306 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
307 virtual void SetResourcesContent( | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
308 DatabaseManager& manager, |
202 | 309 uint32_t countIdentifierTags, |
310 const OrthancPluginResourcesContentTags* identifierTags, | |
311 uint32_t countMainDicomTags, | |
312 const OrthancPluginResourcesContentTags* mainDicomTags, | |
313 uint32_t countMetadata, | |
314 const OrthancPluginResourcesContentMetadata* metadata) = 0; | |
315 #endif | |
316 | |
317 | |
318 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
|
319 DatabaseManager& manager, |
202 | 320 int64_t resourceId, |
321 int32_t metadata) = 0; | |
322 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
323 virtual int64_t GetLastChangeIndex(DatabaseManager& manager) = 0; |
202 | 324 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
325 virtual void TagMostRecentPatient(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
326 int64_t patientId) = 0; |
202 | 327 |
328 // NB: "parentPublicId" must be cleared if the resource has no parent | |
329 virtual bool LookupResourceAndParent(int64_t& id, | |
330 OrthancPluginResourceType& type, | |
331 std::string& parentPublicId, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
332 DatabaseManager& manager, |
202 | 333 const char* publicId) = 0; |
334 | |
335 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
|
336 DatabaseManager& manager, |
202 | 337 int64_t id) = 0; |
391
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
338 |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
339 // New in Orthanc 1.12.0 |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
340 virtual bool HasLabelsSupport() const = 0; |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
341 |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
342 // 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
|
343 virtual void AddLabel(DatabaseManager& manager, |
7b3acfa95bd8
implementation of list/add/remove labels in postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
391
diff
changeset
|
344 int64_t resource, |
391
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
345 const std::string& label) = 0; |
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 |
396
7b3acfa95bd8
implementation of list/add/remove labels in postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
391
diff
changeset
|
348 virtual void RemoveLabel(DatabaseManager& manager, |
7b3acfa95bd8
implementation of list/add/remove labels in postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
391
diff
changeset
|
349 int64_t resource, |
391
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
350 const std::string& label) = 0; |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
351 |
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
352 // 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
|
353 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
|
354 DatabaseManager& manager, |
391
d14e6ff04a5c
added primitives to handle labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
389
diff
changeset
|
355 int64_t resource) = 0; |
402
82921a29349a
implemented IDatabaseBackend::ListAllLabels()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
401
diff
changeset
|
356 |
82921a29349a
implemented IDatabaseBackend::ListAllLabels()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
401
diff
changeset
|
357 // New in Orthanc 1.12.0 |
82921a29349a
implemented IDatabaseBackend::ListAllLabels()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
401
diff
changeset
|
358 virtual void ListAllLabels(std::list<std::string>& target, |
82921a29349a
implemented IDatabaseBackend::ListAllLabels()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
401
diff
changeset
|
359 DatabaseManager& manager) = 0; |
431 | 360 |
470 | 361 // New in Orthanc 1.12.3 |
431 | 362 virtual bool HasAtomicIncrementGlobalProperty() = 0; |
363 | |
470 | 364 // New in Orthanc 1.12.3 |
431 | 365 virtual int64_t IncrementGlobalProperty(DatabaseManager& manager, |
366 const char* serverIdentifier, | |
367 int32_t property, | |
368 int64_t increment) = 0; | |
436
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
369 |
470 | 370 // New in Orthanc 1.12.3 |
436
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
371 virtual bool HasUpdateAndGetStatistics() = 0; |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
372 |
470 | 373 // New in Orthanc 1.12.3 |
436
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
374 virtual void UpdateAndGetStatistics(DatabaseManager& manager, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
375 int64_t& patientsCount, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
376 int64_t& studiesCount, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
377 int64_t& seriesCount, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
378 int64_t& instancesCount, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
379 int64_t& compressedSize, |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
380 int64_t& uncompressedSize) = 0; |
f16faa1fdc46
InsertOrUpdateMetadata function + UpdateAndGetStatistics
Alain Mazy <am@osimis.io>
parents:
431
diff
changeset
|
381 |
470 | 382 // New in Orthanc 1.12.3 |
447 | 383 virtual bool HasMeasureLatency() = 0; |
384 | |
470 | 385 // New in Orthanc 1.12.3 |
447 | 386 virtual uint64_t MeasureLatency(DatabaseManager& manager) = 0; |
387 | |
525
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
388 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
389 virtual bool HasFindSupport() const = 0; |
532 | 390 virtual bool HasExtendedChanges() const = 0; |
525
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
391 #endif |
447 | 392 |
525
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
393 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
394 // New in Orthanc 1.12.5 |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
395 virtual void ExecuteFind(Orthanc::DatabasePluginMessages::TransactionResponse& response, |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
396 DatabaseManager& manager, |
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
397 const Orthanc::DatabasePluginMessages::Find_Request& request) = 0; |
580 | 398 |
399 // New in Orthanc 1.12.5 | |
400 virtual void ExecuteCount(Orthanc::DatabasePluginMessages::TransactionResponse& response, | |
401 DatabaseManager& manager, | |
402 const Orthanc::DatabasePluginMessages::Find_Request& request) = 0; | |
525
451125122692
created branch find-refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
507
diff
changeset
|
403 #endif |
202 | 404 }; |
405 } |