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.
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, ya que añadió 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 | +-----+