Datenspeicher für die Suche nach Gesundheitsinformationen erstellen

Wenn Sie in Vertex AI Search nach klinischen Daten suchen möchten, können Sie einen der folgenden Workflows ausführen:

  • Erstellen Sie einen Datenspeicher für die Gesundheitsversorgung, importieren Sie FHIR R4-Daten in den Datenspeicher, verbinden Sie ihn mit einer Such-App für die Gesundheitsversorgung und stellen Sie eine Abfrage an die klinischen Daten.
  • Erstellen Sie eine Such-App für die Gesundheitsversorgung, erstellen Sie einen Datenspeicher für die Gesundheitsversorgung und importieren Sie FHIR R4-Daten während des App-Erstellungsprozesses in den Datenspeicher. Anschließend können Sie die klinischen Daten abfragen. Weitere Informationen finden Sie unter Such-App für Gesundheitswesen erstellen.

Auf dieser Seite wird die erste Methode beschrieben.

Häufigkeit des Datenimports

Sie haben folgende Möglichkeiten, FHIR-R4-Daten in einen Datenspeicher zu importieren:

  • Batchimport: Einmaliger Import. Daten werden in einen Datenspeicher importiert. Weitere Informationen zu inkrementellen Importen finden Sie unter Gesundheitsdaten aktualisieren.

  • Streaming-Import (Vorabversion): Streaming-Daten werden nahezu in Echtzeit importiert. Alle inkrementellen Änderungen im Quell-FHIR-Speicher werden mit dem Vertex AI Search-Datenspeicher synchronisiert. Für das Streaming ist ein Daten-Connector erforderlich. Das ist eine Art Datenspeicher, der eine Entität enthält. Eine Entität ist auch eine Datenspeicherinstanz.

    Die Datenstreamingrate für ein bestimmtes Google Cloud-Projekt hängt von den folgenden Kontingenten ab. Wenn Sie das Kontingent überschreiten, kann es zu Streamingverzögerungen kommen.

Sie können die Häufigkeit des Datenimports beim Erstellen des Datenspeichers auswählen. Diese Konfiguration kann später nicht mehr geändert werden.

Der Streaming-Import ist für alle Ressourcen verfügbar, die von Vertex AI Search unterstützt werden. Weitere Informationen finden Sie in der Referenz für das FHIR R4-Datenschema für die Gesundheitsversorgung.

Hinweise

Bevor Sie den Datenspeicher für Gesundheitsdaten erstellen und Daten in ihn importieren, müssen Sie die folgenden Anforderungen erfüllen:

  • Informationen zur Beziehung zwischen Apps und Datenspeichern für die Suche nach Gesundheitsdaten Weitere Informationen finden Sie unter Apps und Datenspeicher.

  • FHIR-Daten für die Datenaufnahme vorbereiten

  • Vertex AI Search für das Gesundheitswesen bietet Suchdienste nur in der Multiregion USA (us) an. Ihre Suchanwendung und Ihre Datenspeicher für das Gesundheitswesen müssen sich daher in der Multiregion us befinden.

Datenspeicher erstellen

Sie können einen Datenspeicher entweder in der Google Cloud Console oder mit der API erstellen. Die beiden Ansätze unterscheiden sich so:

  • In der Google Cloud Console: Wählen Sie in der Cloud Healthcare API den Quell-FHIR-Speicher aus und importieren Sie FHIR-Daten im Rahmen des Erstellungsprozesses für den Datenspeicher für die Gesundheitssuche. Wenn Sie FHIR-Daten streamen möchten (Vorabversion), muss sich der Quell-FHIR-Speicher im selben Google Cloud-Projekt wie der Ziel-Vertex AI Search-Datenspeicher befinden.
  • Über die REST API: Sie können FHIR-Daten aus einem FHIR-Speicher der Cloud Healthcare API importieren, der sich im selben oder in einem anderen Google Cloud-Projekt befindet.
    1. Verwenden Sie die Methode dataStores.create, um einen Datenspeicher für die Gesundheitsversorgung zu erstellen.
    2. Verwenden Sie die Methode documents.import, um den FHIR-Speicher in der Cloud Healthcare API anzugeben und FHIR-R4-Daten zu importieren.

So erstellen Sie einen Datenspeicher für die Gesundheitsbranche:

Console

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

    Zum Agent Builder

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf  Datenspeicher erstellen.

  4. Wählen Sie im Bereich Datenquelle auswählen die Option Healthcare API (FHIR) als Datenquelle aus.
  5. Führen Sie einen der folgenden Schritte aus, um Daten aus Ihrem FHIR-Speicher zu importieren:
    • Wählen Sie den FHIR-Speicher aus der Liste der verfügbaren FHIR-Speicher aus:
      1. Maximieren Sie das Feld FHIR-Speicher.
      2. Wählen Sie in dieser Liste ein Dataset aus, das sich an einem zulässigen Speicherort befindet, und dann einen FHIR-Speicher, der FHIR-Version R4 verwendet.

        Wenn Sie FHIR-Daten streamen möchten (Vorabversion), muss sich der Quell-FHIR-Speicher im selben Google Cloud-Projekt wie der Zieldatenspeicher von Vertex AI Search befinden.

    • FHIR-Speicher manuell eingeben:
      1. Maximieren Sie das Feld FHIR-Speicher.
      2. Klicken Sie auf FHIR-Speicher manuell eingeben.
      3. Geben Sie im Dialogfeld Name des FHIR-Speichers den vollständigen Namen des FHIR-Speichers im folgenden Format ein:

        project/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID

      4. Klicken Sie auf Speichern.
  6. Wählen Sie im Bereich Synchronisierung eine der folgenden Optionen aus. Diese Auswahl kann nach dem Erstellen des Datenspeichers nicht mehr geändert werden.
    • Einmal: Damit wird ein einmaliger Batchdatenimport durchgeführt. Weitere Informationen zu inkrementellen Importen finden Sie unter Gesundheitsdaten aktualisieren.
    • Streaming: Damit können Sie Streamingdaten nahezu in Echtzeit importieren. Wenn Sie Daten streamen möchten, müssen Sie einen Daten-Connector erstellen, eine Art Datenspeicher. Dies ist eine Vorabversion. Wenden Sie sich an Ihren Kundenbetreuer, um einen Streaming-Datenspeicher mit der REST API einzurichten.
  7. Wählen Sie im Abschnitt Welches Schema haben diese Daten? eine der folgenden Optionen aus:
    • Von Google vordefiniertes Schema: Hiermit werden die von Google definierten Schemakonfigurationen wie Indexierbarkeit, Suchbarkeit und Abrufbarkeit für die unterstützten FHIR-Ressourcen und -Elemente beibehalten. Wenn Sie diese Option auswählen, können Sie das Schema nach dem Erstellen des Datenspeichers nicht mehr aktualisieren. Wenn Sie das Schema nach dem Erstellen des Datenspeichers ändern möchten, wählen Sie die Option Benutzerdefiniertes Schema (Vorabversion) aus.
      1. Klicken Sie auf Weiter.
      2. Geben Sie im Feld Name des Datenspeichers einen Namen für den Datenspeicher ein.
      3. Klicken Sie auf Erstellen.
      4. Der von Ihnen erstellte Datenspeicher wird auf der Seite Datenspeicher aufgeführt.

    • Benutzerdefiniertes Schema (Vorabversion): Hiermit können Sie eigene Schemakonfigurationen für die unterstützten FHIR-Ressourcen und -Elemente definieren, z. B. Indexierbarkeit, Suchbarkeit und Abrufbarkeit. Dies ist eine Vorabversion. Wenden Sie sich an Ihren Kundenbetreuer, um ein konfigurierbares Schema einzurichten.
      1. Klicken Sie auf Weiter.
      2. Sehen Sie sich das Schema an, maximieren Sie jedes Feld und bearbeiten Sie die Feldeinstellungen.
      3. Klicken Sie auf Neue Felder hinzufügen, um den unterstützten FHIR-Ressourcen neue Felder hinzuzufügen. Die im von Google definierten Schema bereitgestellten Felder können nicht entfernt werden.
      4. Klicken Sie auf Weiter.
      5. Geben Sie im Feld Name des Daten-Connectors einen Namen für den Daten-Connector ein.
      6. Klicken Sie auf Erstellen.
      7. Der von Ihnen erstellte Daten-Connector wird auf der Seite Datenspeicher aufgeführt. Der FHIR-Quellspeicher wird als Entität im Daten-Connector hinzugefügt.

  8. Klicken Sie auf Weiter.

REST

  1. Erstellen Sie einen Datenspeicher.

    curl -X POST\
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json"\
     -H "X-Goog-User-Project: PROJECT_ID" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
     -d '{
        "displayName": "DATA_STORE_DISPLAY_NAME",
        "industryVertical": "HEALTHCARE_FHIR",
        "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
        "searchTier": "STANDARD",
        "searchAddOns": ["LLM"]
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: Die ID des Vertex AI Search-Datenspeichers, den Sie erstellen möchten. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DATA_STORE_DISPLAY_NAME: Der Anzeigename des Vertex AI Search-Datenspeichers, den Sie erstellen möchten.
  2. Wenn sich der Quell-FHIR-Speicher und der Ziel-Vertex AI Search-Datenspeicher im selben Google Cloud-Projekt befinden, rufen Sie die folgende Methode auf, um einen einmaligen Batch-Import auszuführen. Wenn sie sich nicht im selben Projekt befinden, fahren Sie mit dem nächsten Schritt fort.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
       "reconciliation_mode": "FULL",
       "fhir_store_source": {"fhir_store": "projects/PROJECT_ID/locations/CLOUD_HEALTHCARE_DATASET_LOCATION/datasets/CLOUD_HEALTHCARE_DATASET_ID/fhirStores/FHIR_STORE_ID"}
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
    • CLOUD_HEALTHCARE_DATASET_ID: Die ID des Cloud Healthcare API-Datasets, das den Quell-FHIR-Speicher enthält.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: Der Speicherort des Cloud Healthcare API-Datasets, das den Quell-FHIR-Speicher enthält.
    • FHIR_STORE_ID: die ID des FHIR-R4-Speichers der Cloud Healthcare API.
  3. Wenn sich der Quell-FHIR-Speicher und der Ziel-Vertex AI Search-Datenspeicher in verschiedenen Google Cloud-Projekten befinden, rufen Sie die folgende Methode auf, um einen einmaligen Batch-Import auszuführen. Wenn sie sich im selben Projekt befinden, kehren Sie zum vorherigen Schritt zurück.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Goog-User-Project: TARGET_PROJECT_ID" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/TARGET_PROJECT_ID/locations/us/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
       "reconciliation_mode": "FULL",
       "fhir_store_source": {"fhir_store": "projects/SOURCE_PROJECT_ID/locations/CLOUD_HEALTHCARE_DATASET_LOCATION/datasets/CLOUD_HEALTHCARE_DATASET_ID/fhirStores/FHIR_STORE_ID"}
    }'
    

    Ersetzen Sie Folgendes:

    • TARGET_PROJECT_ID: die ID des Google Cloud-Projekts, das den Vertex AI Search-Datenspeicher enthält.
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
    • SOURCE_PROJECT_ID: die ID des Google Cloud-Projekts, das das Cloud Healthcare API-Dataset und den FHIR-Speicher enthält.
    • CLOUD_HEALTHCARE_DATASET_ID: die ID des Cloud Healthcare API-Datasets, das den Quell-FHIR-Speicher enthält.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: der Speicherort des Cloud Healthcare API-Datasets, das den Quell-FHIR-Speicher enthält.
    • FHIR_STORE_ID: die ID des FHIR-R4-Speichers der Cloud Healthcare API.
  4. Optional: Wenn Sie einen Streaming-Datenimport (Vorabversion) mit der REST API einrichten möchten, wenden Sie sich an Ihren Kundenbetreuer.

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Agent Builder Python API.

Richten Sie zur Authentifizierung bei Vertex AI Agent Builder Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Datenspeicher erstellen


from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# data_store_id = "YOUR_DATA_STORE_ID"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  For more information, refer to:
    # https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
    client_options = (
        ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
        if location != "global"
        else None
    )

    # Create a client
    client = discoveryengine.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(request=request)

    print(f"Waiting for operation to complete: {operation.operation.name}")
    response = operation.result()

    # After the operation is complete,
    # get information from operation metadata
    metadata = discoveryengine.CreateDataStoreMetadata(operation.metadata)

    # Handle the response
    print(response)
    print(metadata)

    return operation.operation.name

Dokumente importieren

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "us"
# data_store_id = "YOUR_DATA_STORE_ID"
# healthcare_project_id = "YOUR_HEALTHCARE_PROJECT_ID"
# healthcare_location = "YOUR_HEALTHCARE_LOCATION"
# healthcare_dataset_id = "YOUR_HEALTHCARE_DATASET_ID"
# healthcare_fihr_store_id = "YOUR_HEALTHCARE_FHIR_STORE_ID"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    fhir_store_source=discoveryengine.FhirStoreSource(
        fhir_store=client.fhir_store_path(
            healthcare_project_id,
            healthcare_location,
            healthcare_dataset_id,
            healthcare_fihr_store_id,
        ),
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)

Erstellung des Datenspeichers und Import von FHIR-Daten prüfen

In dieser Aufgabe erfahren Sie, wie Sie prüfen, ob ein Datenspeicher erfolgreich erstellt und FHIR-Daten erfolgreich in den Datenspeicher importiert wurden.

  • In der Google Cloud Console: Wählen Sie den Datenspeicher aus und prüfen Sie die Details.
  • Über die REST API:
    1. Verwenden Sie die Methode dataStores.get, um Details zum Datenspeicher für Gesundheitsdaten abzurufen.
    2. Verwenden Sie die Methode operations.get, um die Details des Importvorgangs abzurufen.

Führen Sie die folgenden Schritte aus, um die Erstellung des Datenspeichers und den Datenimport zu überprüfen.

Console

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

    Zum Agent Builder

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

    Auf der Seite Datenspeicher finden Sie eine Liste der Datenspeicher in Ihrem Google Cloud-Projekt mit ihren Details.

  3. Prüfen Sie, ob sich der von Ihnen erstellte Datenspeicher oder Datenconnector in der Liste der Datenspeicher befindet.

  4. Wählen Sie den Datenspeicher oder den Daten-Connector aus und prüfen Sie die Details.

    • Für einen Datenspeicher:
      • Die Zusammenfassungstabelle enthält die folgenden Details:
        • Datenspeicher-ID, -Typ und -Region
        • Die Anzahl der Dokumente gibt die Anzahl der importierten FHIR-Ressourcen an.
        • Der Zeitstempel, zu dem das letzte Dokument importiert wurde.
        • Optional können Sie auf Details ansehen klicken, um Details zum Dokumentimport aufzurufen, z. B. zu einem erfolgreichen, teilweisen oder fehlgeschlagenen Import.
      • Auf dem Tab Dokumente sind die Ressourcen-IDs der importierten FHIR-Ressourcen und ihre Ressourcentypen in einer paginierten Tabelle aufgeführt. Sie können diese Tabelle filtern, um zu prüfen, ob eine bestimmte Ressource importiert wurde.
      • Auf dem Tab Aktivität finden Sie Details zum Dokumentimport, z. B. zu einem erfolgreichen, teilweisen oder fehlgeschlagenen Import.
    • Für einen Datenkonnektor:
      • Die Zusammenfassungstabelle enthält die folgenden Details:
        • Sammlungs-ID, -Typ und -Region
        • Der Name der verbundenen App.
        • Der Status des Connectors, der entweder „aktiv“ oder „pausiert“ ist.
      • In der Tabelle Entitäten wird die Entität im Datenkonnektor angezeigt. Der Name der Entität ist der Name des Quell-FHIR-Speichers. Die ID der Entität ist die ID des Daten-Connectors, an die der Name des Quell-FHIR-Speichers angehängt ist.
        • Klicken Sie auf den Namen der Entität, um die Details aufzurufen. Da eine Entität eine Datenspeicherinstanz in einem Datenkonnektor ist, stimmen die Details der Entität mit den Details des Datenspeichers überein.
  5. Auf dem Tab Schema sehen Sie die Eigenschaften für die unterstützten FHIR-Ressourcen und ‑Elemente. Klicken Sie auf Bearbeiten, um das Schema zu konfigurieren. Dies ist eine Funktion in der privaten Vorabversion. Wenden Sie sich an Ihren Kundenbetreuer, um ein konfigurierbares Schema einzurichten.

REST

  1. Prüfen Sie, ob der Datenspeicher erstellt wurde.

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json"\
     -H "X-Goog-User-Project: PROJECT_ID" \
     "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
  2. Prüfen Sie, ob der Importvorgang für FHIR-Daten abgeschlossen ist.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/operations/IMPORT_OPERATION_ID"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
    • IMPORT_OPERATION_ID: Die Vorgangs-ID des lang andauernden Vorgangs, die zurückgegeben wird, wenn Sie die Methode import aufrufen

Nächste Schritte