En este instructivo, se explican situaciones en las que puedes usar de 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:
- Configurar los permisos de BigQuery
- Crear un almacén de FHIR y agregar recursos para pacientes
- Configurar la transmisión de BigQuery en el almacén de FHIR
- Verificar la configuración de transmisión a BigQuery
- Exportar 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 pacientes, 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
Actualizar 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 quieres sincronizar con BigQuery conjunto de datos, debes completar los siguientes pasos para asegurarse 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 dos recursos de pacientes 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 Patient 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 | +-----+
El número real de recursos Patient en la tabla de BigQuery es 3, pero la consulta muestra 4. Pueden ocurrir incoherencias cuando un recurso contiene duplicados de operaciones diferentes. 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
- Cuando los recursos del almacén de FHIR se exportaron a BigQuery
La tabla de BigQuery también contiene un historial de mutaciones de los primeros Recurso de paciente. Por ejemplo, si borras el recurso Patient con
fhir.delete
, ocurrirá lo siguiente: la tabla de BigQuery tiene una columnameta.tag.code
con la valorDELETE
.Para obtener la última instantánea de los datos del almacén de FHIR, consulta la vista. La API de Cloud Healthcare construye la vista solo a partir de 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 desde 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 para agregar recursos de FHIR.
Crea un segundo FHIR almacenar con la transmisión de BigQuery habilitada y usar el mismo conjunto de datos de BigQuery que usó en Configura 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 de paciente 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 solo borrar la API de Cloud Healthcare y los recursos de BigQuery, completa el pasos en Borra el conjunto de datos de la API de Cloud Healthcare y Borra 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 creado en este instructivo, puedes borrar que la modifica. 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 borrar que la modifica. Si borras un conjunto de datos, este y todas las tablas que contenga se borrarán de forma permanente.
Quita el BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID conjunto de datos 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 de cómo exportar recursos de FHIR a BigQuery.
- Para crear, ver, enumerar o borrar almacenes de FHIR, consulta Crea y administra almacenes de FHIR.