41 #include "OrthancCPlugin.h" 62 _OrthancPluginDatabaseAnswerType_None = 0,
65 _OrthancPluginDatabaseAnswerType_DeletedAttachment = 1,
66 _OrthancPluginDatabaseAnswerType_DeletedResource = 2,
67 _OrthancPluginDatabaseAnswerType_RemainingAncestor = 3,
70 _OrthancPluginDatabaseAnswerType_Attachment = 10,
71 _OrthancPluginDatabaseAnswerType_Change = 11,
72 _OrthancPluginDatabaseAnswerType_DicomTag = 12,
73 _OrthancPluginDatabaseAnswerType_ExportedResource = 13,
74 _OrthancPluginDatabaseAnswerType_Int32 = 14,
75 _OrthancPluginDatabaseAnswerType_Int64 = 15,
76 _OrthancPluginDatabaseAnswerType_Resource = 16,
77 _OrthancPluginDatabaseAnswerType_String = 17,
78 _OrthancPluginDatabaseAnswerType_MatchingResource = 18,
80 _OrthancPluginDatabaseAnswerType_INTERNAL = 0x7fffffff
81 } _OrthancPluginDatabaseAnswerType;
88 uint64_t uncompressedSize;
89 const char* uncompressedHash;
90 int32_t compressionType;
91 uint64_t compressedSize;
92 const char* compressedHash;
93 } OrthancPluginAttachment;
100 } OrthancPluginDicomTag;
107 const char* publicId;
109 } OrthancPluginChange;
115 const char* publicId;
116 const char* modality;
118 const char* patientId;
119 const char* studyInstanceUid;
120 const char* seriesInstanceUid;
121 const char* sopInstanceUid;
122 } OrthancPluginExportedResource;
129 uint8_t isIdentifierTag;
130 uint8_t isCaseSensitive;
133 uint32_t valuesCount;
134 const char*
const* values;
135 } OrthancPluginDatabaseConstraint;
139 const char* resourceId;
140 const char* someInstanceId;
141 } OrthancPluginMatchingResource;
146 uint8_t isNewInstance;
150 uint8_t isNewPatient;
156 } OrthancPluginCreateInstanceResult;
164 } OrthancPluginResourcesContentTags;
171 } OrthancPluginResourcesContentMetadata;
177 _OrthancPluginDatabaseAnswerType type;
179 uint32_t valueUint32;
181 const char *valueString;
182 const void *valueGeneric;
183 } _OrthancPluginDatabaseAnswer;
185 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerString(
190 _OrthancPluginDatabaseAnswer params;
191 memset(¶ms, 0,
sizeof(params));
192 params.database = database;
193 params.type = _OrthancPluginDatabaseAnswerType_String;
194 params.valueString = value;
195 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
198 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChange(
201 const OrthancPluginChange* change)
203 _OrthancPluginDatabaseAnswer params;
204 memset(¶ms, 0,
sizeof(params));
206 params.database = database;
207 params.type = _OrthancPluginDatabaseAnswerType_Change;
208 params.valueUint32 = 0;
209 params.valueGeneric = change;
211 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
214 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChangesDone(
218 _OrthancPluginDatabaseAnswer params;
219 memset(¶ms, 0,
sizeof(params));
221 params.database = database;
222 params.type = _OrthancPluginDatabaseAnswerType_Change;
223 params.valueUint32 = 1;
224 params.valueGeneric = NULL;
226 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
229 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt32(
234 _OrthancPluginDatabaseAnswer params;
235 memset(¶ms, 0,
sizeof(params));
236 params.database = database;
237 params.type = _OrthancPluginDatabaseAnswerType_Int32;
238 params.valueInt32 = value;
239 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
242 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt64(
247 _OrthancPluginDatabaseAnswer params;
248 memset(¶ms, 0,
sizeof(params));
249 params.database = database;
250 params.type = _OrthancPluginDatabaseAnswerType_Int64;
251 params.valueInt64 = value;
252 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
255 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResource(
258 const OrthancPluginExportedResource* exported)
260 _OrthancPluginDatabaseAnswer params;
261 memset(¶ms, 0,
sizeof(params));
263 params.database = database;
264 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
265 params.valueUint32 = 0;
266 params.valueGeneric = exported;
267 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
270 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResourcesDone(
274 _OrthancPluginDatabaseAnswer params;
275 memset(¶ms, 0,
sizeof(params));
277 params.database = database;
278 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
279 params.valueUint32 = 1;
280 params.valueGeneric = NULL;
281 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
284 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerDicomTag(
287 const OrthancPluginDicomTag* tag)
289 _OrthancPluginDatabaseAnswer params;
290 memset(¶ms, 0,
sizeof(params));
291 params.database = database;
292 params.type = _OrthancPluginDatabaseAnswerType_DicomTag;
293 params.valueGeneric = tag;
294 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
297 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerAttachment(
300 const OrthancPluginAttachment* attachment)
302 _OrthancPluginDatabaseAnswer params;
303 memset(¶ms, 0,
sizeof(params));
304 params.database = database;
305 params.type = _OrthancPluginDatabaseAnswerType_Attachment;
306 params.valueGeneric = attachment;
307 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
310 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerResource(
316 _OrthancPluginDatabaseAnswer params;
317 memset(¶ms, 0,
sizeof(params));
318 params.database = database;
319 params.type = _OrthancPluginDatabaseAnswerType_Resource;
320 params.valueInt64 = id;
321 params.valueInt32 = (int32_t) resourceType;
322 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
325 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerMatchingResource(
328 const OrthancPluginMatchingResource* match)
330 _OrthancPluginDatabaseAnswer params;
331 memset(¶ms, 0,
sizeof(params));
332 params.database = database;
333 params.type = _OrthancPluginDatabaseAnswerType_MatchingResource;
334 params.valueGeneric = match;
335 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
338 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedAttachment(
341 const OrthancPluginAttachment* attachment)
343 _OrthancPluginDatabaseAnswer params;
344 memset(¶ms, 0,
sizeof(params));
345 params.database = database;
346 params.type = _OrthancPluginDatabaseAnswerType_DeletedAttachment;
347 params.valueGeneric = attachment;
348 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
351 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedResource(
354 const char* publicId,
357 _OrthancPluginDatabaseAnswer params;
358 memset(¶ms, 0,
sizeof(params));
359 params.database = database;
360 params.type = _OrthancPluginDatabaseAnswerType_DeletedResource;
361 params.valueString = publicId;
362 params.valueInt32 = (int32_t) resourceType;
363 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
366 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalRemainingAncestor(
369 const char* ancestorId,
372 _OrthancPluginDatabaseAnswer params;
373 memset(¶ms, 0,
sizeof(params));
374 params.database = database;
375 params.type = _OrthancPluginDatabaseAnswerType_RemainingAncestor;
376 params.valueString = ancestorId;
377 params.valueInt32 = (int32_t) ancestorType;
378 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
391 const OrthancPluginAttachment* attachment);
412 const char* publicId,
419 int32_t contentType);
425 int32_t metadataType);
541 int32_t* isProtected,
565 const OrthancPluginChange* change);
570 const OrthancPluginExportedResource* exported);
579 int32_t contentType);
597 const OrthancPluginDicomTag* tag);
631 const char* publicId);
646 int64_t patientIdToAvoid);
658 const OrthancPluginDicomTag* tag);
664 const OrthancPluginDicomTag* tag);
677 int32_t isProtected);
699 } OrthancPluginDatabaseBackend;
727 uint32_t targetVersion,
750 const OrthancPluginDicomTag* tag,
781 uint32_t constraintsCount,
782 const OrthancPluginDatabaseConstraint* constraints,
785 uint8_t requestSomeInstance);
790 OrthancPluginCreateInstanceResult* output,
793 const char* hashPatient,
794 const char* hashStudy,
795 const char* hashSeries,
796 const char* hashInstance);
801 uint32_t countIdentifierTags,
802 const OrthancPluginResourcesContentTags* identifierTags,
803 uint32_t countMainDicomTags,
804 const OrthancPluginResourcesContentTags* mainDicomTags,
805 uint32_t countMetadata,
806 const OrthancPluginResourcesContentMetadata* metadata);
828 } OrthancPluginDatabaseExtensions;
836 const OrthancPluginDatabaseBackend* backend;
838 } _OrthancPluginRegisterDatabaseBackend;
853 const OrthancPluginDatabaseBackend* backend,
857 _OrthancPluginRegisterDatabaseBackend params;
859 if (
sizeof(int32_t) !=
sizeof(_OrthancPluginDatabaseAnswerType))
864 memset(¶ms, 0,
sizeof(params));
865 params.backend = backend;
866 params.result = &result;
867 params.payload = payload;
869 if (context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackend, ¶ms) ||
885 const OrthancPluginDatabaseBackend* backend;
887 const OrthancPluginDatabaseExtensions* extensions;
888 uint32_t extensionsSize;
889 } _OrthancPluginRegisterDatabaseBackendV2;
904 const OrthancPluginDatabaseBackend* backend,
905 const OrthancPluginDatabaseExtensions* extensions,
909 _OrthancPluginRegisterDatabaseBackendV2 params;
911 if (
sizeof(int32_t) !=
sizeof(_OrthancPluginDatabaseAnswerType))
916 memset(¶ms, 0,
sizeof(params));
917 params.backend = backend;
918 params.result = &result;
919 params.payload = payload;
920 params.extensions = extensions;
921 params.extensionsSize =
sizeof(OrthancPluginDatabaseExtensions);
923 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:944
OrthancPluginDatabaseContext * OrthancPluginRegisterDatabaseBackend(OrthancPluginContext *context, const OrthancPluginDatabaseBackend *backend, void *payload)
Definition: OrthancCDatabasePlugin.h:851
struct _OrthancPluginDatabaseContext_t OrthancPluginDatabaseContext
Definition: OrthancCDatabasePlugin.h:56
OrthancPluginDatabaseContext * OrthancPluginRegisterDatabaseBackendV2(OrthancPluginContext *context, const OrthancPluginDatabaseBackend *backend, const OrthancPluginDatabaseExtensions *extensions, void *payload)
Definition: OrthancCDatabasePlugin.h:902