comparison Plugins/Samples/Basic/Plugin.c @ 1191:d49505e377e3 db-changes

demo of OnChangeCallback in plugins
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 25 Sep 2014 17:50:06 +0200
parents 0479d02c6778
children a843ee8bb903
comparison
equal deleted inserted replaced
1189:6b9b02a16e99 1191:d49505e377e3
213 const char* instanceId) 213 const char* instanceId)
214 { 214 {
215 char buffer[256]; 215 char buffer[256];
216 FILE* fp; 216 FILE* fp;
217 char* json; 217 char* json;
218 static int first = 1;
218 219
219 sprintf(buffer, "Just received a DICOM instance of size %d and ID %s from AET %s", 220 sprintf(buffer, "Just received a DICOM instance of size %d and ID %s from AET %s",
220 (int) OrthancPluginGetInstanceSize(context, instance), instanceId, 221 (int) OrthancPluginGetInstanceSize(context, instance), instanceId,
221 OrthancPluginGetInstanceRemoteAet(context, instance)); 222 OrthancPluginGetInstanceRemoteAet(context, instance));
222 223
226 fwrite(OrthancPluginGetInstanceData(context, instance), 227 fwrite(OrthancPluginGetInstanceData(context, instance),
227 OrthancPluginGetInstanceSize(context, instance), 1, fp); 228 OrthancPluginGetInstanceSize(context, instance), 1, fp);
228 fclose(fp); 229 fclose(fp);
229 230
230 json = OrthancPluginGetInstanceSimplifiedJson(context, instance); 231 json = OrthancPluginGetInstanceSimplifiedJson(context, instance);
231 printf("[%s]\n", json); 232 if (first)
233 {
234 /* Only print the first DICOM instance */
235 printf("[%s]\n", json);
236 first = 0;
237 }
232 OrthancPluginFreeString(context, json); 238 OrthancPluginFreeString(context, json);
233 239
234 if (OrthancPluginHasInstanceMetadata(context, instance, "ReceptionDate")) 240 if (OrthancPluginHasInstanceMetadata(context, instance, "ReceptionDate"))
235 { 241 {
236 printf("Received on [%s]\n", OrthancPluginGetInstanceMetadata(context, instance, "ReceptionDate")); 242 printf("Received on [%s]\n", OrthancPluginGetInstanceMetadata(context, instance, "ReceptionDate"));
241 } 247 }
242 248
243 return 0; 249 return 0;
244 } 250 }
245 251
252
253 ORTHANC_PLUGINS_API int32_t OnChangeCallback(OrthancPluginChangeType changeType,
254 OrthancPluginResourceType resourceType,
255 const char* resourceId)
256 {
257 char info[1024];
258 sprintf(info, "Change %d on resource %s of type %d", changeType, resourceId, resourceType);
259 OrthancPluginLogWarning(context, info);
260 return 0;
261 }
246 262
247 263
248 ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* c) 264 ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* c)
249 { 265 {
250 OrthancPluginMemoryBuffer tmp; 266 OrthancPluginMemoryBuffer tmp;
290 OrthancPluginRegisterRestCallback(context, "/plugin/instances/([^/]+)/info", Callback3); 306 OrthancPluginRegisterRestCallback(context, "/plugin/instances/([^/]+)/info", Callback3);
291 OrthancPluginRegisterRestCallback(context, "/instances/([^/]+)/preview", Callback4); 307 OrthancPluginRegisterRestCallback(context, "/instances/([^/]+)/preview", Callback4);
292 OrthancPluginRegisterRestCallback(context, "/plugin/create", CallbackCreateDicom); 308 OrthancPluginRegisterRestCallback(context, "/plugin/create", CallbackCreateDicom);
293 309
294 OrthancPluginRegisterOnStoredInstanceCallback(context, OnStoredCallback); 310 OrthancPluginRegisterOnStoredInstanceCallback(context, OnStoredCallback);
311
312 OrthancPluginRegisterOnChangeCallback(context, OnChangeCallback);
295 313
296 /* Make REST requests to the built-in Orthanc API */ 314 /* Make REST requests to the built-in Orthanc API */
297 OrthancPluginRestApiGet(context, &tmp, "/changes"); 315 OrthancPluginRestApiGet(context, &tmp, "/changes");
298 OrthancPluginFreeMemoryBuffer(context, &tmp); 316 OrthancPluginFreeMemoryBuffer(context, &tmp);
299 OrthancPluginRestApiGet(context, &tmp, "/changes?limit=1"); 317 OrthancPluginRestApiGet(context, &tmp, "/changes?limit=1");