Nirmitee.io

For healthcare product teams, platform engineers and health-data leaders

FHIR Data Platform and FHIR Server Development

We build FHIR data platforms on managed cloud FHIR stores and open-source or commercial FHIR servers. Ingestion from HL7 v2, C-CDA and databases, US Core profile validation, SMART on FHIR access, Bulk Data export to your warehouse and the operating model, delivered as one working platform rather than a provisioned endpoint.

Plan your FHIR data platform

Book a 30-minute call with our FHIR platform lead

Healthtech companies, payers, provider groups and digital health platforms. Updated September 26, 2026.

Inside the workflow
The platform behind the FHIR API
  1. 01
    Ingest and convert

    HL7 v2, C-CDA, CSV and database sources mapped to FHIR R4

  2. 02
    Validate and store

    US Core profiles, terminology and identifiers in the FHIR store

  3. 03
    Serve and authorize

    REST API, search, SMART on FHIR scopes, consent and audit

  4. 04
    Export and analyze

    Bulk Data NDJSON to BigQuery, Snowflake or Databricks

Illustrative workflow · scope tailored to your environment

The short answer

FHIR data platform development, in short

We choose between a managed FHIR store (AWS HealthLake, Azure Health Data Services, Google Cloud Healthcare API) and a self-run or commercial FHIR server (HAPI FHIR, Medplum, Aidbox) against your workload, then build the platform: ingestion and conversion to FHIR R4, US Core validation, SMART on FHIR authorization, Bulk Data export for analytics and a tested operating model. Our open-source headless EHR on FHIR R4 passed 47 of 47 ONC (g)(10) SMART App Launch standalone patient tests in Inferno.

Read our FHIR data store comparison

Start with the real problem

A provisioned FHIR endpoint is not yet a FHIR data platform.

The cloud console creates a FHIR store in minutes. The platform work is everything around it: mapping source data to resources and profiles, resolving identifiers, enforcing access and consent, keeping search fast, exporting for analytics and running upgrades and recovery. We scope and deliver that work explicitly so it does not fall between the cloud service, the source systems and your application.

What we build

FHIR data platforms and FHIR servers we build

Each build names the standard, the store and the output your team reviews.

Managed cloud FHIR store implementation

AWS HealthLake, Azure Health Data Services FHIR service or Google Cloud Healthcare API FHIR stores, configured with profiles, identity, private networking, audit logging and infrastructure as code.

Create a FHIR store on Google Cloud
The engineering insideEnvironment design, Terraform or Bicep modules and access tests

Custom FHIR server on HAPI, Medplum or Aidbox

A FHIR server you run, with custom operations, search parameters, subscriptions, multi-tenancy and persistence tuned for your query patterns.

HAPI FHIR performance tuning
The engineering insideServer build, performance tests and upgrade plan

FHIR facade over an existing database

A FHIR R4 API in front of your current clinical database, mapping tables to resources without moving the data, for patient access, payer or partner APIs.

FHIR facade architecture
The engineering insideResource mappings, CapabilityStatement and Inferno results

Ingestion and conversion to FHIR

HL7 v2 ADT and ORU and C-CDA documents converted to FHIR R4 with Azure $convert-data templates, Mirth Connect or custom mappers, validated against US Core before write.

HL7 v2 to FHIR migration guide
The engineering insideMapping specifications and validation reports

Bulk export and FHIR analytics

Bulk Data $export to NDJSON, streaming export to BigQuery, SQL on FHIR view definitions and loads into Snowflake or Databricks for population analytics.

Healthcare data engineering services
The engineering insideExport jobs, flattened views and reconciliation

SMART on FHIR access, consent and audit

OAuth 2.0 and SMART scopes, patient and practitioner launch, consent enforcement at the API, AuditEvent and Provenance on every write.

FHIR integration services
The engineering insideAuthorization design and scope test suite

Your starting point

Where FHIR data platform projects start

01

Choose and launch a FHIR store

You need a FHIR backend for a new product or API program and want the store chosen against real requirements, not a vendor default.

The useful outputA store decision record, then a working environment with profiles, access and CI/CD.
02

Load existing data into FHIR

Records live in an EHR, a legacy database or HL7 feeds, and the platform needs them as validated FHIR resources with provenance.

The useful outputMapped, validated and reconciled resources with an ongoing ingestion path.
03

Fix or migrate an existing FHIR platform

Search is slow, costs are unclear, or the platform must move, for example off Azure API for FHIR before its 30 September 2026 retirement.

The useful outputA remediation or migration plan, executed with reconciliation and a cutover record.

The Engineering Engagement

FHIR platform engineering scope and deliverables

Workstreams are selected around your priorities. Each comes with an output your team can inspect, test and own.

01

Store selection and architecture

Compare managed and self-run options against FHIR version, operations, search, tenancy, region, identity and cost.

02

Profiles and terminology

Select US Core and program implementation guides, load StructureDefinitions and ValueSets, and define identifier systems.

03

Ingestion and mapping

Convert HL7 v2, C-CDA, CSV and database records to FHIR R4 with provenance and a rejected-record path.

04

Authorization and consent

Implement SMART on FHIR scopes, user and system clients, consent enforcement and audit logging.

05

Search, performance and export

Tune search parameters and indexes, load-test common queries and set up Bulk Data export to analytics.

06

Operations

Monitoring, backup and restore, upgrade path, release process and cost visibility for the chosen store.

Compare your options

FHIR store comparison: HAPI, Google, AWS, Azure, Medplum and Aidbox

Six common foundations for a FHIR data platform. Confirm current versions, quotas and regions in each vendor's documentation during architecture review.

FHIR storeHosting modelFHIR versionsStrengthsPlan for
HAPI FHIR JPA serverOpen source (Apache 2.0), Java, self-hosted on your databaseDSTU2 to R5Most widely used open-source server, full control, custom operations and interceptorsYou run the database, tuning, upgrades and security patches
Google Cloud Healthcare APIManaged FHIR stores in Google Cloud datasetsDSTU2, STU3, R4Streaming export to BigQuery, Pub/Sub notifications, built-in de-identify operationGoogle Cloud only; store configuration and quotas per project
AWS HealthLakeManaged FHIR data stores on AWSR4NDJSON import and export from S3, SMART on FHIR support, integrated medical NLPSupported search and operations subset; one FHIR version per data store
Azure Health Data Services FHIR serviceManaged FHIR service in an Azure workspaceR4$convert-data for HL7 v2 and C-CDA, $export, Microsoft Entra ID accessAzure API for FHIR retires 30 September 2026; plan the migration
MedplumOpen source, TypeScript; self-hosted or Medplum hostedR4Headless EHR toolkit with bots, subscriptions, access policies and React componentsAdopts Medplum's application model alongside the FHIR API
AidboxCommercial FHIR server on PostgreSQL by Health SamuraiR4, R4B, R5SQL on FHIR views, profile validation, multi-tenancy, direct SQL accessCommercial license terms for production use

Your cloud or vendor agreement, including its BAA, sits with the vendor. We sign a BAA with you for our work with PHI.

Expertise is in the decisions

FHIR store decisions to settle before you build

Decision / 01

Managed store or self-run server

A managed store removes database operations but limits custom operations and search. A self-run HAPI, Medplum or Aidbox server gives control and moves upgrades, patching and recovery to your team.

Decision / 02

FHIR store or analytics warehouse

A FHIR store serves applications through a live API. Population analytics belong in a warehouse or lakehouse fed by Bulk Data export or SQL on FHIR views.

Decision / 03

Profiles before data

Load US Core and program profiles before the first write. Retrofitting validation onto stored resources means reprocessing the data.

Decision / 04

Identifiers and patient matching

Define identifier systems per source and a matching approach before merging records. A wrong merge in a FHIR store is expensive to undo.

Decision / 05

Tenancy and residency

Choose a store per tenant, a partition per tenant or compartment-level access, and confirm the regions each option supports.

Decision / 06

Consent enforcement

A Consent resource records a decision; the API still needs code that enforces it on every read and search.

A clear engagement also has clear boundaries.

Cloud and vendor contracts

You hold the cloud subscription, vendor licenses and their BAAs. We design and build within them.

Source system access

EHR vendors and source owners grant exports, feeds or database access. We prepare the technical requests and test them.

Clinical content

Clinical owners approve mappings with clinical meaning, such as problem lists and medication reconciliation rules.

Application features

Product screens built on the FHIR API are scoped with our EHR and product engineering teams.

Timeline

FHIR data platform timeline

Typical durations for a first production-ready FHIR platform. Source access and profile decisions set the pace.

01

Architecture and store selection

2 to 3 weeks. Requirements, store comparison against them, profile selection and the access model.

02

Foundation

3 to 5 weeks. Environments, infrastructure as code, profiles, identity, SMART clients and CI/CD.

03

Ingestion and APIs

4 to 8 weeks. Source mappings, validation, provenance, search tuning and Bulk Data export.

04

Hardening and go-live

2 to 4 weeks. Load, recovery and security testing, runbook and handover.

Delivered work

FHIR platform work we have delivered

Client names are withheld; each is a real engagement. Our open-source FHIR work is public on GitHub.

Open-source headless EHR on FHIR R4

A headless EHR with a FHIR R4 API, Bulk Data export and SMART App Launch that passed 47 of 47 ONC (g)(10) SMART App Launch standalone patient tests in Inferno on 11 June 2026.

EngagementOpen source · Public repository
View the repository on GitHub →

Open-source Da Vinci CRD, DTR and PAS servers

FHIR servers for Coverage Requirements Discovery, Documentation Templates and Rules and Prior Authorization Support, tested with the Inferno test kits.

EngagementOpen source · Public repositories
View the CRD server on GitHub →

FHIR-native provider platform on Medplum

Scheduling, charts, care plans and billing built with a Medplum FHIR server as the only backend. Keycloak single sign-on is bridged to Medplum with PKCE and OAuth token exchange, and bookings use FHIR batch transactions so Appointment and Slot change together.

EngagementDigital health company · Clinical web platform

openEHR research DataHub with FHIR export

An openEHR clinical data repository deployed on Kubernetes with identity, a master patient index, template validation before data lands, researcher roles and cohort export to FHIR or openEHR.

EngagementEuropean research university · Deployment and integration

From discussion to delivery

How we deliver a FHIR data platform

  1. 01

    Frame the requirements

    Resources, operations, profiles, tenancy, region and the consumers of the API and the exports.

  2. 02

    Choose and prove the store

    Load representative synthetic data, run the key searches and access paths, and confirm the choice.

  3. 03

    Build the platform

    Ingestion, validation, authorization, export and observability, released through CI/CD.

  4. 04

    Operate and hand over

    Recovery tests, upgrade plan, runbook and a support model your team can own.

Start with discovery, a defined build, or a focused modernization.

We agree the scope, dependencies, acceptance criteria and commercial model before implementation. Your existing team can stay involved throughout.

Find the right starting point ↗

Before you commit

FHIR data platform questions buyers ask

Explore our integration field guide ↗
What is a FHIR data platform?

It is a FHIR store or server plus the engineering around it: ingestion and conversion of source data to FHIR resources, profile and terminology validation, SMART on FHIR authorization, consent and audit, search performance, Bulk Data export for analytics, and the operating model that keeps it running.

What is the difference between a FHIR server and a FHIR store?

The terms overlap. A FHIR server implements the FHIR REST API and persistence, such as HAPI FHIR, Medplum or Aidbox. A FHIR store is the managed-cloud term for a FHIR data store inside Google Cloud Healthcare API, AWS HealthLake or Azure Health Data Services.

Should we use HAPI FHIR or a managed cloud FHIR service?

Choose a managed service when your team wants the cloud provider to run the database and its supported operations cover your needs. Choose HAPI FHIR or another self-run server when you need custom operations, search behavior, deployment location or full control, and can own upgrades and recovery.

Which cloud FHIR server is best: AWS HealthLake, Azure or Google?

The best fit usually follows your existing cloud and analytics stack. Google Cloud Healthcare API pairs with BigQuery streaming export, AWS HealthLake with S3-based NDJSON import and export, and Azure Health Data Services with $convert-data for HL7 v2 and C-CDA. We compare them against your required resources, searches and regions.

Is Azure API for FHIR being retired?

Yes. Microsoft retires Azure API for FHIR on 30 September 2026, and new deployments have been blocked since 1 April 2025. Workloads move to the Azure Health Data Services FHIR service; we plan and execute that migration with export, import, reconciliation and client cutover.

Can you build a custom FHIR server?

Yes. We build on HAPI FHIR, Medplum or Aidbox, or write a purpose-built server where requirements justify it. Our open-source headless EHR exposes a FHIR R4 API with SMART App Launch and passed 47 of 47 ONC (g)(10) SMART App Launch standalone patient tests in Inferno.

How do you load existing data into a FHIR store?

We map each source to FHIR R4 resources, validate against US Core or your profiles, preserve source identifiers and Provenance, and load through transaction bundles or the store's bulk import. Every load is reconciled to source counts, with rejected records routed for review.

Do we need a FHIR store for analytics?

Usually not as the analytics engine. A FHIR store serves applications; analytics runs best in a warehouse or lakehouse fed by Bulk Data $export, BigQuery streaming export or SQL on FHIR views.

How do you handle multi-tenancy and data residency?

We choose between a store per tenant, partitions or compartment-based access based on isolation and cost, and deploy in the regions your contracts require. Access rules are tested per tenant before go-live.

Does a cloud FHIR service make our product HIPAA compliant?

The service provides eligible infrastructure under the vendor's BAA. Your configuration, access control, audit, consent enforcement and procedures complete the picture, and those are what we build and document. We sign a BAA with you for our work with PHI.

How long does it take to build a FHIR data platform?

A first production-ready platform typically takes 11 to 20 weeks: 2 to 3 weeks of architecture and store selection, 3 to 5 weeks of foundation, 4 to 8 weeks of ingestion and APIs and 2 to 4 weeks of hardening.

What drives the cost of a FHIR data platform?

The number and format of sources, profiles and custom operations, tenancy and region requirements, search and export volumes, the managed or self-run choice and the operating support you need. We estimate after the architecture phase.

A useful first conversation

Plan your FHIR data platform.

Tell us what exists today, who uses it and where the workflow breaks. We’ll discuss the scope, access dependencies and the next practical step.

Come with context. Leave with a clearer direction.

A product overview and a de-identified workflow are enough to start. No patient records or credentials are needed.

Book a 30-minute call with our FHIR platform lead ↗Prefer to contact the team directly? ↗

Please exclude patient data and credentials. We use these details to respond to your enquiry. Privacy policy

Thank you. Your enquiry has been received. Our team will review your requirements.