---
{
  "title": "[Online workshop] SQL on FHIR – Nikolai Ryzhikov at FHIR DevDays 2025",
  "description": "FHIR's nested structure works for APIs but frustrates SQL analytics. SQL on FHIR uses a simple DSL to define flat views – portable across ETL/ELT runners, tested via shared suites. Nikolai Ryzhikov's DevDays session demos the workflow from Synthea data to Grafana dashboards.",
  "date": "2025-12-15",
  "author": "Nikolai Ryzhikov",
  "reading-time": "45 minutes",
  "tags": [
    "Video",
    "SQL on FHIR",
    "Analytics"
  ],
  "tldr": "Learn SQL on FHIR through a hands-on workshop: set up PostgreSQL, Grafana, and Jupyter; create view definitions to flatten FHIR data; build interactive dashboards with patient demographics and medication patterns."
}
---
This hands-on session introduces [SQL on FHIR](/blog/sql-on-fhir-in-postgresql), a specification that transforms nested FHIR data into flat, queryable tables. Led by Nikolai Ryzhikov, CTO of Health Samurai, at FHIR DevDays 2025, the workshop walks you through setting up a complete analytics environment and building real dashboards with patient data.

**This workshop is ideal for**: anyone who wants to run [SQL on FHIR](/articles/sql-on-fhir-an-inside-look) data.

**You'll learn to:** 
- Set up a complete analytics environment with Docker, PostgreSQL, Grafana, and Jupyter notebooks
- Create [view definitions](/blog/what-is-a-viewdefinition) that flatten FHIR resources into queryable tables by use of five core functions (column, where, forEach, select, union)
- Build interactive dashboards in Grafana that show patient demographics, conditions by age group, and medication patterns
- Integrate with Python data science workflows and create lightweight JavaScript visualizations
- Work with real implementations across different databases while you use the same view definitions

![](image-1.avif)![](image-2.avif)

## Workshop video


{% embed url="https://youtu.be/vFcMoK2F7n4" %}

> **Workshop materials:** Explore related analytics tooling in the Aidbox ecosystem repository: [**aidbox-analytics**](https://github.com/Aidbox/aidbox-analytics) – let’s build some views and queries.

To discuss or follow updates, connect with Nikolai on [**LinkedIn**](https://www.linkedin.com/in/nikolai-ryzhikov-586a6913/).

SQL on FHIR is an open initiative that welcomes contributions from implementers and users. Join the working group, [**participate in discussions**](https://chat.fhir.org/#narrow/stream/179219-analytics-on-FHIR), and help shape the [**specification**](https://build.fhir.org/ig/FHIR/sql-on-fhir-v2/)[](https://build.fhir.org/ig/FHIR/sql-on-fhir-v2/).

Health Samurai's [**SQL on FHIR**](https://www.health-samurai.io/docs/aidbox/modules/sql-on-fhir) engine is currently in preview. Share use cases or contact us via the form below.
