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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 /**
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 * Orthanc - A Lightweight, RESTful DICOM Store
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 *
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 * This program is free software: you can redistribute it and/or
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 * modify it under the terms of the GNU Affero General Public License
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 * as published by the Free Software Foundation, either version 3 of
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * the License, or (at your option) any later version.
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 *
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful, but
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * Affero General Public License for more details.
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 *
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * You should have received a copy of the GNU Affero General Public License
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 **/
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 140
diff changeset
26 #include <Logging.h>
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
408 extern "C"
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
409 {
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
410 ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* context)
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
413 {
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
414 return -1;
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
415 }
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
416
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
419
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
420 if (!configuration.IsSection("SQLite"))
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
421 {
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
422 LOG(WARNING) << "No available configuration for the SQLite index plugin";
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
423 return 0;
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
424 }
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
425
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
426 OrthancPlugins::OrthancConfiguration sqlite;
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
427 configuration.GetSection(sqlite, "SQLite");
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
428
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
429 bool enable;
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
430 if (!sqlite.LookupBooleanValue(enable, "EnableIndex") ||
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
431 !enable)
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
432 {
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
433 LOG(WARNING) << "The SQLite index is currently disabled, set \"EnableIndex\" "
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
434 << "to \"true\" in the \"SQLite\" section of the configuration file of Orthanc";
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
435 return 0;
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
436 }
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
437 #endif
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
438
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
439 try
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
440 {
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
443
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
446 }
2
17bce6a07b2b storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
447 catch (Orthanc::OrthancException& e)
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
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
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
455 return -1;
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
456 }
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
457
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
458 return 0;
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
459 }
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
460
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
461
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
462 ORTHANC_PLUGINS_API void OrthancPluginFinalize()
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
463 {
2
17bce6a07b2b storage plugin skeletons
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
464 LOG(WARNING) << "SQLite index is finalizing";
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
465 backend_.reset(NULL);
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
466 }
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
467
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
468
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
469 ORTHANC_PLUGINS_API const char* OrthancPluginGetName()
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
470 {
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
471 return "sqlite-index";
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
472 }
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
473
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
474
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
475 ORTHANC_PLUGINS_API const char* OrthancPluginGetVersion()
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
476 {
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
477 return ORTHANC_PLUGIN_VERSION;
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
478 }
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
479 }