API structure

This page describes the structure of Cloud Healthcare API paths and operations and how they can be used to access and manage data.

Overview

Healthcare data in datasets and data stores can be accessed and managed using a REST API that identifies each data store using:

  • A Google Cloud project
  • A Google Cloud location
  • The dataset ID
  • The data store type
  • The data store ID

The API also implements modality-specific standards for access that are consistent with industry standards for that modality.

Administrative operations

Administrative operations are available for datasets and all data stores. They primarily consist of creating, reading, updating, and deleting (CRUD) datasets and data stores. Administrative operations are consistent with most Google Cloud (Google Cloud) APIs and do not require any adherence to specific modality standards.

Examples of administrative operations include:

  • Creating, deleting, getting, listing, and patching datasets and data stores
  • Setting, getting, and testing IAM permissions

Resource names

A resource name consists of, at minimum, a project ID and a location. It can extend to include a dataset, data store, and any of a data store's child resources.

The format for a resource name for a data store that resides within a Cloud Healthcare API dataset looks like this:

/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/DATA_STORE_TYPE/DATA_STORE_ID

For example, the resource name for an HL7v2 store called clinical-store1 looks like this:

/projects/my-project/locations/us-central1/datasets/my-dataset/hl7V2Stores/clinical-store1

This resource name shows a project called my-project in the us-central1 region. The project contains a dataset called my-dataset, and the dataset contains an HL7v2 store called clinical-store1.

Operations on a location, dataset, data store, or any of a data store's child resources all require that a resource name is provided either in the REST path or the gRPC request.

Modality paths for modality-specific operations

Operations that access data in a modality-specific data store use a request path that consists of two pieces: the resource name (for identifying the data store to access), and a modality path (for identifying the actual data to retrieve).

FHIR resource modality paths

For example, the full request path for reading a specific FHIR Patient resource using the patient's ID might look like the following:

RESOURCE_NAME/resources/Patient/PATIENT_ID

with /Patient/PATIENT_ID being the modality path (structured according to the FHIR standard) for the Patient resource whose identifier is specified by PATIENT_ID.

DICOMweb modality paths

DICOMweb requests to retrieve all studies for a given patient would look like this:

RESOURCE_NAME/dicomWeb/studies?PatientName=PATIENT_NAME

As another example, a request to retrieve all instances in a given study and series would look like this:

RESOURCE_NAME/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances

A request to retrieve an instance would look like this:

RESOURCE_NAME/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID

In all of these examples, the modality path specification is consistent with the DICOMweb standard path structure.