Skip to main content

Server 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

Multi-Version FHIR Support

Ignixa supports multiple FHIR versions simultaneously:

VersionStatusNotes
R4✅ Full SupportPrimary version
R4B✅ Full SupportR4 with extensions
R5✅ Full SupportLatest normative
R6🚧 PreviewBallot 2 support
STU3✅ Legacy SupportFor backward compatibility

High Performance

  • Streaming-First Architecture - Zero-copy serialization minimizes memory footprint
  • Minimal API - Built on ASP.NET Core Minimal APIs for lowest overhead
  • Compiled FHIRPath - Expression caching and compilation for fast evaluation

Enterprise Features

  • Multi-Tenancy - Physical data isolation between tenants
  • Bulk Operations - $export and $import with DurableTask framework
  • Three-Tier Validation - Fast, Spec, and Profile validation levels

Architecture

Ignixa follows Clean Architecture with strict layer separation:

┌─────────────────────────────────────────────┐
│ API Layer │
│ (Minimal API Endpoints) │
├─────────────────────────────────────────────┤
│ Application Layer │
│ (CQRS Handlers, Business Logic) │
├─────────────────────────────────────────────┤
│ Domain Layer │
│ (Interfaces, Models, Contracts) │
├─────────────────────────────────────────────┤
│ DataLayer │
│ (SQL Server, FileSystem, BlobStorage) │
└─────────────────────────────────────────────┘

Project Structure

src/
├── Application/
│ ├── Ignixa.Api/ # HTTP endpoints
│ ├── Ignixa.Application/ # CQRS handlers
│ ├── Ignixa.Domain/ # Domain models
│ └── Ignixa.Application.Operations/
├── Core/ # Reusable SDK packages
│ ├── Ignixa.Abstractions/
│ ├── Ignixa.Serialization/
│ ├── Ignixa.FhirPath/
│ └── ...
└── DataLayer/
├── Ignixa.DataLayer.SqlEntityFramework/
├── Ignixa.DataLayer.FileSystem/
└── Ignixa.DataLayer.BlobStorage/

Supported Operations

REST API

OperationEndpointDescription
ReadGET /{type}/{id}Retrieve a resource
CreatePOST /{type}Create a new resource
UpdatePUT /{type}/{id}Replace a resource
PatchPATCH /{type}/{id}Partial update
DeleteDELETE /{type}/{id}Remove a resource
SearchGET /{type}?paramsSearch resources
HistoryGET /{type}/{id}/_historyVersion history
CapabilitiesGET /metadataCapabilityStatement

Bundle Operations

  • Batch - Independent operations in a single request
  • Transaction - ACID-compliant transactional bundles

Extended Operations

OperationDescription
$validateValidate a resource against profiles
$exportBulk data export (async)
$importBulk data import (async)
$member-matchPatient matching

Storage Options

Ignixa supports multiple storage backends:

ProviderUse CaseFeatures
SQL ServerProductionFull ACID, advanced indexing
File SystemDevelopmentZero setup, rapid prototyping
Blob StorageArchivalScalable, cost-effective

Getting Started

  1. Installation - Deploy the server
  2. Quick Start - First FHIR requests
  3. Configuration - Customize settings