En esta página se explica cómo exportar recursos FHIR a Cloud Storage e importarlos desde este servicio mediante los métodos projects.locations.datasets.fhirStores.import
y projects.locations.datasets.fhirStores.export
.
En función del formato de tus datos FHIR, para cargar datos en un almacén FHIR, puedes usar el método projects.locations.datasets.fhirStores.import
o el método projects.locations.datasets.fhirStores.fhir.executeBundle
. Para obtener ayuda a la hora de elegir un método, consulta Importación de FHIR.
Configurar permisos de Cloud Storage
Antes de exportar recursos FHIR a Cloud Storage e importarlos desde este servicio, 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 Cloud Storage para almacenes FHIR.
Generar datos de pacientes simulados
Synthea™ es un simulador para generar datos de la población de pacientes. Si no usas Synthea™ para generar datos de la población de pacientes, ve a Importar recursos FHIR o Exportar recursos FHIR.
Solo puede importar datos en la versión que esté configurada para aceptar su almacén FHIR.
Para descargar e instalar Synthea™, sigue estos pasos:
Clona el repositorio de la herramienta Synthea™ de GitHub:
git clone https://github.com/synthetichealth/synthea.git
Completa los pasos de instalación.
Ve a una de las siguientes secciones para generar datos de una versión específica de FHIR:
Generar datos de pacientes simulados para R4
De forma predeterminada, los datos generados de Synthea™ usan la representación JSON de FHIR R4 para los recursos. Para generar datos FHIR R4 de Synthea™ e importarlos a un almacén FHIR de la API Cloud Healthcare, sigue estos pasos:
Sigue las instrucciones para generar datos sintéticos de pacientes. Los datos generados se envían a
synthea/output/fhir_r4
para FHIR R4.Copia los datos generados en un segmento de Cloud Storage para poder importarlos a un almacén FHIR de la API Cloud Healthcare. Por ejemplo, para copiar los datos en un directorio llamado
synthea-data
de un segmento de Cloud Storage, ejecuta el siguiente comandogcloud storage cp
desde el directoriosynthea
:gcloud storage cp output/fhir_r4/* gs://BUCKET/synthea-data
Sigue las instrucciones para importar recursos FHIR.
Generar datos de pacientes simulados para DSTU2 o STU3
Para generar datos FHIR DSTU2 o STU3 de Synthea™ e importarlos a un almacén FHIR de la API Cloud Healthcare, sigue estos pasos:
En el directorio
synthea
, usa un editor de texto para abrir el archivosrc/main/resources/synthea.properties
y, a continuación, haz los cambios siguientes, en función de si vas a generar datos de DSTU2 o STU3.Para generar datos de FHIR STU3, sigue estos pasos:
- Asigna el valor
false
a todos los valores de*.fhir.export
y*.fhir_dstu2.export
. - Asigna el valor "true" a todos los valores de
*.fhir_stu3.export
.
Para generar datos de FHIR DSTU2, sigue estos pasos:
- Asigna el valor
false
a todos los valores de*.fhir.export
y*.fhir_stu3.export
. - Asigna el valor "true" a todos los valores de
*.fhir_dstu2.export
.
Por ejemplo, para generar datos FHIR STU3, haz lo siguiente:
exporter.fhir.export = false exporter.fhir_stu3.export = true exporter.fhir_dstu2.export = false exporter.hospital.fhir.export = false exporter.hospital.fhir_stu3.export = true exporter.hospital.fhir_dstu2.export = false exporter.practitioner.fhir.export = false exporter.practitioner.fhir_stu3.export = true exporter.practitioner.fhir_dstu2.export = false
- Asigna el valor
Sigue las instrucciones para generar datos sintéticos de pacientes. Los datos generados se guardan en el directorio
synthea/output/fhir_stu3
para FHIR STU3 o en el directoriosynthea/output/fhir_dstu2
para FHIR DSTU2.Copia los datos generados en un segmento de Cloud Storage para poder importarlos a un almacén FHIR de la API Cloud Healthcare. Por ejemplo, para copiar los datos en un directorio llamado
synthea-data
de un segmento de Cloud Storage, ejecuta el siguiente comandogcloud storage cp
desde el directoriosynthea
:gcloud storage cp output/fhir_stu3/* gs://BUCKET/synthea-data
Sigue las instrucciones para importar recursos FHIR.
Importar recursos FHIR
Al configurar el cuerpo de la solicitud de importación, asigna a ContentStructure
uno de los siguientes valores:
CONTENT_STRUCTURE_UNSPECIFIED
BUNDLE
: El archivo de origen contiene una o varias líneas de JSON delimitado por líneas nuevas (ndjson). Cada línea es un paquete que contiene uno o varios recursos. Si no especificasContentStructure
, se usaráBUNDLE
de forma predeterminada.RESOURCE
: el archivo de origen contiene una o varias líneas de JSON delimitado por líneas nuevas (ndjson). Cada línea es un recurso.BUNDLE_PRETTY
: todo el archivo de origen es un paquete JSON. El JSON puede ocupar varias líneas.RESOURCE_PRETTY
: todo el archivo de origen es un recurso JSON. El JSON puede ocupar varias líneas.
Por ejemplo, supongamos que importa un archivo llamado resources.ndjson
con el siguiente contenido:
{"class":{"code":"IMP","display":"inpatient encounter","system":"http://hl7.org/fhir/v3/ActCode"},"id":"6090e773-3e91-40a7-8fce-1e22f6774c29","reason":[{"text":"The patient had an abnormal heart rate. She was concerned about this."}],"resourceType":"Encounter","status":"finished","subject":{"reference":"Patient/2938bb9e-1f16-429e-8d44-9508ab0e4151"}}
{"class":{"code":"IMP","display":"inpatient encounter","system":"http://hl7.org/fhir/v3/ActCode"},"id":"7101f884-4f02-51b8-9gdf-2f33g7885d30","reason":[{"text":"The patient was experiencing recurrent fevers."}],"resourceType":"Encounter","status":"finished","subject":{"reference":"Patient/3049cc0f-2g27-530f-9e55-0619bc1f5262"}}
{"birthDate":"1970-01-01","gender":"female","id":"2938bb9e-1f16-429e-8d44-9508ab0e4151","name":[{"family":"Smith","given":["Darcy"],"use":"official"}],"resourceType":"Patient"}
El archivo contiene dos recursos Encounter y un recurso Patient. Cada recurso está en una línea independiente, por lo que debes definir ContentStructure
como
RESOURCE
.
Es posible que los datos no se importen correctamente o que no se importen si ContentStructure
no coincide con el formato de sus datos. Por ejemplo, el archivo de muestra anterior no se importará correctamente a menos que ContentStructure
se defina como RESOURCE
en la solicitud de importación.
En los ejemplos siguientes se muestra cómo importar recursos FHIR desde un segmento de Cloud Storage.
Consola
Para importar recursos FHIR desde un segmento de Cloud Storage, sigue estos pasos:
- En la Google Cloud consola, ve a la página Conjuntos de datos.
Ir a conjuntos de datos - Haz clic en el conjunto de datos que contiene el almacén FHIR al que quieres importar recursos FHIR.
- En la lista de almacenes de datos, elija Importar en la lista Acciones del almacén de recursos de FHIR.
Aparecerá la página Importar al almacén de recursos de FHIR. - En la lista Proyecto, selecciona un proyecto de Cloud Storage.
- En la lista Ubicación, selecciona un segmento de Cloud Storage.
- En Ajustes de importación de FHIR, selecciona la estructura de contenido pertinente.
- Haz clic en Importar para importar recursos FHIR.
- Para hacer un seguimiento del estado de la operación, haga clic en la pestaña Operaciones. Una vez que se haya completado la operación, aparecerán las siguientes indicaciones:
- La sección Estado de la operación de larga duración tiene una marca de verificación verde en el encabezado OK.
- La sección Resumen tiene una marca de verificación verde y un indicador OK en la misma fila que el ID de operación.
gcloud
Para importar recursos FHIR en un almacén FHIR, usa el comando
gcloud healthcare fhir-stores import gcs
. Especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- Ubicación del objeto en un segmento de Cloud Storage. La ubicación de los archivos dentro del segmento es arbitraria y no tiene por qué coincidir exactamente con el formato especificado en el siguiente ejemplo. Al especificar la ubicación de los recursos FHIR en Cloud Storage, puedes utilizar comodines para importar varios archivos desde uno o más directorios.
Se admiten los siguientes comodines:
- Usa
*
para hacer coincidir 0 o más caracteres que no sean de separación. Por ejemplo,gs://BUCKET/DIRECTORY/Example*.ndjson
coincide con Example.ndjson y Example22.ndjson en DIRECTORY. - Usa
**
para hacer coincidir 0 o más caracteres (incluidos los de separación). Se debe usar al final de una ruta y no debe haber otros comodines en la ruta. También se puede usar con una extensión de nombre de archivo (como .ndjson), que importa todos los archivos con la extensión de nombre de archivo del directorio especificado y sus subdirectorios. Por ejemplo,gs://BUCKET/DIRECTORY/**.ndjson
importa todos los archivos con la extensión .ndjson de DIRECTORY y sus subdirectorios. - Usa
?
para hacer que coincida 1 carácter. Por ejemplo,gs://BUCKET/DIRECTORY/Example?.ndjson
coincide con Example1.ndjson, pero no con Example.ndjson ni con Example01.ndjson.
- Usa
En el siguiente ejemplo se muestra el comando gcloud healthcare fhir-stores import gcs
.
gcloud healthcare fhir-stores import gcs FHIR_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --gcs-uri=gs://BUCKET/DIRECTORY/FHIR_RESOURCE_NAME.ndjson
Para especificar la estructura de los archivos de origen FHIR, usa la marca --content-structure
.
La línea de comandos muestra el ID de la operación y, una vez completada, done
:
Request issued for: [FHIR_STORE_ID] Waiting for operation [OPERATION_ID] to complete...done. name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID
Para ver más detalles de la operación, ejecuta el comando
gcloud healthcare operations describe
y proporciona el OPERATION_ID de la respuesta:
gcloud healthcare operations describe OPERATION_ID \ --dataset=DATASET_ID
La respuesta incluye done: true
.
done: true metadata: '@type': type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata apiMethodName: google.cloud.healthcare.v1.fhir.FhirService.ImportResources createTime: 'CREATE_TIME' endTime: 'END_TIME' logsUrl: https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL, counter: success: 'SUCCESS_COUNT' name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID response: '@type': type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ImportResourcesResponse fhirStore: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID
API
Para importar recursos FHIR a un almacén FHIR, usa el método projects.locations.datasets.fhirStores.import
.
- La ubicación de los archivos dentro del segmento es arbitraria y no tiene por qué coincidir exactamente con el formato especificado en los siguientes ejemplos.
- Al especificar la ubicación de los recursos FHIR en Cloud Storage, puedes utilizar comodines para importar varios archivos desde uno o más directorios.
Se admiten los siguientes comodines:
- Usa
*
para hacer coincidir 0 o más caracteres que no sean de separación. Por ejemplo,gs://BUCKET/DIRECTORY/Example*.ndjson
coincide con Example.ndjson y Example22.ndjson en DIRECTORY. - Usa
**
para hacer coincidir 0 o más caracteres (incluidos los de separación). Se debe usar al final de una ruta y no debe haber otros comodines en la ruta. También se puede usar con una extensión de nombre de archivo (como .ndjson), que importa todos los archivos con la extensión de nombre de archivo del directorio especificado y sus subdirectorios. Por ejemplo,gs://BUCKET/DIRECTORY/**.ndjson
importa todos los archivos con la extensión .ndjson de DIRECTORY y sus subdirectorios. - Usa
?
para hacer que coincida 1 carácter. Por ejemplo,gs://BUCKET/DIRECTORY/Example?.ndjson
coincide con Example1.ndjson, pero no con Example.ndjson ni con Example01.ndjson.
- Usa
curl
Para importar recursos FHIR en un almacén FHIR, haz una solicitud POST
y especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- Ubicación del objeto en un segmento de Cloud Storage
- Un token de acceso
En el siguiente ejemplo se muestra cómo importar un solo archivo mediante una solicitud POST
que utiliza curl
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'contentStructure': 'CONTENT_STRUCTURE', 'gcsSource': { 'uri': 'gs://BUCKET/DIRECTORY/FHIR_RESOURCE_FILE' } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:import"
Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La respuesta contiene un nombre de operación. Para hacer un seguimiento del estado de la operación, puedes usar el método Operation get
:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta con el estado de la operación en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.ImportResources", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL", "counter": { "success": "SUCCESS_COUNT" } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ImportResourcesResponse", } }
PowerShell
Para importar recursos FHIR en un almacén FHIR, haz una solicitud POST
y especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- Ubicación del objeto en un segmento de Cloud Storage
- Un token de acceso
En el siguiente ejemplo se muestra una solicitud POST
que utiliza Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body "{ 'contentStructure': 'CONTENT_STRUCTURE', 'gcsSource': { 'uri': 'gs://BUCKET/DIRECTORY/FHIR_RESOURCE_FILE' } }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:import" | Select-Object -Expand Content
Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La respuesta contiene un nombre de operación. Para hacer un seguimiento del estado de la operación, puedes usar el método Operation get
:
$cred = gcloud auth application-default 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/operations/OPERATION_ID" | Select-Object -Expand Content
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta con el estado de la operación en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.ImportResources", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL", "counter": { "success": "SUCCESS_COUNT" } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ImportResourcesResponse", } }
Go
Java
Node.js
Python
Exportar recursos FHIR
En los ejemplos siguientes se muestra cómo exportar recursos FHIR a un segmento de Cloud Storage. Al exportar recursos FHIR desde un almacén FHIR, se exportan todos los recursos que se encuentran en el almacén.
Si exportas recursos FHIR de forma programada, te recomendamos que exportes tus datos de forma incremental. Para obtener instrucciones, consulta Exportaciones incrementales.
Durante la exportación, la API Cloud Healthcare crea un archivo por cada tipo de recurso del almacén FHIR. El nombre del archivo consta del ID de operación y del tipo de recurso separados por un guion bajo. Cada archivo consta de JSON delimitado por líneas nuevas, donde cada línea es un recurso FHIR correspondiente al tipo de recurso del nombre de archivo. Por ejemplo, si exporta varios registros de Patient, el archivo de salida se llamará de forma similar a 1264567891234567_Patient
y contendrá una línea por cada recurso Patient del almacén FHIR.
Consola
Para exportar recursos FHIR a Cloud Storage, sigue estos pasos:
- En la Google Cloud consola, ve a la página Conjuntos de datos.
Ir a conjuntos de datos - Haga clic en el conjunto de datos que contiene el almacén FHIR del que quiere exportar recursos FHIR.
- En la lista de almacenes de datos, elige Exportar en la lista Acciones
del almacén de recursos de FHIR.
Se muestra la página Exportar recursos de FHIR. - Selecciona Segmento de Google Cloud Storage.
- En la lista Proyecto, selecciona un proyecto de Cloud Storage.
- En la lista Ubicación, selecciona un segmento de Cloud Storage.
- Haga clic en Exportar para exportar los recursos FHIR a la ubicación definida en Cloud Storage.
- Para hacer un seguimiento del estado de la operación, haga clic en la pestaña Operaciones. Una vez que se haya completado la operación, aparecerán las siguientes indicaciones:
- La sección Estado de la operación de larga duración tiene una marca de verificación verde en el encabezado OK.
- La sección Resumen tiene una marca de verificación verde y un indicador OK en la misma fila que el ID de operación.
gcloud
Para exportar recursos FHIR a un segmento de Cloud Storage, usa el comando
gcloud healthcare fhir-stores export gcs
. Especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- Nombre del proyecto superior
- El segmento o el directorio de destino de Cloud Storage. Escribe en un segmento o directorio de Cloud Storage en lugar de en un objeto, ya que la API Cloud Healthcare crea un objeto por cada tipo de recurso. Todos los objetos tienen formato JSON delimitado por líneas nuevas, donde cada línea es un recurso FHIR. Si especificas un directorio que no existe, se creará.
- Una marca opcional,
--resource-type
, que solo exporta tipos de recursos específicos, definidos como una lista separada por comas de uno o varios tipos de recursos FHIR - Una marca opcional,
--since
, que solo exporta los recursos actualizados después de una hora específica, definida comoYYYY-MM-DDThh:mm:ss.sss+zz:zz
En el siguiente ejemplo se muestra el comando gcloud healthcare fhir-stores export gcs
.
gcloud healthcare fhir-stores export gcs FHIR_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --project=PROJECT_ID --gcs-uri=gs://BUCKET/DIRECTORY
La línea de comandos muestra el ID de la operación:
Waiting for operation [OPERATION_ID] to complete...done. name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID
Para ver el estado de la operación, ejecuta el comando
gcloud healthcare operations describe
y proporciona el OPERATION_ID de la respuesta:
gcloud healthcare operations describe OPERATION_ID \ --dataset=DATASET_ID
Una vez que se haya completado el comando, la respuesta incluirá done
.
metadata: '@type': type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata apiMethodName: google.cloud.healthcare.v1.fhir.FhirService.ExportFhirData createTime: "CREATE_TIME" endTime: "END_TIME" name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID response: '@type': type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ExportResourcesResponse fhirStore: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID resourceCount: 'RESOURCE_COUNT'
API
Para exportar recursos FHIR, utiliza el método projects.locations.datasets.fhirStores.export
.
- Escribe en un segmento o directorio de Cloud Storage en lugar de en un objeto, ya que la API Cloud Healthcare crea un archivo JSON delimitado por líneas nuevas por cada tipo de recurso. En cada archivo JSON, cada línea es un recurso FHIR.
- Si el comando especifica un directorio que no existe, se crea.
curl
Para exportar recursos FHIR, haz una solicitud POST
y especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- El segmento de destino de Cloud Storage
- Un token de acceso
- Un campo opcional,
_type
, que solo exporta tipos de recursos específicos, definidos como una lista separada por comas de uno o varios tipos de recursos FHIR - Un campo opcional,
_since
, que solo exporta los recursos actualizados después de un momento específico, definido comoYYYY-MM-DDThh:mm:ss.sss+zz:zz
En el siguiente ejemplo se muestra una solicitud POST
que utiliza curl
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' }, }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export"
Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La respuesta contiene un nombre de operación. Para hacer un seguimiento del estado de la operación, puedes usar el método Operation get
:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta con el estado de la operación en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.ExportResources", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL", "counter": { "success": "SUCCESS_COUNT" } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ExportResourcesResponse", } }
PowerShell
Para exportar recursos FHIR, haz una solicitud POST
y especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- El segmento o el directorio de destino de Cloud Storage. Escribe en un segmento o directorio de Cloud Storage en lugar de en un objeto, ya que la API Cloud Healthcare crea un objeto por cada tipo de recurso. Todos los objetos tienen formato JSON delimitado por líneas nuevas, donde cada línea es un recurso FHIR.
- Un token de acceso
- Un campo opcional,
_type
, que solo exporta tipos de recursos específicos, definidos como una lista separada por comas de uno o varios tipos de recursos FHIR - Un campo opcional,
_since
, que solo exporta los recursos actualizados después de un momento específico, definido comoYYYY-MM-DDThh:mm:ss.sss+zz:zz
En el siguiente ejemplo se muestra una solicitud POST
que utiliza Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' }, }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export" | Select-Object -Expand Content
Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La respuesta contiene un nombre de operación. Para hacer un seguimiento del estado de la operación, puedes usar el método Operation get
:
$cred = gcloud auth application-default 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/operations/OPERATION_ID" | Select-Object -Expand Content
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta con el estado de la operación en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.ExportResources", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL", "counter": { "success": "SUCCESS_COUNT" } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.fhir.rest.ExportResourcesResponse", } }
Go
Java
Node.js
Python
Exportaciones incrementales
Puedes especificar una marca de tiempo para exportar solo los recursos FHIR que se hayan añadido a tu almacén FHIR desde una exportación anterior que se haya completado correctamente. De esta forma, se mejora el rendimiento y se evitan los costes de volver a exportar todo el almacén FHIR, al tiempo que se asegura de que los datos exportados estén siempre actualizados.
Cuando llames a fhirStores.export
, especifica la marca de tiempo en el campo _since
.
Solucionar problemas con solicitudes de importación y exportación de FHIR
Si se producen errores durante una solicitud de importación o exportación de FHIR, se registran en Cloud Logging. Para obtener más información, consulta Ver registros de errores en Cloud Logging.
Si toda la operación devuelve un error, consulta Solucionar problemas de operaciones de larga duración.
Siguientes pasos
- Si ha importado correctamente datos FHIR y quiere analizarlos en BigQuery, vaya a Exportar datos FHIR a BigQuery.