HL7v2-Nachrichten mit Cloud Storage importieren und exportieren

Auf dieser Seite wird beschrieben, wie Sie HL7v2-Nachrichten mithilfe der Methoden projects.locations.datasets.hl7V2Stores.import und projects.locations.datasets.hl7V2Stores.export in und aus dem Cloud-Speicher exportieren und importieren.

Sie können HL7v2-Nachrichten aus Cloud Storage importieren, um viele HL7v2-Nachrichten im Bulk in einen HL7v2-Speicher zu laden. Sie können viele HL7v2-Nachrichten auf einmal in Cloud Storage exportieren, anstatt sie einzeln in Cloud Storage speichern zu müssen.

Cloud Storage-Berechtigungen festlegen

Bevor Sie HL7v2-Nachrichten in Cloud Storage importieren bzw. daraus exportieren können, müssen Sie dem Dienstkonto Cloud Healthcare Service Agent zusätzliche Berechtigungen erteilen. Weitere Informationen finden Sie unter Cloud Storage-Berechtigungen für HL7v2-Speicher.

HL7v2-Nachrichten importieren

Zum Importieren von HL7v2-Nachrichten müssen Sie zuerst eine oder mehrere durch Zeilenumbruch getrennte JSON-Dateien (.ndjson) in Cloud Storage erstellen, die eine oder mehrere Nachrichten enthalten. Jede Zeile der Datei ist eine einzelne Message-Ressource, die eine base64-codierte HL7v2-Nachricht enthält. Die Ressource Message kann auch optionale Labels enthalten.

Die folgende Datei namens messages.ndjson enthält beispielsweise zwei HL7v2-Nachrichten. In der zweiten Nachricht wird ein Label definiert.

{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzF8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg=="}
{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzJ8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg==","labels":{"foo":"bar"}}

Console

So importieren Sie HL7v2-Nachrichten aus einem Cloud Storage-Bucket:

  1. Rufen Sie in der Google Cloud Console die Seite Datasets auf.

    Zu „Datasets“

  2. Klicken Sie auf das Dataset mit dem HL7v2-Speicher, in den Sie HL7v2-Nachrichten importieren.

  3. Wählen Sie in der Liste der Datenspeicher Importieren aus der Liste Aktionen für den HL7v2-Speicher aus.

    Die Seite In HL7v2-Speicher importieren wird angezeigt.

  4. Wählen Sie in der Liste Projekt ein Cloud Storage-Projekt aus.

  5. Wählen Sie in der Liste Standort einen Cloud Storage-Bucket aus.

  6. So legen Sie einen bestimmten Speicherort für den Import von Dateien fest:

    1. Erweiterte Optionen einblenden.
    2. Wählen Sie Cloud Storage-Pfad überschreiben aus.
    3. Um eine bestimmte Quelle für den Import von Dateien festzulegen, definieren Sie den Pfad im Textfeld Standort. Sie können Platzhalter verwenden, um mehrere Dateien aus einem oder mehreren Verzeichnissen zu importieren. Weitere Informationen zur Benennung von Objekten finden Sie in den Benennungsrichtlinien für Objekte.

      Die folgenden Platzhalter werden unterstützt:
      • Verwenden Sie *, um null oder mehr Nicht-Trennzeichen abzugleichen. Beispiel: gs://BUCKET/DIRECTORY/Example*.ndjson stimmt mit "Example.ndjson" und "Example22.ndjson" in DIRECTORY überein.
      • Verwenden Sie **, um 0 oder mehr Zeichen (einschließlich Trennzeichen) abzugleichen. Muss am Ende eines Pfads und ohne andere Platzhalter im Pfad verwendet werden. Kann auch mit einer Dateinamenerweiterung wie .ndjson verwendet werden, die alle Dateien mit der Dateinamenerweiterung im angegebenen Verzeichnis und in seinen Unterverzeichnissen importiert. Beispiel: gs://BUCKET/DIRECTORY/**.ndjson importiert alle Dateien mit der Endung .ndjson in DIRECTORY und seinen Unterverzeichnissen.
      • Verwenden Sie ? als Platzhalter für genau 1 Zeichen. Beispiel: gs://BUCKET/DIRECTORY/Example?.ndjson stimmt mit "Example1.ndjson" überein, aber nicht mit "Example.ndjson" oder "Example01.ndjson".
  7. Klicken Sie auf Importieren, um HL7v2-Nachrichten aus der definierten Quelle zu importieren.

  8. Klicken Sie auf den Tab Vorgänge, um den Status des Vorgangs zu verfolgen. Wenn der Vorgang abgeschlossen ist, werden folgende Hinweise angezeigt:
    • Im Abschnitt Status: Lang andauernder Vorgang befindet sich unter der Überschrift OK ein grünes Häkchen.
    • Der Abschnitt Übersicht hat ein grünes Häkchen und einen OK-Indikator in der Zeile, in der sich auch die Vorgangs-ID befindet.
    Falls Fehler auftreten, klicken Sie auf Aktionen und dann auf Details in Cloud Logging ansehen.

API

Die folgenden Beispiele zeigen, wie HL7v2-Nachrichten mit der Methode projects.locations.datasets.hl7V2Stores.import aus Cloud Storage importiert werden.

Beachten Sie beim Aufruf des Importvorgangs Folgendes:

  • Der Speicherort der Datei im Bucket ist beliebig und muss nicht genau dem in den folgenden Beispielen angegebenen Format entsprechen.
  • Wenn Sie den Speicherort der HL7v2-Nachrichten in Cloud Storage angeben, können Sie Platzhalter verwenden, um mehrere Dateien aus einem oder mehreren Verzeichnissen zu importieren. Die folgenden Platzhalter werden unterstützt:
    • Verwenden Sie *, um null oder mehr Nicht-Trennzeichen abzugleichen. Beispiel: gs://BUCKET/DIRECTORY/Example*.ndjson stimmt mit "Example.ndjson" und "Example22.ndjson" in DIRECTORY überein.
    • Verwenden Sie **, um 0 oder mehr Zeichen (einschließlich Trennzeichen) abzugleichen. Muss am Ende eines Pfads und ohne andere Platzhalter im Pfad verwendet werden. Kann auch mit einer Dateinamenerweiterung wie .ndjson verwendet werden, die alle Dateien mit der Dateinamenerweiterung im angegebenen Verzeichnis und in seinen Unterverzeichnissen importiert. Beispiel: gs://BUCKET/DIRECTORY/**.ndjson importiert alle Dateien mit der Endung .ndjson in DIRECTORY und seinen Unterverzeichnissen.
    • Verwenden Sie ? als Platzhalter für genau 1 Zeichen. Beispiel: gs://BUCKET/DIRECTORY/Example?.ndjson stimmt mit "Example1.ndjson" überein, aber nicht mit "Example.ndjson" oder "Example01.ndjson".

curl

Stellen Sie zum Importieren von HL7v2-Nachrichten in einen HL7v2-Speicher eine POST-Anfrage und geben Sie die folgenden Informationen an:

  • Der Name des übergeordneten Datasets
  • Der Name des HL7v2-Speichers
  • Der Speicherort des Objekts in einem Cloud Storage-Bucket.
  • Ein Zugriffstoken

Das folgende Beispiel zeigt, wie Sie eine einzelne Datei mithilfe einer POST-Anfrage mit curl importieren.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'gcsSource': {
        'uri': 'gs://BUCKET/DIRECTORY/HL7V2_MESSAGE_FILE'
      }
    }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import"

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. Mit der Methode Operation get können Sie den Status des Vorgangs 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.ImportMessages",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ImportMessagesResponse"
  }
}

PowerShell

Stellen Sie zum Importieren von HL7v2-Nachrichten in einen HL7v2-Speicher eine POST-Anfrage und geben Sie die folgenden Informationen an:

  • Der Name des übergeordneten Datasets
  • Der Name des HL7v2-Speichers
  • Der Speicherort des Objekts in einem Cloud Storage-Bucket.
  • Ein Zugriffstoken

Das folgende Beispiel zeigt, wie eine einzelne Datei mithilfe einer POST-Anfrage mit Windows PowerShell importiert wird.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'gcsSource': {
      'uri': 'gs://BUCKET/DIRECTORY/HL7V2_MESSAGE_FILE'
    }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import" | Select-Object -Expand Content

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. Mit der Methode Operation get können Sie den Status des Vorgangs verfolgen:

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

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.ImportMessages",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ImportMessagesResponse"
  }
}

#exporting_hl7v2_messages

Wenn Sie HL7v2-Nachrichten aus einem HL7v2-Speicher exportieren, werden alle Nachrichten im HL7v2-Speicher exportiert. Wenn Sie nur einen Teil dieser Nachrichten exportieren möchten, können Sie die Parameter startTime und endTime so definieren, dass sie nur Nachrichten enthalten, die innerhalb des festgelegten Zeitraums gesendet wurden. Wenn Sie nur bestimmte Teile der Ressource Message exportieren möchten, legen Sie MessageView fest.

Wenn Nachrichten exportiert werden, erstellt die Cloud Healthcare API ein Objekt für jede HL7v2-Nachricht. Jedes Objekt besteht aus einer .ndjson-Datei mit einer Ressource vom Typ Message in jeder Zeile. Nachrichten werden in aufsteigender Reihenfolge basierend auf der sendTime (MSH.7) exportiert.

Console

So exportieren Sie HL7v2-Nachrichten nach Cloud Storage:

  1. Rufen Sie in der Google Cloud Console die Seite Datasets auf.

    Zu „Datasets“

  2. Klicken Sie auf das Dataset mit dem HL7v2-Speicher, aus dem Sie HL7v2-Nachrichten exportieren.

  3. Wählen Sie in der Liste der Datenspeicher aus der Liste Aktionen für den HL7v2-Speicher Exportieren aus.

    Die Seite HL7v2-Nachrichten exportieren wird angezeigt.

  4. Wählen Sie in der Liste Projekt ein Cloud Storage-Projekt aus.

  5. Wählen Sie in der Liste Standort einen Cloud Storage-Bucket aus.

  6. Klicken Sie auf Exportieren, um HL7v2-Instanzen an den definierten Speicherort in Cloud Storage zu exportieren.

  7. Klicken Sie auf den Tab Vorgänge, um den Status des Vorgangs zu verfolgen. Wenn der Vorgang abgeschlossen ist, werden folgende Hinweise angezeigt:
    • Im Abschnitt Status: Lang andauernder Vorgang befindet sich unter der Überschrift OK ein grünes Häkchen.
    • Der Abschnitt Übersicht hat ein grünes Häkchen und einen OK-Indikator in der Zeile, in der sich auch die Vorgangs-ID befindet.
    Falls Fehler auftreten, klicken Sie auf Aktionen und dann auf Details in Cloud Logging ansehen.

API

In den folgenden Beispielen wird gezeigt, wie HL7v2-Nachrichten mit der Methode projects.locations.datasets.hl7V2Stores.messages.export nach Cloud Storage exportiert werden.

Beachten Sie beim Aufruf des Exportvorgangs Folgendes:

  • Schreiben Sie in einen Cloud Storage-Bucket oder ein Cloud Storage-Verzeichnis anstatt in ein Objekt, da die Cloud Healthcare-API möglicherweise mehrere durch Zeilenumbrüche getrennte JSON-Dateien erstellt, wenn viele Nachrichten vorhanden sind. In jeder JSON-Datei ist jede Zeile eine HL7v2-Nachricht.
  • Wenn der Befehl ein nicht vorhandenes Verzeichnis angibt, wird das Verzeichnis erstellt.

curl

Um HL7v2-Nachrichten zu exportieren, stellen Sie eine POST-Anfrage und geben Sie die folgenden Informationen an:

  • Der Name des übergeordneten Datasets
  • Der Name des HL7v2-Speichers
  • Der Cloud Storage-Ziel-Bucket oder das Cloud Storage-Ziel-Verzeichnis
  • Ein Zugriffstoken

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 "{
      'gcsDestination': {
        'uriPrefix': 'gs://BUCKET/DIRECTORY'
      }
    }" "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"
  }
}

PowerShell

Um HL7v2-Nachrichten zu exportieren, stellen Sie eine POST-Anfrage und geben Sie die folgenden Informationen an:

  • Der Name des übergeordneten Datasets
  • Der Name des HL7v2-Speichers
  • Der Cloud Storage-Ziel-Bucket oder das Cloud Storage-Ziel-Verzeichnis
  • Ein Zugriffstoken

Das folgende Beispiel zeigt eine POST-Anfrage mit Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'gcsDestination': {
      'uriPrefix': 'gs://BUCKET/DIRECTORY'
    }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export" | Select-Object -Expand Content

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. Mit der Methode Operation get können Sie den Status des Vorgangs verfolgen:

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

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"
  }
}

Fehlerbehebung bei HL7v2-Import- und Exportanfragen

Wenn während einer HL7v2-Import- oder Exportanfrage Fehler auftreten, werden diese in Cloud Logging protokolliert. Weitere Informationen finden Sie unter Fehlerlogs in Cloud Logging ansehen.

Wenn ein Vorgang einen Fehler zurückgibt, finden Sie entsprechende Informationen unter Fehlerbehebung bei Vorgängen mit langer Ausführungszeit.