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 nachgelagerten 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 über neue 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 hl7v2Stores.export-Methode nach Pub/Sub.
Hinweise
Pub/Sub API aktivieren
Aktivieren Sie die Pub/Sub API in der Google Cloud Console:
Pub/Sub-Berechtigungen konfigurieren
Wenn Sie Nachrichten aus einem HL7v2-Speicher in Pub/Sub exportieren möchten, müssen Sie die Rolle pubsub.publisher zum Dienstkonto Ihres Projekts Cloud Healthcare-Dienst-Agent hinzufügen.
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
PROJECT_ID ist 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"
}
}
Teilmengen 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 Suchanfragen.
message_typeaus dem Feld MSH.9.1. Beispiel:NOT message_type = "ADT".send_date: DasYYYY-MM-DD-Datum, an dem die Nachricht aus dem MSH.7-Segment gesendet wurde, angegeben in der Zeitzone des Datasets. Beispiel:send_date < "2017-01-02"send_time: Der Zeitstempel, der angibt, wann die Nachricht gesendet wurde. Dieser Parameter stammt aus dem Segment MSH.7 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_timeist 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_facilityist das Pflegezentrum, aus dem die Nachricht stammt, aus dem MSH.4-Segment. Beispiel:send_facility = "ABC".
In den folgenden Beispielen wird gezeigt, wie Sie einen Filter angeben, 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. In dem Befehl wird das Flag --format=json verwendet, um die Ausgabe als JSON anstelle des Standard-YAML zurückzugeben.
gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION \ --format=json
PROJECT_IDist die ID des Google Cloud -Projekts.PUBSUB_SUBSCRIPTIONist das Abo, das an das Pub/Sub-Thema angehängt 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"
}
}
]