How to add a FHIR API to an existing database
summary
A FHIR API is added on top of an existing store by building a SQL-backed persistence provider for the FHIR Server for Azure using C#/.NET Core and targeting Azure SQL (Hyperscale). The design stores extracted search-parameter values in type-specific tables, uses surrogate IDs, and keeps history while maintaining fast lookups with filtered non-clustered indexes. No ORM is used; queries are generated from expression trees, ingestion uses table-valued parameters, and bundle ingestion improves throughput ~5x on a test dataset of ~100k patients.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 1:44Outline
- 2:42What is FHIR
- 4:09Why FHIR
- 5:55Goals
- 6:31Service Goals
- 8:19Search Performance
- 8:49Sample Patient Resource
- 9:37Search Parameters
- 11:46Search Expressions
- 12:44Database Tables
- 18:06Surrogate IDs
- 20:22Indexes
- 22:54Composite Searches
- 24:58Numeric Ranges
- 25:27Optimization
- 26:28Demo
- 33:53No ORM
- 35:12Table Value Parameters
- 36:12Statement Generation
- 36:38Expression Tree
- 38:04Table Expressions
- 39:46Roadmap
- 42:56Outro
related talks
47mStoring data using FHIR - a good idea?
29mSQL on FHIR 2.0
16mThe story of FHIR data exchange and storage combined
20mFHIR SQL Builder
01h 02mNot your Father's SQL Server: Developer Innovations in Data Storage
43mIncrease developer velocity with Azure SQL Database from data to API
34mFHIR Projects
20mAdventures in FHIR Resource Syncing and Caching
