FHIR Server Samples
This respository contains example applications and scenarios that show use of the FHIR Server for Azure and the Azure API for FHIR.
The scenario is meant to illustrate how to connect a web application to the FHIR API. The scenario also illustrates features such as the SMART on FHIR Active Directory Proxy. It can be deployed using the Azure API for FHIR PaaS server:
Or the open source FHIR Server for Azure:
In both cases a storage account will be deploy and in this storage account there is a BLOB container called fhirimport
, patient bundles generated with Synthea can dumped in this storage container and they will be ingested into the FHIR server. The bulk ingestion is performed by an Azure Function.
The environments can also optionally be configured to support $export
. To enable $export
, add the -EnableExport $true
parameter to the script below. The $export
operation will produce a new line delimited json (ndjson) for each resource type. These ndjson files are easily consumed with something like Databricks (Apache-Spark). Please see the analytics folder for some details and example queries. Note that the Databricks environment is not deployed automatically with the sandbox and must be set up separately.
Note: To enable
$export
you must have subscription rights that allow you to set data plane access roles for storage accounts, e.g. you must be a subscription owner.
Prerequisites
Before deploying the samples scenario make sure that you have Az
and AzureAd
powershell modules installed:
Install-Module Az
Install-Module AzureAd
Deployment
To deploy the sample scenario, first clone this git repo and find the deployment scripts folder:
git clone https://github.com/Microsoft/fhir-server-samples
cd fhir-server-samples/deploy/scripts
Log into your Azure subscription:
Login-AzAccount
Connect to Azure AD with:
Connect-AzureAd -TenantDomain <AAD TenantDomain>
NOTE The connection to Azure AD can be made using a different tenant domain than the one tied to your Azure subscription. If you don't have privileges to create app registrations, users, etc. in your Azure AD tenant, you can create a new one, which will just be used for demo identities, etc.
Then deploy the scenario with the Open Source FHIR Server for Azure:
.\Create-FhirServerSamplesEnvironment.ps1 -EnvironmentName <ENVIRONMENTNAME> -UsePaaS $false
or the managed Azure API for FHIR:
.\Create-FhirServerSamplesEnvironment.ps1 -EnvironmentName <ENVIRONMENTNAME> -UsePaaS $true
and to enable $export
:
.\Create-FhirServerSamplesEnvironment.ps1 -EnvironmentName <ENVIRONMENTNAME> -UsePaaS $true -EnableExport $true
To delete the senario:
.\Delete-FhirServerSamplesEnvironment.ps1 -EnvironmentName <ENVIRONMENTNAME>
Contributing
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.
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.