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