Importar mensajes HL7v2 desde Cloud Storage

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

Antes de empezar

Consulta los roles que debes conceder a la cuenta de servicio Agente de servicio de Cloud Healthcare en el artículo Importar mensajes HL7v2 desde Cloud Storage.

Requisitos de formato de los archivos de entrada

Para importar mensajes HL7v2, primero debe crear uno o varios archivos JSON delimitados por líneas nuevas (.ndjson) en Cloud Storage que contengan uno o varios mensajes. Cada línea del archivo es un único recurso Message que contiene un mensaje HL7v2 codificado en base64. El Message recurso también puede incluir etiquetas opcionales.

Por ejemplo, el siguiente archivo, llamado messages.ndjson, contiene dos mensajes HL7v2. Se define una etiqueta en el segundo mensaje.

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

Importar mensajes HL7v2

Consola

Para importar mensajes HL7v2 desde un segmento de 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. Haga clic en el conjunto de datos que contiene el almacén HL7v2 al que va a importar mensajes HL7v2.

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

    Aparecerá la página Importar a almacén 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. Para definir una ubicación específica para importar archivos, sigue estos pasos:

    1. Despliega Opciones avanzadas.
    2. Selecciona Reemplazar ruta de Cloud Storage.
    3. Para definir una fuente específica para importar archivos, indica la ruta en el cuadro de texto Ubicación. Puedes usar comodines para importar varios archivos desde uno o más directorios. Para obtener más información sobre la nomenclatura de objetos, consulta las directrices de nomenclatura de objetos.

      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.
  7. Haz clic en Importar para importar mensajes HL7v2 desde la fuente definida.

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

API

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

Cuando llames a la operación de importación, ten en cuenta lo siguiente:

  • La ubicación del archivo 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 mensajes HL7v2 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.

curl

Para importar mensajes HL7v2 en un almacén HL7v2, haz una solicitud POST y especifica la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén HL7v2.
  • 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 "{
      '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 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.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 HL7v2 en un almacén HL7v2, haz una solicitud POST y especifica la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén HL7v2.
  • 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 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 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.hl7v2.Hl7V2Service.ImportMessages",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ImportMessagesResponse"
  }
}

Solucionar problemas con solicitudes de importación de HL7v2

Si se producen errores al importar 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.