Anyone with experience using the Orthanc MWL Plug-in and relationship to the number of files in the MWL folder vs. query time ?

Been using the MWL and Orthanc Plug-in for about 1 month now with not that many files in the active MWL folder at a given time. Just wondering if anyone has experience with they query time and timeouts when a larger number of files are in the MWL file ?

I know you can somewhat narrow and limit the query by using these:

“FilterIssuerAet”: false, // Some modalities do not specify ‘ScheduledStationAETitle (0040,0001)’ // in the C-Find and may receive worklists not related to them. This option // adds an extra filtering based on the AET of the modality issuing the C-Find.

“LimitAnswers”: 0 // Maximum number of answers to be returned (new in release 1.7.3)

However, if you just keep them active without deleting them or archiving them, eventually you’ll have thousands of files in the folder and likely longer query times. Seems reasonable to keep them around for a bit, even after the study is “complete” because patients might be recalled, or you’ll otherwise want to have the file handy for a QA or QC problem. Via the RIS, you could also recreate it if necessary.

Just wondering if there some existing experience about what at what number it could potentially start to be a problem.

Thank you.

Hello,

As indicated in the Orthanc Book, the default modality worklist plugin is just a sample:
https://book.orthanc-server.com/plugins/worklists-plugin.html

On each C-FIND request, this plugin will read all the content of the “Database” folder in the “Worklists” section of the configuration file. Depending on the number of files and on the performance of your disk, this operation might take time.

If this is a problem for you, you could try and serve your worklists from a SSD drive (instead of a HDD, which should greatly improve the throughput). You could also develop a more efficient version of the plugin, e.g. using Python:
https://book.orthanc-server.com/plugins/python.html#handling-worklist-scp-requests-new-in-3-2

This Python plugin could load all the worklists into RAM during the startup, and monitor the changes to the worklists using e.g. the “watchdog” module:

http://thepythoncorner.com/dev/how-to-create-a-watchdog-in-python-to-look-for-filesystem-changes/

Finally, instead of scanning a folder for worklists, you could consider creating a plugin that uses HL7 messages or REST calls to update the worklist databases:
https://book.orthanc-server.com/contributing.html

Sébastien-