Mercurial > hg > orthanc-databases
annotate SQLite/Plugins/IndexPlugin.cpp @ 206:6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 19 Mar 2021 10:11:17 +0100 |
parents | 2089d4071408 |
children | d9ef3f16e6a2 |
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:
157
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 #include "SQLiteIndex.h" | |
24
17f849b2af34
sharing plugin initialization code
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2
diff
changeset
|
23 #include "../../Framework/Plugins/PluginInitialization.h" |
0 | 24 |
157
275e14f57f1e
replacing deprecated std::auto_ptr by std::unique_ptr
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
152
diff
changeset
|
25 #include <Compatibility.h> // For std::unique_ptr<> |
152 | 26 #include <Logging.h> |
0 | 27 |
157
275e14f57f1e
replacing deprecated std::auto_ptr by std::unique_ptr
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
152
diff
changeset
|
28 static std::unique_ptr<OrthancDatabases::SQLiteIndex> backend_; |
0 | 29 |
30 | |
206
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
31 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
32 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in Orthanc 1.3.1 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
33 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 10, 0) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
34 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
35 namespace OrthancDatabases |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
36 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
37 class Output : public IDatabaseBackendOutput |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
38 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
39 private: |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
40 _OrthancPluginDatabaseAnswerType answerType_; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
41 std::list<std::string> strings_; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
42 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
43 std::vector<OrthancPluginAttachment> attachments_; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
44 std::vector<OrthancPluginChange> changes_; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
45 std::vector<OrthancPluginDicomTag> tags_; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
46 std::vector<OrthancPluginExportedResource> exported_; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
47 std::vector<OrthancPluginDatabaseEvent> events_; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
48 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
49 const char* StoreString(const std::string& s) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
50 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
51 strings_.push_back(s); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
52 return strings_.back().c_str(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
53 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
54 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
55 void SetupAnswerType(_OrthancPluginDatabaseAnswerType type) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
56 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
57 if (answerType_ == _OrthancPluginDatabaseAnswerType_None) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
58 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
59 answerType_ = type; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
60 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
61 else if (answerType_ != type) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
62 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
63 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
64 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
65 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
66 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
67 public: |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
68 Output() : |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
69 answerType_(_OrthancPluginDatabaseAnswerType_None) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
70 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
71 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
72 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
73 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
74 void Clear() |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
75 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
76 answerType_ = _OrthancPluginDatabaseAnswerType_None; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
77 strings_.clear(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
78 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
79 attachments_.clear(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
80 changes_.clear(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
81 tags_.clear(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
82 exported_.clear(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
83 events_.clear(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
84 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
85 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
86 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
87 static OrthancPluginErrorCode ReadAnswersCount(OrthancPluginDatabaseTransaction* transaction, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
88 uint32_t* target /* out */) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
89 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
90 const Output& that = *reinterpret_cast<const Output*>(transaction); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
91 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
92 size_t size; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
93 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
94 switch (that.answerType_) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
95 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
96 case _OrthancPluginDatabaseAnswerType_None: |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
97 size = 0; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
98 break; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
99 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
100 case _OrthancPluginDatabaseAnswerType_Attachment: |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
101 size = that.attachments_.size(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
102 break; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
103 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
104 case _OrthancPluginDatabaseAnswerType_Change: |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
105 size = that.changes_.size(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
106 break; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
107 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
108 case _OrthancPluginDatabaseAnswerType_DicomTag: |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
109 size = that.tags_.size(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
110 break; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
111 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
112 case _OrthancPluginDatabaseAnswerType_ExportedResource: |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
113 size = that.exported_.size(); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
114 break; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
115 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
116 default: |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
117 return OrthancPluginErrorCode_InternalError; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
118 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
119 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
120 *target = static_cast<uint32_t>(size); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
121 return OrthancPluginErrorCode_Success; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
122 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
123 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
124 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
125 static OrthancPluginErrorCode ReadAnswerAttachment(OrthancPluginDatabaseTransaction* transaction, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
126 OrthancPluginAttachment* target /* out */, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
127 uint32_t index) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
128 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
129 const Output& that = *reinterpret_cast<const Output*>(transaction); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
130 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
131 if (index < that.attachments_.size()) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
132 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
133 *target = that.attachments_[index]; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
134 return OrthancPluginErrorCode_Success; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
135 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
136 else |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
137 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
138 return OrthancPluginErrorCode_ParameterOutOfRange; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
139 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
140 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
141 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
142 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
143 static OrthancPluginErrorCode ReadAnswerChange(OrthancPluginDatabaseTransaction* transaction, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
144 OrthancPluginChange* target /* out */, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
145 uint32_t index) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
146 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
147 const Output& that = *reinterpret_cast<const Output*>(transaction); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
148 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
149 if (index < that.changes_.size()) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
150 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
151 *target = that.changes_[index]; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
152 return OrthancPluginErrorCode_Success; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
153 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
154 else |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
155 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
156 return OrthancPluginErrorCode_ParameterOutOfRange; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
157 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
158 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
159 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
160 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
161 static OrthancPluginErrorCode ReadAnswerDicomTag(OrthancPluginDatabaseTransaction* transaction, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
162 uint16_t* group, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
163 uint16_t* element, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
164 const char** value, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
165 uint32_t index) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
166 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
167 const Output& that = *reinterpret_cast<const Output*>(transaction); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
168 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
169 if (index < that.tags_.size()) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
170 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
171 const OrthancPluginDicomTag& tag = that.tags_[index]; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
172 *group = tag.group; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
173 *element = tag.element; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
174 *value = tag.value; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
175 return OrthancPluginErrorCode_Success; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
176 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
177 else |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
178 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
179 return OrthancPluginErrorCode_ParameterOutOfRange; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
180 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
181 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
182 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
183 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
184 static OrthancPluginErrorCode ReadAnswerExportedResource(OrthancPluginDatabaseTransaction* transaction, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
185 OrthancPluginExportedResource* target /* out */, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
186 uint32_t index) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
187 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
188 const Output& that = *reinterpret_cast<const Output*>(transaction); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
189 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
190 if (index < that.exported_.size()) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
191 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
192 *target = that.exported_[index]; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
193 return OrthancPluginErrorCode_Success; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
194 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
195 else |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
196 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
197 return OrthancPluginErrorCode_ParameterOutOfRange; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
198 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
199 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
200 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
201 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
202 static OrthancPluginErrorCode ReadEventsCount(OrthancPluginDatabaseTransaction* transaction, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
203 uint32_t* target /* out */) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
204 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
205 const Output& that = *reinterpret_cast<const Output*>(transaction); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
206 *target = static_cast<uint32_t>(that.events_.size()); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
207 return OrthancPluginErrorCode_Success; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
208 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
209 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
210 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
211 static OrthancPluginErrorCode ReadEvent(OrthancPluginDatabaseTransaction* transaction, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
212 OrthancPluginDatabaseEvent* event /* out */, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
213 uint32_t index) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
214 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
215 const Output& that = *reinterpret_cast<const Output*>(transaction); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
216 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
217 if (index < that.events_.size()) |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
218 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
219 *event = that.events_[index]; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
220 return OrthancPluginErrorCode_Success; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
221 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
222 else |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
223 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
224 return OrthancPluginErrorCode_ParameterOutOfRange; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
225 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
226 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
227 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
228 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
229 virtual void SignalDeletedAttachment(const std::string& uuid, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
230 int32_t contentType, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
231 uint64_t uncompressedSize, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
232 const std::string& uncompressedHash, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
233 int32_t compressionType, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
234 uint64_t compressedSize, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
235 const std::string& compressedHash) ORTHANC_OVERRIDE |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
236 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
237 OrthancPluginDatabaseEvent event; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
238 event.type = OrthancPluginDatabaseEventType_DeletedAttachment; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
239 event.content.attachment.uuid = StoreString(uuid); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
240 event.content.attachment.contentType = contentType; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
241 event.content.attachment.uncompressedSize = uncompressedSize; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
242 event.content.attachment.uncompressedHash = StoreString(uncompressedHash); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
243 event.content.attachment.compressionType = compressionType; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
244 event.content.attachment.compressedSize = compressedSize; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
245 event.content.attachment.compressedHash = StoreString(compressedHash); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
246 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
247 events_.push_back(event); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
248 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
249 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
250 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
251 virtual void SignalDeletedResource(const std::string& publicId, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
252 OrthancPluginResourceType resourceType) ORTHANC_OVERRIDE |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
253 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
254 OrthancPluginDatabaseEvent event; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
255 event.type = OrthancPluginDatabaseEventType_DeletedResource; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
256 event.content.resource.level = resourceType; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
257 event.content.resource.publicId = StoreString(publicId); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
258 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
259 events_.push_back(event); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
260 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
261 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
262 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
263 virtual void SignalRemainingAncestor(const std::string& ancestorId, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
264 OrthancPluginResourceType ancestorType) ORTHANC_OVERRIDE |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
265 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
266 OrthancPluginDatabaseEvent event; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
267 event.type = OrthancPluginDatabaseEventType_RemainingAncestor; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
268 event.content.resource.level = ancestorType; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
269 event.content.resource.publicId = StoreString(ancestorId); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
270 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
271 events_.push_back(event); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
272 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
273 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
274 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
275 virtual void AnswerAttachment(const std::string& uuid, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
276 int32_t contentType, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
277 uint64_t uncompressedSize, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
278 const std::string& uncompressedHash, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
279 int32_t compressionType, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
280 uint64_t compressedSize, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
281 const std::string& compressedHash) ORTHANC_OVERRIDE |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
282 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
283 SetupAnswerType(_OrthancPluginDatabaseAnswerType_Attachment); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
284 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
285 OrthancPluginAttachment attachment; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
286 attachment.uuid = StoreString(uuid); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
287 attachment.contentType = contentType; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
288 attachment.uncompressedSize = uncompressedSize; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
289 attachment.uncompressedHash = StoreString(uncompressedHash); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
290 attachment.compressionType = compressionType; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
291 attachment.compressedSize = compressedSize; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
292 attachment.compressedHash = StoreString(compressedHash); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
293 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
294 attachments_.push_back(attachment); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
295 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
296 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
297 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
298 virtual void AnswerChange(int64_t seq, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
299 int32_t changeType, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
300 OrthancPluginResourceType resourceType, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
301 const std::string& publicId, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
302 const std::string& date) ORTHANC_OVERRIDE |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
303 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
304 SetupAnswerType(_OrthancPluginDatabaseAnswerType_Change); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
305 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
306 OrthancPluginChange change; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
307 change.seq = seq; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
308 change.changeType = changeType; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
309 change.resourceType = resourceType; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
310 change.publicId = StoreString(publicId); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
311 change.date = StoreString(date); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
312 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
313 changes_.push_back(change); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
314 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
315 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
316 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
317 virtual void AnswerDicomTag(uint16_t group, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
318 uint16_t element, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
319 const std::string& value) ORTHANC_OVERRIDE |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
320 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
321 SetupAnswerType(_OrthancPluginDatabaseAnswerType_DicomTag); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
322 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
323 OrthancPluginDicomTag tag; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
324 tag.group = group; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
325 tag.element = element; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
326 tag.value = StoreString(value); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
327 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
328 tags_.push_back(tag); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
329 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
330 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
331 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
332 virtual void AnswerExportedResource(int64_t seq, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
333 OrthancPluginResourceType resourceType, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
334 const std::string& publicId, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
335 const std::string& modality, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
336 const std::string& date, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
337 const std::string& patientId, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
338 const std::string& studyInstanceUid, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
339 const std::string& seriesInstanceUid, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
340 const std::string& sopInstanceUid) ORTHANC_OVERRIDE |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
341 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
342 SetupAnswerType(_OrthancPluginDatabaseAnswerType_ExportedResource); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
343 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
344 OrthancPluginExportedResource exported; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
345 exported.seq = seq; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
346 exported.resourceType = resourceType; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
347 exported.publicId = StoreString(publicId); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
348 exported.modality = StoreString(modality); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
349 exported.date = StoreString(date); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
350 exported.patientId = StoreString(patientId); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
351 exported.studyInstanceUid = StoreString(studyInstanceUid); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
352 exported.seriesInstanceUid = StoreString(seriesInstanceUid); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
353 exported.sopInstanceUid = StoreString(sopInstanceUid); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
354 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
355 exported_.push_back(exported); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
356 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
357 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
358 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
359 virtual void AnswerMatchingResource(const std::string& resourceId) ORTHANC_OVERRIDE |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
360 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
361 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
362 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
363 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
364 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
365 virtual void AnswerMatchingResource(const std::string& resourceId, |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
366 const std::string& someInstanceId) ORTHANC_OVERRIDE |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
367 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
368 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
369 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
370 }; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
371 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
372 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
373 class Factory : public IDatabaseBackendOutput::IFactory |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
374 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
375 public: |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
376 Factory() |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
377 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
378 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
379 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
380 virtual IDatabaseBackendOutput* CreateOutput() |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
381 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
382 return new Output; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
383 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
384 }; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
385 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
386 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
387 static void Register() |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
388 { |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
389 OrthancPluginDatabaseBackendV3 backend; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
390 memset(&backend, 0, sizeof(backend)); |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
391 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
392 backend.readAnswersCount = Output::ReadAnswersCount; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
393 backend.readAnswerAttachment = Output::ReadAnswerAttachment; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
394 backend.readAnswerChange = Output::ReadAnswerChange; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
395 backend.readAnswerDicomTag = Output::ReadAnswerDicomTag; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
396 backend.readAnswerExportedResource = Output::ReadAnswerExportedResource; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
397 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
398 backend.readEventsCount = Output::ReadEventsCount; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
399 backend.readEvent = Output::ReadEvent; |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
400 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
401 } |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
402 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
403 # endif |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
404 #endif |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
405 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
406 |
6dcf57074dd4
starting OrthancPluginDatabaseBackendV3 wrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
203
diff
changeset
|
407 |
0 | 408 extern "C" |
409 { | |
410 ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* context) | |
411 { | |
28
c0cb5d2cd696
checks depending on Orthanc version
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
412 if (!OrthancDatabases::InitializePlugin(context, "SQLite", true)) |
0 | 413 { |
414 return -1; | |
415 } | |
416 | |
417 #if 0 | |
62
eedd082355f9
fix for compatibility with simplified OrthancPluginCppWrapper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
28
diff
changeset
|
418 OrthancPlugins::OrthancConfiguration configuration; |
0 | 419 |
420 if (!configuration.IsSection("SQLite")) | |
421 { | |
422 LOG(WARNING) << "No available configuration for the SQLite index plugin"; | |
423 return 0; | |
424 } | |
425 | |
426 OrthancPlugins::OrthancConfiguration sqlite; | |
427 configuration.GetSection(sqlite, "SQLite"); | |
428 | |
429 bool enable; | |
430 if (!sqlite.LookupBooleanValue(enable, "EnableIndex") || | |
431 !enable) | |
432 { | |
433 LOG(WARNING) << "The SQLite index is currently disabled, set \"EnableIndex\" " | |
434 << "to \"true\" in the \"SQLite\" section of the configuration file of Orthanc"; | |
435 return 0; | |
436 } | |
437 #endif | |
438 | |
439 try | |
440 { | |
441 /* Create the database back-end */ | |
201
42990b2dd51b
create IDatabaseBackendOutput only if needed
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
200
diff
changeset
|
442 backend_.reset(new OrthancDatabases::SQLiteIndex(context, "index.db")); // TODO parameter |
0 | 443 |
444 /* Register the SQLite index into Orthanc */ | |
203
2089d4071408
moving classes out of OrthancPlugins namespace, to OrthancDatabases
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
201
diff
changeset
|
445 OrthancDatabases::DatabaseBackendAdapterV2::Register(context, *backend_); |
0 | 446 } |
2
17bce6a07b2b
storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
447 catch (Orthanc::OrthancException& e) |
0 | 448 { |
2
17bce6a07b2b
storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
449 LOG(ERROR) << e.What(); |
17bce6a07b2b
storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
450 return -1; |
17bce6a07b2b
storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
451 } |
17bce6a07b2b
storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
452 catch (...) |
17bce6a07b2b
storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
453 { |
17bce6a07b2b
storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
454 LOG(ERROR) << "Native exception while initializing the plugin"; |
0 | 455 return -1; |
456 } | |
457 | |
458 return 0; | |
459 } | |
460 | |
461 | |
462 ORTHANC_PLUGINS_API void OrthancPluginFinalize() | |
463 { | |
2
17bce6a07b2b
storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
464 LOG(WARNING) << "SQLite index is finalizing"; |
0 | 465 backend_.reset(NULL); |
466 } | |
467 | |
468 | |
469 ORTHANC_PLUGINS_API const char* OrthancPluginGetName() | |
470 { | |
471 return "sqlite-index"; | |
472 } | |
473 | |
474 | |
475 ORTHANC_PLUGINS_API const char* OrthancPluginGetVersion() | |
476 { | |
477 return ORTHANC_PLUGIN_VERSION; | |
478 } | |
479 } |