Skip to content

Latest commit

 

History

History
74 lines (56 loc) · 6.16 KB

File metadata and controls

74 lines (56 loc) · 6.16 KB

Challenge 1: Extract and load FHIR synthetic medical data

< Previous Challenge - Home - Next Challenge>

Introduction

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.

FHIR bulk load scenario

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:

Description

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
  • 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.

  • Copy Synthea generated FHIR bundle JSON files in its ./output/fhir folder to fhirimport BLOB container.

  • Test FHIR bulk load using Postman FHIR API collection to retreive FHIR patient data loaded.

Success Criteria

  • 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.

Learning Resources