From FHIR API to SQL in minutes · Apache 2.0

Query FHIR with
plain SQL.

Pull HL7 FHIR R4 from any compliant API into a columnar, MySQL-compatible database and write plain SQL for population analytics. No FHIRPath, no JSON-flattening pipelines, no proprietary driver.

  • Apache 2.0
  • FHIR R4 · 146 resources
  • MySQL wire protocol
  • StarRocks engine
Connect anything that speaks MySQL:
  • Power BI
  • Tableau
  • dbt
  • DBeaver
  • Metabase
  • Databricks
  • JDBC / ODBC

Why Hyperion

Stop wrestling FHIR. Just write SQL.

FHIR is built for exchange: deeply nested JSON, one patient at a time. The moment you want a population answer, you're hand-rolling FHIRPath or flattening pipelines forever. Hyperion skips all of it.

One table per resource

Nested FHIR in. Flat columns out.

Hyperion flattens each FHIR R4 resource into a table in _hyperion_core_. Columns mirror the resource, so the shape you query is the shape you already know.

Patient · FHIR R4 JSON
{
  "resourceType": "Patient",
  "id": "a1b2",
  "gender": "female",
  "birthDate": "1984-03-11",
  "name": [{ "family": "Reyes" }]
}
_hyperion_core_.patient
id    gender  birth_date  name_family
────  ──────  ──────────  ───────────
a1b2  female  1984-03-11  ["Reyes"]

Repeating FHIR elements (like name) become ARRAY columns: one row per resource, no exploding.

Scope

What Hyperion is not

Quickstart

Up and running in one command

Docker Desktop or Engine 24+, ~10 GB disk, ~8 GB RAM. First run is ~5-10 min.

bash
# Clone, configure, launch the full local demo
git clone https://github.com/Health-Chain-Inc/hyperion.git
cd hyperion
cp .env.example .env
docker compose up --build

Documentation

Dig deeper

This page is the short version. Everything below lives in the repo.