AI-powered medical imaging analysis toolkit
Project description
MedCheck analyzes MRI scans using local ML models and frontier Vision-LLMs (Claude, GPT, Gemini) to generate professional radiology-style reports with annotated images.
Quick Start · Documentation · Contributing · Report Bug
Features
- Plug & Play Docker — single
docker runcommand, no local setup required - Multiple data sources — local DICOM files, easyRadiology platform, and custom plugins
- Local ML analysis — on-device inference with LLaVA-Med and MONAI-based models; fully offline capable
- Vision-LLM analysis — frontier model support for Claude Opus 4.7, GPT-5.5, and Gemini 3.5 Flash
- Clinical context input — attach patient history, symptoms, and prior findings to guide report generation
- Professional PDF/HTML reports — annotated images with structured radiology-style findings and impressions
- YAML workflow engine — compose and version-control custom analysis pipelines as code
- Generic anatomy support — brain, spine, knee, shoulder, abdomen, and more
- Web UI + CLI — interactive browser dashboard and a scriptable command-line interface
Quick Start
Option 1 — Docker (recommended)
docker run -p 8080:8080 \
-e ANTHROPIC_API_KEY=your_key_here \
-v $(pwd)/scans:/data/scans \
ghcr.io/liohtml/medcheck:latest
Then open http://localhost:8080.
Option 2 — pip install
pip install medcheck
medcheck serve
Option 3 — From source
git clone https://github.com/Liohtml/MedCheck.git
cd MedCheck
uv sync
uv run medcheck serve
How It Works
┌─────────┐ ┌────────────┐ ┌────────────┐ ┌───────────┐ ┌────────┐
│ Ingest │───▶│ Preprocess │───▶│ ML Analyze │───▶│ Vision AI │───▶│ Report │
│ │ │ │ │ │ │ │ │ │
│ DICOM / │ │ Normalize │ │ LLaVA-Med │ │ Claude / │ │ PDF / │
│ easyRad │ │ Resize │ │ MONAI │ │ GPT / │ │ HTML │
│ Plugins │ │ Anonymize │ │ Anomaly │ │ Gemini │ │ + PNG │
└─────────┘ └────────────┘ └────────────┘ └───────────┘ └────────┘
- Ingest — load studies from local paths, the easyRadiology API, or third-party plugins.
- Preprocess — normalize pixel values, resize to model input dimensions, and strip PHI.
- ML Analyze — run local segmentation and anomaly-detection models (no API key required).
- Vision AI — send annotated slices to a frontier Vision-LLM for language-based findings.
- Report — render a structured radiology report with annotated images in PDF and HTML.
Supported Models
| Model | Provider | Best For |
|---|---|---|
| Claude Opus 4.7 | Anthropic | Highest diagnostic quality and reasoning depth |
| GPT-5.5 | OpenAI | High-resolution image understanding |
| Gemini 3.5 Flash | Speed-optimized, cost-effective batch processing | |
| LLaVA-Med | Local | Fully offline, no API key required |
Data Sources
| Source | Type | Notes |
|---|---|---|
| Local DICOM | file:// |
Supports single files and directory trees |
| easyRadiology | REST API | Requires EASYRAD_API_KEY |
| Custom providers | Plugin | See docs/providers.md |
Configuration
Copy .env.example and fill in your API keys:
cp .env.example .env
# .env.example
ANTHROPIC_API_KEY=
OPENAI_API_KEY=
GOOGLE_API_KEY=
EASYRAD_API_KEY=
# Optional overrides
MEDCHECK_DEFAULT_MODEL=claude-opus-4-7
MEDCHECK_REPORT_FORMAT=pdf
MEDCHECK_PORT=8080
Docker environment variables
docker run \
-e ANTHROPIC_API_KEY=sk-ant-... \
-e MEDCHECK_DEFAULT_MODEL=claude-opus-4-7 \
-e MEDCHECK_REPORT_FORMAT=pdf \
ghcr.io/liohtml/medcheck:latest
Custom Workflows
Define analysis pipelines as YAML and commit them alongside your code:
# workflows/brain-mri-full.yml
name: brain-mri-full
description: Full brain MRI analysis with FLAIR and T1 sequences
steps:
- name: preprocess
op: normalize
params:
modality: MRI
sequences: [FLAIR, T1]
- name: segment
op: local_model
params:
model: monai-brain-seg-v2
- name: analyze
op: vision_llm
params:
model: claude-opus-4-7
prompt_template: prompts/neuro-radiology.txt
- name: report
op: render_report
params:
format: [pdf, html]
include_annotations: true
Run the workflow:
medcheck run workflows/brain-mri-full.yml --input /data/scans/patient_001/
Documentation
| Topic | Link |
|---|---|
| Quickstart guide | docs/quickstart.md |
| Data providers & plugins | docs/providers.md |
| Workflow engine reference | docs/workflows.md |
| Supported models | docs/models.md |
Contributing
Contributions are welcome. Please read CONTRIBUTING.md first.
git clone https://github.com/Liohtml/MedCheck.git
cd MedCheck
uv sync
pre-commit install
pytest
All pull requests require passing CI and at least one approving review.
Acknowledgments
MedCheck builds on the shoulders of excellent open-source work:
- Stanford MRNet — benchmark dataset for knee MRI analysis
- Project MONAI — PyTorch-based framework for medical image learning
- pydicom — pure-Python DICOM file I/O
Disclaimer
MedCheck is NOT a medical device and has NOT been cleared or approved by any regulatory authority (FDA, CE, or otherwise). It is intended solely as a research and educational tool. All outputs must be reviewed and verified by a qualified radiologist or licensed medical professional before use in any clinical decision-making context. Do not use MedCheck as a substitute for professional medical advice, diagnosis, or treatment.
License
Distributed under the Apache License 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file medcheck-0.1.0.tar.gz.
File metadata
- Download URL: medcheck-0.1.0.tar.gz
- Upload date:
- Size: 51.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0e3b5423e52cc88bf02f46e89fdd35119bb96bb943f495e29a28f45923ebec6
|
|
| MD5 |
9ca1a807a2f321f7927ea78f18029b19
|
|
| BLAKE2b-256 |
e21824ca3f8d32a399856f4fe511bee8d537421cc952fa7b615d3d292352e416
|
File details
Details for the file medcheck-0.1.0-py3-none-any.whl.
File metadata
- Download URL: medcheck-0.1.0-py3-none-any.whl
- Upload date:
- Size: 46.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aafe7ac59fd6c5ad82fcc473cd9b1b5607b98ece219659f6b203ce7e606eec0e
|
|
| MD5 |
df09cf712bcf2abf29c53ed33b480a8e
|
|
| BLAKE2b-256 |
3ecd1096138fe46c0774c6c22b1b1db7ed073cb9ac327cb6ff5dc413c3af2b4b
|