Importa mensajes de HL7v2 desde Cloud Storage

En esta página, se describe cómo importar mensajes HL7v2 desde Cloud Storage a un almacén de HL7v2. La importación masiva de mensajes de HL7v2 es más rápido y sencillo que almacenarlos individualmente con la API de REST.

Antes de comenzar

Consulta Importar mensajes HL7v2 desde Cloud Storage para conocer las funciones que debes otorgar a la cuenta de servicio Agente de servicio de Cloud Healthcare.

Requisitos de formato de archivo de entrada

Para importar mensajes de HL7v2, primero debes crear uno o más archivos JSON delimitados por saltos de línea (.ndjson) en Cloud Storage que contengan uno o más mensajes. Cada línea del archivo es un recurso Message único que contiene un mensaje de HL7v2 codificada en base64. El recurso Message también puede incluir etiquetas opcionales.

Por ejemplo, el siguiente archivo, llamado messages.ndjson, contiene dos mensajes de HL7v2. Una etiqueta se define en el segundo mensaje.

{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzF8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg=="}
{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzJ8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg==","labels":{"foo":"bar"}}

Importa mensajes de HL7v2

Console

Para importar mensajes HL7v2 desde un bucket de Cloud Storage, completa los siguientes pasos:

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

    Ir a Conjuntos de datos

  2. Haz clic en el conjunto de datos que contiene el almacén de HL7v2 al que deseas importar los mensajes de HL7v2.

  3. En la lista de almacenes de datos, elige Importar en la lista Acciones para el almacén de HL7v2.

    Aparecerá la página Importar al almacén de HL7v2 .

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

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

  6. Si deseas establecer una ubicación específica para la importación de archivos, haz lo siguiente:

    1. Expande Opciones avanzadas.
    2. Selecciona Anular ruta de Cloud Storage.
    3. Si quieres establecer una fuente específica para importar archivos, define la ruta de acceso en el cuadro de texto Ubicación. Puedes usar comodines para importar varios archivos de uno o más directorios. Si quieres obtener más información sobre la denominación de objetos, consulta los Lineamientos para asignar nombres a objetos.

      Se admiten los siguientes comodines:
      • Usa * para hacer coincidir 0 o más caracteres sin separadores. 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 (con separadores). 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 en el directorio especificado y en sus subdirectorios. Por ejemplo, gs://BUCKET/DIRECTORY/**.ndjson importa todos los archivos con la extensión de nombre de archivo .ndjson en DIRECTORY y en sus subdirectorios.
      • Usa ? para hacer coincidir 1 carácter. Por ejemplo, gs://BUCKET/DIRECTORY/Example?.ndjson coincide con Example1.ndjson, pero no coincide con Example.ndjson ni Example01.ndjson.
  7. Haz clic en Importar para importar mensajes HL7v2 desde la fuente definida.

  8. Para seguir el estado de la operación, haz clic en la pestaña Operaciones. Una vez que se completa 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 debajo del encabezado Aceptar.
    • La sección Descripción general tiene una marca de verificación verde y un indicador Aceptar en la misma fila que el ID de la operación.
    Si encuentras algún error, haz clic en Acciones y, luego, en Ver detalles en Cloud Logging.

API

En los siguientes ejemplos, se muestra cómo importar mensajes de HL7v2 de Cloud Storage con el método projects.locations.datasets.hl7V2Stores.import.

Ten en cuenta lo siguiente cuando llames a la operación de importación:

  • La ubicación del archivo dentro del bucket es arbitraria y no necesita adherirse exactamente al formato especificado en los siguientes ejemplos.
  • Cuando especificas la ubicación de los mensajes de HL7v2 en Cloud Storage, puedes usar 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 sin separadores. 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 (con separadores). 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 en el directorio especificado y en sus subdirectorios. Por ejemplo, gs://BUCKET/DIRECTORY/**.ndjson importa todos los archivos con la extensión de nombre de archivo .ndjson en DIRECTORY y en sus subdirectorios.
    • Usa ? para hacer coincidir 1 carácter. Por ejemplo, gs://BUCKET/DIRECTORY/Example?.ndjson coincide con Example1.ndjson, pero no coincide con Example.ndjson ni Example01.ndjson.

curl

Para importar mensajes de HL7v2 a un almacén de HL7v2, realiza una solicitud POST y especifica la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de HL7v2
  • La ubicación del objeto en un bucket de Cloud Storage
  • Un token de acceso

En el siguiente ejemplo, se muestra cómo importar un solo archivo con el uso de una solicitud POST mediante curl.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'gcsSource': {
        'uri': 'gs://BUCKET/DIRECTORY/HL7V2_MESSAGE_FILE'
      }
    }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import"

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

La respuesta contiene un nombre de operación. Para realizar un seguimiento del estado de la operación, puedes usar el método get de la operación:

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 es exitosa, el servidor mostrará 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.hl7v2.Hl7V2Service.ImportMessages",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ImportMessagesResponse"
  }
}

PowerShell

Para importar mensajes de HL7v2 a un almacén de HL7v2, realiza una solicitud POST y especifica la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de HL7v2
  • La ubicación del objeto en un bucket de Cloud Storage
  • Un token de acceso

En el siguiente ejemplo, se muestra cómo importar un solo archivo mediante una solicitud POST con 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 "{
    'gcsSource': {
      'uri': 'gs://BUCKET/DIRECTORY/HL7V2_MESSAGE_FILE'
    }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import" | Select-Object -Expand Content

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

La respuesta contiene un nombre de operación. Para realizar un seguimiento del estado de la operación, puedes usar el método get de la operación:

$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 es exitosa, el servidor mostrará 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.hl7v2.Hl7V2Service.ImportMessages",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ImportMessagesResponse"
  }
}

Soluciona problemas de solicitudes de importación de HL7v2

Si se producen errores durante la importación de mensajes HL7v2, estos se registran en Cloud Logging. Para obtener más información, consulta Visualiza los registros de errores en Cloud Logging.

Si una operación de larga duración muestra un error, consulta Solución de problemas de operaciones de larga duración.