Questa pagina descrive come esportare i messaggi HL7v2 in Pub/Sub utilizzando
projects.locations.datasets.hl7V2Stores.export
.
È possibile esportare messaggi HL7v2 in Pub/Sub per l'elaborazione downstream.
Supponi di avere una pipeline Dataflow che trasforma i messaggi HL7v2
quando nuovi messaggi vengono importati in un archivio HL7v2. La pipeline legge da un
sottoscrizione Pub/Sub e attende le notifiche del nuovo HL7v2
messaggi. Quando si importano messaggi HL7v2 in un archivio HL7v2 utilizzando il
hl7V2Stores.import
, il metodo non invia notifiche Pub/Sub.
Per attivare la pipeline, importa i messaggi HL7v2 e quindi utilizza il metodo
hl7v2Stores.export
per esportarle in Pub/Sub.
Prima di iniziare
Abilita l'API Pub/Sub
Nella console Google Cloud, abilita l'API Pub/Sub:
Configurare le autorizzazioni Pub/Sub
Per esportare i messaggi da un archivio HL7v2 a Pub/Sub, è necessario aggiungere
il ruolo pubsub.publisher
all'agente di servizio Cloud Healthcare del tuo progetto
account di servizio.
Vedi le autorizzazioni Pub/Sub per datastore FHIR, FHIR e HL7v2
per istruzioni su come aggiungere il ruolo richiesto.
crea un argomento Pub/Sub
Per creare un argomento, consulta Creare un argomento.
I singoli datastore possono avere il proprio argomento Pub/Sub oppure più datastore possono lo stesso argomento.
Utilizza il formato seguente quando specifichi l'argomento Pub/Sub:
projects/PROJECT_ID/topics/TOPIC_NAME
PROJECT_ID
è l'ID del tuo progetto Google Cloud
TOPIC_NAME
è il nome dell'argomento Pub/Sub.
Esportare i messaggi HL7v2 in Pub/Sub
curl
Per esportare messaggi HL7v2 in Pub/Sub, effettua una richiesta POST
e
specificare le seguenti informazioni:
- Il nome del set di dati principale
- Nome dell'archivio HL7v2
- L'argomento Pub/Sub di destinazione
L'esempio seguente mostra una richiesta POST
che utilizza 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"
Se la richiesta riesce, il server restituisce la risposta in formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La risposta contiene il nome di un'operazione. Per monitorare lo stato dell'operazione,
puoi utilizzare il
metodo 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"
Se la richiesta riesce, il server restituisce una risposta con lo stato l'operazione in 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" } }
Esportare un sottoinsieme di messaggi HL7v2 utilizzando un filtro
Nei criteri di filtro puoi utilizzare i seguenti campi:
Puoi specificare i seguenti parametri di filtro come criteri di filtro nella filter
. Per imparare a usare il filtro
sulla sintassi e costruire le query,
Stringhe di query.
message_type
: dal campo MSH.9.1. Ad esempio,NOT message_type = "ADT"
.send_date
: la dataYYYY-MM-DD
in cui il messaggio è stato inviato dal segmento MSH.7, specificata nel fuso orario del set di dati. Ad esempio:send_date < "2017-01-02"
.send_time
: il timestamp di invio del messaggio. Questo parametro proviene da il segmento MSH.7 del messaggio. Questo parametro utilizza il parametro Formato ora RFC 3339 per i confronti. Ad esempio:send_time < "2017-01-02T00:00:00-05:00"
.create_time
: il timestamp di creazione del messaggio nell'API Cloud Healthcare, utilizzando il formato ora RFC 3339 per i confronti. Ad esempio:create_time < "2017-01-02T00:00:00-05:00"
.send_facility
: il centro assistenza da cui proviene il messaggio, dal segmento MSH.4. Ad esempio,send_facility = "ABC"
.
Gli esempi riportati di seguito mostrano come specificare un filtro per esportare solo i messaggi HL7v2
di 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"
Visualizza i messaggi HL7v2 esportati in Pub/Sub
Per visualizzare i messaggi HL7v2 esportati in Pub/Sub,
esegui gcloud pubsub subscriptions pull
. Il comando utilizza il flag --format=json
per restituire l'output in formato JSON anziché come YAML predefinito.
gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION \ --format=json
PROJECT_ID
è l'ID del tuo progetto Google CloudPUBSUB_SUBSCRIPTION
è la sottoscrizione collegata all'argomento Pub/Sub in cui hai esportato i messaggi HL7v2
L'output è il seguente:
[ { "ackId": "ACK_ID", "message": { "attributes": { "msgType": "TYPE" }, "data": "DATA", "messageId": "8076570784126536", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } } ]