Is Orthanc Server QIDO-RS, WADO-RS and STOR-RS conformed?

Hi,

I haven’t been around much lately, due to other projects. Hope you are in good progress with the DICOMWeb implementation. Any specific release date?

The implementation work has started. I will first focus on the most common features of DICOMWeb, then extend it in subsequent releases to cover more of the full spec.

An initial public release is scheduled around April.

Also, would the new Orthanc web viewer have an option to choose to use the DICOMWeb protocola?

This is not planned, as the Orthanc Web viewer is built upon the Orthanc plugin framework (in other words, the viewer takes advantage of primitives that are provided by the core of Orthanc). However, another plugin could be developed to download images from DICOMWeb servers into Orthanc, so that the Web viewer plugin could be used.

Sébastien-

Sounds good. Look forward to it.

Hi,

As promised, I have just released an open-source, reference implementation of QIDO-RS, WADO-RS and STOW-RS.

The source code of the plugin is now available for download under the GNU Affero General Public License (AGPL) license at the following location:
https://bitbucket.org/sjodogne/orthanc-dicomweb/

This work is still in progress, and does not fully cover the spec yet (cf. the “Status.txt” file of the source distribution). There are also probably misinterpretations of the standard that will have to be subsequently fixed.

Please also note that, as I attend LibrePlanet 2015 as a speaker, I will not be able to fix/improve this plugin before 10 days… but you can already enjoy it :wink:

Sébastien-

Sounds great, Sebastien. Will give it try shortly.

Hi Sébastien:

I saw there are some py samples for stow and wado in the repository. Would you also have some samples for qido as well? (Would be great if the samples are in JS. :slight_smile:

Thanks.

Hi,

Just added a sample JavaScript/jQuery application that makes a QIDO-RS request “SearchForSeries”:
https://bitbucket.org/sjodogne/orthanc-dicomweb/src/8e7bc8bf874de1f286eaa951c8c9b1b8a8bda23f/Samples/JavaScript/?at=default

Providing WADO-RS and STOW-RS will require to encode and decode “multipart/related” messages. According to many posts on StackOverflow, this does not seem to be part of the jQuery core. Maybe the following plugin might help:

https://github.com/getify/mpAjax

I cannot help further for the moment, but please have a look and share your achievements!

Sébastien-

PS: The code of the plugin has been improved with encoding support (all the JSON/XML responses are now properly encoded using UTF-8).

Finally, I had success quicker than expected with STOW-RS and JavaScript. I share the sample here:
https://bitbucket.org/sjodogne/orthanc-dicomweb/src/3ec1e035c84f7b13897c50da73653ebcf5d33f1a/Samples/JavaScript/stow-rs.js?at=default

Sébastien-

Great, awesome!

Hi Sebastian,

I just checked the source and it doesn’t look like the WADO-RS RS-RetrieveMetadata endpoint is supported yet (/metadata). This endpoint is really powerful for viewer based applications and it would be great to see it added (especially if it supported the application/json content type). Any chance of this happening in the short term?

Chris

Hi Chris,

Clearly, RS-RetrieveMetadata is a must.

It is not implemented yet, simply by lack of time, but it is on the top of my roadmap.

I should be able to work on it within about 3 weeks.

Sébastien-

Great! I stared a github repo to track the status of various dicomWeb implementations, feel free to submit pull requests with updated info about orthanc (or others):

https://github.com/chafey/dicomWeb

Fine! This is a really useful initiative :slight_smile:

Just a remark about our licensing scheme: The Orthanc DICOMweb plugin is licensed under AGPL.

Sébastien-

Hi Chris, Sebastian,

Great idea to track DicomWeb. Not clear what the state of art is.

I heard dcm4chee now has support to DicomWeb protocols, though I haven’t got any time to look – too much traveling and other stuff in the last few weeks. Hope get back to this soon.

Cheers.

Hi Sébastien,

Just checking in to see where RS-RetrieveMetadata is at. I do plan to highlight Orthanc at my SIIM Learning Lab and it would be great to show it working with WADO-RS RetrieveMetadata!

Chris

Hi Chris,

The aforementioned 3 weeks have just passed, so I will start working on this feature as promised during this week :wink:

Sébastien-

Awesome! Feel free to use my DICOMToFHIRImagingStudy program which uses WADO-RS RetrieveMetadata to help test it out:

Code:
https://github.com/chafey/DICOMToFHIRImagingStudy
Live App:
http://chafey.github.io/DICOMToFHIRImagingStudy/

It isn’t a complete test but it is better than nothing.

Chris

Chris:

From your excellent SIIM enabling enterprise imaging presentation last

week, you mentioned that one of the keys is for an imaging application /
app to create, save, retrieve and display DICOM presentation states of an
image or a series of images. How are these covered by DicomWeb
specifically? I'd guess it would be super useful if Orthanc-Server's
DicomWeb implementation be able to support them.

DICOM PR, KO and SR each have their own SOP Class and are stored as individual SOP Instances in the same study as the images they refer to. So you can CSTORE, CFIND and CMOVE them using DIMSE and you can also QIDO-RS, WADO-RS and STOW-RS them too. I am pretty sure Orthanc already supports these SOP Classes so it should just work. The viewer will have to parse the PR and apply it to the image though - this is something I hope to do before SIIM (or perhaps at SIIM if I can’t find the time). Note that ClearCanvas supports creation of PR and KO so you can download that and play with it if you like. I used CC to create some PR and KO instances for one of the studies in the SIIM dataset, it works great.

Chris

Hi Chris,

I have just pushed initial support of WADO-RS RetrieveMetadata inside the Orthanc DICOMweb plugin.

The good news is that your DICOMToFHIRImagingStudy software can connect to Orthanc without any problem, and that the corresponding FHIR data is correctly generated! All of this looks very promising :slight_smile:

Sébastien-

Hi Sébastien,

Just tried this out and noticed the following:

  1. The value for Pixel data 7FE00010 is being returned as a string. The string doesn’t look like valid base64 so I think it might be a bug. I believe you are supposed to return the pixel data as a bulk data item. Note that DCM4CHEE omits it completely so I might be wrong here.
  2. The VR for pixel data 7FE00010 is listed as “OB or OW” which is not a valid value - needs to be either OB or OW.
  3. Several of the elements returned have a vr of “??” which is also not valid. I think you need to use “UN” for unknown or perhaps add a config flag to omit them if unknown. I also believe you do a binary inline for UN values (or perhaps bulk item if it is too large)

My ultimate goal is to not use WADO-URI and I can do this once you implement WADO-RS RetrieveFrames. Any idea on when that might be done?

Chris