Actualiser les données de santé

Après l'importation initiale des données dans votre solution de santé Vertex AI Search vous avez peut-être effectué l'une des mises à jour suivantes dans votre code source Store FHIR:

  • Ajout de nouvelles ressources FHIR
  • Mise à jour des ressources FHIR existantes
  • Ressources FHIR supprimées

Dans ce cas, vous pouvez rapprocher les modifications de votre store FHIR source dans votre data store de santé Vertex AI Search.

Présentation du rapprochement

Vous pouvez rapprocher les modifications de manière incrémentielle ou complète. Les deux modes sont comparés dans le tableau suivant.

Modifications apportées au datastore FHIR source Mode incrémentiel Mode complet
Nouvelles ressources FHIR Ajoute de nouveaux documents au data store Vertex AI Search Ajoute de nouveaux documents au data store Vertex AI Search
Ressources FHIR mises à jour Remplace les documents existants dans le data store Vertex AI Search tout en conservant l'ID du document Remplace les documents existants dans le data store Vertex AI Search tout en conservant l'ID du document.
Ressources FHIR supprimées ne sont pas conciliées ; Supprime les documents correspondants de votre data store Vertex AI Search.

Avant de commencer

Consultez les quotas et limites de votre projet Google Cloud. Votre data store de santé Vertex AI Search peut contenir au maximum 1 million de documents par projet. Si ce quota est atteint lors de l'importation, le le processus d'importation s'arrête.

Effectuer une importation incrémentielle

L'exemple suivant montre comment importer des modifications incrémentielles à partir d'un magasin FHIR de l'API Cloud Healthcare à l'aide de la méthode documents.import.

REST

  1. Effectuez une importation incrémentielle.

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

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • DATA_STORE_ID: ID du data store Vertex AI Search.
    • CLOUD_HEALTHCARE_DATASET_ID: ID de l'ensemble de données de l'API Cloud Healthcare contenant le store FHIR source.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: emplacement de l'ensemble de données de l'API Cloud Healthcare contenant le store FHIR source.
    • FHIR_STORE_ID: ID du store FHIR R4 de l'API Cloud Healthcare.
  2. Vérifiez si l'opération d'importation de données FHIR est terminée.

    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"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • DATA_STORE_ID: ID du data store Vertex AI Search.
    • IMPORT_OPERATION_ID : ID de l'opération de longue durée renvoyé lorsque vous appelez la méthode import.

Python

Pour en savoir plus, consultez la documentation de référence de l'API Python Vertex AI Agent Builder.

Pour vous authentifier auprès de Vertex AI Agent Builder, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

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)