Orthanc Windows Service Manager or Wrapper

Hello Sebastien and Orthanc (Windows) Users

We are about to implement a Windows service manager for Orthanc.

Before I commit to do this work, I would like to make sure that there is no duplicate efforts being done.

Here is what I plan to do;

  • I will write this in C# since that’s what I know the most and have done a number of projects like this. Since this is a very windows specific code, it should not matter with the choice of the language.
    What it will do;

  • This is a windows service.

  • There will be no change made to Orthanc executable. It just wraps the execution of Orthanc and that if it “crashes” the service will try to restart it a few number of times. All of that will be configurable in its application’s configuration file. It will initially retry more frequently each S second, then backs off the interval after N times with T seconds for M times. S, N, T, M will be configurable.

  • I will make the complete source available on GitHub and provide this as GPL in the same spirit as Orthanc

  • It will have an MSI installer

  • Logging level, and logging destinations will be configurable. The NLOG facility will be used for this.
    Provided that there are no other objections or the change in scope, the delivery estimate for a minimal viable product (e.g., alpha) shall be around September 8, 2014.

Manabu Tokunaga

Hello,

Many thanks for the interest of your society in Orthanc!

I confirm that, to the best of my knowledge, such a Windows service + installer is not available for Orthanc. So, this work would not represent a duplicate effort. Making such a contribution would be quite useful to Windows users. The choice of C# and GPL is perfect.

Ideally, your code could be placed on GitHub, in the following public repository (subfolder “Applications”) that gathers all third-party contributions to Orthanc:
https://github.com/jodogne/OrthancContributed

Thanks again,
Sébastien-

Sébastien,

Thank you for the nice welcome to the group.

I will fork your report, add my outputs, then send you a pull request when it is ready.

We like C++ and also DCMTK based, we are very familiar with it since it was called CEN CTN Software back when we help launch DICOM 3.0 standard and I am one of the very first participants in the DICOM connect-a-thon. Unlike JAVA DICOM implementations, Orthanc installs and run right out of the box without a need to install anything else.

We are hoping to establish continued and closer relationship with the Orthanc community, I believe we share much of the same vision.

– Manabu

Manabu,

Thank you for the nice welcome to the group.

I will fork your report, add my outputs, then send you a pull request when it is ready.

Fine!

We like C++ and also DCMTK based, we are very familiar with it since it was called CEN CTN Software back

when we help launch DICOM 3.0 standard and I am one of the very first participants in the DICOM connect-a-thon.

Unlike JAVA DICOM implementations, Orthanc installs and run right out of the box without a need to install anything else.

This is nice to know that people with an expertise in DICOM such as yours like Orthanc. Historically, what triggered the development of Orthanc was indeed the heavy deployment work that was needed to setup a PACS system, and thus the impossibility to deploy many task-centric “DICOM buffers” in our hospital.

We are hoping to establish continued and closer relationship with the Orthanc community, I believe we share much of the same vision.

Such a relationship would definitely be great.

Cheers,
Sébastien-

All,

A beta version of the service is done as well as an installer and is ready for testing. You can find the github repo here:

https://github.com/luryco/OrthancService

You can also find a build of the installer you can use for testing here:

https://drive.google.com/file/d/0B0tiJHPrw_-sV19qMXJGTVJ2eFU/edit?usp=sharing

Note that this build includes a debug build of Orthanc based on the mainline from a few days ago so you shouldn’t use this for any real work. We hope that the main Orthanc project accepts this as the way to distribute Orthanc on windows going forward. If not, we can provide a build on our web site. Please let us know if you have any feedback (suggestions to improve or bugs) or questions. Thanks

Chris and Manabu

Dear Chris and Manabu,

Many thanks for this contribution!

I currently do not have access to a Windows computer with Visual Studio for C# 4 installed, as I primarily work on Linux and I target Windows XP. Please someone else could try the service and the installer?

If I have the build instructions to build the service/installer for new versions of Orthanc, I see no problem in distributing the MSI installer from the Orthanc server homepage, with of course an acknowledgment to the Lury team :wink:

Regards,
Sébastien-

Hello Sebastien,

I can help you to build windows service and installer based on nullsoft script. I have some experience in creating these for Clearcanvas for my customers. This is the plan I have.

  1. Create a new project under Visual studio for windows service and compile this exe into a windows service.
  2. Using NullSoft script we can provide screens to enter AE Title, Port No, Image Folder and Database Folder and update the configration file.

These both then can be contributed back to the community.

I am also working on to Orthnac working on NAS box, QNAP has a QPackage application platform, would be good if we can provide a package for Orthance. This will provide a good lightweight NAS Based PACS.

with reards
Rady

Dear Rady,

Many thanks for your interest in Orthanc! First of all, please excuse my very slow answer.

Secondly, regarding the Windows service and installer, 2 developments are now available:

  • Chris and Manabu (see above) provide the community with a NSIS installer and a C# 4.0 Windows service. Their code is available on GitHub [1].
  • Since October 2014, an official installer is freely available for download on the Orthanc homepage [2]. This official installer uses InnoSetup and a “pure C” Windows service, thus with no dependency upon the .NET framework.
    Finally, I am looking forward to hear news from your work on QNAP :slight_smile:

Regards,
Sébastien-

[1] https://github.com/luryco/OrthancService
[2] http://www.orthanc-server.com/download-windows.php

Hello Sebastien,

Thanks for your email, We made this work on QNAP that has Intel processor, but my next challenge is to get a QNAP package on ARM processors to keep the cost low. I am working on this on my free time. Should be posting this by end of this month.

Thanks for pushing me to get this done, now i have a motivation.

with regards
Rady

image001.jpg