A robust DICOMweb server with interchangeable backends
Developed as part of the Open Medical Inference methodology platform.
Warning
This project is highly experimental.
We're still gathering information about potential compatibility issues with various PACS vendors.
DICOM-RST implements a DICOMweb-compatible HTTP server with support for QIDO-RS, WADO-RS and STOW-RS.
Currently, only the DIMSE backend is implemented, which translates DICOMweb requests into DIMSE-C operations.
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} |
✅ |
❌ Metadata Resources are not supported.
❌ Rendered Resourced are not supported.
❌ Thumbnail Resources are not supported.
❌ 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 | /study/{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/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/{aets} |
# Build the Docker image...
docker build -t dicom-rst .
# ...and run it!
docker run dicom-rst
Cargo makes it easy to build from source:
cargo install --git https://github.com/UMEssen/DICOM-RST dicom-rst
dimse
(default): Enables the DIMSE backends3
: Enables the S3 backend
Tip
If the DIMSE backend is not needed, it can be removed by using the --no-default-features
option.
Footnotes
-
The DICOM-RST logo is adapted from the Rust logo owned by the Rust Foundation, used under CC-BY. ↩