Technical Overview: Bridging DICOM and Web Technologies¶
The Challenge: Traditional DICOM vs Modern Web Workflows¶
Many existing PACS servers, while robust, rely on older, specialized DICOM protocols (DIMSE) and often have web-based access (like DICOMweb) either not implemented or explicitly turned off for security reasons. This creates a significant hurdle for modern applications, especially those built for the web or requiring automated, scriptable access.
ADIT (Automated DICOM Transfer) acts as an intelligent intermediary, a "translator" or "proxy," that allows you to interact with your medical imaging data using familiar web technologies, even if the underlying PACS does not natively support them.
DICOM Protocol Overview¶
Traditional DICOM Protocols (DIMSE)¶
Traditional DICOM communication relies on DIMSE (DICOM Message Service Element) services:
- C-FIND (Query): Search for studies, series, or instances based on criteria
- C-GET (Retrieve - Pull): Client requests and "pulls" images directly
- C-MOVE (Retrieve - Push): Instructs server to "push" images to another destination
- C-STORE (Store): Send DICOM images to a server
These protocols operate over dedicated TCP/IP connections and require specialized DICOM toolkits.
DICOMweb Protocols (RESTful APIs)¶
DICOMweb standardizes web-based access to DICOM data using RESTful principles:
flowchart LR
A[Web Client] -->|HTTP GET| B[DICOMweb Server]
B -->|JSON/DICOM| A
A -->|HTTP POST| B
subgraph Services["DICOMweb Services"]
C[QIDO-RS<br/>Query]
D[WADO-RS<br/>Retrieve]
E[STOW-RS<br/>Store]
end
B -.-> Services
- QIDO-RS: Query using HTTP GET with URL parameters
- WADO-RS: Retrieve using HTTP GET requests
- STOW-RS: Store using HTTP POST requests
How ADIT Bridges the Gap¶
ADIT acts as a translation layer between modern web APIs and traditional DICOM protocols:
sequenceDiagram
participant Client as Your Script/App
participant ADIT as ADIT Server
participant Worker as ADIT Worker
participant PACS as PACS Server
Client->>ADIT: HTTP GET /dicomweb/studies?PatientAge=020-030&Modality=CT
Note over ADIT: Receives DICOMweb/REST request
ADIT->>Worker: Internal translation
Note over Worker: Converts REST → DIMSE
Worker->>PACS: C-FIND (DIMSE Protocol)
PACS-->>Worker: DICOM Response
Worker->>ADIT: Internal processing
Note over ADIT: Converts DIMSE → REST
ADIT-->>Client: HTTP 200 + JSON Response The Translation Process¶
- Receiving Web Requests: ADIT receives standard HTTP/HTTPS DICOMweb requests
- Internal Translation: Converts DICOMweb/REST requests into DIMSE commands
- PACS Communication: Communicates with PACS using native DIMSE protocols
- Response Translation: Converts DICOM data back to web-friendly format
- Web Response: Returns JSON/DICOM data over HTTP/HTTPS
Security Benefits¶
ADIT addresses common security concerns:
Centralized Security Model¶
- Single Point of Control: Secure ADIT instead of exposing multiple PACS endpoints
- Authentication & Authorization: Implement fine-grained access controls
- Network Isolation: PACS can remain on internal networks