Skip to main content

A tool for creating static DICOM web applications

Project description

Static DICOMweb Creator

PyPI version Python Support License: MIT

A Python library and CLI tool for generating static DICOMweb endpoints from DICOM files. Create self-contained, deployable medical imaging web applications without requiring a PACS server or database.

This project was inspired by the RadicalImaging/Static-DICOMWeb (javascript, node.js).

✨ Features

  • 🚀 Zero Server Requirements: Generate static files that can be served from any web server or CDN
  • 🔒 Self-Contained: All DICOM metadata and images converted to web-friendly formats
  • 📊 DICOMweb Compatible: Generates standard DICOMweb API endpoints (WADO-RS)
  • 🌐 OHIF Viewer Ready: Works out-of-the-box with OHIF Viewer for viewing medical images
  • 📦 Easy Deployment: Includes docker templates

📋 Requirements

  • Python 3.9 or higher
  • Frontend viewer: OHIF Viewer (recommended) or any DICOMweb-compatible viewer

🚀 Installation

From PyPI

pip install static-dicomweb-creator

Development Installation

pip install -e ".[dev]"

📖 Usage

Command Line Interface

Basic usage:

static-dicomweb-creator input_dicom_dir base_url output_web_dir

For OHIF viewer:

static-dicomweb-creator --ohif input_dicom_dir base_url output_web_dir

Python API

from static_dicomweb_creator.creator import StaticDICOMWebCreator
from static_dicomweb_creator.utils import list_dicom_files

creator = StaticDICOMWebCreator(
    output_path="/path/to/web",
    root_uri="https://example.com/dicomweb/"
)

for dcm_path in list_dicom_files("/path/to/dicom_files"):
    dcm = pydicom.dcmread(dcm_path)
    creator.add_dcm_instance(dcm)
creator.create_json()

🏗️ Architecture

Input DICOM Files
       ↓
Static DICOMweb Creator
       ↓
Generated Output:
└ studies/
    ├ index.json
    └ {StudyInstanceUID}/
         └ series/
              ├ index.json
              └ {SeriesInstanceUID}/
                   ├ index.json
                   ├ metadata
                   │   └ index.json
                   └ instances/
                        └ {SOPInstanceUID}/
                            ├ metadata
                            │  └ index.json
                            ├ frame
                            │  └ {frame_number}/
                            │       └ index.json
                            └ bulkdata
                                └ {tag}/
                                    └ index.json

🌐 Deployment

With Docker Compose (Recommended)

This repository includes a ready-to-use Docker Compose setup with OHIF Viewer and Nginx:

# use samle_docker/docker-compose.yml placing your generated output in static_dicomweb/
docker-compose up

Access the viewer at http://localhost

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • OHIF Viewer - Open Health Imaging Foundation
  • pydicom - Python library for DICOM files
  • DICOMweb - Web standard for medical imaging

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

static_dicomweb_creator-0.2.5.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

static_dicomweb_creator-0.2.5-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file static_dicomweb_creator-0.2.5.tar.gz.

File metadata

  • Download URL: static_dicomweb_creator-0.2.5.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for static_dicomweb_creator-0.2.5.tar.gz
Algorithm Hash digest
SHA256 680db56bb64eb7c743ff69c0246bf10f54be0a1b8761cfaabbea5f20491a393a
MD5 e9993806130f26cb03d92f2420969916
BLAKE2b-256 6fd2304e2632ba3808b1333e663745ef5f7ac597b271ec35351ffd1d51d3fa5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for static_dicomweb_creator-0.2.5.tar.gz:

Publisher: publish_to_pypi.yml on akchan/static_dicomweb_creator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file static_dicomweb_creator-0.2.5-py3-none-any.whl.

File metadata

File hashes

Hashes for static_dicomweb_creator-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1383f40891904d8a084affb6acfefb96076c8eeb7d8dbc17a615ce2adbff3513
MD5 4b768e64cfe3bd12058725d312f1993e
BLAKE2b-256 affbf9c22e244a1cc95afae94587d776702c79d20836ab58be60c22973bf8c45

See more details on using hashes here.

Provenance

The following attestation bundles were made for static_dicomweb_creator-0.2.5-py3-none-any.whl:

Publisher: publish_to_pypi.yml on akchan/static_dicomweb_creator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page