Mercurial > hg > orthanc-databases
annotate Framework/Plugins/IndexBackend.h @ 202:2def2df94f94
reorganization
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 18 Mar 2021 17:00:38 +0100 |
parents | 42990b2dd51b |
children | 2089d4071408 |
rev | line source |
---|---|
0 | 1 /** |
2 * Orthanc - A Lightweight, RESTful DICOM Store | |
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics | |
4 * Department, University Hospital of Liege, Belgium | |
193
3236894320d6
upgrade to year 2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
140
diff
changeset
|
5 * Copyright (C) 2017-2021 Osimis S.A., Belgium |
0 | 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 #pragma once | |
23 | |
24 #include "../Common/DatabaseManager.h" | |
25 #include "OrthancCppDatabasePlugin.h" | |
26 | |
27 | |
28 namespace OrthancDatabases | |
29 { | |
30 class IndexBackend : public OrthancPlugins::IDatabaseBackend | |
31 { | |
32 private: | |
69
19764fc60ade
compatibility with Orthanc SDDK 0.9.5
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
67
diff
changeset
|
33 class LookupFormatter; |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
34 |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
35 OrthancPluginContext* context_; |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
36 DatabaseManager manager_; |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
37 |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
38 std::unique_ptr<OrthancPlugins::IDatabaseBackendOutput::IFactory> outputFactory_; |
69
19764fc60ade
compatibility with Orthanc SDDK 0.9.5
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
67
diff
changeset
|
39 |
0 | 40 protected: |
41 DatabaseManager& GetManager() | |
42 { | |
43 return manager_; | |
44 } | |
45 | |
70
e6c13ddd26d9
all integration tests passing with LookupResources extension
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
69
diff
changeset
|
46 static int64_t ReadInteger64(const DatabaseManager::StatementBase& statement, |
0 | 47 size_t field); |
48 | |
70
e6c13ddd26d9
all integration tests passing with LookupResources extension
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
69
diff
changeset
|
49 static int32_t ReadInteger32(const DatabaseManager::StatementBase& statement, |
0 | 50 size_t field); |
51 | |
70
e6c13ddd26d9
all integration tests passing with LookupResources extension
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
69
diff
changeset
|
52 static std::string ReadString(const DatabaseManager::StatementBase& statement, |
0 | 53 size_t field); |
54 | |
55 template <typename T> | |
56 static void ReadListOfIntegers(std::list<T>& target, | |
57 DatabaseManager::CachedStatement& statement, | |
58 const Dictionary& args); | |
59 | |
60 static void ReadListOfStrings(std::list<std::string>& target, | |
61 DatabaseManager::CachedStatement& statement, | |
62 const Dictionary& args); | |
63 | |
64 void ClearDeletedFiles(); | |
65 | |
66 void ClearDeletedResources(); | |
67 | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
68 void SignalDeletedFiles(OrthancPlugins::IDatabaseBackendOutput& output); |
0 | 69 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
70 void SignalDeletedResources(OrthancPlugins::IDatabaseBackendOutput& output); |
0 | 71 |
72 private: | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
73 void ReadChangesInternal(OrthancPlugins::IDatabaseBackendOutput& output, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
74 bool& done, |
0 | 75 DatabaseManager::CachedStatement& statement, |
76 const Dictionary& args, | |
77 uint32_t maxResults); | |
78 | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
79 void ReadExportedResourcesInternal(OrthancPlugins::IDatabaseBackendOutput& output, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
80 bool& done, |
0 | 81 DatabaseManager::CachedStatement& statement, |
82 const Dictionary& args, | |
83 uint32_t maxResults); | |
84 | |
85 public: | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
86 IndexBackend(OrthancPluginContext* context, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
87 IDatabaseFactory* factory); |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
88 |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
89 virtual OrthancPluginContext* GetContext() ORTHANC_OVERRIDE |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
90 { |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
91 return context_; |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
92 } |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
93 |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
94 virtual void SetOutputFactory(OrthancPlugins::IDatabaseBackendOutput::IFactory* factory) ORTHANC_OVERRIDE; |
0 | 95 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
96 virtual OrthancPlugins::IDatabaseBackendOutput* CreateOutput() ORTHANC_OVERRIDE; |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
97 |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
98 virtual void Open() ORTHANC_OVERRIDE |
0 | 99 { |
100 manager_.Open(); | |
101 } | |
102 | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
103 virtual void Close() ORTHANC_OVERRIDE |
0 | 104 { |
105 manager_.Close(); | |
106 } | |
107 | |
108 virtual void AddAttachment(int64_t id, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
109 const OrthancPluginAttachment& attachment) ORTHANC_OVERRIDE; |
0 | 110 |
111 virtual void AttachChild(int64_t parent, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
112 int64_t child) ORTHANC_OVERRIDE; |
0 | 113 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
114 virtual void ClearChanges() ORTHANC_OVERRIDE; |
0 | 115 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
116 virtual void ClearExportedResources() ORTHANC_OVERRIDE; |
0 | 117 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
118 virtual void DeleteAttachment(OrthancPlugins::IDatabaseBackendOutput& output, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
119 int64_t id, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
120 int32_t attachment) ORTHANC_OVERRIDE; |
0 | 121 |
122 virtual void DeleteMetadata(int64_t id, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
123 int32_t metadataType) ORTHANC_OVERRIDE; |
0 | 124 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
125 virtual void DeleteResource(OrthancPlugins::IDatabaseBackendOutput& output, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
126 int64_t id) ORTHANC_OVERRIDE; |
0 | 127 |
128 virtual void GetAllInternalIds(std::list<int64_t>& target, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
129 OrthancPluginResourceType resourceType) ORTHANC_OVERRIDE; |
0 | 130 |
131 virtual void GetAllPublicIds(std::list<std::string>& target, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
132 OrthancPluginResourceType resourceType) ORTHANC_OVERRIDE; |
0 | 133 |
134 virtual void GetAllPublicIds(std::list<std::string>& target, | |
135 OrthancPluginResourceType resourceType, | |
136 uint64_t since, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
137 uint64_t limit) ORTHANC_OVERRIDE; |
0 | 138 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
139 virtual void GetChanges(OrthancPlugins::IDatabaseBackendOutput& output, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
140 bool& done /*out*/, |
0 | 141 int64_t since, |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
142 uint32_t maxResults) ORTHANC_OVERRIDE; |
0 | 143 |
144 virtual void GetChildrenInternalId(std::list<int64_t>& target /*out*/, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
145 int64_t id) ORTHANC_OVERRIDE; |
0 | 146 |
147 virtual void GetChildrenPublicId(std::list<std::string>& target /*out*/, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
148 int64_t id) ORTHANC_OVERRIDE; |
0 | 149 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
150 virtual void GetExportedResources(OrthancPlugins::IDatabaseBackendOutput& output, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
151 bool& done /*out*/, |
0 | 152 int64_t since, |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
153 uint32_t maxResults) ORTHANC_OVERRIDE; |
0 | 154 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
155 virtual void GetLastChange(OrthancPlugins::IDatabaseBackendOutput& output) ORTHANC_OVERRIDE; |
0 | 156 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
157 virtual void GetLastExportedResource(OrthancPlugins::IDatabaseBackendOutput& output) ORTHANC_OVERRIDE; |
0 | 158 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
159 virtual void GetMainDicomTags(OrthancPlugins::IDatabaseBackendOutput& output, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
160 int64_t id) ORTHANC_OVERRIDE; |
0 | 161 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
162 virtual std::string GetPublicId(int64_t resourceId) ORTHANC_OVERRIDE; |
0 | 163 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
164 virtual uint64_t GetResourceCount(OrthancPluginResourceType resourceType) ORTHANC_OVERRIDE; |
0 | 165 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
166 virtual OrthancPluginResourceType GetResourceType(int64_t resourceId) ORTHANC_OVERRIDE; |
0 | 167 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
168 virtual uint64_t GetTotalCompressedSize() ORTHANC_OVERRIDE; |
0 | 169 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
170 virtual uint64_t GetTotalUncompressedSize() ORTHANC_OVERRIDE; |
0 | 171 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
172 virtual bool IsExistingResource(int64_t internalId) ORTHANC_OVERRIDE; |
0 | 173 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
174 virtual bool IsProtectedPatient(int64_t internalId) ORTHANC_OVERRIDE; |
0 | 175 |
176 virtual void ListAvailableMetadata(std::list<int32_t>& target /*out*/, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
177 int64_t id) ORTHANC_OVERRIDE; |
0 | 178 |
179 virtual void ListAvailableAttachments(std::list<int32_t>& target /*out*/, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
180 int64_t id) ORTHANC_OVERRIDE; |
0 | 181 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
182 virtual void LogChange(const OrthancPluginChange& change) ORTHANC_OVERRIDE; |
0 | 183 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
184 virtual void LogExportedResource(const OrthancPluginExportedResource& resource) ORTHANC_OVERRIDE; |
0 | 185 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
186 virtual bool LookupAttachment(OrthancPlugins::IDatabaseBackendOutput& output, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
187 int64_t id, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
188 int32_t contentType) ORTHANC_OVERRIDE; |
0 | 189 |
190 virtual bool LookupGlobalProperty(std::string& target /*out*/, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
191 int32_t property) ORTHANC_OVERRIDE; |
0 | 192 |
193 virtual void LookupIdentifier(std::list<int64_t>& target /*out*/, | |
194 OrthancPluginResourceType resourceType, | |
195 uint16_t group, | |
196 uint16_t element, | |
197 OrthancPluginIdentifierConstraint constraint, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
198 const char* value) ORTHANC_OVERRIDE; |
0 | 199 |
200 virtual void LookupIdentifierRange(std::list<int64_t>& target /*out*/, | |
201 OrthancPluginResourceType resourceType, | |
202 uint16_t group, | |
203 uint16_t element, | |
204 const char* start, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
205 const char* end) ORTHANC_OVERRIDE; |
0 | 206 |
207 virtual bool LookupMetadata(std::string& target /*out*/, | |
208 int64_t id, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
209 int32_t metadataType) ORTHANC_OVERRIDE; |
0 | 210 |
211 virtual bool LookupParent(int64_t& parentId /*out*/, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
212 int64_t resourceId) ORTHANC_OVERRIDE; |
0 | 213 |
214 virtual bool LookupResource(int64_t& id /*out*/, | |
215 OrthancPluginResourceType& type /*out*/, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
216 const char* publicId) ORTHANC_OVERRIDE; |
0 | 217 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
218 virtual bool SelectPatientToRecycle(int64_t& internalId /*out*/) ORTHANC_OVERRIDE; |
0 | 219 |
220 virtual bool SelectPatientToRecycle(int64_t& internalId /*out*/, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
221 int64_t patientIdToAvoid) ORTHANC_OVERRIDE; |
0 | 222 |
223 virtual void SetGlobalProperty(int32_t property, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
224 const char* value) ORTHANC_OVERRIDE; |
0 | 225 |
226 virtual void SetMainDicomTag(int64_t id, | |
227 uint16_t group, | |
228 uint16_t element, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
229 const char* value) ORTHANC_OVERRIDE; |
0 | 230 |
231 virtual void SetIdentifierTag(int64_t id, | |
232 uint16_t group, | |
233 uint16_t element, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
234 const char* value) ORTHANC_OVERRIDE; |
0 | 235 |
236 virtual void SetMetadata(int64_t id, | |
237 int32_t metadataType, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
238 const char* value) ORTHANC_OVERRIDE; |
0 | 239 |
240 virtual void SetProtectedPatient(int64_t internalId, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
241 bool isProtected) ORTHANC_OVERRIDE; |
0 | 242 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
243 virtual void StartTransaction() ORTHANC_OVERRIDE |
0 | 244 { |
245 manager_.StartTransaction(); | |
246 } | |
247 | |
248 | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
249 virtual void RollbackTransaction() ORTHANC_OVERRIDE |
0 | 250 { |
251 manager_.RollbackTransaction(); | |
252 } | |
253 | |
254 | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
255 virtual void CommitTransaction() ORTHANC_OVERRIDE |
0 | 256 { |
257 manager_.CommitTransaction(); | |
258 } | |
259 | |
260 | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
261 virtual uint32_t GetDatabaseVersion() ORTHANC_OVERRIDE; |
0 | 262 |
263 virtual void UpgradeDatabase(uint32_t targetVersion, | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
264 OrthancPluginStorageArea* storageArea) ORTHANC_OVERRIDE; |
0 | 265 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
266 virtual void ClearMainDicomTags(int64_t internalId) ORTHANC_OVERRIDE; |
0 | 267 |
268 // For unit testing only! | |
269 virtual uint64_t GetResourcesCount(); | |
270 | |
271 // For unit testing only! | |
272 virtual uint64_t GetUnprotectedPatientsCount(); | |
273 | |
274 // For unit testing only! | |
275 virtual bool GetParentPublicId(std::string& target, | |
276 int64_t id); | |
277 | |
278 // For unit tests only! | |
279 virtual void GetChildren(std::list<std::string>& childrenPublicIds, | |
280 int64_t id); | |
69
19764fc60ade
compatibility with Orthanc SDDK 0.9.5
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
67
diff
changeset
|
281 |
78 | 282 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 |
69
19764fc60ade
compatibility with Orthanc SDDK 0.9.5
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
67
diff
changeset
|
283 // New primitive since Orthanc 1.5.2 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
284 virtual void LookupResources(OrthancPlugins::IDatabaseBackendOutput& output, |
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
285 const std::vector<Orthanc::DatabaseConstraint>& lookup, |
69
19764fc60ade
compatibility with Orthanc SDDK 0.9.5
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
67
diff
changeset
|
286 OrthancPluginResourceType queryLevel, |
19764fc60ade
compatibility with Orthanc SDDK 0.9.5
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
67
diff
changeset
|
287 uint32_t limit, |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
288 bool requestSomeInstance) ORTHANC_OVERRIDE; |
69
19764fc60ade
compatibility with Orthanc SDDK 0.9.5
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
67
diff
changeset
|
289 #endif |
75
52c70007bb87
new extension implemented for PostgreSQL: SetResourcesContent
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
290 |
78 | 291 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 |
75
52c70007bb87
new extension implemented for PostgreSQL: SetResourcesContent
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
292 // New primitive since Orthanc 1.5.2 |
52c70007bb87
new extension implemented for PostgreSQL: SetResourcesContent
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
293 virtual void SetResourcesContent( |
52c70007bb87
new extension implemented for PostgreSQL: SetResourcesContent
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
294 uint32_t countIdentifierTags, |
52c70007bb87
new extension implemented for PostgreSQL: SetResourcesContent
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
295 const OrthancPluginResourcesContentTags* identifierTags, |
52c70007bb87
new extension implemented for PostgreSQL: SetResourcesContent
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
296 uint32_t countMainDicomTags, |
52c70007bb87
new extension implemented for PostgreSQL: SetResourcesContent
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
297 const OrthancPluginResourcesContentTags* mainDicomTags, |
52c70007bb87
new extension implemented for PostgreSQL: SetResourcesContent
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
298 uint32_t countMetadata, |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
299 const OrthancPluginResourcesContentMetadata* metadata) ORTHANC_OVERRIDE; |
75
52c70007bb87
new extension implemented for PostgreSQL: SetResourcesContent
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
300 #endif |
76
a1c6238b26f8
new extension implemented for PostgreSQL: GetChildrenMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
75
diff
changeset
|
301 |
a1c6238b26f8
new extension implemented for PostgreSQL: GetChildrenMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
75
diff
changeset
|
302 // New primitive since Orthanc 1.5.2 |
a1c6238b26f8
new extension implemented for PostgreSQL: GetChildrenMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
75
diff
changeset
|
303 virtual void GetChildrenMetadata(std::list<std::string>& target, |
a1c6238b26f8
new extension implemented for PostgreSQL: GetChildrenMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
75
diff
changeset
|
304 int64_t resourceId, |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
305 int32_t metadata) ORTHANC_OVERRIDE; |
88
eb08ec14fb04
new extension implemented: TagMostRecentPatient
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
85
diff
changeset
|
306 |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
307 virtual void TagMostRecentPatient(int64_t patient) ORTHANC_OVERRIDE; |
117
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
308 |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
309 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in 1.3.1 |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
310 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 5, 4) |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
311 // New primitive since Orthanc 1.5.4 |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
312 virtual bool LookupResourceAndParent(int64_t& id, |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
313 OrthancPluginResourceType& type, |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
314 std::string& parentPublicId, |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
315 const char* publicId) ORTHANC_OVERRIDE; |
117
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
316 # endif |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
317 #endif |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
318 |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
319 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in 1.3.1 |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
320 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 5, 4) |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
321 // New primitive since Orthanc 1.5.4 |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
322 virtual void GetAllMetadata(std::map<int32_t, std::string>& result, |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
193
diff
changeset
|
323 int64_t id) ORTHANC_OVERRIDE; |
117
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
324 # endif |
ca0ecd412988
Implementation of new extensions: LookupResourceAndParent and GetAllMetadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
88
diff
changeset
|
325 #endif |
202 | 326 |
327 virtual bool HasCreateInstance() const ORTHANC_OVERRIDE | |
328 { | |
329 return false; // TODO - Shouldn't this be "true"? | |
330 } | |
331 | |
332 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
333 virtual void CreateInstance(OrthancPluginCreateInstanceResult& result, | |
334 const char* hashPatient, | |
335 const char* hashStudy, | |
336 const char* hashSeries, | |
337 const char* hashInstance) | |
338 { | |
339 throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError); | |
340 } | |
341 #endif | |
0 | 342 }; |
343 } |