Skip to content

About

A blazing-fast multi-FHIR, multi-tenant, multi-database, data streaming reference implementation FHIR Server built in dotnet.

Topics

Resources

Contributing

Stars

5 stars

Watchers

2 watching

Forks

Latest commit

Β 

History

292 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ignixa Logo

Ignixa FHIR Server

High-Performance, Multi-Tenant, Cloud-Native FHIR Server for dotnet

dotnet FHIR NuGet Docker License Docs


Project Status: Advanced research / reference implementation exploring "next-gen" architecture. This project heavily uses the most advanced coding AI agents (with a lot of manual validation and code-reviews) to implement and iterate quickly.


Overview

Ignixa is a modular, high-performance FHIR ecosystem built on .NET. It serves as both a Reference Server and a suite of Standalone Tools offering a robust foundation for healthcare data interoperability.

Designed for the cloud, Ignixa supports multi-tenancy out of the box, with data isolation and configurable storage backends (currently SQL Server) and bulk operations supporting Azure Blob Storage.

✨ Key Features

πŸ₯ Core FHIR Capabilities

  • Multi-Version Support: Seamlessly handles R4, R4B, R5, R6-Ballot2, and STU3.
  • Comprehensive API: Full CRUD, Search, History, Batch/Transaction Bundles, and Patch (FHIRPath Patch).
  • Advanced Validation: Three-tier validation engine (Fast, Spec, Profile) ensuring data integrity.
  • Extensive Search: Support for standard and advanced search parameters, including chaining and includes.

⚑ Performance & Scalability

  • Streaming-First: Zero-copy serialization and response streaming minimize memory footprint, even for large datasets.
  • High Throughput: Built on ASP.NET Core Minimal APIs for the lowest overhead.
  • Background Processing: Integrated DurableTask framework for reliable, asynchronous bulk $export and $import operations.

🏒 Enterprise Ready

  • Multi-Tenancy: Built-in tenant isolation (Physical partitioning).
  • Production Storage: robust SQL Server (EF Core) provider with optimized indexing.
  • Cloud Native: Container-ready with Azure integration (App Service, SQL Database, Storage).
  • Clean Architecture: Strict separation of concerns (Domain, Application, Infrastructure, API) facilitates maintenance and extension.

πŸ“¦ Deployment

Azure

Ignixa can be deployed to Azure using Bicep (Infrastructure as Code). This provisions a complete, secure environment with:

  • App Service (Linux) for hosting the container.
  • SQL Server, with tenant database schema deployed by running the schema-upgrade CLI once after first deploy (see the Azure Deployment Guide) -- it is not auto-provisioned.
  • Storage Accounts for FHIR data and DurableTask orchestration.
  • Managed Identity for zero-trust, passwordless security.

Single-Tenant Deployment (One-Click):

Deploy to Azure

Or use the CLI:

az deployment group create \
  --resource-group ignixa-dev \
  --template-file deploy/azure/azuredeploy.json \
  --parameters appName=ignixa-demo

Advanced: Bicep Templates for Multi-Tenant Deployment (e.g., 10 tenants):

az deployment group create \
  --resource-group ignixa-prod \
  --template-file deploy/azure/main.bicep \
  --parameters appName=ignixa-prod tenantCount=10

πŸ“š View Complete Azure Deployment Guide

Docker

The official image is available on GitHub Container Registry:

docker pull ghcr.io/brendankowitz/ignixa-fhir:release

SQL Server via Docker Compose

For a complete, high-performance local development experience with SQL Server, use Docker Compose. This enables full ACID transactions, advanced indexing, and concurrency support.

docker compose up -d

The server will be available at http://localhost:8080/metadata.

Configuration: You must create a .env file (see .env.example) to set the SQL_SA_PASSWORD and optionally the image tag.

Note: This Docker Compose setup is for local development only. For production deployments, see the Azure Deployment Guide, which uses Managed Identity for authentication instead of hardcoded credentials.

πŸ› οΈ Quick Start (Local Development)

Prerequisites

Build & Run

# 1. Clone the repository
git clone https://github.com/brendankowitz/ignixa-fhir.git
cd ignixa-fhir

# 2. Build the solution
dotnet build All.sln

# 3. Run the API (defaults to File System storage for dev)
cd src/Ignixa.Api
dotnet run

Access the metadata endpoint at https://localhost:5001/metadata.

Configuration

Ignixa uses standard appsettings.json for configuration.

Enable SQL Server (Recommended for Production):

{
  "Storage": {
    "Provider": "SqlServer",
    "ConnectionString": "Server=(localdb)\mssqllocaldb;Database=IgnixaFhir;Trusted_Connection=True;"
  }
}

See appsettings.json for full configuration options.

πŸ’» Developer Tools

Ignixa includes a suite of powerful CLI tools to accelerate development and testing.

Tool Description
ignixa-fakes Generate realistic synthetic patient data, clinical scenarios, and populations at scale.
ignixa-sqlonfhir Transform FHIR data into Parquet, CSV, or NDJSON using SQL-on-FHIR ViewDefinitions, including batch run/preview/validate workflows.
ignixa-validator High-performance FHIR resource validation (JSON) against official profiles.

Install any tool globally:

dotnet tool install --global Ignixa.FhirFakes.Cli

πŸ—οΈ Architecture

Ignixa follows a strict Clean Architecture pattern using CQRS (Command Query Responsibility Segregation) with Medino.

  • API: Minimal API endpoints, middleware, and presentation logic.
  • Application: Business logic, CQRS Handlers (Commands/Queries).
  • Domain: Core entities, value objects, and repository interfaces.
  • DataLayer: Infrastructure implementations (SQL, FileSystem, BlobStorage).

🧩 Ignixa Core SDK

The heart of Ignixa is a set of high-performance, reusable dotnet libraries available on NuGet. These can be used independently to build custom FHIR applications. Packages are versioned by stability level (stable / -beta / -alpha) β€” see the package stability matrix and ADR 2606.

Package Feature
Ignixa.FhirFakes Schema-based test data generator for creating realistic synthetic FHIR resources and clinical scenarios.
Ignixa.FhirMappingLanguage FHIR Mapping Language (FML) parser and StructureMap engine.
Ignixa.FhirPath A fast, compiled FHIRPath engine.
Ignixa.NarrativeGenerator FHIR narrative generation using Scriban templates with FHIRPath support.
Ignixa.PackageManagement NPM-based package manager for downloading and caching FHIR implementation guides.
Ignixa.Search Search parameter definitions, indexing, and high-speed value extraction.
Ignixa.Serialization System.Text.Json based serialization optimized for high-throughput.
Ignixa.Specification FHIR structure definitions and auto-generated providers for R4/R4B/R5/R6/STU3.
Ignixa.SqlOnFhir Implementation of the SQL on FHIR v2 specification for data transformation.
Ignixa.TestScript.Suites The canonical FHIR conformance corpus as TestScript suites, shipped as NuGet content so any server can run it.
Ignixa.Validation Three-tier validation engine (Fast, Spec, Profile) for robust data integrity.

See the Core SDK Documentation for full details.

Conformance suites

The canonical FHIR TestScript conformance corpus lives in src/Core/Ignixa.TestScript.Suites/testscripts/ and is published as the Ignixa.TestScript.Suites package so other servers can run it. Point the matrix CLI at it with ignixa-matrix run --tests ./src/Core/Ignixa.TestScript.Suites/testscripts; results are published to the conformance matrix.

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines and the Developer Guide for details on setting up your environment and submitting PRs.

πŸ“„ License

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

πŸ™ Acknowledgments

Ignixa is inspired by and incorporates patterns from excellent open-source projects:


Ignixa β€” Intelligent Gateway for Next-generation Interoperability and eXtensible APIs.

About

A blazing-fast multi-FHIR, multi-tenant, multi-database, data streaming reference implementation FHIR Server built in dotnet.

Topics

Resources

Contributing

Stars

5 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages