Contribution - Orthanc Tools in Java

Hi all,

I wanted to announce here a contribution based on Orthanc.

We made a JAVA software which merge most of the powerfull APIs of Orthanc to allow several features as DICOM management (import local DICOM, Query, Retrieve, Send, Deletion of DICOMs…) as well as more innovative features.

All of this is now available in a user friendly standalone tool, written in Java which can be used in any computer (see screen capture in attachement).

The main features are :

  • DICOM Anonymization and sharing
  • DICOM Export to local system (ZIP) or Remote AET
  • Query / Retrieve (with auto batch query of a wanted dataset of patient with a schedule feature)
  • Orthanc deletion of Patients / Studies / Series (single or by batch)
  • DICOM tag edition of Patients / Studies / Series
  • DICOM Batch import of local DICOM with recursive scan

The software became a little bit too much featured to make a full detailled description.

You will be able to find further documentation in the attached manual.
The software has been made as much user friendly as possible to allow you explore feature without reading too much documentation.

All this software is open source with GPL version 3 licence.
Full sources are available on GitHub : https://github.com/salimkanoun/Orthanc_Tools
Executable jar is available in this direct link : https://github.com/salimkanoun/Orthanc_Tools/releases/download/0.2/Orthanc_Tool.jar
(Go to setup tab of the software to set your Orthanc server adress)

I’m awaiting for Orthanc community for bugs identification and feature request to build together new innovative features based on the powerfull APIs or Orthanc.

Best regards,

Salim Kanoun from http://petctviewer.org

Export Tool box.png

Orthanc Edition.png

Orthanc Tool.png

Query.png

Orthanc Tools.pdf (791 KB)

Wow. Salim this looks fantastic. Looking forward to testing this.

The software is already available, I just pushed a new release candidate (RC8) : https://github.com/salimkanoun/Orthanc_Tools/releases/tag/RC8

From the last post :

  • I add series filter for the automatic retrieve function
  • I started to implement monitoring service : AutoFetch (when Orthanc recieve one new patient or Study) it automatically search for patient’s history in a remote AET and retrieve the results (logically from a PACS), Tag monitoring (to store dicom tag value in a databas - still in building), DVD burn request for Epson PP100 discmaker.
  • Various bug fix and enhancement in the interface.

Don’t hesitate if you have new ideas / bug identification …

I still have some idea to code, then I will write an extensive documentation (but the software should be user friendly enough to be used without too much documentation)

Best regards,

Salim

This is amazing, really nice. I’ve just messed around for a few minutes. Quick Q:
What does the manage tag do?
For the monitoring, does the application need to be running im assuming?

Great work!

Dear Bryan,

The monitoring part is in developpement this is real Alfa unstable.

The monitoring tag aim to collect a list of dicom tag of interest for each patient /study /series recieved.

For now the colleted tag are only displayed in a console but I want to design a database structure that will receive all these data.

The final goal is to have a system that will monitor automatically all dicom data from a departement.
The auto retrieve function allows to schedule an auto retrieve of all dicom of a given day and repeat it each day.
So you can set that every night at 10pm all dicom of the day from the acquisition console will be retrieve in orthanc.
Then the tag monitoring service will collect the tag of interest in a database.
At the end you will get an automatic mass data extraction from dicom acquisition to make statistics on your patient wight, dose....

As I said this is still in devolepemt, so if you have ideas in this area you are welcome to bring me ideas on this field.

Yes the monitoring and auto retrieve will require to keep the orthanc tool app open (by the way in this RC8 version I just figured that the exit process should have a bug and the monitoring process will probably continue in a phantom thread , this is a bug, I will fix that)

Best regards

Salim

Great thanks!
As a note, if you need to collect tags right now while you develop your tool. I use the OS interface Engine Mirth Connect to do that. When a study has completed I have Orthanc send a test Notification then Mirth automatically queries fornwhat I need and writes to a DB. Working well. I can give you more information if you need.

Thanks again for the tool, looks great!

Hi there,

I uploaded the 1.01 version, see : https://github.com/salimkanoun/Orthanc_Tools/releases/tag/1.01
The documentation is in progress (see git)

Best regards,

Salim

Interesting. Sounds like a reasonably good fit for time-series
databases (for some attributes anyway). Prometheus + Grafana can give
you nice graphs for these things very quickly. I could lend a hand
outside of work hours if you'd like.

Hi thibault,

Very good ! You’re welcome.
I don’t know anything about Prometheus / Grafana but sound’s interesting.

I made a new version of Orthanc Tools see ( https://github.com/salimkanoun/Orthanc_Tools/releases/tag/1.03) and a new documentation with a new appendix about how to setup the tag monitoring (see page 20 here https://github.com/salimkanoun/Orthanc_Tools/releases/download/1.03/Orthanc_Tools_Documentation.pdf)

I can handle the database filling process, this version should work to store tags in MySQL but you might find bugs or missing tags of interest. For that part I will be able to help you to get a clean database that you can use for Prometheus.

Best regards,

Salim

Hi Salim

Excellent work, I was reading the manual and the software is really intuitive. Is it available in Windows environment?

Regards

William

Yes, the same jar will run indiferently for Windows, Linux and MacOS.
Do not hesitate to contact me, in case of problem or ideas for new features.

Hello Salim

Actually the tool you did works great with Orthanc, thanks for the contribution.

There is a detail that I think you should review, when a search is made by dates, if the patient had previous studies to the requested date does not appear in the search window, only appears if you search for a date equal to or less than the first study stored under the patient’s ID number. For example, 60 studies were carried out yesterday and when I search with the tool only 6 appear, the other studies are indexed within other studies of the same ID but with dates before the indicated in the search parameters.

Out of that detail the tool is great and is very useful.

Thanks for the contribution, regards

William

Dear William,

Correct, In fact the search parameter are applied to the “Patient” level.
Then when you click on the patient, I display all studies of this patients (without filtering). So if a patient have one study matching the search then it appears on the patient panel and a click on the patient will display all studies in it.

This would require a major re-writting of the app. When I will reach all the features I want with Orthanc Tools I will make a big code cleanup but that will be in long term.

I keep it in mind for an evolution of the app, I will query the patient level rather than the patient.

Salim

Thank you very much for the answer, I will be waiting to try the new versions of the Orthanc tool, excellent tool.

William

Hi Salim

You have developed some new update of Orthanc Tool ?, this tool really is very useful and helped me to debug Orthanc databases.

Regards

William

Hi william,

i’m continuing to make developpment on Orthanc Tool see https://github.com/salimkanoun/Orthanc_Tools/releases

I didn’t made test with the last 1.5.1 version, in the next week I will try with orthanc 1.5.1 and update the JSON editor to the last JSON parameter version of 1.5.1 (and update as well the auto runnable orthanc to the last version)

Tell me if you have ideas or needs for your work.

Best regards,

Salim

Hi Salim

Thanks for the new version, after I download and try it I will comment.

There is something that I think you should fix because it does not work well, but I have to see how I can explain it to you so that you can understand it. It refers to the modification of patient data once they are grouped in the search.

Greetings and thanks for this useful tool.

William

Hi Salim

I commented that yesterday I tried the new version of the tool and it worked well with version 1.5.1 of Orthanc, I did not notice any problem in its operation, it worked just like the previous versions. I would even say that you find the information requested within the pacs faster. Until yesterday I was using version 1.03 and working in parallel with the new (1.08) and both showed the same results in the searches without any problem.

What you tell me about making a remote access can be coordinated, we just have to agree on the time, I’m in Venezuela (UTC -4: 00).

Regards

William

Hi there,

Orthanc Tools has a new version (1.5) implementing the requests I had from Wiliam and several other users.

I also opened a YouTube playlist to explain its capabilities
https://www.youtube.com/playlist?list=PLlWfh5HNr8mIK3sAe03qY8ynS569sHnGm

ChangeLog
https://github.com/salimkanoun/Orthanc_Tools/blob/master/ChangeLog

Download
https://github.com/salimkanoun/Orthanc_Tools/releases/tag/1.5

Salim