A service that implements the FHIR standard
Clone or download
garamamo Store Identity Provider information in datastore #276 (#315)
* Initial split of health.fhir.cosmosdb to health.cosmosdb

* Register services, add dummy controller for testing

* Move common CosmosDb services to their own registration

* Initial collection initializers

* Add support for assembly specific stored procedures

* Removing files moved to shared cosmos library

* Create base cosmosdocumentqueryfactory and overloaded for fhir. Rename CosmosDataStore to FhirDataStore

* Update FhirDataStore to use FhirDocumentClient

* Update fhir cosmos integration test datastore for refactor

* Code cleanup, add isSystem back to resourceWrapper

* Remove unused configs.

* Add initial database and collection throughput options

* Consolidate base cosmos db objects

* Add back in update operation

* Update package refernce.

* Update reference.

* Update to not set initial database throughput

* Change to use base constructor for collection initializer.

* Refactor collectionInitializer

* Add back in initial database throughput

* Make IdentityProvider immutable.

* PR feedback

* Add abstractions to hold system wide exception types.

* PR feedback.

* Refactor naming to be more consistent in use of fhir*

* Separate collection settings to respective sections in config.

* Refactor base CosmosDb registration

* PR feedback.

* Catch 429 in Control Plane datastore, remove control plane controller.

* Fix up merge.

* Cleanup, fix merge.

* Add some basic unit tests.

* PR Feedback.

* Add assert.same

* Initial cut for Store Identity Provider information in datastore.

* Unit Tests added.

* Skipped test.

* Removing spurious orig files.

* Added a generic control plane api for reads.
Added stored proc for harddelete.
Refactored some common code out of the fhir cosmos db project to common cosmos db project.

* Added
Issuer and other metadata Validation on authority
Identity Provider validation
More tests to cover validation

* Renamed the Index method name appropriately for getallidentityproviders.

* Removed the testing controller for controlplane.
Also removed a unit test project for control plane with only one test that was skipped.

* PR comments addressed.

* Added a switch in the generic method for delete.

* PR feedback addressed.

* Removed version and kept etag.

* Updated rbac test.

* PR feedback addressed.

* Taking care of paging for get.
Latest commit 8cb98db Jan 14, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Create user story template (#207) Jan 2, 2019
build Update package.yml for build configuration and no-build. (#117) Oct 19, 2018
docs Update Roadmap.md Jan 2, 2019
release/scripts/PowerShell Adding AadSmartOnFhirProxy Dec 19, 2018
samples Fix smart on fhir test, cleanup code (#302) Dec 20, 2018
src Store Identity Provider information in datastore #276 (#315) Jan 14, 2019
test Fixed the regression bug where the total count was not being set. (#320) Jan 14, 2019
tools/Microsoft.Health.Extensions.BuildTimeCodeGenerator Updates package 'Ensure.That' to version '8.1.1' (#327) Jan 9, 2019
.editorconfig Initial code commit Sep 11, 2018
.gitattributes Initial code commit Sep 11, 2018
.gitignore Introduces testauthenvironment.json for defining roles, users, apps, … Oct 12, 2018
CONTRIBUTING.md Initial draft of the contributing guideline. (#57) Sep 25, 2018
CustomAnalysisRules.Test.ruleset Initial code commit Sep 11, 2018
CustomAnalysisRules.ruleset Fix smart on fhir test, cleanup code (#302) Dec 20, 2018
Directory.Build.props Add props file, disable source link on osx. (#265) Jan 2, 2019
GeoPol.xml GeoPolitical: Updated files into master branch Oct 30, 2018
LICENSE Initial commit Aug 23, 2018
Microsoft.Health.Fhir.sln Store Identity Provider information in datastore #276 (#315) Jan 14, 2019
README.md Fixed README.md - Link to pull requests led to 404 page. (#199) Nov 14, 2018
THIRDPARTYNOTICES.md Updates package 'Ensure.That' to version '8.1.1' (#327) Jan 9, 2019
global.json Fix builds (#301) Dec 20, 2018
nuget.config Initial code commit Sep 11, 2018
stylecop.json Initial code commit Sep 11, 2018
testauthenvironment.json Changes per code review Jan 2, 2019


FHIR Server for Azure

A .NET Core implementation of the FHIR standard.

CI Status

FHIR Server for Azure is an open-source implementation of the emerging HL7 Fast Healthcare Interoperability Resources (FHIR) specification designed for the Microsoft cloud. The FHIR specification defines how clinical health data can be made interoperable across systems, and the FHIR Server for Azure helps facilitate that interoperability in the cloud. The goal of this Microsoft Healthcare project is to enable developers to rapidly deploy a FHIR service.

With data in the FHIR format, the FHIR Server for Azure enables developers to quickly ingest and manage FHIR datasets in the cloud, track and manage data access and normalize data for machine learning workloads. FHIR Server for Azure is optimized for the Azure ecosystem:

  • Scripts and ARM templates are available for immediate provisioning in the Microsoft Cloud
  • Scripts are available to map to Azure AAD and enable role-based access control (RBAC)

FHIR Server for Azure is built with logical separation, enabling developers with flexibility to modify how it is implemented, and extend its capabilities as needed. The logic layers of the FHIR server are:

  • Hosting Layer – Supports hosting in different environments, with custom configuration of Inversion of Control (IoC) containers.
  • RESTful API Layer – The implementation of the APIs defined by the HL7 FHIR specification.
  • Core Logic Layer – The implementation of the core FHIR logic.
  • Persistence Layer – A pluggable persistence provider enabling the FHIR server to connect to virtually any data persistence utility. FHIR Server for Azure includes a ready-to-use data persistence provider for Azure Cosmos DB (a globally replicated database service that offers rich querying over data).

FHIR Server for Azure empowers developers – saving time when they need to quickly integrate a FHIR server into their own applications or providing them with a foundation on which they can customize their own FHIR service. As an open source project, contributions and feedback from the FHIR developer community will continue to improve this project.

Privacy and security are top priorities and the FHIR Server for Azure has been developed in support of requirements for Protected Health Information (PHI). All the Azure services used in FHIR Server for Azure meet the compliance requirements for Protected Health Information.

This open source project is fully backed by the Microsoft Healthcare team, but we know that this project will only get better with your feedback and contributions. We are leading the development of this code base, and test builds and deployments daily.


  • Deployment: Describes how to deploy FHIR Server for Azure.
  • Azure Active Directory Application Registrations: Describes how to configure Azure Active Directory (AAD) for use with FHIR Server for Azure.
  • Authentication: Describes the authentication settings for the FHIR server and how to make use of it in development and test scenarios.
  • Roles: Describes how the FHIR Server for Azure role-based access control (RBAC) system works.
  • Search: Describes how search is implemented for the FHIR Server for Azure.
  • Debugging: Describes how to debug FHIR Server for Azure using Visual Studio.
  • Testing with Postman: Describes how to use Postman for testing FHIR Server for Azure.

More Information


This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

There are many other ways to contribute to FHIR Server for Azure.

See Contributing to FHIR Server for Azure for more information.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

FHIR® is the registered trademark of HL7 and is used with the permission of HL7.