Après avoir importé des données FHIR R4 dans votre application de recherche de données 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 en langage naturel
- Requête en langage naturel avec une réponse d'IA générative
Vous pouvez également filtrer votre recherche à l'aide de requêtes filtrées par date. Pour en savoir plus, consultez 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 effectuer une recherche sur 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 de différents types de requêtes.
Utilisation prévue de Vertex AI Search pour la recherche de 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 recommandations de diagnostic ou 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 la quantité limitée de données de test, il est possible que ce produit ne s'applique pas aux groupes d'âge de 0 à 18 ans et de 85 ans et plus. Par conséquent, lorsqu'ils examinent les résultats générés, les clients doivent tenir compte de la représentativité des sous-populations dans leurs données sources.
Voici quelques exemples d'utilisation prévue de ce produit :
Requêtes exploratoires permettant de trouver des informations sur un patient en lien avec un thème :
- "Résume les utilisations de l'aspirine"
- "tension artérielle"
- "la gestion du diabète ?"
Requêtes de navigation permettant de trouver des ressources spécifiques pouvant être mappées à une requête structurée :
- "Show me the most recent a1c" (Montre-moi le dernier taux d'HbA1c)
Questions et réponses extractives pour répondre à des questions spécifiques dont les preuves peuvent être réparties dans 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 :
- "Quels sont les diagnostics différentiels pour ce patient ?"
- "Quels médicaments dois-je prescrire au patient ?"
Consignes relatives aux requêtes
Les consignes suivantes peuvent vous aider à formuler une requête qui vous donnera de meilleurs résultats de recherche :
Recherchez des requêtes avec une intention 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 "résumé". Alors que la requête "hypertension" renvoie des résultats spécifiques à partir de documents pertinents, la requête "résumé" peut renvoyer des résultats à partir de documents non pertinents.
Préservez le contexte : comme la recherche n'est pas conversationnelle, 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 en savoir plus sur le même sujet, la deuxième requête "quand l'hypertension a-t-elle été diagnostiquée" est plus pertinente que "quand l'a-t-elle été diagnostiquée".
Simplifiez la requête : dans la mesure du possible, divisez 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 "rapport 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 mot pour mot à partir des documents dans lesquels il effectue la recherche, au lieu de les calculer ou de les déduire. Par exemple, au lieu de demander "dans quelle mesure le poids du patient a-t-il changé", vous pouvez demander "liste le poids du patient lors des 10 dernières visites", puis calculer la variation de poids séparément.
Mise en surbrillance des correspondances dans les résultats
La mise en surbrillance des correspondances est une configuration qui met en évidence les parties du texte d'un résultat de recherche qui correspondent contextuellement à la requête de recherche.
Les résultats des types de ressources suivants sont compatibles avec la mise en surbrillance des correspondances :
- Composition : met en évidence le texte contextuel du champ
Composition.section[].text.div
. - DiagnosticReport : met en évidence le texte contextuel du champ
DiagnosticReport.conclusion
. DocumentReference : met en évidence le texte contextuel des documents référencés dans le champ
DocumentReference.content[0].attachment.url
. Le texte mis en surbrillance est encadré dans une cadre de délimitation. Le cadre de délimitation est représenté par deux ensembles de coordonnées normalisées dans la réponse de recherche. Les documents compatibles avec la mise en surbrillance des correspondances sont les fichiers PDF et les fichiers image dont les types sont acceptés. L'image suivante montre comment le texte est mis en surbrillance dans un document numérisé à partir du type de ressource DocumentReference :Figure 1. Mise en surbrillance des correspondances dans un document DocumentReference numérisé.
Lorsque vous effectuez une recherche à l'aide de l'API REST, vous devez activer la mise en surbrillance des correspondances dans votre demande de recherche à l'aide du champ matchHighlightingCondition
.
La réponse contient le champ match_highlighting
, que vous pouvez utiliser pour afficher le texte mis en surbrillance dans votre application de recherche :
- Pour les documents Composition et DiagnosticReport, le champ
match_highlighting
contient les index de début et de fin du jeton à mettre en évidence. - Pour les documents DocumentReference, le champ
match_highlighting
contient les coordonnées du cadre de délimitation qui met en évidence le texte. Le cadre de délimitation est représenté par deux ensembles de coordonnées normalisées dont l'origine se trouve en haut à gauche du document. Ce champ imbrique également le champpage_number
, qui est défini sur0
pour les images et sur1
pour la première page des fichiers PDF.
Lorsque vous prévisualisez les résultats de recherche à l'aide de la console Google Cloud , la mise en surbrillance des correspondances est activée par défaut.
Avant de commencer
Avant de lancer une recherche, procédez comme suit :
- Créez une application et un data store de recherche pour le secteur de la santé, puis importez des données FHIR R4. Pour en savoir plus, consultez Créer une application de recherche dans le secteur de la santé et Créer un data store de recherche dans le secteur de la santé.
- Configurer les résultats de recherche pour les données de santé
- Pour obtenir des suggestions de requêtes utiles lorsque vous effectuez une recherche, activez la saisie semi-automatique. Il s'agit d'une fonctionnalité en version Preview.
- Consultez la liste des ressources FHIR R4 compatibles avec Vertex AI Search. Pour en savoir plus, consultez la documentation de référence sur le schéma de données FHIR R4 pour le secteur de la santé.
Effectuer une recherche à l'aide d'un mot clé
Vous pouvez effectuer une recherche par mot clé dans votre data store de santé. Par exemple, vous pouvez effectuer une recherche à l'aide de mots clés tels que "a1c", "insuline" ou "ulcère" pour obtenir les 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.

Pour effectuer une recherche à l'aide d'un mot clé, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page AI Applications.
Sélectionnez l'application de recherche en santé que vous souhaitez interroger.
Dans le menu de navigation, cliquez sur Aperçu.
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.
Appuyez sur Entrée ou cliquez sur Aperçu pour envoyer l'ID du patient.
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 s'affiche sous la barre de recherche à mesure que vous saisissez du texte.
Appuyez sur Entrée pour envoyer la requête.
- Les résultats de la recherche s'affichent 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.
Facultatif. Pour filtrer les résultats, sélectionnez une ou plusieurs catégories de ressources FHIR sous la barre de recherche.
Facultatif. Pour trier les résultats par pertinence pour les ressources Composition, DocumentReference et DiagnosticReport, cliquez sur le filtre Trier : ordre chronologique inversé, puis sélectionnez Pertinence dans la liste. Pour en savoir plus, consultez Ordre des résultats de recherche sur la santé.
REST
L'exemple suivant montre comment rechercher les données FHIR R4 d'un seul patient dans l'application de recherche dans le secteur de la 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 vos résultats de recherche par pertinence. Pour en savoir plus, consultez Organiser les résultats de recherche sur la santé.
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}} "displaySpec": { "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION" } }'
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 ressource du patient dont vous souhaitez rechercher les données.MATCH_HIGHLIGHTING_CONDITION
: chaîne pouvant avoir les valeurs suivantes :MATCH_HIGHLIGHTING_DISABLED
: désactive la mise en surbrillance des correspondances dans tous les documents.MATCH_HIGHLIGHTING_ENABLED
: active la mise en surbrillance des correspondances dans tous les documents. Si vous laissez ce champ vide ou ne le spécifiez pas, la mise en surbrillance des correspondances est définie surMATCH_HIGHLIGHTING_DISABLED
et est désactivée dans tous les documents.
Rechercher à l'aide d'une requête en langage naturel
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'analyses liés au diabète".

Pour effectuer une recherche à l'aide d'une requête en langage naturel, procédez comme suit.
Console
Dans la console Google Cloud , accédez à la page AI Applications.
Sélectionnez l'application de recherche en santé que vous souhaitez interroger.
Dans le menu de navigation, cliquez sur Aperçu.
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.
Appuyez sur Entrée ou cliquez sur Aperçu pour envoyer l'ID du patient.
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 s'affiche sous la barre de recherche à mesure que vous saisissez du texte.
Appuyez sur Entrée pour envoyer la requête.
- Les résultats de la recherche s'affichent 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 s'affichent dans l'ordre chronologique inverse.
Facultatif. Sélectionnez une ou plusieurs catégories de ressources FHIR sous la barre de recherche pour filtrer les résultats.
Facultatif. Pour trier les résultats par pertinence pour les ressources Composition, DocumentReference et DiagnosticReport, cliquez sur le filtre Trier : ordre chronologique inversé, puis sélectionnez Pertinence dans la liste. Pour en savoir plus, consultez Ordre des résultats de recherche sur la santé.
REST
L'exemple suivant montre comment rechercher les données FHIR R4 d'un seul patient dans l'application de recherche Healthcare à 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 vos résultats de recherche par pertinence. Pour en savoir plus, consultez Organiser les résultats de recherche sur la santé.
Posez une question 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"}, "displaySpec": { "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION" } }'
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
: 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 ressource du patient dont vous souhaitez rechercher les données.MATCH_HIGHLIGHTING_CONDITION
: chaîne pouvant avoir les valeurs suivantes :MATCH_HIGHLIGHTING_DISABLED
: désactive la mise en surbrillance des correspondances dans tous les documents.MATCH_HIGHLIGHTING_ENABLED
: active la mise en surbrillance des correspondances dans tous les documents. Si vous laissez ce champ vide ou ne le spécifiez pas, la mise en surbrillance des correspondances est définie surMATCH_HIGHLIGHTING_DISABLED
et est désactivée dans tous les documents.
Rechercher à l'aide d'une requête en langage naturel avec une réponse de 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 en plus des résultats de recherche. La réponse résume les résultats de recherche et affiche également les références utilisées pour la générer.
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
oustable
: modèle stable et généralement disponible, basé sur le modèlegemini-1.5-flash-001
. Pour en savoir plus, consultez Modèles en disponibilité générale (DG).gemini-1.5-pro-002
oupreview
: modèle d'aperçu basé sur le modèlegemini-1.5-pro
.
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 recherche fournit une réponse à la requête en résumant les résultats pertinents. Vous pouvez développer les segments qui comportent 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.

Pour effectuer une recherche avec une réponse d'IA générative :
Console
Dans la console Google Cloud , accédez à la page AI Applications.
Sélectionnez l'application de recherche en santé que vous souhaitez interroger.
Dans le menu de navigation, cliquez sur Configurations.
Personnalisez le widget Recherche :
- Dans le champ Type de recherche, sélectionnez Rechercher avec une réponse.
- 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é.
- Enregistrez et publiez vos préférences.
Dans le menu de navigation, cliquez sur Aperçu.
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.
Appuyez sur Entrée ou cliquez sur Aperçu pour envoyer l'ID du patient.
Dans la barre de recherche Rechercher ici, saisissez une requête en langage naturel, par exemple "AINS", "Quels sont les résultats des analyses lipidiques du patient ?" ou"Quel est le résultat le plus récent de l'A1c ?".
Si vous avez activé la saisie semi-automatique, une liste de suggestions s'affiche sous la barre de recherche à mesure que vous saisissez du texte.
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 s'affichent 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 s'affichent dans l'ordre chronologique inverse.
Facultatif. Développez un segment de la réponse comportant des citations pour afficher ses références dans les résultats de recherche.
Facultatif. Sélectionnez une ou plusieurs catégories de ressources FHIR sous la barre de recherche pour filtrer les résultats.
Facultatif. Pour trier les résultats par pertinence pour les ressources Composition, DocumentReference et DiagnosticReport, cliquez sur le filtre Trier : ordre chronologique inversé, puis sélectionnez Pertinence dans la liste. Pour en savoir plus, consultez Ordre des résultats de recherche sur la santé.
REST
L'exemple suivant montre comment rechercher les données FHIR R4 d'un seul patient dans l'application de recherche dans le secteur de la 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ées, vous devez ajouter le champ
includeCitations
. Il s'agit d'un champ booléen dont la valeur par défaut est définie surfalse
.
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 vos résultats de recherche par pertinence. Pour en savoir plus, consultez Organiser les résultats de recherche sur la santé.
Posez une question 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 }, "displaySpec": { "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION" } "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
: requête en langage naturel, par exemple "AINS", "Quels sont les résultats des analyses lipidiques des patients ?" ou "Quel est le dernier résultat de l'A1c ?". Si la requête inclut une apostrophe'
, vous devez la remplacer par la référence numérique de l'apostrophe :'
.PATIENT_ID
: ID de 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.MATCH_HIGHLIGHTING_CONDITION
: chaîne pouvant avoir les valeurs suivantes :MATCH_HIGHLIGHTING_DISABLED
: désactive la mise en surbrillance des correspondances dans tous les documents.MATCH_HIGHLIGHTING_ENABLED
: active la mise en surbrillance des correspondances dans tous les documents. Si vous laissez ce champ vide ou ne le spécifiez pas, la mise en surbrillance des correspondances est définie surMATCH_HIGHLIGHTING_DISABLED
et est désactivée dans tous les documents.