Hi, is there a way that I can generate worklists and send to Orthanc from an RIS using Java, RESTful web services and JSON
I have an Orthanc instance but cannot get information on how to generate worklist requests to the Orthanc server from RIS.
Thank you,
Charles
Charles,
There is some basic information here:
https://book.orthanc-server.com/plugins/worklists-plugin.html
I also have some github repos that might be helpful, mostly this one:
https://github.com/sscotti/python_script_library
I started out using the text templates as outlines in the orthanc book, but then switched over to using that python script (as a plug-in) because it allows you to use JSON to create an MWL file. I have a more integrated package on Python Plug-ins for that on my dev system that I can share if interested.
If you are using a RIS that uses Java, you would just have to create an API to post the JSON to the Python Plug-in, and then save the MWL on the filesystem in the worklists directory, or use a DB.
This link: https://book.orthanc-server.com/plugins/python.html?highlight=python#handling-worklist-scp-requests-new-in-3-2
has some information about Python Plug-ins in general and about handling worklist requests with a Python Plug-in if you want to customize things further.
If you are looking to actually query the MWL’s from the RIS using an API and not from the modality directly, you can try something like this:
curl -d ‘{“PatientID”:“”,“ScheduledProcedureStepSequence”: [{“Modality”: “MR”}]}’ localhost:8042/modalities/SELF/find-worklist
To use that method you would have to setup your Orthanc server as a Modality in your orthanc.json config. I use SELF as an entry.
“DicomModalities” : {
“SELF” : {
“AET” : “AET”,
“Port” : 4242,
“Host” : “ip”,
“Manufacturer” : “Generic”,
“AllowEcho” : true,
“AllowFind” : true,
“AllowMove” : true,
“AllowStore” : true,
“UseDicomTls” : false
},
findscu from dcmtk is not bad for testing purposes also.
Normally, the modality itself (CT, MR, US) does the query using the DICOM protocol, and the orthanc MWL plug-in will handle that.