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,
79 _OrthancPluginDatabaseAnswerType_INTERNAL = 0x7fffffff
80 } _OrthancPluginDatabaseAnswerType;
87 uint64_t uncompressedSize;
88 const char* uncompressedHash;
89 int32_t compressionType;
90 uint64_t compressedSize;
91 const char* compressedHash;
92 } OrthancPluginAttachment;
99 } OrthancPluginDicomTag;
106 const char* publicId;
108 } OrthancPluginChange;
114 const char* publicId;
115 const char* modality;
117 const char* patientId;
118 const char* studyInstanceUid;
119 const char* seriesInstanceUid;
120 const char* sopInstanceUid;
121 } OrthancPluginExportedResource;
127 _OrthancPluginDatabaseAnswerType type;
129 uint32_t valueUint32;
131 const char *valueString;
132 const void *valueGeneric;
133 } _OrthancPluginDatabaseAnswer;
135 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerString(
140 _OrthancPluginDatabaseAnswer params;
141 memset(¶ms, 0,
sizeof(params));
142 params.database = database;
143 params.type = _OrthancPluginDatabaseAnswerType_String;
144 params.valueString = value;
145 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
148 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChange(
151 const OrthancPluginChange* change)
153 _OrthancPluginDatabaseAnswer params;
154 memset(¶ms, 0,
sizeof(params));
156 params.database = database;
157 params.type = _OrthancPluginDatabaseAnswerType_Change;
158 params.valueUint32 = 0;
159 params.valueGeneric = change;
161 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
164 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerChangesDone(
168 _OrthancPluginDatabaseAnswer params;
169 memset(¶ms, 0,
sizeof(params));
171 params.database = database;
172 params.type = _OrthancPluginDatabaseAnswerType_Change;
173 params.valueUint32 = 1;
174 params.valueGeneric = NULL;
176 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
179 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt32(
184 _OrthancPluginDatabaseAnswer params;
185 memset(¶ms, 0,
sizeof(params));
186 params.database = database;
187 params.type = _OrthancPluginDatabaseAnswerType_Int32;
188 params.valueInt32 = value;
189 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
192 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerInt64(
197 _OrthancPluginDatabaseAnswer params;
198 memset(¶ms, 0,
sizeof(params));
199 params.database = database;
200 params.type = _OrthancPluginDatabaseAnswerType_Int64;
201 params.valueInt64 = value;
202 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
205 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResource(
208 const OrthancPluginExportedResource* exported)
210 _OrthancPluginDatabaseAnswer params;
211 memset(¶ms, 0,
sizeof(params));
213 params.database = database;
214 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
215 params.valueUint32 = 0;
216 params.valueGeneric = exported;
217 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
220 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerExportedResourcesDone(
224 _OrthancPluginDatabaseAnswer params;
225 memset(¶ms, 0,
sizeof(params));
227 params.database = database;
228 params.type = _OrthancPluginDatabaseAnswerType_ExportedResource;
229 params.valueUint32 = 1;
230 params.valueGeneric = NULL;
231 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
234 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerDicomTag(
237 const OrthancPluginDicomTag* tag)
239 _OrthancPluginDatabaseAnswer params;
240 memset(¶ms, 0,
sizeof(params));
241 params.database = database;
242 params.type = _OrthancPluginDatabaseAnswerType_DicomTag;
243 params.valueGeneric = tag;
244 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
247 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerAttachment(
250 const OrthancPluginAttachment* attachment)
252 _OrthancPluginDatabaseAnswer params;
253 memset(¶ms, 0,
sizeof(params));
254 params.database = database;
255 params.type = _OrthancPluginDatabaseAnswerType_Attachment;
256 params.valueGeneric = attachment;
257 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
260 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseAnswerResource(
266 _OrthancPluginDatabaseAnswer params;
267 memset(¶ms, 0,
sizeof(params));
268 params.database = database;
269 params.type = _OrthancPluginDatabaseAnswerType_Resource;
270 params.valueInt64 = id;
271 params.valueInt32 = (int32_t) resourceType;
272 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
275 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedAttachment(
278 const OrthancPluginAttachment* attachment)
280 _OrthancPluginDatabaseAnswer params;
281 memset(¶ms, 0,
sizeof(params));
282 params.database = database;
283 params.type = _OrthancPluginDatabaseAnswerType_DeletedAttachment;
284 params.valueGeneric = attachment;
285 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
288 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalDeletedResource(
291 const char* publicId,
294 _OrthancPluginDatabaseAnswer params;
295 memset(¶ms, 0,
sizeof(params));
296 params.database = database;
297 params.type = _OrthancPluginDatabaseAnswerType_DeletedResource;
298 params.valueString = publicId;
299 params.valueInt32 = (int32_t) resourceType;
300 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
303 ORTHANC_PLUGIN_INLINE
void OrthancPluginDatabaseSignalRemainingAncestor(
306 const char* ancestorId,
309 _OrthancPluginDatabaseAnswer params;
310 memset(¶ms, 0,
sizeof(params));
311 params.database = database;
312 params.type = _OrthancPluginDatabaseAnswerType_RemainingAncestor;
313 params.valueString = ancestorId;
314 params.valueInt32 = (int32_t) ancestorType;
315 context->InvokeService(context, _OrthancPluginService_DatabaseAnswer, ¶ms);
328 const OrthancPluginAttachment* attachment);
349 const char* publicId,
356 int32_t contentType);
362 int32_t metadataType);
478 int32_t* isProtected,
502 const OrthancPluginChange* change);
507 const OrthancPluginExportedResource* exported);
516 int32_t contentType);
534 const OrthancPluginDicomTag* tag);
568 const char* publicId);
583 int64_t patientIdToAvoid);
595 const OrthancPluginDicomTag* tag);
601 const OrthancPluginDicomTag* tag);
614 int32_t isProtected);
636 } OrthancPluginDatabaseBackend;
660 uint32_t targetVersion,
683 const OrthancPluginDicomTag* tag,
697 } OrthancPluginDatabaseExtensions;
705 const OrthancPluginDatabaseBackend* backend;
707 } _OrthancPluginRegisterDatabaseBackend;
722 const OrthancPluginDatabaseBackend* backend,
726 _OrthancPluginRegisterDatabaseBackend params;
728 if (
sizeof(int32_t) !=
sizeof(_OrthancPluginDatabaseAnswerType))
733 memset(¶ms, 0,
sizeof(params));
734 params.backend = backend;
735 params.result = &result;
736 params.payload = payload;
738 if (context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackend, ¶ms) ||
754 const OrthancPluginDatabaseBackend* backend;
756 const OrthancPluginDatabaseExtensions* extensions;
757 uint32_t extensionsSize;
758 } _OrthancPluginRegisterDatabaseBackendV2;
773 const OrthancPluginDatabaseBackend* backend,
774 const OrthancPluginDatabaseExtensions* extensions,
778 _OrthancPluginRegisterDatabaseBackendV2 params;
780 if (
sizeof(int32_t) !=
sizeof(_OrthancPluginDatabaseAnswerType))
785 memset(¶ms, 0,
sizeof(params));
786 params.backend = backend;
787 params.result = &result;
788 params.payload = payload;
789 params.extensions = extensions;
790 params.extensionsSize =
sizeof(OrthancPluginDatabaseExtensions);
792 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:881
OrthancPluginDatabaseContext * OrthancPluginRegisterDatabaseBackend(OrthancPluginContext *context, const OrthancPluginDatabaseBackend *backend, void *payload)
Definition: OrthancCDatabasePlugin.h:720
struct _OrthancPluginDatabaseContext_t OrthancPluginDatabaseContext
Definition: OrthancCDatabasePlugin.h:56
OrthancPluginDatabaseContext * OrthancPluginRegisterDatabaseBackendV2(OrthancPluginContext *context, const OrthancPluginDatabaseBackend *backend, const OrthancPluginDatabaseExtensions *extensions, void *payload)
Definition: OrthancCDatabasePlugin.h:771