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

1. Introducción

1f4764c4ca4c50d9.png

Última actualización: 16/05/2020

En este codelab, se muestra 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 realistas de pruebas de atención médica y se pusieron a disposición en el bucket de Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/) para ti.

En este codelab, aprenderás lo siguiente:

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

¿Qué necesitas para ejecutar esta demostración?

  • Necesitas acceso a un proyecto de GCP.
  • Debes tener asignada una función de propietario para el proyecto de GCP.
  • Recursos 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 regulares

Todos los recursos anteriores tienen un formato de archivo JSON delimitador de línea nueva (NDJSON), pero una estructura de contenido diferente:

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

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

Habilitar la API de Healthcare

Si sigues los pasos, se habilitarán las APIs de Healthcare en tu proyecto de GCP. Esta 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.

Obtén acceso al conjunto de datos sintético

  1. Desde la dirección de correo electrónico que usas para acceder a la consola de Cloud, 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 de responder el correo electrónico para unirte al grupo.
  4. NO hagas 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 los datos sintéticos de tu proyecto de GCP

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

Otorgar 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 Almacenamiento de FHIR de Cloud Storage y Almacenamiento de FHIR de BigQuery.

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

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 a un conjunto de datos de atención médica en BigQuery con las APIs de FHIR de Cloud Healthcare:

Crear un conjunto de datos de atención médica y un almacén de FHIR

Crear un conjunto de datos de atención médica con las APIs de Cloud Healthcare

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

Crear un almacén de FHIR en un 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

Importar datos de prueba de 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, obtendrás OPERATION_NUMBER, que puede utilizarse en el paso de validación.

Importe recursos regulares desde el bucket de GCS en su 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 tal vez debas repetir este comando varias veces con retraso.

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 del 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, obtendrás OPERATION_NUMBER, que puede utilizarse 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 facture 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, selecciona 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 de BigQuery con las siguientes 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 gcloud CLI.

Comando de la CLI rápida:

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 de la CLI rápida:

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