Mercurial > hg > orthanc-databases
annotate Framework/Plugins/IDatabaseBackend.h @ 260:793bbbe11287
IDatabaseBackend::HasRevisionsSupport()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 19 Apr 2021 16:45:15 +0200 |
parents | e184dcadf163 |
children | 34e2b93a7ac1 |
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 | |
5 * Copyright (C) 2017-2021 Osimis S.A., Belgium | |
6 * | |
7 * This program is free software: you can redistribute it and/or | |
8 * modify it under the terms of the GNU Affero General Public License | |
9 * as published by the Free Software Foundation, either version 3 of | |
10 * the License, or (at your option) any later version. | |
11 * | |
12 * This program is distributed in the hope that it will be useful, but | |
13 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 * Affero General Public License for more details. | |
16 * | |
17 * You should have received a copy of the GNU Affero General Public License | |
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
19 **/ | |
20 | |
21 | |
22 | |
23 #pragma once | |
24 | |
25 #include "IDatabaseBackendOutput.h" | |
207
d9ef3f16e6a2
wrapping transactions in API v3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
26 #include "../Common/DatabasesEnumerations.h" |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
27 #include "../Common/DatabaseManager.h" |
202 | 28 |
29 #include <list> | |
30 | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
31 namespace OrthancDatabases |
202 | 32 { |
33 class IDatabaseBackend : public boost::noncopyable | |
34 { | |
35 public: | |
36 virtual ~IDatabaseBackend() | |
37 { | |
38 } | |
39 | |
40 virtual OrthancPluginContext* GetContext() = 0; | |
41 | |
255
d663d9e44f8d
reintroduction of IDatabaseFactory into DatabaseManager
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
237
diff
changeset
|
42 virtual IDatabaseFactory* CreateDatabaseFactory() = 0; |
226
a4918d57435c
DatabaseManager doesn't IDatabaseFactory anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
43 |
a4918d57435c
DatabaseManager doesn't IDatabaseFactory anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
44 // This function is invoked once, even if multiple connections are open |
237
35598014f140
refactoring to remove GlobalProperties.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
45 virtual void ConfigureDatabase(DatabaseManager& database) = 0; |
224
61c309e06797
added internal class DatabaseBackendAdapterV2::Adapter
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
221
diff
changeset
|
46 |
202 | 47 virtual void SetOutputFactory(IDatabaseBackendOutput::IFactory* factory) = 0; |
48 | |
49 virtual IDatabaseBackendOutput* CreateOutput() = 0; | |
50 | |
260
793bbbe11287
IDatabaseBackend::HasRevisionsSupport()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
256
diff
changeset
|
51 virtual bool HasRevisionsSupport() const = 0; |
793bbbe11287
IDatabaseBackend::HasRevisionsSupport()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
256
diff
changeset
|
52 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
53 virtual void AddAttachment(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
54 int64_t id, |
202 | 55 const OrthancPluginAttachment& attachment) = 0; |
56 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
57 virtual void AttachChild(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
58 int64_t parent, |
202 | 59 int64_t child) = 0; |
60 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
61 virtual void ClearChanges(DatabaseManager& manager) = 0; |
202 | 62 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
63 virtual void ClearExportedResources(DatabaseManager& manager) = 0; |
202 | 64 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
65 virtual int64_t CreateResource(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
66 const char* publicId, |
202 | 67 OrthancPluginResourceType type) = 0; |
68 | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
69 virtual void DeleteAttachment(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
70 DatabaseManager& manager, |
202 | 71 int64_t id, |
72 int32_t attachment) = 0; | |
73 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
74 virtual void DeleteMetadata(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
75 int64_t id, |
202 | 76 int32_t metadataType) = 0; |
77 | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
78 virtual void DeleteResource(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
79 DatabaseManager& manager, |
202 | 80 int64_t id) = 0; |
81 | |
82 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
|
83 DatabaseManager& manager, |
202 | 84 OrthancPluginResourceType resourceType) = 0; |
85 | |
86 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
|
87 DatabaseManager& manager, |
202 | 88 OrthancPluginResourceType resourceType) = 0; |
89 | |
90 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
|
91 DatabaseManager& manager, |
202 | 92 OrthancPluginResourceType resourceType, |
93 uint64_t since, | |
94 uint64_t limit) = 0; | |
95 | |
96 /* Use GetOutput().AnswerChange() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
97 virtual void GetChanges(IDatabaseBackendOutput& output, |
202 | 98 bool& done /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
99 DatabaseManager& manager, |
202 | 100 int64_t since, |
101 uint32_t maxResults) = 0; | |
102 | |
103 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
|
104 DatabaseManager& manager, |
202 | 105 int64_t id) = 0; |
106 | |
107 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
|
108 DatabaseManager& manager, |
202 | 109 int64_t id) = 0; |
110 | |
111 /* Use GetOutput().AnswerExportedResource() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
112 virtual void GetExportedResources(IDatabaseBackendOutput& output, |
202 | 113 bool& done /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
114 DatabaseManager& manager, |
202 | 115 int64_t since, |
116 uint32_t maxResults) = 0; | |
117 | |
118 /* Use GetOutput().AnswerChange() */ | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
119 virtual void GetLastChange(IDatabaseBackendOutput& output, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
120 DatabaseManager& manager) = 0; |
202 | 121 |
122 /* Use GetOutput().AnswerExportedResource() */ | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
123 virtual void GetLastExportedResource(IDatabaseBackendOutput& output, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
124 DatabaseManager& manager) = 0; |
202 | 125 |
126 /* Use GetOutput().AnswerDicomTag() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
127 virtual void GetMainDicomTags(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
128 DatabaseManager& manager, |
202 | 129 int64_t id) = 0; |
130 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
131 virtual std::string GetPublicId(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
132 int64_t resourceId) = 0; |
202 | 133 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
134 virtual uint64_t GetResourcesCount(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
135 OrthancPluginResourceType resourceType) = 0; |
202 | 136 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
137 virtual OrthancPluginResourceType GetResourceType(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
138 int64_t resourceId) = 0; |
202 | 139 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
140 virtual uint64_t GetTotalCompressedSize(DatabaseManager& manager) = 0; |
202 | 141 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
142 virtual uint64_t GetTotalUncompressedSize(DatabaseManager& manager) = 0; |
202 | 143 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
144 virtual bool IsExistingResource(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
145 int64_t internalId) = 0; |
202 | 146 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
147 virtual bool IsProtectedPatient(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
148 int64_t internalId) = 0; |
202 | 149 |
150 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
|
151 DatabaseManager& manager, |
202 | 152 int64_t id) = 0; |
153 | |
154 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
|
155 DatabaseManager& manager, |
202 | 156 int64_t id) = 0; |
157 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
158 virtual void LogChange(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
159 int32_t changeType, |
209 | 160 int64_t resourceId, |
161 OrthancPluginResourceType resourceType, | |
162 const char* date) = 0; | |
163 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
164 virtual void LogExportedResource(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
165 const OrthancPluginExportedResource& resource) = 0; |
202 | 166 |
167 /* Use GetOutput().AnswerAttachment() */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
202
diff
changeset
|
168 virtual bool LookupAttachment(IDatabaseBackendOutput& output, |
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, |
171 int32_t contentType) = 0; | |
172 | |
173 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
|
174 DatabaseManager& manager, |
221
73cc85f3d9c1
implementation of the "serverIdentifier" information for global properties
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
209
diff
changeset
|
175 const char* serverIdentifier, |
202 | 176 int32_t property) = 0; |
177 | |
178 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
|
179 DatabaseManager& manager, |
202 | 180 OrthancPluginResourceType resourceType, |
181 uint16_t group, | |
182 uint16_t element, | |
183 OrthancPluginIdentifierConstraint constraint, | |
184 const char* value) = 0; | |
185 | |
186 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
|
187 DatabaseManager& manager, |
202 | 188 OrthancPluginResourceType resourceType, |
189 uint16_t group, | |
190 uint16_t element, | |
191 const char* start, | |
192 const char* end) = 0; | |
193 | |
194 virtual bool LookupMetadata(std::string& target /*out*/, | |
256
e184dcadf163
handling of revisions in metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
255
diff
changeset
|
195 int64_t& revision /*out*/, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
196 DatabaseManager& manager, |
202 | 197 int64_t id, |
198 int32_t metadataType) = 0; | |
199 | |
200 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
|
201 DatabaseManager& manager, |
202 | 202 int64_t resourceId) = 0; |
203 | |
204 virtual bool LookupResource(int64_t& id /*out*/, | |
205 OrthancPluginResourceType& type /*out*/, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
206 DatabaseManager& manager, |
202 | 207 const char* publicId) = 0; |
208 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
209 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
|
210 DatabaseManager& manager) = 0; |
202 | 211 |
212 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
|
213 DatabaseManager& manager, |
202 | 214 int64_t patientIdToAvoid) = 0; |
215 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
216 virtual void SetGlobalProperty(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
217 const char* serverIdentifier, |
221
73cc85f3d9c1
implementation of the "serverIdentifier" information for global properties
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
209
diff
changeset
|
218 int32_t property, |
237
35598014f140
refactoring to remove GlobalProperties.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
219 const char* utf8) = 0; |
202 | 220 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
221 virtual void SetMainDicomTag(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
222 int64_t id, |
202 | 223 uint16_t group, |
224 uint16_t element, | |
225 const char* value) = 0; | |
226 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
227 virtual void SetIdentifierTag(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
228 int64_t id, |
202 | 229 uint16_t group, |
230 uint16_t element, | |
231 const char* value) = 0; | |
232 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
233 virtual void SetMetadata(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
234 int64_t id, |
202 | 235 int32_t metadataType, |
256
e184dcadf163
handling of revisions in metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
255
diff
changeset
|
236 const char* value, |
e184dcadf163
handling of revisions in metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
255
diff
changeset
|
237 int64_t revision) = 0; |
202 | 238 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
239 virtual void SetProtectedPatient(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
240 int64_t internalId, |
202 | 241 bool isProtected) = 0; |
242 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
243 virtual uint32_t GetDatabaseVersion(DatabaseManager& manager) = 0; |
202 | 244 |
245 /** | |
246 * Upgrade the database to the specified version of the database | |
247 * schema. The upgrade script is allowed to make calls to | |
248 * OrthancPluginReconstructMainDicomTags(). | |
249 **/ | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
250 virtual void UpgradeDatabase(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
251 uint32_t targetVersion, |
202 | 252 OrthancPluginStorageArea* storageArea) = 0; |
253 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
254 virtual void ClearMainDicomTags(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
255 int64_t internalId) = 0; |
202 | 256 |
257 virtual bool HasCreateInstance() const = 0; | |
258 | |
259 #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
|
260 virtual void LookupResources(IDatabaseBackendOutput& output, |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
261 DatabaseManager& manager, |
202 | 262 const std::vector<Orthanc::DatabaseConstraint>& lookup, |
263 OrthancPluginResourceType queryLevel, | |
264 uint32_t limit, | |
265 bool requestSomeInstance) = 0; | |
266 #endif | |
267 | |
268 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
269 virtual void CreateInstance(OrthancPluginCreateInstanceResult& result, | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
270 DatabaseManager& manager, |
202 | 271 const char* hashPatient, |
272 const char* hashStudy, | |
273 const char* hashSeries, | |
274 const char* hashInstance) = 0; | |
275 #endif | |
276 | |
277 | |
278 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
279 virtual void SetResourcesContent( | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
280 DatabaseManager& manager, |
202 | 281 uint32_t countIdentifierTags, |
282 const OrthancPluginResourcesContentTags* identifierTags, | |
283 uint32_t countMainDicomTags, | |
284 const OrthancPluginResourcesContentTags* mainDicomTags, | |
285 uint32_t countMetadata, | |
286 const OrthancPluginResourcesContentMetadata* metadata) = 0; | |
287 #endif | |
288 | |
289 | |
290 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
|
291 DatabaseManager& manager, |
202 | 292 int64_t resourceId, |
293 int32_t metadata) = 0; | |
294 | |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
295 virtual int64_t GetLastChangeIndex(DatabaseManager& manager) = 0; |
202 | 296 |
225
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
297 virtual void TagMostRecentPatient(DatabaseManager& manager, |
94c9908e6aca
removed DatabaseManager member out of class IndexBackend
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
224
diff
changeset
|
298 int64_t patientId) = 0; |
202 | 299 |
300 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in 1.3.1 | |
301 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 5, 4) | |
302 // NB: "parentPublicId" must be cleared if the resource has no parent | |
303 virtual bool LookupResourceAndParent(int64_t& id, | |
304 OrthancPluginResourceType& type, | |
305 std::string& parentPublicId, | |
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* publicId) = 0; |
308 # endif | |
309 #endif | |
310 | |
311 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in 1.3.1 | |
312 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 5, 4) | |
313 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
|
314 DatabaseManager& manager, |
202 | 315 int64_t id) = 0; |
316 # endif | |
317 #endif | |
318 }; | |
319 } |