Transferir FHIR (recursos de interoperabilidad para atención médica rápida) a BigQuery

1. Introducción

1f4764c4ca4c50d9.png

Última actualización: 16 de mayo de 2020

En este codelab, se demuestra un patrón de transferencia de datos para transferir datos de atención médica con formato FHIR R4 (recursos regulares) a BigQuery con las APIs de FHIR de Cloud Healthcare. Se generaron datos de prueba realistas del sector de la salud y se pusieron a tu disposición en el bucket de Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/).

En este codelab, aprenderás lo siguiente:

  • Cómo importar recursos FHIR R4 desde GCS al almacén de FHIR de Cloud Healthcare
  • Cómo exportar datos de FHIR desde FHIR Store a un conjunto de datos en BigQuery

¿Qué necesitas para ejecutar esta demostración?

  • Necesitas acceso a un proyecto de GCP.
  • Se te debe asignar el rol de propietario del proyecto de GCP.
  • Recursos de FHIR R4 en formato NDJSON (content-structure=RESOURCE)

Si no tienes un proyecto de GCP, sigue estos pasos para crear uno nuevo.

Los recursos de FHIR R4 en formato NDJSON se cargaron previamente en el bucket de GCS en las siguientes ubicaciones:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/: Recursos normales

Todos los recursos anteriores tienen el formato de archivo JSON delimitado por saltos de línea (NDJSON), pero una estructura de contenido diferente:

  • Recursos normales en formato ndjson: Cada línea del archivo contiene un recurso principal de FHIR en formato JSON (como Paciente, Observación, etcétera). Cada archivo ndjson contiene recursos de FHIR del mismo tipo de recurso. Por ejemplo, Patient.ndjson contendrá uno o más recursos de FHIR de resourceType = "Patient", y Observation.ndjson contendrá uno o más recursos de FHIR de resourceType = "Observation".

Si necesitas un conjunto de datos nuevo, siempre puedes generarlo con SyntheaTM. Luego, súbelo a GCS en lugar de usar el bucket proporcionado en el codelab.

2. Configuración del proyecto

Sigue estos pasos para habilitar la API de Healthcare y otorgar los permisos necesarios:

Inicializa las variables de shell para tu entorno

Para encontrar el PROJECT_NUMBER y el PROJECT_ID, consulta Cómo identificar proyectos.

<!-- CODELAB: Initialize shell variables -->
export PROJECT_ID=<PROJECT_ID>
export PROJECT_NUMBER=<PROJECT_NUMBER>
export SRC_BUCKET_NAME=hcls_testing_data_fhir_10_patients
export BUCKET_NAME=<BUCKET_NAME>
export DATASET_ID=<DATASET_ID>
export FHIR_STORE=<FHIR_STORE>
export BQ_DATASET=<BQ_DATASET>

Habilita la API de Healthcare

Los siguientes pasos habilitarán las APIs de Healthcare en tu proyecto de GCP. Se agregará la cuenta de servicio de la API de Healthcare al proyecto.

  1. Ve a la Biblioteca de API de GCP Console.
  2. Selecciona el proyecto desde la lista de proyectos.
  3. En la biblioteca de API, selecciona la API que quieres habilitar. Si necesitas ayuda para encontrar la API, usa el campo de búsqueda y los filtros.
  4. En la página de API, haz clic en HABILITAR.

Cómo obtener acceso al conjunto de datos sintéticos

  1. Desde la dirección de correo electrónico que usas para acceder a Cloud Console, envía un correo electrónico a hcls-solutions-external+subscribe@google.com para solicitar unirte.
  2. Recibirás un correo electrónico con instrucciones para confirmar la acción.
  3. Usa la opción para responder el correo electrónico y unirte al grupo.
  4. NO haga clic en el botón 525a0fa752e0acae.png. No funciona.
  5. Una vez que recibas el correo electrónico de confirmación, puedes continuar con el siguiente paso del codelab.

Crea un bucket de Google Cloud Storage en tu proyecto de GCP

gsutil mb gs://$BUCKET_NAME

Copia datos sintéticos en tu proyecto de GCP

gsutil -m cp gs://$SRC_BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
gs://$BUCKET_NAME/fhir_r4_ndjson/

Otorga permisos

Antes de importar recursos de FHIR desde Cloud Storage y exportarlos a BigQuery, debes otorgar permisos adicionales a la cuenta de servicio del agente de servicio de Cloud Healthcare . Para obtener más información, consulta los permisos de Cloud Storage del almacén de FHIR y de BigQuery del almacén de FHIR.

Cómo otorgar permiso de administrador de almacenamiento

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/storage.objectViewer

Cómo otorgar permisos de administrador de BigQuery

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/bigquery.admin

3. Configuración del entorno

Sigue estos pasos para transferir datos de archivos NDJSON al conjunto de datos de atención médica en BigQuery con las APIs de Cloud Healthcare FHIR:

Crea un conjunto de datos de Healthcare y un almacén de FHIR

Crea un conjunto de datos de Healthcare con las APIs de Cloud Healthcare

gcloud beta healthcare datasets create $DATASET_ID --location=us-central1

Crea un almacén de FHIR en el conjunto de datos con las APIs de Cloud Healthcare

gcloud beta healthcare fhir-stores create $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --version=r4

4. Importa datos al almacén de FHIR

Importa datos de prueba desde Google Cloud Storage al almacén de FHIR.

Usaremos archivos precargados del bucket de GCS. Estos archivos contienen recursos regulares de FHIR R4 en formato NDJSON. Como respuesta, recibirás OPERATION_NUMBER, que se puede usar en el paso de validación.

Importa recursos normales desde el bucket de GCS en tu proyecto de GCP

gcloud beta healthcare fhir-stores import gcs $FHIR_STORE \
  --dataset=$DATASET_ID --async \
  --gcs-uri=gs://$BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
  --location=us-central1 --content-structure=RESOURCE

Validar

La operación de validación finalizó correctamente. Es posible que la operación tarde unos minutos en completarse, por lo que es posible que debas repetir este comando varias veces con un poco de demora.

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

5. Exporta datos del almacén de FHIR a BigQuery

Crea un conjunto de datos de BigQuery

bq mk --location=us --dataset $PROJECT_ID:$BQ_DATASET

Exporta datos de atención médica desde el almacén de FHIR al conjunto de datos de BigQuery

gcloud beta healthcare fhir-stores export bq $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --async \
  --bq-dataset=bq://$PROJECT_ID.$BQ_DATASET \
  --schema-type=analytics

Como respuesta, recibirás OPERATION_NUMBER, que se puede usar en el paso de validación.

Validar

La operación de validación se completó correctamente

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

Valida si el conjunto de datos de BigQuery tiene las 16 tablas

bq ls $PROJECT_ID:$BQ_DATASET

6. Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud Platform por los recursos que usaste en este instructivo, puedes limpiar los recursos que creaste en GCP para que no consuman tu cuota y no se te cobre por ellos en el futuro. En las secciones siguientes, se describe cómo borrar o desactivar estos recursos.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, haz lo siguiente:

  1. En GCP Console, ve a la página Proyectos. IR A LA PÁGINA PROYECTOS
  2. En la lista de proyectos, elige el proyecto que deseas borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.

Si necesitas conservar el proyecto, puedes borrar el conjunto de datos de Cloud Healthcare y el conjunto de datos de BigQuery siguiendo estas instrucciones.

Borra el conjunto de datos de la API de Cloud Healthcare

Sigue los pasos para borrar el conjunto de datos de la API de Healthcare con GCP Console y con la CLI de gcloud.

Comando rápido de la CLI:

gcloud beta healthcare datasets delete $DATASET_ID --location=us-central1

Borra el conjunto de datos de BigQuery

Sigue los pasos para borrar el conjunto de datos de BigQuery con diferentes interfaces.

Comando rápido de la CLI:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Felicitaciones

¡Felicitaciones! Completaste correctamente el codelab para transferir datos de atención médica a BigQuery con las APIs de Cloud Healthcare.

Importaste datos sintéticos que cumplen con FHIR R4 de Google Cloud Storage a las APIs de FHIR de Cloud Healthcare.

Exportaste datos de las APIs de FHIR de Cloud Healthcare a BigQuery.

Ahora conoces los pasos clave necesarios para comenzar tu recorrido de análisis de datos de atención médica con BigQuery en Google Cloud.