1. Introducción
Ú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.
- 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.
Obtén acceso al conjunto de datos sintético
- 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.
- Recibirás un correo electrónico con instrucciones para confirmar la acción.
- Usa la opción de responder el correo electrónico para unirte al grupo.
- NO hagas 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 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:
- En GCP Console, ve a la página Proyectos. IR A LA PÁGINA PROYECTOS
- En la lista de proyectos, selecciona 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 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.