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 weiteren 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 mit der Methode hl7V2Stores.import
in einen HL7v2-Speicher importieren, werden keine Pub/Sub-Benachrichtigungen gesendet.
Um die Pipeline auszulösen, importieren Sie die HL7v2-Nachrichten und exportieren Sie sie dann mit der Methode hl7v2Stores.export
nach Pub/Sub.
Hinweis
Pub/Sub API aktivieren
Aktivieren Sie in der Google Cloud Console die Pub/Sub API:
Pub/Sub-Berechtigungen konfigurieren
Wenn Sie Nachrichten aus einem HL7v2-Speicher nach Pub/Sub exportieren möchten, müssen Sie dem Dienstkonto des Cloud Healthcare-Dienst-Agents Ihres Projekts die Rolle pubsub.publisher
zuweisen.
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.
Geben Sie das Pub/Sub-Thema im folgenden Format an:
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 Ziel-Pub/Sub-Thema
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:
Sie können die folgenden Filterparameter als Filterkriterien im Feld filter
angeben. Informationen zur Filtersyntax und zum Erstellen von Abfragen finden Sie unter Suchstrings.
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
: den Zeitstempel, der angibt, wann die Nachricht gesendet wurde. Dieser Parameter stammt aus dem MSH.7-Segment der Nachricht. Für diesen Parameter wird das Zeitformat RFC 3339 für Vergleiche verwendet. 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
ist das Pflegezentrum, aus dem die Nachricht stammt, aus dem MSH.4-Segment. Beispiel:send_facility = "ABC"
.
In den folgenden Beispielen wird gezeigt, wie ein Filter angegeben wird, um nur HL7v2-Nachrichten vom Typ ADT
zu exportieren.
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 Ihres 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" } } ]