comparison 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
comparison
equal deleted inserted replaced
1065:921532f67770 1066:bb82e5e818e9
163 163
164 return 0; 164 return 0;
165 } 165 }
166 166
167 167
168 ORTHANC_PLUGINS_API int32_t OnStoredCallback(OrthancPluginDicomInstance* instance,
169 const char* instanceId)
170 {
171 char buffer[256];
172 FILE* fp;
173 char* json;
174
175 sprintf(buffer, "Just received a DICOM instance of size %d and ID %s from AET %s",
176 (int) OrthancPluginGetInstanceSize(context, instance), instanceId,
177 OrthancPluginGetInstanceRemoteAet(context, instance));
178
179 OrthancPluginLogWarning(context, buffer);
180
181 fp = fopen("PluginReceivedInstance.dcm", "wb");
182 fwrite(OrthancPluginGetInstanceData(context, instance),
183 OrthancPluginGetInstanceSize(context, instance), 1, fp);
184 fclose(fp);
185
186 json = OrthancPluginGetInstanceSimplifiedJson(context, instance);
187 printf("[%s]\n", json);
188 OrthancPluginFreeString(context, json);
189
190 return 0;
191 }
192
193
194
168 ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* c) 195 ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* c)
169 { 196 {
170 const char* pathLocator = "\"Path\" : \""; 197 const char* pathLocator = "\"Path\" : \"";
171 OrthancPluginMemoryBuffer tmp; 198 OrthancPluginMemoryBuffer tmp;
172 char info[1024]; 199 char info[1024];
191 OrthancPluginLogInfo(context, info); 218 OrthancPluginLogInfo(context, info);
192 219
193 OrthancPluginRegisterRestCallback(context, "/(plu.*)/hello", Callback1); 220 OrthancPluginRegisterRestCallback(context, "/(plu.*)/hello", Callback1);
194 OrthancPluginRegisterRestCallback(context, "/plu.*/image", Callback2); 221 OrthancPluginRegisterRestCallback(context, "/plu.*/image", Callback2);
195 OrthancPluginRegisterRestCallback(context, "/plugin/instances/([^/]+)/info", Callback3); 222 OrthancPluginRegisterRestCallback(context, "/plugin/instances/([^/]+)/info", Callback3);
196
197 OrthancPluginRegisterRestCallback(context, "/instances/([^/]+)/preview", Callback4); 223 OrthancPluginRegisterRestCallback(context, "/instances/([^/]+)/preview", Callback4);
224
225 OrthancPluginRegisterOnStoredInstanceCallback(context, OnStoredCallback);
198 226
199 /* Make REST requests to the built-in Orthanc API */ 227 /* Make REST requests to the built-in Orthanc API */
200 OrthancPluginRestApiGet(context, &tmp, "/changes"); 228 OrthancPluginRestApiGet(context, &tmp, "/changes");
201 OrthancPluginFreeMemoryBuffer(context, &tmp); 229 OrthancPluginFreeMemoryBuffer(context, &tmp);
202 OrthancPluginRestApiGet(context, &tmp, "/changes?limit=1"); 230 OrthancPluginRestApiGet(context, &tmp, "/changes?limit=1");