HL7v2-Nachrichten aus Cloud Storage importieren

Auf dieser Seite wird beschrieben, wie Sie HL7v2-Nachrichten aus Cloud Storage in einen HL7v2-Speicher importieren. Der Bulk-Import von HL7v2-Nachrichten ist schneller und einfacher als das Speichern einzelner Nachrichten mit der REST API.

Hinweise

Weitere Informationen zu den Rollen, die Sie dem Cloud Healthcare Service Agent-Dienstkonto zuweisen müssen, finden Sie unter HL7v2-Nachrichten aus Cloud Storage importieren.

Anforderungen an das Format von Eingabedateien

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

HL7v2-Nachrichten importieren

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

Fehlerbehebung bei HL7v2-Importanfragen

Wenn beim Importieren von HL7v2-Nachrichten Fehler auftreten, werden diese in Cloud Logging protokolliert. Weitere Informationen finden Sie unter Fehlerlogs in Cloud Logging ansehen.

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