1. Introducción

Ú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.
- Ve a la Biblioteca de API de GCP Console.
- Selecciona el proyecto desde la lista de proyectos.
- 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.
- En la página de API, haz clic en HABILITAR.
Cómo obtener acceso al conjunto de datos sintéticos
- 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.
- Recibirás un correo electrónico con instrucciones para confirmar la acción.
- Usa la opción para responder el correo electrónico y unirte al grupo.
- NO haga clic en el botón
. No funciona. - 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:
- En GCP Console, ve a la página Proyectos. IR A LA PÁGINA PROYECTOS
- En la lista de proyectos, elige el proyecto que deseas borrar y haz clic en Borrar.
- 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.