Sign inSign up

fluxinc/dicom-capacitor

By fluxinc

•Updated 30 days ago

Capacitor is a store-forward DICOM router.

Image
Networking
Integration & delivery
Data science
1

4.7K

fluxinc/dicom-capacitor repository overview

⁠DICOM Capacitor

DICOM Capacitor is a powerful, programmable DICOM store-and-forward gateway built with .NET. It acts as a highly configurable intermediary for DICOM networks, enabling complex routing, filtering, and modification of DICOM studies.

⁠Core Features

  • Advanced Routing: Route DICOM studies to different destinations based on rich criteria, including DICOM tag values and source AE Title.
  • DICOM Mutation: Modify DICOM tags on the fly. Add, update, or remove tags, and even query worklist nodes to enrich incoming data.
  • Filtering: Implement custom logic with built-in filters or create your own to control the flow of studies.
  • Store-and-Forward: Reliably caches incoming studies and forwards them to one or more PACS or viewers, with configurable retry logic.
  • Multi-Platform: The Docker image is built for multiple architectures, supporting both linux/amd64 and linux/arm64 (binary builds also support windows and osx, in both amd64 and arm64)
  • Extensible: Designed to be extended with custom filters and logic to fit complex workflow needs.

⁠Quick Start

To get started with DICOM Capacitor, you can use the following compose.yaml file.

  1. Create a directory for your configuration and data:

    mkdir -p ./capacitor-data/config ./capacitor-data/cache ./capacitor-data/license
    
  2. Create a compose.yaml file:

    services:
      capacitor:
        image: your-dockerhub-username/dicom-capacitor:latest # Replace with your image name
        container_name: dicom-capacitor
        restart: unless-stopped
        ports:
          - "1040:1040" # Standard DICOM port
        volumes:
          # Mount a local directory for configuration, logs, and other data
          - ./capacitor-data/config:/data
          # Mount a local directory for the DICOM cache
          - ./capacitor-data/cache:/cache
          # (Optional) Mount a directory for license files
          - ./capacitor-data/license:/data/flux
        healthcheck:
          test: ["CMD", "echoscu", "-aec", "YOUR_AET", "localhost", "1040"]
          interval: 30s
          timeout: 10s
          retries: 3
    
  3. Run the container:

    docker-compose up -d
    

⁠Configuration

The container is configured through a combination of command-line arguments and YAML files placed in the /data volume.

  • Entrypoint Arguments: The default entrypoint sets the primary data and cache paths: ENTRYPOINT ["dotnet", "DICOMCapacitorService.dll", "--path=/data", "--config.cachePath=/cache"]
  • Configuration Files: Place your config.yml, nodes.yml, mutations.yml, etc., inside the host directory mounted to /data (e.g., ./capacitor-data/config). The service will automatically load them on startup.
⁠Volumes
  • /data: The primary persistent storage for configuration files (nodes.yml, config.yml), logs, and other application data.
  • /cache: The DICOM cache directory. DICOM instances are stored here temporarily before being forwarded to their destination. This directory is subdivided into states like new, prepared, failed, etc.
⁠Ports
  • 1040: The default DICOM SCP port that the service listens on.

Tag summary

Content type

Image

Digest

sha256:19de8568f…

Size

169.8 MB

Last updated

30 days ago

docker pull fluxinc/dicom-capacitor