diff 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
line wrap: on
line diff
--- a/Plugins/Samples/Basic/Plugin.c	Thu Sep 25 17:02:28 2014 +0200
+++ b/Plugins/Samples/Basic/Plugin.c	Thu Sep 25 17:50:06 2014 +0200
@@ -215,6 +215,7 @@
   char buffer[256];
   FILE* fp;
   char* json;
+  static int first = 1;
 
   sprintf(buffer, "Just received a DICOM instance of size %d and ID %s from AET %s", 
           (int) OrthancPluginGetInstanceSize(context, instance), instanceId, 
@@ -228,7 +229,12 @@
   fclose(fp);
 
   json = OrthancPluginGetInstanceSimplifiedJson(context, instance);
-  printf("[%s]\n", json);
+  if (first)
+  {
+    /* Only print the first DICOM instance */
+    printf("[%s]\n", json);
+    first = 0;
+  }
   OrthancPluginFreeString(context, json);
 
   if (OrthancPluginHasInstanceMetadata(context, instance, "ReceptionDate"))
@@ -244,6 +250,16 @@
 }
 
 
+ORTHANC_PLUGINS_API int32_t OnChangeCallback(OrthancPluginChangeType changeType,
+                                             OrthancPluginResourceType resourceType,
+                                             const char* resourceId)
+{
+  char info[1024];
+  sprintf(info, "Change %d on resource %s of type %d", changeType, resourceId, resourceType);
+  OrthancPluginLogWarning(context, info);
+  return 0;
+}
+
 
 ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* c)
 {
@@ -293,6 +309,8 @@
 
   OrthancPluginRegisterOnStoredInstanceCallback(context, OnStoredCallback);
 
+  OrthancPluginRegisterOnChangeCallback(context, OnChangeCallback);
+
   /* Make REST requests to the built-in Orthanc API */
   OrthancPluginRestApiGet(context, &tmp, "/changes");
   OrthancPluginFreeMemoryBuffer(context, &tmp);