Mercurial > hg > orthanc
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);