Skip to content

sana-google/terraform-google-healthcare

 
 

Repository files navigation

terraform-google-healthcare

This module handles opinionated Google Cloud Platform Healthcare datasets and stores.

Usage

Basic usage of this module is as follows:

module "healthcare" {
  source  = "terraform-google-modules/healthcare/google"
  version = "~> 2.4"

  project  = "<PROJECT_ID>"
  name     = "example-dataset"
  location = "us-central1"
  dicom_stores = [{
    name = "example-dicom-store"
    iam_members = [
      { role = "roles/healthcare.dicomEditor", member = "user:example@domain.com" }
    ]
  }]
  fhir_stores = [{
    name         = "example-fhir-store"
    version      = "R4"
    notification_config = {
      pubsub_topic = "projects/<PROJECT_ID>/topics/example_topic"
    }
  }]
}

Functional examples are included in the examples directory.

Requirements

These sections describe requirements for using this module.

Software

The following dependencies must be available:

Service Account

A service account with the following roles must be used to provision the resources of this module:

  • Healthcare Dataset Admin: roles/healthcare.datasetAdmin
  • Healthcare DICOM Admin: roles/healthcare.dicomStoreAdmin
  • Healthcare FHIR Admin: roles/healthcare.fhirStoreAdmin
  • Healthcare HL7 V2 Admin: roles/healthcare.hl7V2StoreAdmin
  • Healthcare Consent Admin: roles/healthcare.ConsentStoreAdmin
  • Healthcare Data Mapper Workspace Admin: roles/healthcare.dataMapperWorkspaceAdmin

The Project Factory module and the [IAM module][iam-module] may be used in combination to provision a service account with the necessary roles applied.

To allow messages to be published from the Cloud Healthcare API to Pub/Sub, you must add the roles/pubsub.publisher role to your project's Cloud Healthcare Service Agent service account.

APIs

A project with the following APIs enabled must be used to host the resources of this module:

  • Google Cloud Healthcare API: healthcare.googleapis.com

To allow messages to be published from the Cloud Healthcare API to Pub/Sub, the following API also needs to be enabled:

  • Google Pub/Sub API: pubsub.googleapis.com

The Project Factory module can be used to provision a project with the necessary APIs enabled.

Inputs

Name Description Type Default Required
consent_stores Datastore that contain all information related to the configuration and operation of the Consent Management API (https://cloud.google.com/healthcare/docs/how-tos/consent-managing). any [] no
dicom_stores Datastore that conforms to the DICOM (https://www.dicomstandard.org/about/) standard for Healthcare information exchange. any [] no
fhir_stores Datastore that conforms to the FHIR standard for Healthcare information exchange. any [] no
hl7_v2_stores Datastore that conforms to the HL7 V2 (https://www.hl7.org/hl7V2/STU3/) standard for Healthcare information exchange. any [] no
iam_members Updates the IAM policy to grant a role to a new member. Other members for the role for the dataset are preserved.
list(object({
role = string
member = string
}))
[] no
location The location for the Dataset. string n/a yes
name The resource name for the Dataset. string n/a yes
project The ID of the project in which the resource belongs. string n/a yes
time_zone The default timezone used by this dataset. string null no
workspaces Workspace that holds all mappings and the Data Mapper IDE for organizing and controlling access (https://cloud.google.com/healthcare-api/healthcare-data-engine/docs/manage-workspaces).
list(object({
name = string
dataset = string
labels = optional(map(string))
settings = object({
data_project_ids = list(string)
})
}))
[] no

Outputs

No outputs.

Contributing

Refer to the contribution guidelines for information on contributing to this module.

Releases

No releases published

Packages

No packages published

Languages

  • HCL 70.7%
  • Ruby 18.5%
  • Makefile 10.8%