Actualiser les données de santé

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

  • Ajout de ressources FHIR
  • Ressources FHIR existantes mises à jour
  • Ressources FHIR supprimées

Dans ce cas, vous pouvez rapprocher les modifications apportées à votre magasin 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 Non réconcilié Supprime les documents correspondants de votre data store Vertex AI Search

Avant de commencer

Consultez les quotas et limites pour votre projet Google Cloud . Votre data store Vertex AI Search pour les données de santé peut contenir un maximum de 1 million de documents par projet. Si ce quota est atteint pendant l'importation, le processus 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 magasin FHIR source.
    • CLOUD_HEALTHCARE_DATASET_LOCATION : emplacement de l'ensemble de données de l'API Cloud Healthcare contenant le magasin FHIR source.
    • FHIR_STORE_ID : ID du magasin 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 AI Applications Python.

Pour vous authentifier auprès des applications d'IA, 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)