Skip to main content

The Official Python SDK for the MIRACLE API - Cardiovascular MRI Reference Values

Project description

MIRACLE SDK 🫀

The Official Python SDK for the MIRACLE API

PyPI version License: MIT Python 3.8+


MIRACLE: MR Imaging Reference API for Cardiovascular Limits from Evidence

The MIRACLE SDK provides a simple, typed, and high-performance Python interface to access standardized cardiovascular MRI reference values. Built for data scientists and medical researchers who need to process cardiac imaging data at scale.

✨ Features

  • 35+ Endpoints: Access all MIRACLE API domains with auto-generated, typed methods.
  • Batch Processing: Process hundreds of patients in parallel with MiracleBatch.
  • IDE Support: Full autocomplete and type hints for VS Code, PyCharm, and more.
  • Battle-Tested: Verified with stress tests (16+ concurrent requests, 100% success rate).

🚀 Installation

pip install miracle-sdk

📖 Quick Start

Single Request

from miracle import Miracle

# Initialize the client
client = Miracle()

# Get reference values for a pediatric left ventricle
result = client.pediatric_ventricle_reference_values(
    parameter="LVEDV",
    gender="Male",
    measured=62.5,
    ht_cm=110,
    wt_kg=22
)

print(result)
# {'inputs': {...}, 'results': {'calc_z': 0.5, 'calc_percentile': 69.1, ...}}

Batch Processing

Process an entire CSV of patients with multi-threaded parallelism.

Input CSV (patients.csv):

patient_id,gender,height_cm,weight_kg,lv_volume,param_type
001,Male,120,30,75,LVEDV
002,Female,110,25,60,LVEDV

Code:

from miracle import MiracleBatch

# Initialize the batch processor
processor = MiracleBatch(max_workers=10)

# Define how your CSV columns map to API parameters
mapping = {
    "gender": "gender",
    "ht_cm": "height_cm",
    "wt_kg": "weight_kg",
    "measured": "lv_volume",
    "parameter": "param_type"
}

# Process the CSV
df_results = processor.process_csv(
    file_path="patients.csv",
    domain="Pediatric_Ventricle",
    mapping=mapping
)

# Save the enriched data
df_results.to_csv("patients_with_zscores.csv", index=False)

[!TIP] Performance: In stress tests, the SDK processed 16 concurrent requests in ~7.5 seconds with a 100% success rate.


🗺️ Parameter Mapping Guide

The mapping dictionary connects your CSV column names to the API parameter names.

mapping = {
    "API_PARAMETER": "YOUR_CSV_COLUMN",
    "ht_cm": "Patient_Height",  # Example
}

How to Find API Parameters

  1. Online Docs: Visit miracleapi.readme.io and check the "Query Parameters" for your endpoint.
  2. Python Help: Use the built-in docstrings:
    help(client.lv_reference_values)
    

Common Parameters

Parameter Type Description
gender str "Male" or "Female"
age float Patient age in years
ht_cm float Height in centimeters
wt_kg float Weight in kilograms
measured float The measured value (e.g., volume, diameter)
parameter str The measurement type (e.g., "LVEDV", "LVEF")

[!IMPORTANT] The parameter field is required for most domains.


🏗️ Architecture

This SDK is auto-generated from the official OpenAPI specifications. This guarantees:

  • Consistency: Python methods always match the live API.
  • Type Safety: Full autocomplete and type hints.
  • Reliability: API changes are automatically reflected in the SDK.

🤝 Contributing

Contributions are welcome! Please see the main MIRACLE-API repository for the source of truth.

Development Setup:

git clone https://github.com/drankush/MIRACLE-sdk.git
cd MIRACLE-sdk
pip install -e .[dev]

Regenerate the client from OpenAPI specs:

python scripts/generate.py

📖 Citation

If you use this SDK in your research, please cite:

MIRACLE: MR Imaging Reference API for Cardiovascular Limits from Evidence Authors: Ankush et al. Journal of Cardiovascular Magnetic Resonance (2026)


📄 License

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


Made with ❤️ for the Cardiac Imaging Research Community

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

miracle_sdk-0.1.0.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

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

miracle_sdk-0.1.0-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file miracle_sdk-0.1.0.tar.gz.

File metadata

  • Download URL: miracle_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for miracle_sdk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b282c56c0b2cfe3260c6d06b06eeb8d5b133fad064fad3895d15f24ece3450f7
MD5 e84f4e66fb7141dbd02434a6a14f1639
BLAKE2b-256 2b2dc8ae6ab0f06dba97dc0da4f982c3aaf39440adb5c8e219fc6af629a46af4

See more details on using hashes here.

File details

Details for the file miracle_sdk-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: miracle_sdk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for miracle_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f9d0c5675ac5e7a55118f4af6ebeea781842bfcec7f8f6c15ec68d216d07e4c9
MD5 896a8315ca362930fbea4ae79488a524
BLAKE2b-256 5e68b3e849f36f4242dda5bdd850ee893486f6d07b2a2ac53b50fbb680c42cbc

See more details on using hashes here.

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