40 #include "OrthancCPlugin.h"
61 _OrthancPluginDatabaseAnswerType_None = 0,
64 _OrthancPluginDatabaseAnswerType_DeletedAttachment = 1,
65 _OrthancPluginDatabaseAnswerType_DeletedResource = 2,
66 _OrthancPluginDatabaseAnswerType_RemainingAncestor = 3,
69 _OrthancPluginDatabaseAnswerType_Attachment = 10,
70 _OrthancPluginDatabaseAnswerType_Change = 11,
71 _OrthancPluginDatabaseAnswerType_DicomTag = 12,
72 _OrthancPluginDatabaseAnswerType_ExportedResource = 13,
73 _OrthancPluginDatabaseAnswerType_Int32 = 14,
74 _OrthancPluginDatabaseAnswerType_Int64 = 15,
75 _OrthancPluginDatabaseAnswerType_Resource = 16,
76 _OrthancPluginDatabaseAnswerType_String = 17,
78 _OrthancPluginDatabaseAnswerType_INTERNAL = 0x7fffffff
79 } _OrthancPluginDatabaseAnswerType;
86 uint64_t uncompressedSize;
87 const char* uncompressedHash;
88 int32_t compressionType;
89 uint64_t compressedSize;
90 const char* compressedHash;
91 } OrthancPluginAttachment;
98 } OrthancPluginDicomTag;
105 const char* publicId;
107 } OrthancPluginChange;
113 const char* publicId;
114 const char* modality;
116 const char* patientId;
117 const char* studyInstanceUid;
118 const char* seriesInstanceUid;
119 const char* sopInstanceUid;
120 } OrthancPluginExportedResource;
126 _OrthancPluginDatabaseAnswerType type;
128 uint32_t valueUint32;
130 const char *valueString;
131 const void *valueGeneric;
132 } _OrthancPluginDatabaseAnswer;
134 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerString(
139 _OrthancPluginDatabaseAnswer params;
140 memset(¶ms, 0,
sizeof(params));
141 params.database = database;
142 params.type = _OrthancPluginDatabaseAnswerType_String;
143 params.valueString = value;
144 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
147 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChange(
150 const OrthancPluginChange* change)
152 _OrthancPluginDatabaseAnswer params;
153 memset(¶ms, 0,
sizeof(params));
155 params.database = database;
156 params.type = _OrthancPluginDatabaseAnswerType_Change;
157 params.valueUint32 = 0;
158 params.valueGeneric = change;
160 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
163 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChangesDone(
167 _OrthancPluginDatabaseAnswer params;
168 memset(¶ms, 0,
sizeof(params));
170 params.database = database;
171 params.type = _OrthancPluginDatabaseAnswerType_Change;
172 params.valueUint32 = 1;
173 params.valueGeneric = NULL;
175 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
178 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt32(
183 _OrthancPluginDatabaseAnswer params;
184 memset(¶ms, 0,
sizeof(params));
185 params.database = database;
186 params.type = _OrthancPluginDatabaseAnswerType_Int32;
187 params.valueInt32 = value;
188 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
191 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt64(
196 _OrthancPluginDatabaseAnswer params;
197 memset(¶ms, 0,
sizeof(params));
198 params.database = database;
199 params.type = _OrthancPluginDatabaseAnswerType_Int64;
200 params.valueInt64 = value;
201 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
204 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResource(
207 const OrthancPluginExportedResource* exported)
209 _OrthancPluginDatabaseAnswer params;
210 memset(¶ms, 0,
sizeof(params));
212 params.database = database;
213 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
214 params.valueUint32 = 0;
215 params.valueGeneric = exported;
216 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
219 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResourcesDone(
223 _OrthancPluginDatabaseAnswer params;
224 memset(¶ms, 0,
sizeof(params));
226 params.database = database;
227 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
228 params.valueUint32 = 1;
229 params.valueGeneric = NULL;
230 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
233 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerDicomTag(
236 const OrthancPluginDicomTag* tag)
238 _OrthancPluginDatabaseAnswer params;
239 memset(¶ms, 0,
sizeof(params));
240 params.database = database;
241 params.type = _OrthancPluginDatabaseAnswerType_DicomTag;
242 params.valueGeneric = tag;
243 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
246 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerAttachment(
249 const OrthancPluginAttachment* attachment)
251 _OrthancPluginDatabaseAnswer params;
252 memset(¶ms, 0,
sizeof(params));
253 params.database = database;
254 params.type = _OrthancPluginDatabaseAnswerType_Attachment;
255 params.valueGeneric = attachment;
256 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
259 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerResource(
265 _OrthancPluginDatabaseAnswer params;
266 memset(¶ms, 0,
sizeof(params));
267 params.database = database;
268 params.type = _OrthancPluginDatabaseAnswerType_Resource;
269 params.valueInt64 = id;
270 params.valueInt32 = (int32_t) resourceType;
271 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
274 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedAttachment(
277 const OrthancPluginAttachment* attachment)
279 _OrthancPluginDatabaseAnswer params;
280 memset(¶ms, 0,
sizeof(params));
281 params.database = database;
282 params.type = _OrthancPluginDatabaseAnswerType_DeletedAttachment;
283 params.valueGeneric = attachment;
284 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
287 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedResource(
290 const char* publicId,
293 _OrthancPluginDatabaseAnswer params;
294 memset(¶ms, 0,
sizeof(params));
295 params.database = database;
296 params.type = _OrthancPluginDatabaseAnswerType_DeletedResource;
297 params.valueString = publicId;
298 params.valueInt32 = (int32_t) resourceType;
299 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
302 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalRemainingAncestor(
305 const char* ancestorId,
308 _OrthancPluginDatabaseAnswer params;
309 memset(¶ms, 0,
sizeof(params));
310 params.database = database;
311 params.type = _OrthancPluginDatabaseAnswerType_RemainingAncestor;
312 params.valueString = ancestorId;
313 params.valueInt32 = (int32_t) ancestorType;
314 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
327 const OrthancPluginAttachment* attachment);
348 const char* publicId,
355 int32_t contentType);
361 int32_t metadataType);
477 int32_t* isProtected,
501 const OrthancPluginChange* change);
506 const OrthancPluginExportedResource* exported);
515 int32_t contentType);
533 const OrthancPluginDicomTag* tag);
567 const char* publicId);
582 int64_t patientIdToAvoid);
594 const OrthancPluginDicomTag* tag);
600 const OrthancPluginDicomTag* tag);
613 int32_t isProtected);
635 } OrthancPluginDatabaseBackend;
659 uint32_t targetVersion,
682 const OrthancPluginDicomTag* tag,
684 } OrthancPluginDatabaseExtensions;
692 const OrthancPluginDatabaseBackend* backend;
694 } _OrthancPluginRegisterDatabaseBackend;
714 const OrthancPluginDatabaseBackend* backend,
718 _OrthancPluginRegisterDatabaseBackend params;
720 if (
sizeof(int32_t) !=
sizeof(_OrthancPluginDatabaseAnswerType))
725 memset(¶ms, 0,
sizeof(params));
726 params.backend = backend;
727 params.result = &result;
728 params.payload = payload;
730 if (context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackend, ¶ms) ||
746 const OrthancPluginDatabaseBackend* backend;
748 const OrthancPluginDatabaseExtensions* extensions;
749 uint32_t extensionsSize;
750 } _OrthancPluginRegisterDatabaseBackendV2;
770 const OrthancPluginDatabaseBackend* backend,
771 const OrthancPluginDatabaseExtensions* extensions,
775 _OrthancPluginRegisterDatabaseBackendV2 params;
777 if (
sizeof(int32_t) !=
sizeof(_OrthancPluginDatabaseAnswerType))
782 memset(¶ms, 0,
sizeof(params));
783 params.backend = backend;
784 params.result = &result;
785 params.payload = payload;
786 params.extensions = extensions;
787 params.extensionsSize =
sizeof(OrthancPluginDatabaseExtensions);
789 if (context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackendV2, ¶ms) ||
struct _OrthancPluginStorageArea_t OrthancPluginStorageArea
Opaque structure that represents the storage area that is actually used by Orthanc.
Definition: OrthancCPlugin.h:805
OrthancPluginDatabaseContext * OrthancPluginRegisterDatabaseBackend(OrthancPluginContext *context, const OrthancPluginDatabaseBackend *backend, void *payload)
Definition: OrthancCDatabasePlugin.h:712
struct _OrthancPluginDatabaseContext_t OrthancPluginDatabaseContext
Definition: OrthancCDatabasePlugin.h:55
OrthancPluginDatabaseContext * OrthancPluginRegisterDatabaseBackendV2(OrthancPluginContext *context, const OrthancPluginDatabaseBackend *backend, const OrthancPluginDatabaseExtensions *extensions, void *payload)
Definition: OrthancCDatabasePlugin.h:768