40 #include "OrthancCPlugin.h"
55 _OrthancPluginDatabaseAnswerType_None = 0,
58 _OrthancPluginDatabaseAnswerType_DeletedAttachment = 1,
59 _OrthancPluginDatabaseAnswerType_DeletedResource = 2,
60 _OrthancPluginDatabaseAnswerType_RemainingAncestor = 3,
63 _OrthancPluginDatabaseAnswerType_Attachment = 10,
64 _OrthancPluginDatabaseAnswerType_Change = 11,
65 _OrthancPluginDatabaseAnswerType_DicomTag = 12,
66 _OrthancPluginDatabaseAnswerType_ExportedResource = 13,
67 _OrthancPluginDatabaseAnswerType_Int32 = 14,
68 _OrthancPluginDatabaseAnswerType_Int64 = 15,
69 _OrthancPluginDatabaseAnswerType_Resource = 16,
70 _OrthancPluginDatabaseAnswerType_String = 17
71 } _OrthancPluginDatabaseAnswerType;
78 uint64_t uncompressedSize;
79 const char* uncompressedHash;
80 int32_t compressionType;
81 uint64_t compressedSize;
82 const char* compressedHash;
105 const char* publicId;
106 const char* modality;
108 const char* patientId;
109 const char* studyInstanceUid;
110 const char* seriesInstanceUid;
111 const char* sopInstanceUid;
118 _OrthancPluginDatabaseAnswerType type;
120 uint32_t valueUint32;
122 const char *valueString;
123 const void *valueGeneric;
124 } _OrthancPluginDatabaseAnswer;
126 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerString(
131 _OrthancPluginDatabaseAnswer params;
132 memset(¶ms, 0,
sizeof(params));
133 params.database = database;
134 params.type = _OrthancPluginDatabaseAnswerType_String;
135 params.valueString = value;
136 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
139 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChange(
144 _OrthancPluginDatabaseAnswer params;
145 memset(¶ms, 0,
sizeof(params));
147 params.database = database;
148 params.type = _OrthancPluginDatabaseAnswerType_Change;
149 params.valueUint32 = 0;
150 params.valueGeneric = change;
152 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
155 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChangesDone(
159 _OrthancPluginDatabaseAnswer params;
160 memset(¶ms, 0,
sizeof(params));
162 params.database = database;
163 params.type = _OrthancPluginDatabaseAnswerType_Change;
164 params.valueUint32 = 1;
165 params.valueGeneric = NULL;
167 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
170 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt32(
175 _OrthancPluginDatabaseAnswer params;
176 memset(¶ms, 0,
sizeof(params));
177 params.database = database;
178 params.type = _OrthancPluginDatabaseAnswerType_Int32;
179 params.valueInt32 = value;
180 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
183 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt64(
188 _OrthancPluginDatabaseAnswer params;
189 memset(¶ms, 0,
sizeof(params));
190 params.database = database;
191 params.type = _OrthancPluginDatabaseAnswerType_Int64;
192 params.valueInt64 = value;
193 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
196 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResource(
201 _OrthancPluginDatabaseAnswer params;
202 memset(¶ms, 0,
sizeof(params));
204 params.database = database;
205 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
206 params.valueUint32 = 0;
207 params.valueGeneric = exported;
208 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
211 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResourcesDone(
215 _OrthancPluginDatabaseAnswer params;
216 memset(¶ms, 0,
sizeof(params));
218 params.database = database;
219 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
220 params.valueUint32 = 1;
221 params.valueGeneric = NULL;
222 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
225 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerDicomTag(
230 _OrthancPluginDatabaseAnswer params;
231 memset(¶ms, 0,
sizeof(params));
232 params.database = database;
233 params.type = _OrthancPluginDatabaseAnswerType_DicomTag;
234 params.valueGeneric = tag;
235 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
238 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerAttachment(
243 _OrthancPluginDatabaseAnswer params;
244 memset(¶ms, 0,
sizeof(params));
245 params.database = database;
246 params.type = _OrthancPluginDatabaseAnswerType_Attachment;
247 params.valueGeneric = attachment;
248 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
251 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerResource(
257 _OrthancPluginDatabaseAnswer params;
258 memset(¶ms, 0,
sizeof(params));
259 params.database = database;
260 params.type = _OrthancPluginDatabaseAnswerType_Resource;
261 params.valueInt64 = id;
262 params.valueInt32 = (int32_t) resourceType;
263 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
266 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedAttachment(
271 _OrthancPluginDatabaseAnswer params;
272 memset(¶ms, 0,
sizeof(params));
273 params.database = database;
274 params.type = _OrthancPluginDatabaseAnswerType_DeletedAttachment;
275 params.valueGeneric = attachment;
276 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
279 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedResource(
282 const char* publicId,
285 _OrthancPluginDatabaseAnswer params;
286 memset(¶ms, 0,
sizeof(params));
287 params.database = database;
288 params.type = _OrthancPluginDatabaseAnswerType_DeletedResource;
289 params.valueString = publicId;
290 params.valueInt32 = (int32_t) resourceType;
291 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
294 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalRemainingAncestor(
297 const char* ancestorId,
300 _OrthancPluginDatabaseAnswer params;
301 memset(¶ms, 0,
sizeof(params));
302 params.database = database;
303 params.type = _OrthancPluginDatabaseAnswerType_RemainingAncestor;
304 params.valueString = ancestorId;
305 params.valueInt32 = (int32_t) ancestorType;
306 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
315 int32_t (*addAttachment) (
321 int32_t (*attachChild) (
327 int32_t (*clearChanges) (
331 int32_t (*clearExportedResources) (
335 int32_t (*createResource) (
340 const char* publicId,
343 int32_t (*deleteAttachment) (
347 int32_t contentType);
349 int32_t (*deleteMetadata) (
353 int32_t metadataType);
355 int32_t (*deleteResource) (
361 int32_t (*getAllPublicIds) (
370 int32_t (*getChanges) (
379 int32_t (*getChildrenInternalId) (
387 int32_t (*getChildrenPublicId) (
396 int32_t (*getExportedResources) (
405 int32_t (*getLastChange) (
412 int32_t (*getLastExportedResource) (
419 int32_t (*getMainDicomTags) (
427 int32_t (*getPublicId) (
434 int32_t (*getResourceCount) (
441 int32_t (*getResourceType) (
448 int32_t (*getTotalCompressedSize) (
454 int32_t (*getTotalUncompressedSize) (
460 int32_t (*isExistingResource) (
467 int32_t (*isProtectedPatient) (
469 int32_t* isProtected,
475 int32_t (*listAvailableMetadata) (
483 int32_t (*listAvailableAttachments) (
490 int32_t (*logChange) (
495 int32_t (*logExportedResource) (
501 int32_t (*lookupAttachment) (
507 int32_t contentType);
510 int32_t (*lookupGlobalProperty) (
518 int32_t (*lookupIdentifier) (
526 int32_t (*lookupIdentifier2) (
534 int32_t (*lookupMetadata) (
543 int32_t (*lookupParent) (
551 int32_t (*lookupResource) (
556 const char* publicId);
559 int32_t (*selectPatientToRecycle) (
566 int32_t (*selectPatientToRecycle2) (
571 int64_t patientIdToAvoid);
573 int32_t (*setGlobalProperty) (
579 int32_t (*setMainDicomTag) (
585 int32_t (*setIdentifierTag) (
591 int32_t (*setMetadata) (
598 int32_t (*setProtectedPatient) (
602 int32_t isProtected);
604 int32_t (*startTransaction) (
608 int32_t (*rollbackTransaction) (
612 int32_t (*commitTransaction) (
633 } _OrthancPluginRegisterDatabaseBackend;
642 _OrthancPluginRegisterDatabaseBackend params;
643 memset(¶ms, 0,
sizeof(params));
644 params.backend = backend;
645 params.result = &result;
646 params.payload = payload;
648 if (context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackend, ¶ms) ||
Definition: OrthancCDatabasePlugin.h:92
OrthancPluginResourceType
Definition: OrthancCPlugin.h:384
Definition: OrthancCDatabasePlugin.h:85
struct _OrthancPluginContext_t OrthancPluginContext
Data structure that contains information about the Orthanc core.
Definition: OrthancCDatabasePlugin.h:101
Definition: OrthancCDatabasePlugin.h:313
Definition: OrthancCDatabasePlugin.h:74
struct _OrthancPluginDatabaseContext_t OrthancPluginDatabaseContext
Definition: OrthancCDatabasePlugin.h:50