< Previous Challenge - Home - Next Challenge>
In this challenge, you will implement the FHIR Server Samples reference architecture to ingest and load patient data in FHIR. You will generate synthetic FHIR patient data for bulk load into FHIR Server. To generate synthetic patient data, you will use SyntheaTM Patient Generator open source Java tool to simulate patient records in FHIR format.
In this scenario, you will deploy a storage account with a BLOB container called fhirimport
. Synthea generated FHIR patient data files (JSON) are copied into this storage container, and automatically ingested into FHIR Server. This bulk ingestion is performed by a BLOB triggered function app as depicted below:
You will implement the FHIR Bulk Load scenario in Microsoft Health Architecture as follows:
-
Deploy FHIR Server Samples PaaS scenario (above) to ingest and bulk load Synthea generated FHIR patient data into FHIR Server in near real-time.
-
Clone 'FHIR Server Samples' git repo.
-
Deploy FHIR Server Samples environment.
- Before running this PowerShell deployment script, you MUST login to your Azure subscription and connect to Azure AD with your secondary tenant (can be primary tenant if you already have directory admin privilege) that provides you with directory admin role access required for this setup.
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, grant admin consent, etc. in your Azure AD tenant, you can create a new secondary tenant, which will just be used for demo identities, etc.
-
Post deployment, save your admin tenant user credential to be used in later challenges for web app sign-in.
-
To Validate your deployment,
- Check Azure resources created in
{ENVIRONMENTNAME}
and{ENVIRONMENTNAME}-sof
Resource Groups - Check
App Registration
in secondary AAD tenant that all three different client application types are registered for Azure API for FHIR
- Check Azure resources created in
-
-
Generate simulated patient data in FHIR format using SyntheaTM Patient Generator.
-
Update the default properties for FHIR output
- Set Synthea export directory:
exporter.baseDirectory = ./output/fhir
- Enable FHIR bundle export:
exporter.fhir.export = true
- Generate 1000 patient records:
generate.default_population = 1000
exporter.baseDirectory = ./output/fhir ... exporter.ccda.export = false exporter.fhir.export = true ... # the number of patients to generate, by default # this can be overridden by passing a different value to the Generator constructor generate.default_population = 1000
Note: The default properties file values can be found at src/main/resources/synthea.properties. By default, synthea does not generate CCDA, CPCDA, CSV, or Bulk FHIR (ndjson). You'll need to adjust this file to activate these features. See the wiki for more details.
- Set Synthea export directory:
-
-
Copy Synthea generated FHIR bundle JSON files in its
./output/fhir
folder tofhirimport
BLOB container.- You can copy data to Azure Storage using Azure AzCopy commandline tool or Azure Storage Explorer user interface.
-
Test FHIR bulk load using Postman
FHIR API
collection to retreive FHIR patient data loaded.- You can import Postman collection and environment variables for FHIR API from the Student Resources folder for Postman folder.
- You need to register your public client application to connect Postman desktop app to FHIR Server.
- You have provisioned FHIR Bulk Load environment in Azure.
- You have generated synthetic patient data in FHIR format.
- You have loaded FHIR patient data into FHIR Server.
- You have retrieved the new FHIR patient data using Postman.
- Azure API for FHIR samples
- Synthea Patient Generator
- Synthea wiki
- Copy data to Azure Storage using Azure AzCopy tool
- Copy data to Azure Storage using Azure Storage Explorer
- Import Postman data, including collections, environments, data dumps, and globals.
- Register your public client application for Postman
- Access Azure API for FHIR using Postman