Gesundheitsdaten aktualisieren

Nach dem ersten Import von Daten in Ihren Vertex AI Search-Gesundheitsdatenspeicher haben Sie möglicherweise eine der folgenden Aktualisierungen in Ihrem Quell-FHIR-Speicher durchgeführt:

  • Neue FHIR-Ressourcen hinzugefügt
  • Vorhandene FHIR-Ressourcen aktualisiert
  • Gelöschte FHIR-Ressourcen

In solchen Fällen können Sie die Änderungen aus Ihrem Quell-FHIR-Speicher mit Ihrem Vertex AI Search-Gesundheitsdatenspeicher abgleichen.

Abgleich – Übersicht

Sie können die Änderungen entweder inkrementell oder vollständig abgleichen. In der folgenden Tabelle werden die beiden Modi verglichen.

Änderungen am Quell-FHIR-Speicher Incremental-Modus Vollständiger Modus
Neue FHIR-Ressourcen Dem Vertex AI Search-Datenspeicher werden neue Dokumente hinzugefügt. Dem Vertex AI Search-Datenspeicher werden neue Dokumente hinzugefügt.
Aktualisierte FHIR-Ressourcen Ersetzt die vorhandenen Dokumente im Vertex AI Search-Datenspeicher, wobei die Dokument-ID beibehalten wird. Ersetzt die vorhandenen Dokumente im Vertex AI Search-Datenspeicher, wobei die Dokument-ID beibehalten wird.
Gelöschte FHIR-Ressourcen Kann nicht abgeglichen werden Die entsprechenden Dokumente werden aus Ihrem Vertex AI Search-Datenspeicher entfernt.

Hinweise

Sehen Sie sich die Kontingente und Limits für Ihr Google Cloud Projekt an. Ihr Vertex AI Search-Gesundheitsdatenspeicher kann maximal 1 Million Dokumente pro Projekt enthalten. Wenn dieses Kontingent während des Imports erreicht wird, wird der Importvorgang beendet.

Inkrementellen Import ausführen

Im folgenden Beispiel wird gezeigt, wie Sie mit der Methode documents.import inkrementelle Änderungen aus einem Cloud Healthcare API-FHIR-Speicher importieren.

Weisen Sie dem Dienstkonto service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com die folgenden Berechtigungen oder die folgenden IAM-Rollen (Identity and Access Management) zu.

  1. Führen Sie einen inkrementellen Import aus.

    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": "INCREMENTAL",
       "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: 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.

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen sehr lange dauern kann. Notieren Sie sich den Wert von IMPORT_OPERATION_ID. Sie benötigen diesen Wert, um den Status des Imports zu prüfen.

      {
        "name": "projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/operations/IMPORT_OPERATION_ID",
        "metadata": {
          "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata"
        }
      }
    
  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: 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.

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Der Importvorgang ist ein langwieriger Vorgang. Während der Vorgang ausgeführt wird, enthält die Antwort die folgenden Felder:

    • successCount: Gibt die Anzahl der FHIR-Ressourcen an, die bisher erfolgreich importiert wurden.
    • failureCount: Gibt die Anzahl der FHIR-Ressourcen an, die bisher nicht importiert werden konnten. Dieses Feld wird nur angezeigt, wenn FHIR-Ressourcen nicht importiert werden konnten.

    Wenn der Vorgang abgeschlossen ist, enthält die Antwort die folgenden Felder:

    • successCount: Gibt die Anzahl der FHIR-Ressourcen an, die erfolgreich importiert wurden.
    • failureCount: Gibt die Anzahl der FHIR-Ressourcen an, die nicht importiert werden konnten. Dieses Feld wird nur angezeigt, wenn FHIR-Ressourcen nicht importiert werden konnten.
    • totalCount: Gibt die Anzahl der FHIR-Ressourcen an, die im Quell-FHIR-Speicher vorhanden sind. Dieses Feld wird nur angezeigt, wenn FHIR-Ressourcen nicht importiert werden konnten.
    • done: den Wert true hat, um anzugeben, dass der Importvorgang abgeschlossen ist
    • errorSamples: Hier finden Sie Informationen zu den Ressourcen, die nicht importiert werden konnten. Dieses Feld wird nur angezeigt, wenn FHIR-Ressourcen nicht importiert werden konnten.
    • errorConfig: Pfad zu einem Cloud Storage-Speicherort, der die Protokolldatei mit der Fehlerübersicht enthält.
    {
     "name": "projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/operations/IMPORT_OPERATION_ID",
     "metadata": {
       "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata",
       "createTime": "START_TIMESTAMP",
       "updateTime": "END_TIMESTAMP",
       "successCount": "SUCCESS_COUNT",
       "failureCount": "FAILURE_COUNT",
       "totalCount": "TOTAL_COUNT",
     },
     "done": true,
     "response": {
       "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsResponse",
      "errorSamples": [ERROR_SAMPLE],
      "errorConfig": {
         "gcsPrefix": "LOG_FILE_LOCATION"
       }
     }
    }
    

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.

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)