RESTful DICOM Services

Medical Connections has implemented the DICOMweb (DICOM Web Services) suite based on the DICOM Standard Part 18.

All services share the same underlying DicomServer, and this server is shared with the longstanding DIMSE based server, so it is possible to send an instance via STOW-RS and then retrieve it via C-GET, or the equivalent in reverse with C-STORE & WADO-RS.

Status: Production

  • In service and continuously maintained since 2014.
  • The core services (STOW-RS, QIDO-RS, WADO-RS) are implemented, together with WADO-RS Rendered, Thumbnail and Metadata retrieval, MPPS, Modality Worklist, UPS-RS Worklist, Storage Commitment and Non-Patient Instance (NPI) services.
  • This public server is provided as a reference endpoint for interoperability testing. If you find any discrepancy between our interpretation of the standard and yours, please report it to support@medicalconnections.co.uk.

DICOM STOW-RS (STore Over the Web by RESTful Services)

Web Service Address: "https://dicomserver.co.uk:8989/stow"

  • Supports single/multiple DICOM instances in single/multiple Studies
  • Supports DICOM/XML & JSON media types
  • Compressed Transfer Syntax is "work to be done"
  • Instances received will be C-STORE'd to the underlying DicomServer
  • Response Status Codes:
    • 415 - UnsupportedMediaType
    • 409 - Conflict
    • 200 - OK
    • 202 - Accepted, with additional information regarding which instances have been stored and which have failed, included in the response message body.

DICOM QIDO-RS (Query based on ID for DICOM Objects by RESTful Services)

Web Service Address: "https://dicomserver.co.uk:8989/qido"

  • Supports the queries:
    • /studies[?query]
    • /studies/{StudyInstanceUID}/series[?query]
    • /series[?query]
    • /studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances[?query]
    • /studies/{StudyInstanceUID}/instances[?query]
    • /instances[?query]
  • Supports application/dicom+xml and application/json media types
  • Fuzzy matching is supported; a warning header about fuzzy matching is included in the response
  • limit and offset are supported. A warning header is included when the number of results exceeds the maximum (100) supported by the server
  • TimezoneOffsetFromUTC and BulkData reference are "work to be done"
  • QIDO-RS queries are translated into DICOM C-FIND requests fired against the same DicomServer used by the STOW-RS service
  • Response Status Codes:
    • 200 - OK
    • 400 - Bad Request

DICOM WADO-RS (Web Access to DICOM Objects by RESTful Services)

Web Service Address: "https://dicomserver.co.uk:8989/wado"

  • Supports:
    • RetrieveStudy
    • RetrieveSeries
    • RetrieveInstance
    • RetrieveFrames
    • RetrieveBulkdata
    • RetrieveMetadata
  • Supports multipart application/dicom and application/octet-stream media types
  • Compressed transfer syntax is "work to be done"
  • Supports Bulkdata reference
  • WADO-RS requests are translated into DICOM C-GET requests fired against the same DicomServer used by the STOW-RS and QIDO-RS services
  • Response Status Codes:
    • 400 - Bad Request
    • 415 - UnsupportedMediaType
    • 200 - OK

WADO-RS Rendered, Thumbnail & Metadata

  • Rendered – returns consumer-format images (e.g. image/jpeg, image/png) or PDF, at study / series / instance / frame level: .../rendered
  • Thumbnail – returns preview images at study / series / instance / frame level: .../thumbnail
  • Metadata – returns metadata (DICOM JSON / XML) without bulk pixel data at study / series / instance level: .../metadata

UPS-RS (Unified Procedure Step Worklist by RESTful Services)

  • Create a work item: POST workitems/
  • Search work items: GET workitems/
  • Change work item state: PUT workitems/{transactionUID}/state
  • Update a work item: POST workitems/{transactionUID}
  • Retrieve a work item: GET workitems/{workitemUID}
  • Request cancellation: POST workitems/{workItemUID}/cancelrequest
  • Subscribe / unsubscribe / suspend: workitems/{resource}/subscribers/{aetitle}

Modality Worklist (MWL)

  • Query scheduled procedure steps: GET modality-scheduled-procedure-steps

MPPS (Modality Performed Procedure Step)

  • Create: POST modality-performed-procedure-steps/{mppsUID}
  • Update: POST modality-performed-procedure-steps/{mppsUID}?update
  • Retrieve: GET modality-performed-procedure-steps/{mppsUID}

Storage Commitment

  • Request: POST commitment-requests/{transactionUID}
  • Check result: GET commitment-requests/{transactionUID} (returns 202 Accepted while pending)

Non-Patient Instance (NPI) Services

  • Supported resource types: color-palettes, defined-procedure-protocols, hanging-protocols, implant-templates, inventories
  • Store: POST {resource}/ or POST {resource}/{uid}
  • Retrieve: GET {resource}/{uid}
  • Search: GET {resource}/