Exportar mensajes HL7v2 a Cloud Storage

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:

  1. En la Google Cloud consola, ve a la página Conjuntos de datos.

    Ve a Conjuntos de datos.

  2. Haz clic en el conjunto de datos que contiene el almacén HL7v2 del que vas a exportar mensajes HL7v2.

  3. 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.

  4. En la lista Proyecto, selecciona un proyecto de Cloud Storage.

  5. En la lista Ubicación, selecciona un segmento de Cloud Storage.

  6. Haga clic en Exportar para exportar las instancias HL7v2 a la ubicación definida en Cloud Storage.

  7. 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.
    Si se produce algún error, haz clic en Acciones y, a continuación, en Ver detalles en Cloud Logging.

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:

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: la YYYY-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

  1. 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 proyecto
    • LOCATION: la ubicación del conjunto de datos
    • DATASET_ID: el conjunto de datos superior del almacén HL7v2
    • HL7V2_STORE_ID: el ID del almacén HL7v2
    • CLOUD_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 Content
    El resultado es el siguiente. La respuesta contiene un identificador de una operación de larga duración. Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar más tiempo en completarse. Anota el valor de OPERATION_ID. Necesitarás este valor en el siguiente paso.

  2. 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 proyecto
    • DATASET_ID: el ID del conjunto de datos
    • LOCATION: la ubicación del conjunto de datos
    • OPERATION_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 Content

    Explorador 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.

    El resultado es el siguiente. Cuando la respuesta contiene "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

  1. 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 proyecto
    • LOCATION: la ubicación del conjunto de datos
    • DATASET_ID: el conjunto de datos superior del almacén HL7v2
    • HL7V2_STORE_ID: el ID del almacén HL7v2
    • CLOUD_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 Content
    El resultado es el siguiente. La respuesta contiene un identificador de una operación de larga duración. Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar más tiempo en completarse. Anota el valor de OPERATION_ID. Necesitarás este valor en el siguiente paso.

  2. 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 proyecto
    • DATASET_ID: el ID del conjunto de datos
    • LOCATION: la ubicación del conjunto de datos
    • OPERATION_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 Content

    Explorador 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.

    El resultado es el siguiente. Cuando la respuesta contiene "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.