One of the most exciting aspects of WADO-RS is the Retrieve Metadata call. Retrieve Metadata enables access to all non pixel elements for all SOP Instances in a study with a single HTTP request. This capability doesn't exist in DIMSE services requiring applications to design around what is available via CFIND/QIDO-RS (a small subset of tags) or prefetching the entire study via CMOVE/WADO-RS Retrieve Study (which includes pixel data) in advance.
Designing around CFIND/QIDO-RS is a huge limitation as there are many elements not returned by CFIND that are required for viewers to properly display the right initial images to a user. For diagnostic use cases, it is really important to display the right initial images to the radiologist as quickly as possible (less than one second from opening the study ideally). Doing this is not easy because DICOM does not define what an initial view of a study should be. This is entirely left up to the application designer and requires taking into account specifics of the procedure, capabilities of the acquisition modality, user preferences and overall application design.
Here are some examples of the additional attributes needed beyond what is provided by CFIND/QIDO-RS:
1. Some MRI Procedures produce multiple echos in the same series. Most users prefer that each of these echos be displayed as a separate stack
2. Some CT procedures produce multiple phases in the same series (arterial and venus). Most users prefer that each of these phases be displayed as a separate stack
3. Some procedures will include multiple images in the same series and users will want them displayed independently (not stacked). Detecting this often requires looking at specific tags
4. Key objects, presentation states and structured reports will often impact which images are initially displayed as well. Note that in some cases these instances alone can drive the initial image display (e.g. display the Key Objects to a clinician)
In addition to this, the sort criteria for a stack can also vary requiring additional data not returned by CFIND/QIDO-RS.
Given that CFIND/QIDO-RS do not provide enough data for a viewer to always select the initial images to display, we are forced to pull the entire study over using CMOVE or WADO-RS Retrieve Study before we can analyze it. While one of the goals of WADO-RS Retrieve Study is rapid access, it isn't clear how fast the various implementations actually will be (I haven't had a chance to test any real implementations myself yet). While it might be technically possible to load a large study over a 10 GB/s network in under a second this is not easy to do and will likely not be seen in the real world for many years to come.
While prefetching studies in advance using CMOVE or WADO-RS Retrieve Study will work, there is no way to prevent the pixel data from being sent which can limit the number of priors pulled due to limitations of the archive and network. The pixel data is often over 100x larger than the rest of the elements in each SOP Instance so prefetching is often limited by the raw throughput of the archive software, storage subsystem or network infrastructure.
WADO-RS Retrieve Metadata therefore solves a huge problem with respect to integrating third party viewers with an image archive. It provides rapid access to all of the non pixel data in a single HTTP request. This provides more data than QIDO-RS (and CFIND) and is faster than WADO-RS Retrieve Study (and CMOVE).
Showing posts with label WADO-RS. Show all posts
Showing posts with label WADO-RS. Show all posts
Sunday, April 12, 2015
Thursday, September 11, 2014
WADO-RS Overview
WADO-RS was recently added to the DICOM standard in 2011 with Supplement 161. The RS stands for REST or RESTful and is generally easier to understand and work with than WS* Web Services. WADO-RS was mainly driven by the need to provide a way for clients to access multiple SOP Instances in one HTTP request which had been shown by the MINT project to offer significant performance gains.
One of the key concepts that WG27 took from the MINT project was the concept of bulk data. A bulk data item is a field in a DICOM SOP Instance that is typically very large - such as the Pixel Data field 7FE0,0010. To maximize performance, all fields for a study can be retrieved at once but bulk data fields are replaced with a URL that can be used to obtain the bulk data item via a separate request. This strategy enables clients to stream the pieces of the study they want, when they need them. This strategy is often used by image viewers to deliver images "on demand".
WADO-RS provides multiple ways to access SOP Instances to support a variety of use cases and scenarios:
One of the key concepts that WG27 took from the MINT project was the concept of bulk data. A bulk data item is a field in a DICOM SOP Instance that is typically very large - such as the Pixel Data field 7FE0,0010. To maximize performance, all fields for a study can be retrieved at once but bulk data fields are replaced with a URL that can be used to obtain the bulk data item via a separate request. This strategy enables clients to stream the pieces of the study they want, when they need them. This strategy is often used by image viewers to deliver images "on demand".
WADO-RS provides multiple ways to access SOP Instances to support a variety of use cases and scenarios:
- RS – RetrieveMetadata. This allows a client to retrieve all fields (except bulk data) for all SOP Instances in a study. It supports both XML and JSON responses. The JSON response is an array of objects, each of which contains all of the fields for each SOP instance in the study. The data in bulk data fields is replaced with a URL which can be used to get the actual bulk data separately. The XML response is a multi-part MIME message with each SOP Instance returned as a separate XML document and encoded as a single part.
- RS – RetrieveBulkdata. This is the mechanism to retrieve a single bulk data item as returned in the RS-RetrieveMetadata response. By default the bulk data is returned in little endian transfer syntax, but other transfer syntaxes can be requested (e.g. JPEG2000)
- RS - RetrieveFrames. This mechanism allows a client to get all image frames for a study, series or SOP Instance in one request. The frames are returned in a multi-part mime message with each frame encoded as single part. By default frames are returned in little endian transfer syntaxes but other transfer syntaxes can be requested (e.g. JPEG 2000).
- RS – RetrieveStudy. This allows a client to obtain all SOP Instances for a study in one request. Each SOP Instances is sent as a separate part in a multi-part MIME message with each SOP Instances as a DICOM P10 byte stream (application/dicom) encoded in a single part. You can also request just the bulk data items for a study and they are returned in a multi-part MIME message with each bulk data item as an individual part.
- RS – RetrieveSeries. Same as RS-RetrieveStudy but scoped to a series.
- RS – RetrieveInstance. Same as RS-RetrieveStudy but scoped to an individual SOP Instance
Subscribe to:
Posts (Atom)