Skip to content

Bulk FHIR Ingest Documentation

This guide provides a concise overview of how to integrate new Electronic Health Record (EHR) providers into the bulk FHIR ingest pipeline. The focus is on enabling new integrations by plugging in their own authentication and configuration settings.

Key Components

1. Authentication

Each EHR provider can utilize common authentication methods such as client credentials OAuth. The ClientCredentialsAuth class provides a ready-to-use implementation for this type of authentication. Providers can use this class directly if their authentication requirements align with the client credentials OAuth flow.

For providers that share common authentication strategies, the standard is to abstract the authentication logic into a separate class that can be reused across multiple integrations. This promotes code reusability and maintainability while reducing duplication of authentication logic.

2. Configuration

Each provider should create a configuration class that extends BaseConfig and specifies necessary variables for their specific use case. For example, an ingestion that authenticates with client id and client secret will need to specify the client id and client secret as variables.

API Syntax such as the path to export FHIR resources must also be described.

3. FHIR Processor

The FHIRProcessor class handles the processing of FHIR resources. It reads the FHIR resources iterator provided by the bulk FHIR API interactor, and uploads data to Google Cloud Storage (GCS), imports it into a FHIR store, and exports it to BigQuery. Providers should instantiate this class with their specific configuration settings.

4. API Interactor

To create your API interactor is straightforward. it should contain two properties: auth and config. The auth property should return an instance of the authentication class described above. The config property should return an instance of the configuration class described above.

By following these guidelines, data from new EHR systems can efficiently be ingested through the bulk FHIR ingest pipeline.