36 #include "OrthancCPlugin.h"
46 typedef struct _OrthancPluginDatabaseContext_t OrthancPluginDatabaseContext;
51 _OrthancPluginDatabaseAnswerType_None = 0,
54 _OrthancPluginDatabaseAnswerType_DeletedAttachment = 1,
55 _OrthancPluginDatabaseAnswerType_DeletedResource = 2,
56 _OrthancPluginDatabaseAnswerType_RemainingAncestor = 3,
59 _OrthancPluginDatabaseAnswerType_Attachment = 10,
60 _OrthancPluginDatabaseAnswerType_Change = 11,
61 _OrthancPluginDatabaseAnswerType_DicomTag = 12,
62 _OrthancPluginDatabaseAnswerType_ExportedResource = 13,
63 _OrthancPluginDatabaseAnswerType_Int32 = 14,
64 _OrthancPluginDatabaseAnswerType_Int64 = 15,
65 _OrthancPluginDatabaseAnswerType_Resource = 16,
66 _OrthancPluginDatabaseAnswerType_String = 17
67 } _OrthancPluginDatabaseAnswerType;
74 uint64_t uncompressedSize;
75 const char* uncompressedHash;
76 int32_t compressionType;
77 uint64_t compressedSize;
78 const char* compressedHash;
101 const char* publicId;
102 const char* modality;
104 const char* patientId;
105 const char* studyInstanceUid;
106 const char* seriesInstanceUid;
107 const char* sopInstanceUid;
113 OrthancPluginDatabaseContext* database;
114 _OrthancPluginDatabaseAnswerType type;
116 uint32_t valueUint32;
118 const char *valueString;
119 const void *valueGeneric;
120 } _OrthancPluginDatabaseAnswer;
122 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerString(
124 OrthancPluginDatabaseContext* database,
127 _OrthancPluginDatabaseAnswer params;
128 memset(¶ms, 0,
sizeof(params));
129 params.database = database;
130 params.type = _OrthancPluginDatabaseAnswerType_String;
131 params.valueString = value;
132 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
135 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChange(
137 OrthancPluginDatabaseContext* database,
140 _OrthancPluginDatabaseAnswer params;
141 memset(¶ms, 0,
sizeof(params));
143 params.database = database;
144 params.type = _OrthancPluginDatabaseAnswerType_Change;
145 params.valueUint32 = 0;
146 params.valueGeneric = change;
148 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
151 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChangesDone(
153 OrthancPluginDatabaseContext* database)
155 _OrthancPluginDatabaseAnswer params;
156 memset(¶ms, 0,
sizeof(params));
158 params.database = database;
159 params.type = _OrthancPluginDatabaseAnswerType_Change;
160 params.valueUint32 = 1;
161 params.valueGeneric = NULL;
163 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
166 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt32(
168 OrthancPluginDatabaseContext* database,
171 _OrthancPluginDatabaseAnswer params;
172 memset(¶ms, 0,
sizeof(params));
173 params.database = database;
174 params.type = _OrthancPluginDatabaseAnswerType_Int32;
175 params.valueInt32 = value;
176 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
179 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt64(
181 OrthancPluginDatabaseContext* database,
184 _OrthancPluginDatabaseAnswer params;
185 memset(¶ms, 0,
sizeof(params));
186 params.database = database;
187 params.type = _OrthancPluginDatabaseAnswerType_Int64;
188 params.valueInt64 = value;
189 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
192 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResource(
194 OrthancPluginDatabaseContext* database,
197 _OrthancPluginDatabaseAnswer params;
198 memset(¶ms, 0,
sizeof(params));
200 params.database = database;
201 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
202 params.valueUint32 = 0;
203 params.valueGeneric = exported;
204 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
207 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResourcesDone(
209 OrthancPluginDatabaseContext* database)
211 _OrthancPluginDatabaseAnswer params;
212 memset(¶ms, 0,
sizeof(params));
214 params.database = database;
215 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
216 params.valueUint32 = 1;
217 params.valueGeneric = NULL;
218 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
221 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerDicomTag(
223 OrthancPluginDatabaseContext* database,
226 _OrthancPluginDatabaseAnswer params;
227 memset(¶ms, 0,
sizeof(params));
228 params.database = database;
229 params.type = _OrthancPluginDatabaseAnswerType_DicomTag;
230 params.valueGeneric = tag;
231 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
234 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerAttachment(
236 OrthancPluginDatabaseContext* database,
239 _OrthancPluginDatabaseAnswer params;
240 memset(¶ms, 0,
sizeof(params));
241 params.database = database;
242 params.type = _OrthancPluginDatabaseAnswerType_Attachment;
243 params.valueGeneric = attachment;
244 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
247 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerResource(
249 OrthancPluginDatabaseContext* database,
253 _OrthancPluginDatabaseAnswer params;
254 memset(¶ms, 0,
sizeof(params));
255 params.database = database;
256 params.type = _OrthancPluginDatabaseAnswerType_Resource;
257 params.valueInt64 = id;
258 params.valueInt32 = (int32_t) resourceType;
259 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
262 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedAttachment(
264 OrthancPluginDatabaseContext* database,
267 _OrthancPluginDatabaseAnswer params;
268 memset(¶ms, 0,
sizeof(params));
269 params.database = database;
270 params.type = _OrthancPluginDatabaseAnswerType_DeletedAttachment;
271 params.valueGeneric = attachment;
272 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
275 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedResource(
277 OrthancPluginDatabaseContext* database,
278 const char* publicId,
281 _OrthancPluginDatabaseAnswer params;
282 memset(¶ms, 0,
sizeof(params));
283 params.database = database;
284 params.type = _OrthancPluginDatabaseAnswerType_DeletedResource;
285 params.valueString = publicId;
286 params.valueInt32 = (int32_t) resourceType;
287 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
290 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalRemainingAncestor(
292 OrthancPluginDatabaseContext* database,
293 const char* ancestorId,
296 _OrthancPluginDatabaseAnswer params;
297 memset(¶ms, 0,
sizeof(params));
298 params.database = database;
299 params.type = _OrthancPluginDatabaseAnswerType_RemainingAncestor;
300 params.valueString = ancestorId;
301 params.valueInt32 = (int32_t) ancestorType;
302 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
311 int32_t (*addAttachment) (
317 int32_t (*attachChild) (
323 int32_t (*clearChanges) (
327 int32_t (*clearExportedResources) (
331 int32_t (*createResource) (
336 const char* publicId,
339 int32_t (*deleteAttachment) (
343 int32_t contentType);
345 int32_t (*deleteMetadata) (
349 int32_t metadataType);
351 int32_t (*deleteResource) (
357 int32_t (*getAllPublicIds) (
359 OrthancPluginDatabaseContext* context,
366 int32_t (*getChanges) (
368 OrthancPluginDatabaseContext* context,
375 int32_t (*getChildrenInternalId) (
377 OrthancPluginDatabaseContext* context,
383 int32_t (*getChildrenPublicId) (
385 OrthancPluginDatabaseContext* context,
392 int32_t (*getExportedResources) (
394 OrthancPluginDatabaseContext* context,
401 int32_t (*getLastChange) (
403 OrthancPluginDatabaseContext* context,
408 int32_t (*getLastExportedResource) (
410 OrthancPluginDatabaseContext* context,
415 int32_t (*getMainDicomTags) (
417 OrthancPluginDatabaseContext* context,
423 int32_t (*getPublicId) (
425 OrthancPluginDatabaseContext* context,
430 int32_t (*getResourceCount) (
437 int32_t (*getResourceType) (
444 int32_t (*getTotalCompressedSize) (
450 int32_t (*getTotalUncompressedSize) (
456 int32_t (*isExistingResource) (
463 int32_t (*isProtectedPatient) (
465 int32_t* isProtected,
471 int32_t (*listAvailableMetadata) (
473 OrthancPluginDatabaseContext* context,
479 int32_t (*listAvailableAttachments) (
481 OrthancPluginDatabaseContext* context,
486 int32_t (*logChange) (
491 int32_t (*logExportedResource) (
497 int32_t (*lookupAttachment) (
499 OrthancPluginDatabaseContext* context,
503 int32_t contentType);
506 int32_t (*lookupGlobalProperty) (
508 OrthancPluginDatabaseContext* context,
514 int32_t (*lookupIdentifier) (
516 OrthancPluginDatabaseContext* context,
522 int32_t (*lookupIdentifier2) (
524 OrthancPluginDatabaseContext* context,
530 int32_t (*lookupMetadata) (
532 OrthancPluginDatabaseContext* context,
539 int32_t (*lookupParent) (
541 OrthancPluginDatabaseContext* context,
547 int32_t (*lookupResource) (
549 OrthancPluginDatabaseContext* context,
552 const char* publicId);
555 int32_t (*selectPatientToRecycle) (
557 OrthancPluginDatabaseContext* context,
562 int32_t (*selectPatientToRecycle2) (
564 OrthancPluginDatabaseContext* context,
567 int64_t patientIdToAvoid);
569 int32_t (*setGlobalProperty) (
575 int32_t (*setMainDicomTag) (
581 int32_t (*setIdentifierTag) (
587 int32_t (*setMetadata) (
594 int32_t (*setProtectedPatient) (
598 int32_t isProtected);
600 int32_t (*startTransaction) (
604 int32_t (*rollbackTransaction) (
608 int32_t (*commitTransaction) (
626 OrthancPluginDatabaseContext** result;
629 } _OrthancPluginRegisterDatabaseBackend;
631 ORTHANC_PLUGIN_INLINE OrthancPluginDatabaseContext* OrthancPluginRegisterDatabaseBackend(
636 OrthancPluginDatabaseContext* result = NULL;
638 _OrthancPluginRegisterDatabaseBackend params;
639 memset(¶ms, 0,
sizeof(params));
640 params.backend = backend;
641 params.result = &result;
642 params.payload = payload;
644 if (context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackend, ¶ms) ||
Definition: OrthancCDatabasePlugin.h:88
OrthancPluginResourceType
Definition: OrthancCPlugin.h:383
Definition: OrthancCDatabasePlugin.h:81
struct _OrthancPluginContext_t OrthancPluginContext
Data structure that contains information about the Orthanc core.
Definition: OrthancCDatabasePlugin.h:97
Definition: OrthancCDatabasePlugin.h:309
Definition: OrthancCDatabasePlugin.h:70