En esta página se describe cómo exportar mensajes HL7v2 de un almacén HL7v2 a Cloud Storage. Puedes exportar mensajes HL7v2 en bloque a Cloud Storage para procesarlos más adelante.
Antes de empezar
Consulta los roles que debes conceder a la cuenta de servicio Agente de servicio de Cloud Healthcare en el artículo Exportar mensajes HL7v2 desde Cloud Storage.
Exportar mensajes HL7v2 a Cloud Storage
La API Cloud Healthcare exporta cada mensaje HL7v2 como una línea en un archivo NDJSON .ndjson
. Los mensajes HL7v2 se ordenan cronológicamente por el valor de sendTime
.
Exporta a un segmento o una carpeta de Cloud Storage en lugar de a un objeto, ya que la API Cloud Healthcare puede crear varios archivos NDJSON cuando hay muchos mensajes HL7v2.
Si exportas a una carpeta de Cloud Storage que no existe, se creará la carpeta.
Consola
Para exportar mensajes HL7v2 a Cloud Storage, sigue estos pasos:
En la Google Cloud consola, ve a la página Conjuntos de datos.
Haz clic en el conjunto de datos que contiene el almacén HL7v2 del que vas a exportar mensajes HL7v2.
En la lista de almacenes de datos, elige Exportar en la lista Acciones del almacén HL7v2.
Se muestra la página Exportar mensajes HL7v2.
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 las instancias HL7v2 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.
Exportar mensajes HL7v2 a Cloud Storage mediante filtros
De forma predeterminada, al exportar mensajes HL7v2 a Cloud Storage se incluyen todos los mensajes HL7v2 de un almacén HL7v2 y todos los campos de cada objeto Message
.
Puede filtrar los mensajes HL7v2 exportados de la siguiente manera:
- Use filtros para exportar un subconjunto de mensajes HL7v2 que cumplan los criterios de un filtro. Para obtener más información, consulta Exportar un subconjunto de mensajes HL7v2 mediante un filtro.
- Usa el objeto
MessageView
para seleccionar los campos de cadaMessage
que quieras exportar. Para obtener más información, consulta Exportar mensajes HL7v2 por campoMessage
.
Exportar un subconjunto de mensajes HL7v2 mediante un filtro
Puede usar los siguientes campos en sus criterios de filtro:
Puede especificar los siguientes parámetros de filtro como criterios de filtro en el campo filter
. Para obtener información sobre la sintaxis de los filtros y crear consultas, consulta Cadenas de consulta.
message_type
: del campo MSH.9.1. Por ejemplo,NOT message_type = "ADT"
.send_date
: laYYYY-MM-DD
fecha en la que se envió el mensaje desde el segmento MSH.7, especificada en la zona horaria del conjunto de datos. Por ejemplo,send_date < "2017-01-02"
.send_time
: marca de tiempo que indica cuándo se envió el mensaje. Este parámetro procede del segmento MSH.7 del mensaje. Este parámetro usa el formato de hora RFC 3339 para las comparaciones. Por ejemplo,send_time < "2017-01-02T00:00:00-05:00"
.create_time
: la marca de tiempo en la que se creó el mensaje en la API Cloud Healthcare, con el formato de hora RFC 3339 para las comparaciones. Por ejemplo:create_time < "2017-01-02T00:00:00-05:00"
.send_facility
: el centro de asistencia del que procede el mensaje, del segmento MSH.4. Por ejemplo,send_facility = "ABC"
.
En los siguientes ejemplos se muestra cómo especificar un filtro para exportar solo mensajes HL7v2 de tipo ADT
.
REST
Usa el método
hl7V2Stores.export
para exportar los mensajes HL7v2:Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu Google Cloud proyectoLOCATION
: la ubicación del conjunto de datosDATASET_ID
: el conjunto de datos superior del almacén HL7v2HL7V2_STORE_ID
: el ID del almacén HL7v2CLOUD_STORAGE_LOCATION
: nombre de un segmento o una carpeta de Cloud Storage en los que se escriben los mensajes HL7v2 exportados
Cuerpo JSON de la solicitud:
{ "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION" }, "filter": "message_type = \"ADT\"" }
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' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION" }, "filter": "message_type = \"ADT\"" } 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/hl7V2Stores/HL7V2_STORE_ID:export"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:@' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION" }, "filter": "message_type = \"ADT\"" } '@ | 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/hl7V2Stores/HL7V2_STORE_ID:export" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el siguiente paso.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu Google Cloud proyectoDATASET_ID
: el ID del conjunto de datosLOCATION
: la ubicación del conjunto de datosOPERATION_ID
: el ID devuelto por la operación de larga duración
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/operations/OPERATION_ID"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/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
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. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado.
Exportar mensajes HL7v2 por campo Message
En la API Cloud Healthcare, los mensajes HL7v2 se almacenan en recursos Message
. Puedes usar el enum MessageView
para determinar qué campos del recurso Message
se incluyen en
cada mensaje HL7v2 exportado.
En los siguientes ejemplos se muestra cómo usar el valor BASIC
en MessageView
para incluir solo el campo name
en los mensajes HL7v2 exportados.
REST
Usa el método
hl7V2Stores.export
para exportar los mensajes HL7v2:Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu Google Cloud proyectoLOCATION
: la ubicación del conjunto de datosDATASET_ID
: el conjunto de datos superior del almacén HL7v2HL7V2_STORE_ID
: el ID del almacén HL7v2CLOUD_STORAGE_LOCATION
: nombre de un segmento o una carpeta de Cloud Storage en los que se escriben los mensajes HL7v2 exportados
Cuerpo JSON de la solicitud:
{ "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION", "messageView": "BASIC" } }
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' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION", "messageView": "BASIC" } } 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/hl7V2Stores/HL7V2_STORE_ID:export"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:@' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION", "messageView": "BASIC" } } '@ | 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/hl7V2Stores/HL7V2_STORE_ID:export" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el siguiente paso.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu Google Cloud proyectoDATASET_ID
: el ID del conjunto de datosLOCATION
: la ubicación del conjunto de datosOPERATION_ID
: el ID devuelto por la operación de larga duración
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/operations/OPERATION_ID"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/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
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. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado.
Solucionar problemas con las solicitudes de exportación de HL7v2
Si se producen errores al exportar mensajes HL7v2, se registran en Cloud Logging. Para obtener más información, consulta Ver registros de errores en Cloud Logging.
Si una operación de larga duración devuelve un error, consulta Solucionar problemas de operaciones de larga duración.