Auf dieser Seite wird beschrieben, wie Sie HL7v2-Nachrichten mit der projects.locations.datasets.hl7V2Stores.export
-Methode nach Pub/Sub exportieren.
Sie können HL7v2-Nachrichten zur Downstream-Verarbeitung nach Pub/Sub exportieren.
Angenommen, Sie haben eine Dataflow-Pipeline, die HL7v2-Nachrichten transformiert.
wenn neue Nachrichten in einen HL7v2-Speicher aufgenommen werden. Die Pipeline liest aus einem Pub/Sub-Abo und wartet auf Benachrichtigungen zu neuen HL7v2-Nachrichten. Wenn Sie HL7v2-Nachrichten mithilfe der Methode
hl7V2Stores.import
werden keine Pub/Sub-Benachrichtigungen gesendet.
Importieren Sie zum Auslösen der Pipeline die HL7v2-Nachrichten und verwenden Sie dann
hl7v2Stores.export
, um sie nach Pub/Sub zu exportieren.
Hinweise
Pub/Sub API aktivieren
Aktivieren Sie in der Google Cloud Console die Pub/Sub API:
Pub/Sub-Berechtigungen konfigurieren
Um Nachrichten aus einem HL7v2-Speicher nach Pub/Sub zu exportieren, müssen Sie
die Rolle pubsub.publisher
für den Cloud Healthcare-Dienst-Agent Ihres Projekts
Dienstkonto.
Weitere Informationen zum Hinzufügen der erforderlichen Rolle finden Sie unter Pub/Sub-Berechtigungen für DICOM-, FHIR- und HL7v2-Speicher.
Pub/Sub-Thema erstellen
Informationen zum Erstellen eines Themas finden Sie unter Thema erstellen.
Einzelne Datenspeicher können ein eigenes Pub/Sub-Thema haben oder mehrere Datenspeicher können dasselbe Thema gemeinsam nutzen.
Verwenden Sie das folgende Format, wenn Sie das Pub/Sub-Thema angeben:
projects/PROJECT_ID/topics/TOPIC_NAME
Dabei ist PROJECT_ID
Ihre Google Cloud-Projekt-ID und TOPIC_NAME
der Name des Pub/Sub-Themas.
HL7v2-Nachrichten nach Pub/Sub exportieren
curl
Um HL7v2-Nachrichten nach Pub/Sub zu exportieren, senden Sie eine POST
-Anfrage und geben folgende Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des HL7v2-Speichers
- Das Pub/Sub-Zielthema
Das folgende Beispiel zeigt eine POST
-Anfrage mit 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"
Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
Die Antwort enthält einen Vorgangsnamen. Sie können den Status des Vorgangs mit der Methode Operation get
verfolgen:
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"
Wenn die Anfrage erfolgreich ist, gibt der Server eine Antwort mit dem Status des Vorgangs im JSON-Format zurück:
{ "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" } }
Teilmenge von HL7v2-Nachrichten mit einem Filter exportieren
Sie können die folgenden Felder in Ihren Filterkriterien verwenden:
In der filter
können Sie die folgenden Filterparameter als Filterkriterien angeben.
ein. Informationen zum Filter
Syntax und Erstellung von Abfragen finden Sie unter
Abfragestrings:
message_type
aus dem Feld MSH.9.1. Beispiel:NOT message_type = "ADT"
.send_date
: Das DatumYYYY-MM-DD
, an dem die Nachricht aus dem MSH.7-Segment gesendet wurde, angegeben in der Zeitzone des Datensatzes. Beispiel:send_date < "2017-01-02"
send_time
: der Zeitstempel, zu dem die Nachricht gesendet wurde. Dieser Parameter stammt aus dem MSH.7-Segment der Nachricht. Dieser Parameter verwendet den Parameter RFC 3339-Zeitformat für Vergleiche. Beispiel:send_time < "2017-01-02T00:00:00-05:00"
create_time
ist der Zeitstempel, zu dem die Nachricht in der Cloud Healthcare API erstellt wurde, unter Verwendung des RFC 3339-Zeitformats für Vergleiche. Beispiel:create_time < "2017-01-02T00:00:00-05:00"
send_facility
: Das Pflegezentrum, von dem die Nachricht stammt, aus dem MSH.4-Segment. Beispiel:send_facility = "ABC"
.
Die folgenden Beispiele zeigen, wie Sie einen Filter angeben, um nur HL7v2-Nachrichten zu exportieren
vom Typ 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"
Exportierte HL7v2-Nachrichten in Pub/Sub ansehen
Führen Sie den Befehl gcloud pubsub subscriptions pull
aus, um die exportierten HL7v2-Nachrichten in Pub/Sub aufzurufen. Im Befehl wird das Flag --format=json
verwendet, um die Ausgabe als JSON statt im Standard-YAML-Format zurückzugeben.
gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION \ --format=json
PROJECT_ID
ist die ID des Google Cloud-Projekts.PUBSUB_SUBSCRIPTION
ist das Abo, das mit dem Pub/Sub-Thema verknüpft ist, in das Sie HL7v2-Nachrichten exportiert haben.
Die Ausgabe sieht so aus:
[ { "ackId": "ACK_ID", "message": { "attributes": { "msgType": "TYPE" }, "data": "DATA", "messageId": "8076570784126536", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } } ]