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