En esta página, se describe cómo importar mensajes de HL7v2 desde Cloud Storage a un almacén de HL7v2. La importación masiva de mensajes HL7v2 es más rápida y sencilla que almacenarlos de forma individual con la API de REST.
Antes de comenzar
Consulta Cómo importar mensajes de HL7v2 desde Cloud Storage para conocer los roles que debes otorgar a la cuenta de servicio del 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:
En la consola de Google Cloud, ve a la página Conjuntos de datos.
Haz clic en el conjunto de datos que contiene el almacén de HL7v2 al que importas los mensajes de HL7v2.
En la lista de almacenes de datos, selecciona Importar en la lista Acciones para el almacén de HL7v2.
Aparecerá la página Importar al almacén de HL7v2 .
En la lista Proyecto, selecciona un proyecto de Cloud Storage.
En la lista Ubicación, selecciona un depósito de Cloud Storage.
Si deseas establecer una ubicación específica para la importación de archivos, haz lo siguiente:
- Expande Opciones avanzadas.
- Selecciona Anular ruta de Cloud Storage.
Si deseas establecer una fuente específica para la importación de archivos, define la ruta de acceso 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 asignación de nombres a los 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.
- Usa
Haz clic en Importar para importar mensajes HL7v2 desde la fuente definida.
- 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.
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.
- Usa
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.