https://github.com/umessen/dicom-rst
DICOMweb-compatible gateway server with DIMSE and S3 implementations
https://github.com/umessen/dicom-rst
dicom healthcare medical-imaging omi rust
Last synced: 5 months ago
JSON representation
DICOMweb-compatible gateway server with DIMSE and S3 implementations
- Host: GitHub
- URL: https://github.com/umessen/dicom-rst
- Owner: UMEssen
- License: mit
- Created: 2024-04-04T09:06:13.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-02-20T07:43:25.000Z (5 months ago)
- Last Synced: 2026-02-20T11:55:33.347Z (5 months ago)
- Topics: dicom, healthcare, medical-imaging, omi, rust
- Language: Rust
- Homepage: https://umessen.github.io/DICOM-RST/
- Size: 1.63 MB
- Stars: 24
- Watchers: 6
- Forks: 3
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
![DICOM-RST Logo[^1]](docs/images/dicom-rst-icon.png)
# DICOM-RST
**DICOMweb-compatible gateway server with DIMSE and S3 implementations.**
[Documentation](https://umessen.github.io/DICOM-RST/usage-guide.html) | [Changelog](./CHANGELOG.md)
---
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)](https://www.medizininformatik-initiative.de/de/omi-open-medical-inference) project
and is funded by the German Federal Ministry of Education and Research (BMBF)
with the funding code 01ZZ2315A-P.
## Available Backends
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 the WADO-RS
service is implemented.
## DICOMweb Features
> [!NOTE]
> Actual support may vary depending on the features implemented by the origin server.
### Retrieve DICOM objects (WADO-RS)
https://www.dicomstandard.org/using/dicomweb/retrieve-wado-rs-and-wado-uri
#### Instance Resources
| Description | Path | Support Status |
|------------------|--------------------------------------------------------|:--------------:|
| Study Instances | `studies/{study}` | ✅ |
| Series Instances | `studies/{study}/series/{series}` | ✅ |
| Instance | `studies/{study}/series/{series}/instances/{instance}` | ✅ |
#### Metadata Resources
❌ Metadata Resources are not supported.
#### Rendered Resources
| Description | Path | Support Status |
|------------------|-----------------------------------------------------------------|:--------------:|
| Study Instances | `studies/{study}/rendered` | ✅ |
| Series Instances | `studies/{study}/series/{series}/rendered` | ✅ |
| Instance | `studies/{study}/series/{series}/instances/{instance}/rendered` | ✅ |
For rendering, the first instance with pixeldata is used.
| 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 | ❌ |
#### Thumbnail Resources
| Description | Path | Support Status |
|------------------|------------------------------------------------------------------|:--------------:|
| Study Instances | `studies/{study}/thumbnail` | ✅ |
| Series Instances | `studies/{study}/series/{series}/thumbnail` | ✅ |
| Instance | `studies/{study}/series/{series}/instances/{instance}/thumbnail` | ✅ |
The thumbnail resources just perform a 303 redirect to their rendered counterparts
#### Bulkdata Resources
❌ Bulkdata Resources are not supported.
#### Pixel Data Resources
❌ Pixel Data Resources are not supported.
### Search for DICOM objects (QIDO-RS)
https://www.dicomstandard.org/using/dicomweb/query-qido-rs
#### Resources
| 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*}` | ✅ |
#### Query Parameters
| 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 | ✅ |
### Store DICOM objects (STOW-RS)
https://www.dicomstandard.org/using/dicomweb/store-stow-rs
#### Resources
| Resource | URI Template | Support Status |
|----------|--------------------|:--------------:|
| Studies | `/studies` | ✅ |
| Study | `/studies/{study}` | ❌ |
### Manage worklist items (UPS-RS)
https://www.dicomstandard.org/using/dicomweb/workflow-ups-rs
❌ UPS-RS is not supported.
## DICOM-RST Features
DICOM-RST provides additional features that are not part of the DICOMweb specification.
### AET list
Returns a list of configured AETs.
| Resource | URI Template |
|----------|--------------|
| AET List | `/aets` |
### Health Check
Returns a simple OK if the connection is still healthy.
| Resource | URI Template |
|--------------|----------------|
| Health Check | `/aets/{aets}` |
[^1]: The [DICOM-RST logo](./dicom-rst-icon.png) is adapted from
the [Rust logo](https://github.com/rust-lang/rust-artwork)
owned by the Rust Foundation, used under CC-BY.