Project Status: Advanced Research / Reference Implementation. This is a personal project exploring "next-gen" architecture. It implements and pushes the advanced parts of the FHIR specification but is not a supported production product. This project heavily uses the most advanced coding AI agents (with a lot of manual validation and code-reviews) to implement and iterate quickly.
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.
- 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.
- 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
$exportand$importoperations.
- 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.
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 auto-provisioned tenant databases.
- Storage Accounts for FHIR data and DurableTask orchestration.
- Managed Identity for zero-trust, passwordless security.
Single-Tenant Deployment (One-Click):
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
The official image is available on GitHub Container Registry:
docker pull ghcr.io/brendankowitz/ignixa-fhir:release
For a complete, high-performance 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
.envfile (see.env.example) to set theSQL_SA_PASSWORDand optionally the image tag.
- dotnet 9.0 SDK
- Docker (optional, for SQL Server tests)
# 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.
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.
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 tabular formats (Parquet/CSV) using SQL-on-FHIR ViewDefinitions. |
| ignixa-validator | High-performance FHIR resource validation (JSON) against official profiles. |
Install any tool globally:
dotnet tool install --global Ignixa.FhirFakes.Cli
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).
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.
| 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.Validation | Three-tier validation engine (Fast, Spec, Profile) for robust data integrity. |
See the Core SDK Documentation for full details.
We welcome contributions! Please see our Contributing Guidelines and the Developer Guide for details on setting up your environment and submitting PRs.
This project is licensed under the MIT License - see the LICENSE file for details.
Ignixa is inspired by and incorporates patterns from excellent open-source projects:
Ignixa β Intelligent Gateway for Next-generation Interoperability and eXtensible APIs.
