En este instructivo, se explican situaciones en las que puedes usar la transmisión de BigQuery para mantener un almacén de FHIR sincronizado con un conjunto de datos de BigQuery casi en tiempo real.
Objetivos
En el instructivo, se explican los siguientes pasos:
- Configura los permisos de BigQuery.
- Crea un almacén de FHIR y agrega recursos de pacientes.
- Configura la transmisión de BigQuery en el almacén de FHIR.
- Verifica la configuración de transmisión a BigQuery.
- Exporta recursos de FHIR existentes a BigQuery.
- Transmite recursos de varios almacenes de FHIR al mismo conjunto de datos de BigQuery.
Antes de comenzar
- 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.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Healthcare API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Paso 1: Configura los permisos de BigQuery
Para transmitir los cambios de los recursos de FHIR 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 Permisos de BigQuery para el almacén de datos de FHIR.
Paso 2: Configura y verifica la transmisión de BigQuery
Para habilitar la transmisión a BigQuery, sigue estas instrucciones:
Crea un almacén de FHIR y agrega recursos de pacientes
Para crear un almacén de FHIR y agregar dos recursos de paciente, sigue estos pasos:
Crea el almacén de FHIR:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID: Un identificador para el almacén de FHIR. El ID del almacén de FHIR debe tener lo siguiente:
- Un ID único en su conjunto de datos
- Una string de Unicode de 1 a 256 caracteres que consiste en lo siguiente:
- Números
- Letras
- Guiones bajos
- Guiones:
- Puntos:
- FHIR_STORE_VERSION: La versión de FHIR del almacén de 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "version": "FHIR_STORE_VERSION" } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "version": "FHIR_STORE_VERSION" } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 API
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel del Explorador de API 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, completa cualquier otro campo obligatorio y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Crea el primer recurso de paciente en el almacén de FHIR:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:
Crea el segundo recurso de paciente en el almacén de FHIR:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: Es la ubicación del conjunto de datos superior.
- DATASET_ID: El conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:
Busca recursos de paciente en el almacén de FHIR y verifica que el almacén contenga los dos recursos de paciente:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: Es la ubicación del conjunto de datos superior.
- DATASET_ID: El conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
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 siguiente comando:
$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 que se muestra a continuación:
Configura la transmisión de BigQuery en el almacén de FHIR
Actualiza el almacén de FHIR para configurar la transmisión de BigQuery. Después de configurar la transmisión, la API de Cloud Healthcare transmite cualquier cambio de recurso al conjunto de datos de BigQuery.
Actualiza tu almacén de FHIR existente para agregar la ubicación del conjunto de datos de BigQuery:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: Es la ubicación del conjunto de datos superior.
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID de la tienda de FHIR.
- BIGQUERY_PROJECT_ID es el proyecto de Google Cloud que contiene el conjunto de datos de BigQuery para la transmisión de cambios de recursos FHIR.
- BIGQUERY_DATASET_ID es el conjunto de datos de BigQuery en el que transmites los cambios de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 API
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel del Explorador de API 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, completa cualquier otro campo obligatorio y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Verifica la configuración de transmisión a BigQuery
Para verificar que la transmisión esté configurada correctamente, completa los siguientes pasos:
Crea un tercer recurso de paciente en el almacén de FHIR:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: Es la ubicación del conjunto de datos superior.
- DATASET_ID: El conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:
Ejecuta
bq query
para consultar la tablaBIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
. BigQuery organiza las tablas por tipo de recurso de FHIR. El tercer recurso de paciente que creaste 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 muestra el siguiente resultado. El resultado muestra que hay un registro de recursos de Paciente en la tabla de BigQuery, porque agregaste el recurso de paciente después de configurar la transmisión en el almacén de FHIR.
+-----+ | f0_ | +-----+ | 1 | +-----+
Paso 3: Exporta recursos de FHIR existentes a BigQuery
Si tienes un almacén de FHIR existente que contiene datos que deseas sincronizar con un conjunto de datos de BigQuery, debes completar los siguientes pasos para asegurarte de que los datos existentes estén en BigQuery:
- Configura la transmisión a BigQuery.
- Exporta los datos existentes al conjunto de datos de BigQuery.
Para exportar los dos recursos de Patient que existían en el almacén de FHIR antes de configurar la transmisión al conjunto de datos de BigQuery, completa los siguientes pasos:
Para exportar los recursos del almacén de FHIR a BigQuery, ejecuta el comando
gcloud healthcare fhir-stores export bq
. El comando usa la marca--write-disposition=write-append
, que agrega datos a la tabla BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
existente.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 la cantidad de recursos de pacientes en el 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 muestra el siguiente resultado, que muestra que hay 4 registros de recursos de Paciente en la tabla de BigQuery:
+-----+ | f0_ | +-----+ | 4 | +-----+
La cantidad real de recursos de pacientes en la tabla de BigQuery es 3, pero la consulta muestra 4. Es posible que se produzcan inconsistencias cuando un recurso contiene duplicados de diferentes operaciones. En este caso, el primer recurso Patient se agregó a la tabla de BigQuery estas dos veces:
- Cuando se transmitió la creación de recursos de pacientes
- Cuándo se exportaron los recursos del almacén de FHIR a BigQuery
La tabla de BigQuery también contiene un historial de mutaciones del primer recurso de Patient. Por ejemplo, si borras el recurso Patient con
fhir.delete
, la tabla de BigQuery tiene una columnameta.tag.code
con el valorDELETE
.Para obtener la instantánea más reciente de los datos en el almacén de FHIR, consulta la vista. La API de Cloud Healthcare construye la vista solo mirando la versión más reciente de cada recurso. Las consultas de vistas son la forma más precisa de mantener sincronizada un almacén de 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 muestra el siguiente resultado, que muestra correctamente que hay 3 recursos de pacientes en la tabla de BigQuery:
+-----+ | f0_ | +-----+ | 3 | +-----+
Paso 4: Transmite recursos de varios almacenes de FHIR al mismo conjunto de datos de BigQuery
En algunos casos, es posible que desees transmitir recursos de FHIR desde varios almacenes de FHIR al mismo conjunto de datos de BigQuery para realizar análisis en los recursos de FHIR agregados de los almacenes de FHIR.
En los siguientes pasos, crearás un segundo almacén de FHIR en el mismo conjunto de datos de la API de Cloud Healthcare que el primer almacén de FHIR, pero puedes usar almacenes de FHIR de diferentes conjuntos de datos cuando agregues recursos de FHIR.
Crea un segundo almacén de FHIR con la transmisión de BigQuery habilitada y usa el mismo conjunto de datos de BigQuery que usaste en Cómo configurar la transmisión de BigQuery en el almacén de FHIR.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: Es la ubicación del conjunto de datos superior.
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- SECOND_FHIR_STORE_ID es un identificador para el segundo almacén de FHIR. El ID del almacén de FHIR debe ser único en el conjunto de datos. El ID de almacén de FHIR puede ser cualquier string Unicode de 1 a 256 caracteres que conste de números, letras, guiones bajos, guiones y puntos.
- FHIR_STORE_VERSION es la versión del almacén de FHIR: DSTU2, STU3 o R4.
- BIGQUERY_PROJECT_ID es el proyecto de Google Cloud que contiene el conjunto de datos de BigQuery para la transmisión de cambios de recursos FHIR.
- BIGQUERY_DATASET_ID es el conjunto de datos de BigQuery en el que transmites los cambios de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 API
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel del Explorador de API 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, completa cualquier otro campo obligatorio y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Crea un recurso Patient en el segundo almacén de FHIR:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: Es la ubicación del conjunto de datos superior.
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- SECOND_FHIR_STORE_ID es el segundo ID de tienda de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:
Consulta la tabla
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
para verificar la cantidad de recursos de pacientes en 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`'
Cuando se transmitieron los datos sobre el recurso nuevo de pacientes, BigQuery usó la tabla
Patient
existente en el conjunto de datos de BigQuery. La consulta muestra el siguiente resultado, que muestra que hay 5 registros de recursos de Paciente en la tabla de BigQuery: Consulta Exporta recursos de FHIR existentes a BigQuery para obtener una explicación de 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 muestra el siguiente resultado, que muestra que hay 4 recursos para pacientes en los primeros almacenes de FHIR combinados y en la segunda tabla de BigQuery:
+-----+ | f0_ | +-----+ | 4 | +-----+
Limpia
Si creaste un proyecto nuevo para este instructivo, sigue los pasos en Borra el proyecto. Para borrar solo los recursos de la API de Cloud Healthcare y BigQuery, completa los pasos que se indican en Cómo borrar el conjunto de datos de la API de Cloud Healthcare y Cómo borrar el conjunto de datos de BigQuery.
Borra 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.
Borra el conjunto de datos de la API de Cloud Healthcare
Si ya no necesitas el conjunto de datos de la API de Cloud Healthcare que creaste en este instructivo, puedes borrarlo. Si borras un conjunto de datos, se borrarán de forma permanente el conjunto de datos y los almacenes de FHIR que contenga.
Para borrar un conjunto de datos, usa el comando
gcloud healthcare datasets delete
.gcloud healthcare datasets delete DATASET_ID \ --location=LOCATION \ --project=PROJECT_ID
Reemplaza lo siguiente:
- DATASET_ID: Es el conjunto de datos de la API de Cloud Healthcare.
- LOCATION: La ubicación del conjunto de datos
- PROJECT_ID: El ID del proyecto de Google Cloud.
Para confirmar, escribe Y.
Este es el resultado:
Deleted dataset [DATASET_ID].
Borra el conjunto de datos de BigQuery
Si ya no necesitas el conjunto de datos de BigQuery que creaste en este instructivo, puedes borrarlo. Si borras un conjunto de datos, se borrarán de forma permanente el conjunto de datos y las tablas que contenga.
Quita el BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID ejecutando el comando
bq rm
:bq rm --recursive=true BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID
La marca
--recursive
borra todas las tablas del conjunto de datos, incluida la tablaPatient
.Para confirmar, escribe Y.
¿Qué sigue?
- Si se producen errores cuando se transmiten a BigQuery, los errores se registran en Cloud Logging. Para obtener más información, consulta Visualiza los registros de errores en Cloud Logging.
- Consulta una descripción general para exportar recursos de FHIR a BigQuery.
- Para crear, ver, enumerar o borrar almacenes de FHIR, consulta Crea y administra almacenes de FHIR.