En este tutorial se explican los casos en los que puedes usar la transmisión de BigQuery para mantener un almacén FHIR sincronizado con un conjunto de datos de BigQuery casi en tiempo real.
Objetivos
En el tutorial se muestran los siguientes pasos:
- Configura los permisos de BigQuery.
- Crea un almacén FHIR y añade recursos Patient.
- Configura la transmisión de BigQuery en el almacén de FHIR.
- Verifica la configuración de la transmisión a BigQuery.
- Exporta recursos FHIR a BigQuery.
- Transmite recursos de varios almacenes FHIR al mismo conjunto de datos de BigQuery.
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Healthcare API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
Paso 1: Configurar los permisos de BigQuery
Para transmitir cambios en los recursos FHIR a BigQuery, debes conceder permisos adicionales a la cuenta de servicio del agente de servicio de Cloud Healthcare. Para obtener más información, consulta Permisos de BigQuery para almacenes FHIR.
Paso 2: Configurar y verificar la transmisión de BigQuery
Para habilitar la transmisión a BigQuery, sigue estas instrucciones:
Crear un almacén FHIR y añadir recursos Patient
Para crear un almacén FHIR y añadir dos recursos Patient, sigue estos pasos:
Crea el almacén FHIR:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID:
identificador del almacén FHIR. El ID de almacén FHIR debe tener lo siguiente:
- Un ID único en su conjunto de datos
- Una cadena Unicode de entre 1 y 256 caracteres que incluya lo siguiente:
- Numbers
- Cartas
- Guiones bajos
- Guiones
- Periodos
- FHIR_STORE_VERSION: la versión de FHIR del almacén FHIR. Las opciones disponibles son DSTU2, STU3 o R4.
Cuerpo JSON de la solicitud:
{ "version": "FHIR_STORE_VERSION" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "version": "FHIR_STORE_VERSION" } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "version": "FHIR_STORE_VERSION" } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID" | Select-Object -Expand ContentExplorador de APIs
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Crea el primer recurso Patient en el almacén FHIR:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
Cuerpo JSON de la solicitud:
{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la siguiente:
Crea el segundo recurso Patient en el almacén FHIR:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud
- LOCATION: la ubicación del conjunto de datos principal
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
Cuerpo JSON de la solicitud:
{ "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la siguiente:
Busca recursos Patient en el almacén FHIR y comprueba que contiene los dos recursos Patient:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud
- LOCATION: la ubicación del conjunto de datos principal
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la siguiente:
Configurar la transmisión de BigQuery en el almacén de FHIR
Actualiza el almacén FHIR para configurar la transmisión de BigQuery. Una vez configurada la transmisión, la API Cloud Healthcare transmite los cambios de recursos al conjunto de datos de BigQuery.
Actualiza tu almacén FHIR para añadir la ubicación del conjunto de datos de BigQuery:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud
- LOCATION: la ubicación del conjunto de datos principal
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID de tu almacén FHIR
- BIGQUERY_PROJECT_ID: el Google Cloud proyecto que contiene el conjunto de datos de BigQuery para transmitir cambios en los recursos FHIR
- BIGQUERY_DATASET_ID: el conjunto de datos de BigQuery al que estás transmitiendo los cambios en los recursos FHIR
Cuerpo JSON de la solicitud:
{ "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=streamConfigs"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=streamConfigs" | Select-Object -Expand ContentExplorador de APIs
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Verificar la configuración de la transmisión a BigQuery
Para comprobar que la transmisión se ha configurado correctamente, sigue estos pasos:
Crea un tercer recurso Patient en el almacén FHIR:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud
- LOCATION: la ubicación del conjunto de datos principal
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
Cuerpo JSON de la solicitud:
{ "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la siguiente:
Consulta la tabla
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
ejecutandobq query
. BigQuery organiza las tablas por tipo de recurso FHIR. El tercer recurso Patient que has creado se encuentra en la tablaPatient
.bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'
La consulta devuelve el siguiente resultado. El resultado muestra que hay un registro de recurso Patient en la tabla de BigQuery, porque añadiste el recurso Patient después de configurar la transmisión en el almacén FHIR.
+-----+ | f0_ | +-----+ | 1 | +-----+
Paso 3: Exportar recursos FHIR a BigQuery
Si tienes un almacén FHIR que contiene datos que quieres sincronizar con un conjunto de datos de BigQuery, debes completar los siguientes pasos para asegurarte de que los datos estén en BigQuery:
- Configura la transmisión a BigQuery.
- Exporta los datos a un conjunto de datos de BigQuery.
Para exportar los dos recursos Patient que había en el almacén FHIR antes de configurar la transmisión al conjunto de datos de BigQuery, sigue estos pasos:
Para exportar los recursos del almacén FHIR a BigQuery, ejecuta el comando
gcloud healthcare fhir-stores export bq
. El comando usa la marca--write-disposition=write-append
, que añade datos a la tabla BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
.gcloud healthcare fhir-stores export bq FHIR_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --bq-dataset=bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET \ --schema-type=analytics_v2 \ --write-disposition=write-append
Consulta la tabla
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
para verificar el número de recursos Patient del conjunto de datos de BigQuery:bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'
La consulta devuelve el siguiente resultado, que muestra que hay 4 registros de recursos Patient en la tabla de BigQuery:
+-----+ | f0_ | +-----+ | 4 | +-----+
El número real de recursos Patient en la tabla de BigQuery es 3, pero la consulta devuelve 4. Pueden producirse incoherencias cuando un recurso contiene duplicados de diferentes operaciones. En este caso, el primer recurso Patient se añadió a la tabla de BigQuery dos veces:
- Cuándo se transmitió la creación del recurso Patient
- Cuándo se exportaron los recursos del almacén FHIR a BigQuery
La tabla de BigQuery también contiene un historial de mutaciones del primer recurso Patient. Por ejemplo, si elimina el recurso Patient con
fhir.delete
, la tabla de BigQuery tiene una columnameta.tag.code
con el valorDELETE
.Para obtener la última instantánea de los datos del almacén FHIR, consulta la vista. La API Cloud Healthcare crea la vista consultando únicamente la versión más reciente de cada recurso. Consultar vistas es la forma más precisa de mantener sincronizado un almacén FHIR y su tabla de BigQuery correspondiente.
Para consultar la vista, ejecuta el siguiente comando:
bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`'
La consulta devuelve el siguiente resultado, que muestra correctamente que hay 3 recursos Patient en la tabla de BigQuery:
+-----+ | f0_ | +-----+ | 3 | +-----+
Paso 4: Transmitir recursos de varios almacenes FHIR al mismo conjunto de datos de BigQuery
En algunos casos, puede que quieras transmitir recursos FHIR de varios almacenes FHIR al mismo conjunto de datos de BigQuery para realizar análisis en los recursos FHIR agregados de los almacenes FHIR.
En los pasos siguientes, crearás un segundo almacén FHIR en el mismo conjunto de datos de la API Cloud Healthcare que el primer almacén FHIR, pero puedes usar almacenes FHIR de diferentes conjuntos de datos al agregar recursos FHIR.
Crea un segundo almacén FHIR con la transmisión a BigQuery habilitada y usa el mismo conjunto de datos de BigQuery que usaste en Configurar la transmisión a BigQuery en el almacén FHIR.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud
- LOCATION: la ubicación del conjunto de datos principal
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- SECOND_FHIR_STORE_ID: identificador del segundo almacén FHIR. El ID del almacén FHIR debe ser único en el conjunto de datos. El ID del almacén FHIR puede ser cualquier cadena Unicode de entre 1 y 256 caracteres que contenga números, letras, guiones bajos, guiones y puntos.
- FHIR_STORE_VERSION: la versión de la tienda FHIR: DSTU2, STU3 o R4
- BIGQUERY_PROJECT_ID: el Google Cloud proyecto que contiene el conjunto de datos de BigQuery para transmitir cambios en los recursos FHIR
- BIGQUERY_DATASET_ID: el conjunto de datos de BigQuery al que estás transmitiendo los cambios en los recursos FHIR
Cuerpo JSON de la solicitud:
{ "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=SECOND_FHIR_STORE_ID"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=SECOND_FHIR_STORE_ID" | Select-Object -Expand ContentExplorador de APIs
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Crea un recurso Patient en el segundo almacén FHIR:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud
- LOCATION: la ubicación del conjunto de datos principal
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- SECOND_FHIR_STORE_ID: el segundo ID de almacén FHIR
Cuerpo JSON de la solicitud:
{ "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/SECOND_FHIR_STORE_ID/fhir/Patient"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/SECOND_FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la siguiente:
Consulta la tabla
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
para verificar el número de recursos Patient de la tabla de BigQuery:bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'
Al transmitir los datos sobre el nuevo recurso Patient, BigQuery usó la tabla
Patient
del conjunto de datos de BigQuery. La consulta devuelve el siguiente resultado, que muestra que hay 5 registros de recursos Patient en la tabla de BigQuery. Consulta Exportar recursos FHIR a BigQuery para saber por qué la tabla contiene 5 recursos en lugar de 4.+-----+ | f0_ | +-----+ | 5 | +-----+
Ejecuta el siguiente comando para consultar la vista:
bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`'
La consulta devuelve el siguiente resultado, que muestra que hay 4 recursos Patient en los almacenes FHIR primero y segundo combinados, así como en la tabla de BigQuery:
+-----+ | f0_ | +-----+ | 4 | +-----+
Limpieza
Si has creado un proyecto para este tutorial, sigue los pasos que se indican en la sección Eliminar el proyecto. Para eliminar solo los recursos de la API Cloud Healthcare y BigQuery, sigue los pasos que se indican en Eliminar el conjunto de datos de la API Cloud Healthcare y Eliminar el conjunto de datos de BigQuery.
Eliminar el proyecto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Eliminar el conjunto de datos de la API Cloud Healthcare
Si ya no necesitas el conjunto de datos de la API Cloud Healthcare creado en este tutorial, puedes eliminarlo. Si eliminas un conjunto de datos, este y todos los almacenes FHIR que contenga se eliminarán de forma permanente.
Para eliminar un conjunto de datos, usa el comando
gcloud healthcare datasets delete
:gcloud healthcare datasets delete DATASET_ID \ --location=LOCATION \ --project=PROJECT_ID
Haz los cambios siguientes:
- DATASET_ID: el conjunto de datos de la API de Cloud Healthcare
- LOCATION: la ubicación del conjunto de datos
- PROJECT_ID: tu ID de proyecto Google Cloud
Para confirmar, escribe S.
El resultado es el siguiente:
Deleted dataset [DATASET_ID].
Eliminar el conjunto de datos de BigQuery
Si ya no necesitas el conjunto de datos de BigQuery creado en este tutorial, puedes eliminarlo. Si eliminas un conjunto de datos, este y todas las tablas que contenga se eliminarán de forma permanente.
Quita el BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID dataset ejecutando el comando
bq rm
:bq rm --recursive=true BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID
La marca
--recursive
elimina todas las tablas del conjunto de datos, incluida la tablaPatient
.Para confirmar, escribe S.
Siguientes pasos
- Si se producen errores al transmitir datos a BigQuery, se registran en Cloud Logging. Para obtener más información, consulta Ver registros de errores en Cloud Logging.
- Consulta una descripción general de la exportación de recursos FHIR a BigQuery.
- Para crear, ver, enumerar o eliminar almacenes FHIR, consulta Crear y gestionar almacenes FHIR.