Rechercher des données de santé

Après avoir importé des données FHIR R4 dans votre application de recherche de services de santé, vous pouvez interroger les données importées pour obtenir des résultats pertinents. Vous pouvez effectuer des recherches à l'aide des types de requêtes suivants:

  • Requête par mot clé
  • Requête Natural Language
  • Requête en langage naturel avec une réponse générée par IA

Vous pouvez également filtrer votre recherche à l'aide de requêtes filtrées par date. Pour en savoir plus, consultez la section Définir un filtre resource_datetime.

Lorsque vous effectuez une recherche dans la console Google Cloud, vous devez d'abord fournir un ID de patient et rechercher les données d'un seul patient à la fois. Lorsque vous effectuez une recherche à l'aide de l'API REST, vous pouvez rechercher dans l'ensemble de votre data store.

Cette page explique comment rechercher des données de santé à l'aide des différents types de requêtes.

Utilisation prévue de Vertex AI Search pour rechercher des données de santé

Vertex AI Search n'est pas destiné à fournir des informations sur la prévention, le diagnostic ou le traitement de maladies. Le produit n'est pas destiné à répondre aux questions concernant les diagnostics ou les recommandations de traitement. L'utilisation prévue de ce produit est de récupérer et de résumer les informations médicales existantes fournies par les utilisateurs.

En raison de données de test limitées, ce produit peut être applicable ou non aux groupes d'âge de 0 à 18 ans et de 85 ans et plus. Par conséquent, lorsque les clients examinent la sortie générée, ils doivent tenir compte de la représentativité des sous-populations dans leurs données sources.

Voici quelques exemples d'utilisation de ce produit:

  • Requêtes exploratoires pour trouver des informations sur un patient pertinentes pour un sujet:

    • "Résumer les utilisations de l'aspirine"
    • "blood pressure"
    • "la gestion du diabète ?"
  • Requêtes de navigation pour trouver des ressources spécifiques qui pourraient être mappées à une requête structurée:

    • "Montre-moi la glycémie la plus récente"
  • Questions et réponses extractives pour répondre à des questions spécifiques où les preuves peuvent être réparties sur plusieurs ressources:

    • "Ce patient a-t-il déjà été traité avec une céphalosporine ?"
    • "Le patient a-t-il déjà subi une évaluation psychiatrique ?"

Voici des exemples d'utilisations non prévues pour ce produit:

  • Recommandations de diagnostic et de traitement:

    • "Quel est le diagnostic différentiel de ce patient ?"
    • "Quels médicaments dois-je prescrire au patient ?"

Consignes concernant les requêtes

Les consignes suivantes peuvent vous aider à formuler une requête qui vous permettra d'obtenir de meilleurs résultats de recherche:

  • Rechercher des requêtes avec un objectif spécifique: comme le modèle ne sait pas ce que vous recherchez, il est préférable de fournir une requête ciblée plutôt qu'une requête vague. Par exemple, il est préférable de rechercher le mot clé "hypertension" plutôt que le mot clé "résumé". Alors que la requête "hypertension" affiche des résultats spécifiques issus de documents pertinents, la requête "résumé" peut afficher des résultats issus de documents non pertinents.

  • Préservez le contexte: comme la recherche n'est pas une conversation, il est préférable de fournir le contexte complet pour chaque requête. Par exemple, si votre requête initiale est "hypertension" et que vous souhaitez poursuivre sur le même sujet, la requête "quand a été diagnostiquée l'hypertension" est plus pertinente que "quand a été diagnostiquée l'affection".

  • Simplifiez la requête: dans la mesure du possible, décomposez les requêtes complexes en requêtes plus simples. Par exemple, au lieu de rechercher "créatinine et albumine", créez différentes requêtes pour "créatinine", "albumine" et "ratio créatinine/albumine", en fonction de votre objectif.

  • Évitez de demander des inférences: la recherche fournit des résultats plus précis lorsque le modèle peut renvoyer des informations telles quelles à partir des documents qu'il recherche au lieu de calculer ou de déduire des informations recherchées. Par exemple, au lieu de demander "Dans quelle mesure le poids du patient a-t-il changé ?", vous pouvez demander "Listez le poids du patient au cours des 10 dernières consultations", puis calculer la variation de poids séparément.

Avant de commencer

Avant de lancer une recherche, procédez comme suit:

Vous pouvez effectuer des recherches dans votre data store de santé à l'aide d'un mot clé. Par exemple, vous pouvez effectuer une recherche à l'aide de mots clés tels que "a1c", "insuline" ou "ulcère" pour obtenir des ressources FHIR pertinentes.

L'image suivante montre les résultats de recherche lorsque le mot clé est "lipide". Cet exemple n'inclut pas de résumé ni de réponse d'IA générative.

La requête est "lipide".
Figure 1. Recherchez à l'aide d'un mot clé.

Pour effectuer une recherche à l'aide d'un mot clé, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Agent Builder.

    Agent Builder

  2. Sélectionnez l'application de recherche de services de santé que vous souhaitez interroger.

  3. Dans le menu de navigation, cliquez sur Aperçu.

  4. Dans le champ ID du patient, saisissez l'ID du patient dont vous souhaitez interroger les données. Les ID de patient sont sensibles à la casse.

  5. Appuyez sur Entrée ou cliquez sur Aperçu pour envoyer l'ID du patient.

  6. Dans la barre de recherche Rechercher ici, saisissez un mot clé pour effectuer une recherche.

    Si vous avez activé la saisie semi-automatique, une liste de suggestions de saisie semi-automatique s'affiche sous la barre de recherche à mesure que vous saisissez du texte.

  7. Appuyez sur Entrée pour envoyer la requête.

    • Les résultats de la recherche sont affichés dans des tableaux paginés classés en fonction de leur type de ressource FHIR.
    • Par défaut, les résultats de recherche pour tous les types de ressources FHIR sont affichés dans l'ordre chronologique inverse.
  8. Facultatif. Pour filtrer les résultats, sélectionnez une ou plusieurs catégories de ressources FHIR sous la barre de recherche.

  9. Facultatif. Pour trier les résultats en fonction de la pertinence pour les ressources Composition, DocumentReference et DiagnosticReport, cliquez sur le filtre Trier: ordre chronologique inverse, puis sélectionnez Relevance (Pertinence) dans la liste. Pour en savoir plus, consultez Ordonner les résultats de recherche de prestataires de santé.

REST

L'exemple suivant montre comment rechercher les données FHIR R4 d'un seul patient dans l'application de recherche de soins de santé à l'aide d'un mot clé. Cet exemple utilise la méthode servingConfigs.search.

Par défaut, les résultats de recherche sont renvoyés dans l'ordre chronologique inverse. Lorsque vous effectuez une recherche dans les ressources Composition, DiagnosticReport et DocumentReference, vous pouvez trier les résultats de recherche en fonction de leur pertinence. Pour en savoir plus, consultez Ordonner les résultats de recherche de prestataires de santé.

  1. Effectuez une recherche à l'aide d'un mot clé.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
    "query": "KEYWORD_QUERY",
    "filter": "patientId: ANY(\"PATIENT_ID\")",
    "contentSearchSpec":{"snippetSpec":{"returnSnippet":true}}
    }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • APP_ID: ID de l'application Vertex AI Search que vous souhaitez interroger.
    • KEYWORD_QUERY: mot clé que vous souhaitez rechercher dans les données cliniques du patient filtré, par exemple "diabète" ou "a1c".
    • PATIENT_ID: ID de la ressource du patient dont vous souhaitez rechercher les données.

Vertex AI Search vous permet d'obtenir des résultats pour des requêtes complexes en langage naturel. Par exemple, l'image suivante montre les résultats de la requête en langage naturel "Résultats d'analyse liés au diabète".

La requête est "Quels sont les résultats des analyses lipidiques du patient ?".
Figure 2. Effectuez une recherche à l'aide d'une requête en langage naturel.

Pour effectuer une recherche à l'aide d'une requête en langage naturel, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Agent Builder.

    Agent Builder

  2. Sélectionnez l'application de recherche de services de santé que vous souhaitez interroger.

  3. Dans le menu de navigation, cliquez sur Aperçu.

  4. Dans le champ ID du patient, saisissez l'ID du patient dont vous souhaitez interroger les données. Les ID de patient sont sensibles à la casse.

  5. Appuyez sur Entrée ou cliquez sur Aperçu pour envoyer l'ID du patient.

  6. Dans la barre de recherche Rechercher ici, saisissez une requête en langage naturel, par exemple "Résultats d'analyse liés au diabète".

    Si vous avez activé la saisie semi-automatique, une liste de suggestions de saisie semi-automatique s'affiche sous la barre de recherche à mesure que vous saisissez du texte.

  7. Appuyez sur Entrée pour envoyer la requête.

    • Les résultats de la recherche sont affichés dans des tableaux paginés classés en fonction de leur type de ressource FHIR.
    • Par défaut, les résultats de recherche pour tous les types de ressources FHIR sont affichés dans l'ordre chronologique inverse.
  8. Facultatif. Sélectionnez une ou plusieurs catégories de ressources FHIR sous la barre de recherche pour filtrer les résultats.

  9. Facultatif. Pour trier les résultats en fonction de la pertinence pour les ressources Composition, DocumentReference et DiagnosticReport, cliquez sur le filtre Trier: ordre chronologique inverse, puis sélectionnez Relevance (Pertinence) dans la liste. Pour en savoir plus, consultez Ordonner les résultats de recherche de prestataires de santé.

REST

L'exemple suivant montre comment rechercher les données FHIR R4 d'un seul patient dans l'application de recherche de services de santé à l'aide d'une requête en langage naturel. Cet exemple utilise la méthode servingConfigs.search. Pour effectuer une recherche à l'aide d'une requête en langage naturel, vous devez ajouter le champ naturalLanguageQueryUnderstandingSpec au corps de la requête.

Par défaut, les résultats de recherche sont renvoyés dans l'ordre chronologique inverse. Lorsque vous effectuez une recherche dans les ressources Composition, DiagnosticReport et DocumentReference, vous pouvez trier les résultats de recherche en fonction de leur pertinence. Pour en savoir plus, consultez Ordonner les résultats de recherche de prestataires de santé.

  1. Envoyez une requête en langage naturel.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
    "query": "NATURAL_LANGUAGE_QUERY",
    "filter": "patientId: ANY(\"PATIENT_ID\")",
    "contentSearchSpec":{"snippetSpec":{"returnSnippet":true}},
    "naturalLanguageQueryUnderstandingSpec":{"filterExtractionCondition":"ENABLED"}
    }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • APP_ID: ID de l'application Vertex AI Search que vous souhaitez interroger.
    • NATURAL_LANGUAGE_QUERY: la requête en langage naturel, par exemple "Résultats d'analyse liés au diabète" ou "Le patient prend-il actuellement des médicaments ?"
    • PATIENT_ID: ID de la ressource du patient dont vous souhaitez rechercher les données.

Rechercher à l'aide d'une requête en langage naturel avec une réponse basée sur l'IA générative

Lorsque vous recherchez les données FHIR d'un patient à l'aide d'une requête en langage naturel, vous pouvez choisir d'obtenir une réponse d'IA générative avec les résultats de recherche. La réponse résume les résultats de recherche et affiche également les références utilisées pour générer la réponse.

Lorsque vous utilisez la console, vous pouvez sélectionner le grand modèle de langage (LLM) pour les réponses d'IA générative. Pour en savoir plus, consultez Configurer les résultats de recherche pour les données de santé.

Lorsque vous utilisez l'API REST, vous pouvez spécifier l'un des modèles LLM suivants pour obtenir des réponses d'IA générative dans le champ version:

  • gemini-1.5-flash-001/answer_gen/v1 ou stable: modèle stable, disponible en général, basé sur le modèle gemini-1.5-flash-001. Pour en savoir plus, consultez la section Modèles en disponibilité générale (DG).
  • gemini-1.0-pro-002/answer_gen/v1: recherche Vertex AI basée sur le modèle gemini-1.0-pro-002. Pour en savoir plus, consultez la section Modèles en disponibilité générale (DG).
  • medlm-medium/answer_gen/v1 ou preview: modèle preview basé sur le modèle MedLM. Pour en savoir plus, consultez la section Modèle MedLM.

L'image suivante montre un exemple de requête en langage naturel avec une réponse d'IA générative. Le résumé de la recherche fournit une réponse à la requête en résumant les résultats pertinents. Vous pouvez développer les segments contenant des citations pour afficher les références utilisées pour générer le segment sélectionné. Toutes les réponses générées ne comportent pas de citations.

La requête est "Quels sont les résultats des analyses lipidiques du patient ?". Les résultats de recherche sont affichés dans un format tabulaire . Les résultats de recherche sont accompagnés d'un résumé généré par IA générative qui se lit comme suit : "Le patient n'a aucune allergie connue".
Figure 3 : Effectuez des recherches à l'aide de requêtes en langage naturel avec des réponses basées sur l'IA générative.

Pour effectuer une recherche avec une réponse générée par IA générative, procédez comme suit:

Console

  1. Dans la console Google Cloud, accédez à la page Agent Builder.

    Agent Builder

  2. Sélectionnez l'application de recherche de services de santé que vous souhaitez interroger.

  3. Dans le menu de navigation, cliquez sur Configurations.

  4. Personnalisez le widget Recherche:

    1. Dans le champ Type de recherche, sélectionnez Recherche avec une réponse.
    2. Sélectionnez le modèle que vous souhaitez utiliser pour générer le résumé. Pour en savoir plus, consultez Configurer les résultats de recherche pour les données de santé.
    3. Enregistrez et publiez vos préférences.
  5. Dans le menu de navigation, cliquez sur Aperçu.

  6. Dans le champ ID du patient, saisissez l'ID du patient dont vous souhaitez interroger les données. Les ID de patient sont sensibles à la casse.

  7. Appuyez sur Entrée ou cliquez sur Aperçu pour envoyer l'ID du patient.

  8. Dans la barre de recherche Rechercher ici, saisissez une requête en langage naturel, par exemple "nsaids", "Quels sont les résultats lipidiques du patient" ou "Quel est le résultat A1C le plus récent".

    Si vous avez activé la saisie semi-automatique, une liste de suggestions de saisie semi-automatique s'affiche sous la barre de recherche à mesure que vous saisissez du texte.

  9. Appuyez sur Entrée pour envoyer la requête.

    • La réponse de l'IA générative s'affiche sous la barre de recherche.
    • Les résultats de la recherche sont affichés dans des tableaux paginés classés en fonction de leur type de ressource FHIR.
    • Par défaut, les résultats de recherche pour tous les types de ressources FHIR sont affichés dans l'ordre chronologique inverse.
  10. Facultatif. Développez un segment de la réponse qui comporte des citations pour afficher ses références dans les résultats de recherche.

  11. Facultatif. Sélectionnez une ou plusieurs catégories de ressources FHIR sous la barre de recherche pour filtrer les résultats.

  12. Facultatif. Pour trier les résultats en fonction de la pertinence pour les ressources Composition, DocumentReference et DiagnosticReport, cliquez sur le filtre Trier: ordre chronologique inverse, puis sélectionnez Relevance (Pertinence) dans la liste. Pour en savoir plus, consultez Ordonner les résultats de recherche de prestataires de santé.

REST

L'exemple suivant montre comment rechercher les données FHIR R4 d'un seul patient dans l'application de recherche de soins de santé à l'aide d'une requête en langage naturel avec des réponses d'IA générative. Cet exemple utilise la méthode servingConfigs.search.

  • Pour effectuer une recherche à l'aide d'une requête en langage naturel, vous devez ajouter le champ naturalLanguageQueryUnderstandingSpec au corps de la requête.
  • Pour inclure des index de citations intégrés, vous devez ajouter le champ includeCitations. Il s'agit d'un champ booléen dont la valeur par défaut est false.

Par défaut, les résultats de recherche sont renvoyés dans l'ordre chronologique inverse. Lorsque vous effectuez une recherche dans les ressources Composition, DiagnosticReport et DocumentReference, vous pouvez trier les résultats de recherche en fonction de leur pertinence. Pour en savoir plus, consultez Ordonner les résultats de recherche de prestataires de santé.

  1. Envoyez une requête en langage naturel.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "filter": "patientId: ANY(\"PATIENT_ID\")",
            "contentSearchSpec": {
              "snippetSpec": {
                "returnSnippet": true
              },
              "summarySpec": {
                "summaryResultCount": 1,
                "includeCitations": true,
                "modelSpec": {
                  "version": "MODEL_VERSION"
                }
              }
            },
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED"
            }
          }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • APP_ID: ID de l'application Vertex AI Search que vous souhaitez interroger.
    • QUERY: la requête en langage naturel, par exemple "nsaids", "Quels sont les résultats lipidiques des patients" ou "Quel est le résultat A1C le plus récent". Si la requête inclut une apostrophe ', vous devez la remplacer par la référence de caractère numérique de l'apostrophe: '.
    • PATIENT_ID: ID de la ressource du patient dont vous souhaitez rechercher les données.
    • MODEL_VERSION: version du modèle que vous souhaitez utiliser pour générer la réponse.