Actualiser les données de santé

Après l'importation initiale des données dans votre data store de santé de la recherche d'agent, vous avez peut-être effectué l'une des mises à jour suivantes dans votre store FHIR source :

  • Ajout de nouvelles ressources FHIR
  • Mise à jour des ressources FHIR existantes
  • Suppression de ressources FHIR

Dans ce cas, vous pouvez rapprocher les modifications de votre store FHIR source dans votre data store de santé de la recherche d'agent.

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 store FHIR source Mode incrémentiel Mode complet
Nouvelles ressources FHIR Ajoute de nouveaux documents au data store de la recherche d'agent Ajoute de nouveaux documents au data store de la recherche d'agent
Ressources FHIR mises à jour Remplace les documents existants dans le data store de la recherche d'agent tout en conservant l'ID du document Remplace les documents existants dans le data store de la recherche d'agent tout en conservant l'ID du document
Ressources FHIR supprimées Ne rapproche pas Supprime les documents correspondants de votre data store de la recherche d'agent

Avant de commencer

Consultez les quotas et limites de votre Google Cloud projet. Votre data store de santé de la recherche d'agent peut contenir au maximum 1 million de documents par projet. Si ce quota est atteint lors de l'importation, 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 store FHIR de l'API Cloud Healthcare à l'aide de la documents.import méthode.

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 Google Cloud projet.
    • DATA_STORE_ID : ID du data store de la recherche d'agent.
    • 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 Google Cloud projet.
    • DATA_STORE_ID : ID du data store de la recherche d'agent.
    • IMPORT_OPERATION_ID : ID d'opération de l'opération de longue durée renvoyée lorsque vous appelez la méthode import.

Python

Pour en savoir plus, consultez la documentation de référence sur l' API Python de la recherche d'agent.

Pour vous authentifier auprès de la recherche d'agent, 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)