En esta página, se describe cómo exportar mensajes de HL7v2 a Pub/Sub con el método projects.locations.datasets.hl7V2Stores.export
.
Puedes exportar mensajes de HL7v2 a Pub/Sub para su procesamiento posterior.
Supongamos que tienes una canalización de Dataflow que transforma mensajes de HL7v2.
cuando se transfieren mensajes nuevos a un almacén de HL7v2. La canalización lee de un
Suscripción a Pub/Sub y espera notificaciones de HL7v2 nuevos
mensajes nuevos. Cuando importas mensajes de HL7v2 a un almacén de HL7v2 con el método hl7V2Stores.import
, este no envía notificaciones de Pub/Sub.
Para activar la canalización, importa los mensajes de HL7v2 y, luego, usa el
hl7v2Stores.export
para exportarlos a Pub/Sub.
Antes de comenzar
Habilita la API de Pub/Sub
En la consola de Google Cloud, habilita la API de Pub/Sub:
Configura los permisos de Pub/Sub
Para exportar mensajes de un almacén de HL7v2 a Pub/Sub, debes agregar
el rol pubsub.publisher
en el agente de servicio de Cloud Healthcare del proyecto
cuenta de servicio.
Consulta los permisos de Pub/Sub para los almacenes de DICOM, FHIR y HL7v2 y sigue los pasos para agregar la función necesaria.
Crea un tema de Pub/Sub
Para crear un tema, consulta Cómo crear un tema.
Los almacenes de datos individuales pueden tener su propio tema de Pub/Sub, o múltiples almacenes de datos pueden compartir el mismo tema.
Usa el siguiente formato cuando especifiques el tema de Pub/Sub:
projects/PROJECT_ID/topics/TOPIC_NAME
PROJECT_ID
es el ID y el ID del proyecto de Google Cloud.
TOPIC_NAME
es el nombre del tema de Pub/Sub.
Exporta mensajes de HL7v2 a Pub/Sub
curl
Para exportar mensajes de HL7v2 a Pub/Sub, realiza una solicitud POST
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén de HL7v2
- El tema de Pub/Sub de destino
En el siguiente ejemplo, se muestra 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 "{ 'pubsubDestination': { 'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC' } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"
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.ExportMessages", "createTime": "CREATE_TIME", "endTime": "END_TIME", "counter": { "success": "RESOURCE_COUNT" } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ExportMessagesResponse" } }
Exporta un subconjunto de mensajes de HL7v2 con un filtro
Puedes usar los siguientes campos en tus criterios de filtro:
Puedes especificar los siguientes parámetros de filtro como tus criterios de filtro en el filter
. Para conocer el filtro
la sintaxis y las consultas de construcción, consulta
Cadenas de consulta.
message_type
: del campo MSH.9.1 Por ejemplo,NOT message_type = "ADT"
send_date
: Es la fecha deYYYY-MM-DD
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
: Es la marca de tiempo en la que se envió el mensaje. Este parámetro proviene de el 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 de Cloud Healthcare con el formato de tiempo RFC 3339 para las comparaciones. Por ejemplo:create_time < "2017-01-02T00:00:00-05:00"
.send_facility
: El centro de atención del que proviene 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 de HL7v2
del tipo ADT
.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'pubsubDestination': { 'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC' }, 'filter': 'message_type = \"ADT\"' }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"
Ver mensajes de HL7v2 exportados en Pub/Sub
Para ver los mensajes HL7v2 exportados en Pub/Sub, sigue estos pasos:
ejecuta gcloud pubsub subscriptions pull
.
. El comando usa la marca --format=json
para mostrar el resultado como JSON en lugar del YAML predeterminado.
gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION \ --format=json
PROJECT_ID
es el ID de tu proyecto de Google Cloud.PUBSUB_SUBSCRIPTION
es la suscripción adjunta al tema de Pub/Sub en el que exportaste mensajes de HL7v2.
Esta es la salida:
[ { "ackId": "ACK_ID", "message": { "attributes": { "msgType": "TYPE" }, "data": "DATA", "messageId": "8076570784126536", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } } ]