rpps_search_by_name
Search for healthcare professionals by last name using fuzzy trigram matching tolerant to accents and typos. Optionally refine by first name and department to find specific practitioners.
Instructions
Recherche fuzzy de professionnels de santé par identité (nom + prénom optionnel + département optionnel). Utilise un matching trigram (pg_trgm) tolérant aux accents, typos et variations d'orthographe. Tri par pertinence décroissante. Source : RPPS / Annuaire Santé ANS (Supabase dump mensuel).
Usage typique : "trouve-moi le Dr Martin à Paris" (nom obligatoire, prénom et département facultatifs pour affiner). Sans département, recherche nationale (peut renvoyer beaucoup d'homonymes — utiliser le match_score pour trier).
Format de retour : objet { count, truncated, results, query_metadata } aligné sur les autres tools RPPS de listing. Chaque résultat porte un champ match_score ∈ [0..1] (score trigram pg_trgm). Un score < 0.5 indique souvent une homonymie partielle à confirmer côté caller.
Par défaut, ne renvoie que les PS de catégorie Civil (C) — droit privé : libéraux, salariés privés, hospitaliers contractuels, ~97 % de la base. Passer include_agents_publics: true pour inclure aussi les Agents publics (M) — fonctionnaires d'État + collectivités + militaires SSA, ~0,3 % (PH titulaires, médecins inspecteurs ARS, médecins conseils CNAM, médecins scolaires Éducation nationale, médecins PMI). Passer include_etudiants: true pour inclure aussi les Étudiants (E) — internes, externes, élèves IDE/SF, ~2,5 %. Source nomenclature : https://mos.esante.gouv.fr/NOS/TRE_R09-CategorieProfessionnelle/.
Source : Annuaire Santé, Agence du Numérique en Santé (ANS) — Licence Ouverte v2.0
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nom | Yes | Nom de famille (obligatoire, non vide). | |
| prenom | No | Prénom (optionnel — affine le score si fourni). | |
| departement | No | Code département INSEE (ex: '75', '2A', '2B', '971'). Métropole 2 caractères (Corse '2A'/'2B', pas '20'), DOM/COM 3 caractères. Optionnel. | |
| include_etudiants | No | ||
| include_agents_publics | No | ||
| limit | No | Nombre max de résultats (1-500, défaut 100). | |
| include_freshness | No | Si true, ajoute un champ `data_freshness` au payload (dans `query_metadata` si présent, sinon à la racine) listant la dernière ingestion réussie par source (FINESS, Ameli, RPPS) avec `staleness_days`. Opt-in pour ne pas alourdir les payloads par défaut. Cache 5min côté serveur — coût négligeable. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | Nombre d'entrées retournées dans `results` (post-troncature). | |
| truncated | No | true si le total réel dépasse `limit` (re-paginer via `offset` si supporté). Optional sur les tools de listing exhaustif (lister_*). | |
| results | Yes | Entrées métier (shape spécifique au tool, cf. description du tool). | |
| query_metadata | No | Metadata de la query (radius_km, departement, filtres appliqués, …). | |
| freshness | No | Fraîcheur des sources (présent si `include_freshness: true`). |