static-dicomweb-creator


Namestatic-dicomweb-creator JSON
Version 0.2.10 PyPI version JSON
download
home_pageNone
SummaryA tool for creating static DICOM web applications
upload_time2025-11-05 15:20:46
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords dicom medical imaging static web
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Static DICOMweb Creator

[![PyPI version](https://badge.fury.io/py/static-dicomweb-creator.svg)](https://badge.fury.io/py/static-dicomweb-creator)
[![Python Support](https://img.shields.io/pypi/pyversions/static-dicomweb-creator.svg)](https://pypi.org/project/static-dicomweb-creator/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/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](https://github.com/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](https://ohif.org/) (recommended) or any DICOMweb-compatible viewer

## 🚀 Installation

### From PyPI

```bash
pip install static-dicomweb-creator
```

### Development Installation

```bash
pip install -e ".[dev]"
```

## 📖 Usage

### Command Line Interface

Basic usage:

```bash
static-dicomweb-creator input_dicom_dir base_url output_web_dir
```

For OHIF viewer:

```bash
static-dicomweb-creator --ohif input_dicom_dir base_url output_web_dir
```

### Python API

```python
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:

```bash
# 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](LICENSE) file for details.

## 🙏 Acknowledgments

- [OHIF Viewer](https://ohif.org/) - Open Health Imaging Foundation
- [pydicom](https://pydicom.github.io/) - Python library for DICOM files
- [DICOMweb](https://www.dicomstandard.org/using/dicomweb) - Web standard for medical imaging

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "static-dicomweb-creator",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "dicom, medical imaging, static, web",
    "author": null,
    "author_email": "Satoshi Funayama <akchan.acts@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/74/64/ad0b9722498404e9bd0b42e65a93cf43eb4e59ffd34b91582e55d7e51fb1/static_dicomweb_creator-0.2.10.tar.gz",
    "platform": null,
    "description": "# Static DICOMweb Creator\n\n[![PyPI version](https://badge.fury.io/py/static-dicomweb-creator.svg)](https://badge.fury.io/py/static-dicomweb-creator)\n[![Python Support](https://img.shields.io/pypi/pyversions/static-dicomweb-creator.svg)](https://pypi.org/project/static-dicomweb-creator/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA 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.\n\nThis project was inspired by the [RadicalImaging/Static-DICOMWeb](https://github.com/RadicalImaging/static-dicomweb) (javascript, node.js).\n\n## \u2728 Features\n\n- \ud83d\ude80 **Zero Server Requirements**: Generate static files that can be served from any web server or CDN\n- \ud83d\udd12 **Self-Contained**: All DICOM metadata and images converted to web-friendly formats\n- \ud83d\udcca **DICOMweb Compatible**: Generates standard DICOMweb API endpoints (WADO-RS)\n- \ud83c\udf10 **OHIF Viewer Ready**: Works out-of-the-box with OHIF Viewer for viewing medical images\n- \ud83d\udce6 **Easy Deployment**: Includes docker templates\n\n## \ud83d\udccb Requirements\n\n- Python 3.9 or higher\n- Frontend viewer: [OHIF Viewer](https://ohif.org/) (recommended) or any DICOMweb-compatible viewer\n\n## \ud83d\ude80 Installation\n\n### From PyPI\n\n```bash\npip install static-dicomweb-creator\n```\n\n### Development Installation\n\n```bash\npip install -e \".[dev]\"\n```\n\n## \ud83d\udcd6 Usage\n\n### Command Line Interface\n\nBasic usage:\n\n```bash\nstatic-dicomweb-creator input_dicom_dir base_url output_web_dir\n```\n\nFor OHIF viewer:\n\n```bash\nstatic-dicomweb-creator --ohif input_dicom_dir base_url output_web_dir\n```\n\n### Python API\n\n```python\nfrom static_dicomweb_creator.creator import StaticDICOMWebCreator\nfrom static_dicomweb_creator.utils import list_dicom_files\n\ncreator = StaticDICOMWebCreator(\n    output_path=\"/path/to/web\",\n    root_uri=\"https://example.com/dicomweb/\"\n)\n\nfor dcm_path in list_dicom_files(\"/path/to/dicom_files\"):\n    dcm = pydicom.dcmread(dcm_path)\n    creator.add_dcm_instance(dcm)\ncreator.create_json()\n```\n\n## \ud83c\udfd7\ufe0f Architecture\n\n```\nInput DICOM Files\n       \u2193\nStatic DICOMweb Creator\n       \u2193\nGenerated Output:\n\u2514 studies/\n    \u251c index.json\n    \u2514 {StudyInstanceUID}/\n         \u2514 series/\n              \u251c index.json\n              \u2514 {SeriesInstanceUID}/\n                   \u251c index.json\n                   \u251c metadata\n                   \u2502   \u2514 index.json\n                   \u2514 instances/\n                        \u2514 {SOPInstanceUID}/\n                            \u251c metadata\n                            \u2502  \u2514 index.json\n                            \u251c frame\n                            \u2502  \u2514 {frame_number}/\n                            \u2502       \u2514 index.json\n                            \u2514 bulkdata\n                                \u2514 {tag}/\n                                    \u2514 index.json\n```\n\n## \ud83c\udf10 Deployment\n\n### With Docker Compose (Recommended)\n\nThis repository includes a ready-to-use Docker Compose setup with OHIF Viewer and Nginx:\n\n```bash\n# use samle_docker/docker-compose.yml placing your generated output in static_dicomweb/\ndocker-compose up\n```\n\nAccess the viewer at `http://localhost`\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- [OHIF Viewer](https://ohif.org/) - Open Health Imaging Foundation\n- [pydicom](https://pydicom.github.io/) - Python library for DICOM files\n- [DICOMweb](https://www.dicomstandard.org/using/dicomweb) - Web standard for medical imaging\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A tool for creating static DICOM web applications",
    "version": "0.2.10",
    "project_urls": {
        "Bug Tracker": "https://github.com/akchan/static_dicomweb_creator/issues",
        "Documentation": "https://static-dicomweb-creator.readthedocs.io/",
        "Homepage": "https://github.com/akchan/static_dicomweb_creator",
        "Repository": "https://github.com/akchan/static_dicomweb_creator"
    },
    "split_keywords": [
        "dicom",
        " medical imaging",
        " static",
        " web"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ebdec73de9fa1c05855bf7431d46f829033898ec52f029763d1f019473b98336",
                "md5": "e707c34bfe4269e8cbd29c46209c4f0f",
                "sha256": "d798f3d1b117773b3dcc28a1006f5fd82049f69df0a5a1b4cbb5cafde8981e35"
            },
            "downloads": -1,
            "filename": "static_dicomweb_creator-0.2.10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e707c34bfe4269e8cbd29c46209c4f0f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 10994,
            "upload_time": "2025-11-05T15:20:44",
            "upload_time_iso_8601": "2025-11-05T15:20:44.982596Z",
            "url": "https://files.pythonhosted.org/packages/eb/de/c73de9fa1c05855bf7431d46f829033898ec52f029763d1f019473b98336/static_dicomweb_creator-0.2.10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7464ad0b9722498404e9bd0b42e65a93cf43eb4e59ffd34b91582e55d7e51fb1",
                "md5": "481d00eea2dcd6220bcc90ba7239cf05",
                "sha256": "e895fa5d09f4a32b4ae9265cc917d0da5aa936a60f652c019863dac3255cff08"
            },
            "downloads": -1,
            "filename": "static_dicomweb_creator-0.2.10.tar.gz",
            "has_sig": false,
            "md5_digest": "481d00eea2dcd6220bcc90ba7239cf05",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 10619,
            "upload_time": "2025-11-05T15:20:46",
            "upload_time_iso_8601": "2025-11-05T15:20:46.510075Z",
            "url": "https://files.pythonhosted.org/packages/74/64/ad0b9722498404e9bd0b42e65a93cf43eb4e59ffd34b91582e55d7e51fb1/static_dicomweb_creator-0.2.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-05 15:20:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "akchan",
    "github_project": "static_dicomweb_creator",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "static-dicomweb-creator"
}
        
Elapsed time: 3.72614s