DICOMweb-compatible gateway server with DIMSE and S3 implementations.
DICOM-RST is a robust DICOMweb-compatible gateway server that supports QIDO-RS, WADO-RS and STOW-RS independently of the PACS vendor, ensuring robust and performant transfers of large amounts of imaging data with high parallelism from multiple PACS to multiple clients.
This project is part of the Open Medical Inference (OMI) project and is funded by the German Federal Ministry of Education and Research (BMBF) with the funding code 01ZZ2315A-P.
DICOM-RST provides multiple backend implementations for the DICOMweb gateway server:
DIMSE: The DIMSE backend translates DICOMweb requests into DIMSE-C messages (e.g. WADO-RS to C-MOVE). This is the preferred backend for most users due to the broad availability and support of DIMSE services in picture archiving and communication systems.
S3: The experimental S3 backend downloads DICOM instances from S3-compatible storage. Currently, only WADO-RS instance retrieval is implemented (no metadata or rendered resources).
Note
Actual support may vary depending on the features implemented by the origin server.
https://www.dicomstandard.org/using/dicomweb/retrieve-wado-rs-and-wado-uri
| Description | Path | Support Status |
|---|---|---|
| Study Instances | studies/{study} |
✅ |
| Series Instances | studies/{study}/series/{series} |
✅ |
| Instance | studies/{study}/series/{series}/instances/{instance} |
✅ |
| Description | Path | Support Status |
|---|---|---|
| Study Metadata | studies/{study}/metadata |
✅ |
| Series Metadata | studies/{study}/series/{series}/metadata |
✅ |
| Instance Metadata | studies/{study}/series/{series}/instances/{instance}/metadata |
✅ |
Metadata is returned as DICOM JSON with bulkdata (e.g. pixel data) removed. Metadata resources are not supported by the S3 backend.
| Description | Path | Support Status |
|---|---|---|
| Study Instances | studies/{study}/rendered |
✅ |
| Series Instances | studies/{study}/series/{series}/rendered |
✅ |
| Instance | studies/{study}/series/{series}/instances/{instance}/rendered |
✅ |
| Frames | studies/{study}/series/{series}/instances/{instance}/frames/{frames}/rendered |
✅ |
For rendering, the first frame of the first instance with pixeldata is used.
The following query parameters are supported:
| Key | Description | Support Status |
|---|---|---|
| quality | Compression quality for lossy formats like JPEG | ✅ |
| viewport | Cropping and scaling | ✅ |
| window | Windowing (VOI LUT) | ✅ |
| Media Type | Support Status |
|---|---|
| image/jpeg | ✅ |
| image/png | ✅ |
| image/jp2 | ❌ |
| image/gif | ❌ (single frame) |
| image/gif | ❌ (multi frame) |
| video/mpeg | ❌ |
| video/mp4 | ❌ |
| video/H265 | ❌ |
| text/html | ❌ |
| text/plain | ❌ |
| text/xml | ❌ |
| text/rtf | ❌ |
| application/pdf | ❌ |
| Description | Path | Support Status |
|---|---|---|
| Study Instances | studies/{study}/thumbnail |
✅ |
| Series Instances | studies/{study}/series/{series}/thumbnail |
✅ |
| Instance | studies/{study}/series/{series}/instances/{instance}/thumbnail |
✅ |
| Frames | studies/{study}/series/{series}/instances/{instance}/frames/{frames}/thumbnail |
❌ |
The thumbnail resources just perform a 303 redirect to their rendered counterparts
❌ Bulkdata Resources are not supported.
❌ Pixel Data Resources are not supported.
https://www.dicomstandard.org/using/dicomweb/query-qido-rs
| Resource | URI Template | Support Status |
|---|---|---|
| All Studies | /studies{?search*} |
✅ |
| Study's Series | /studies/{study}/series{?search*} |
✅ |
| Study's Series' Instances | /studies/{study}/series/{series}/instances{?search*} |
✅ |
| Study's Instances | /studies/{study}/instances{?search*} |
✅ |
| All Series | /series{?search*} |
✅ |
| All Instances | /instances{?search*} |
✅ |
| Key | Description | Support Status |
|---|---|---|
| {attributeID} | Query matching on supplied value | ✅ |
| includefield | Include supplied tags in result | ✅ |
| fuzzymatching | Whether query should use fuzzy matching | ❌ |
| limit | Return only {n} results | ✅ |
| offset | Skip {n} results | ✅ |
https://www.dicomstandard.org/using/dicomweb/store-stow-rs
| Resource | URI Template | Support Status |
|---|---|---|
| Studies | /studies |
✅ |
| Study | /studies/{study} |
❌ |
https://www.dicomstandard.org/news-dir/current/docs/sups/sup246.pdf
| Resource | URI Template | Support Status |
|---|---|---|
| Worklist Items | /modality-scheduled-procedure-steps{?search*} |
✅ |
| Key | Description | Support Status |
|---|---|---|
| {attributeID} | Query matching on supplied value | ✅ |
| includefield | Include supplied tags in result | ✅ |
| fuzzymatching | Whether query should use fuzzy matching | ❌ |
| limit | Return only {n} results | ✅ |
| offset | Skip {n} results | ✅ |
https://www.dicomstandard.org/using/dicomweb/workflow-ups-rs
❌ UPS-RS is not supported.
DICOM-RST provides additional features that are not part of the DICOMweb specification.
Returns a list of configured AETs.
| Resource | URI Template |
|---|---|
| AET List | /aets |
Returns a simple OK if the connection is still healthy.
| Resource | URI Template |
|---|---|
| Health Check | /aets/{aet} |
Footnotes
-
The DICOM-RST logo is adapted from the Rust logo owned by the Rust Foundation, used under CC-BY. ↩
