diff Plugins/Samples/Basic/Plugin.c @ 1066:bb82e5e818e9

OnStoredInstance callback in plugins
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 25 Jul 2014 18:39:02 +0200
parents 6d90e2bcab60
children ace99e272203
line wrap: on
line diff
--- a/Plugins/Samples/Basic/Plugin.c	Fri Jul 25 16:59:33 2014 +0200
+++ b/Plugins/Samples/Basic/Plugin.c	Fri Jul 25 18:39:02 2014 +0200
@@ -165,6 +165,33 @@
 }
 
 
+ORTHANC_PLUGINS_API int32_t OnStoredCallback(OrthancPluginDicomInstance* instance,
+                                             const char* instanceId)
+{
+  char buffer[256];
+  FILE* fp;
+  char* json;
+
+  sprintf(buffer, "Just received a DICOM instance of size %d and ID %s from AET %s", 
+          (int) OrthancPluginGetInstanceSize(context, instance), instanceId, 
+          OrthancPluginGetInstanceRemoteAet(context, instance));
+
+  OrthancPluginLogWarning(context, buffer);  
+
+  fp = fopen("PluginReceivedInstance.dcm", "wb");
+  fwrite(OrthancPluginGetInstanceData(context, instance),
+         OrthancPluginGetInstanceSize(context, instance), 1, fp);
+  fclose(fp);
+
+  json = OrthancPluginGetInstanceSimplifiedJson(context, instance);
+  printf("[%s]\n", json);
+  OrthancPluginFreeString(context, json);
+
+  return 0;
+}
+
+
+
 ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* c)
 {
   const char* pathLocator = "\"Path\" : \"";
@@ -193,8 +220,9 @@
   OrthancPluginRegisterRestCallback(context, "/(plu.*)/hello", Callback1);
   OrthancPluginRegisterRestCallback(context, "/plu.*/image", Callback2);
   OrthancPluginRegisterRestCallback(context, "/plugin/instances/([^/]+)/info", Callback3);
+  OrthancPluginRegisterRestCallback(context, "/instances/([^/]+)/preview", Callback4);
 
-  OrthancPluginRegisterRestCallback(context, "/instances/([^/]+)/preview", Callback4);
+  OrthancPluginRegisterOnStoredInstanceCallback(context, OnStoredCallback);
 
   /* Make REST requests to the built-in Orthanc API */
   OrthancPluginRestApiGet(context, &tmp, "/changes");