Intercept C-Find with callback in python


I was wondering if there was a way to intercept a DICOM C-Find with the newly released python bindings?

It seems that the only callbacks that can be registered are ‘RegisterOnChangeCallback’ and ‘RegisterOnStoredInstanceCallback’.

While there is a class “FindQuery” available i am unsure on how to use that one.

My planned workaround is to use LUA to register a callback (“IncomingFindRequestFilter”) and to call a local REST endpoint to further process / modify the request.

Background: My project aims to use Orthanc peering to setup a cloud based PACS, where a small orthanc instance is inside a physicians office (doing all the DICOM work)

and the main storage area being in a cloud. Since the orthanc instance in the office probably won’t have the storage required to store all images and therefore answer C-FIND requests

sufficiently, id like to intercept those requests, then ask the cloud instance for a complete answer via HTTPS and serve the full answer back to the C-FIND SCU.


I confirm that, currently, the Python bindings cover about 75% of the Orthanc plugin SDK, which does not include the “OrthancPluginRegisterFindCallback()”:

I have added a “TODO” file to keep track of your wish:

I can’t tell you when I’ll have time to work on this.

As you are a commercial company, you might be interested in getting in touch with Osimis if you need to speed up this development.