Expediting stability of a DICOM study - new API endpoint?

209 views
Skip to first unread message

Dave

unread,
Oct 23, 2019, 4:08:19 PM10/23/19
to Orthanc Users
I appreciate that there's nothing really in DICOM that allows you to 100% guarantee that a study has finally made it from one node to another. 99/100 most solutions use a timeout and I believe that Orthanc is no exception to this (I believe the default config setting of "StableAge" : 60 denotes this).  However, I do wonder if perhaps Orthanc can go above and beyond others with it's functionality in this regard and potentially include an API call that can be made to made a study "stable"?

For example, I receive a 3 instance study from a DICOM node.  I have processing put into place and I know that I have to add another series to this particular study in the form of a local DICOM file I've created: I ensure that the StudyInstanceUID is the same as the study I want to add it to (the SeriesInstanceUID and InstanceUID are unique). I then use DCMTK to send the created local file to Orthanc.  However, now I have to wait at least 60 sec for Orthanc to register that there's a new series (I check with Postman and a looping script, sometimes it takes 90 sec for the additional series to be added to the study).  

Wouldn't it be a lovely feature to be able to call an endpoint and have the study be flagged as stable immediately? Unless of course something like this already exists and I can't see it in the API calls?

Sébastien Jodogne

unread,
Oct 24, 2019, 4:12:38 AM10/24/19
to Orthanc Users
Hello,

You are most probably looking for the so-called "DICOM storage commitment" feature (a search on Internet will provide you with more information). We plan to implement storage commitment in a near future.

In the meantime, you can use the "transfers accelerator" plugin, that features a similar functionality for transfers over HTTP(S):

Thanks to storage commitment, your sending modality is sure that your receiving modality has received all the images. The source modality can then inform the receiving modality that further processing can be launched.

HTH,
Sébastien-

Alain Mazy

unread,
Oct 24, 2019, 4:14:55 AM10/24/19
to Dave, Orthanc Users
Hi Dave,

There's indeed no such endpoint right now.  That's actually the first time we get this kind of request so I would assume that it's quite specific to your particular use case.

There are some plans to implement DICOM storage commitment in Q1 2020 that might help you achieve what you need.  From an API point of view, we've no idea yet how it will be implemented.

In the meantime, if you're already working with lua callbacks, instead of working with OnStableStudy, you could work with OnStoredInstance that is triggered earlier.  In this callback, you could detect that the instance is the "special one you push at the end of the study"

Alain


--
You received this message because you are subscribed to the Google Groups "Orthanc Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to orthanc-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/orthanc-users/5807f322-aac0-4e94-9ead-17de2e2fa5c9%40googlegroups.com.


--

Alain Mazy / Software Developer
a...@osimis.io / +32 494 31 67 27

Osimis

OSIMIS S.A. 
Quai Banning 6BE-4000 Liège 
www.osimis.io

Twitter LinkedIn


Dave

unread,
Oct 24, 2019, 6:29:15 PM10/24/19
to Orthanc Users
Sebastien,
I've read up on the accelerator plugin, and appreciate that it enables "chunking" (for large DICOM sets) as well as collating smaller sets. However, this differs in what the approach I'm looking for is.  

Now, one thing that I need to ensure I'm correct in, is as follows:
  1. I'm currently using DCMTK's storescu to send the additional series to Orthanc, and that's certainly subject to the StableAge setting.
  2. If I were to use the API to send the additional series, does the StableAge timeout still apply?  I can only assume that it does?
    1. If so, and being familiar to Storage Commit permit me to confirm that yes, that's pretty much what I'd be looking for, but from an API point of view, as opposed to a DICOM one.

From an API point of view I got to thinking that, after sending an instance (containing my new series, but attached to an existing stored study):
$ curl -X POST http://localhost:8042/instances --data-binary @CT.X.1.2.276.0.7230010.dcm

I could then call the "storage commit" API for that study, something like
Which would bypass the StableAge setting and set all internal paths, databases et al to IsStable:1

Alain Mazy

unread,
Oct 25, 2019, 3:57:57 AM10/25/19
to Dave, Orthanc Users
Hi Dave,

Indeed for the storage commit, we'll have to somehow force the "stability" of the study when Orthanc receives the DICOM storage commit message.  It makes a lot of sense to add a route to "commit" through HTTP as well as part of this implementation.

Best regards,

Alain.

--
You received this message because you are subscribed to the Google Groups "Orthanc Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to orthanc-user...@googlegroups.com.

Dave

unread,
Oct 25, 2019, 11:54:14 AM10/25/19
to Orthanc Users
Alain / Sebastien
I'll look forward to testing the new functionality next year.

Additionally, I would've loved to have attended OrthancCon this year but couldn't make it work. I'm hoping to attend next year and (if all goes according to plan) will even put myself up for a presentation as to how we plan on using Orthanc in 2020 here in the US. I've been using DCM4CHEE for the last 10 years but Orthanc has a much better featureset and I love the way the API works.  Congratulations to all, it's really something.


Dave
To unsubscribe from this group and stop receiving emails from it, send an email to orthan...@googlegroups.com.

Derek Merck

unread,
Nov 3, 2019, 4:02:03 PM11/3/19
to Orthanc Users
I love the idea of being able to send a commit signal over REST.  It would be especially useful for me while debugging.  Even if I make the StableAge timeout fairly low, I still spend a lot of time sitting around just waiting for StableStudy to pop up in /changes when I am testing things.

D--
Reply all
Reply to author
Forward
0 new messages