rpps_search_by_name
Find healthcare professionals by name with accent- and typo-tolerant trigram matching. Filter by first name and department, and assess result reliability via match score and geo precision.
Instructions
Trouve un PS par identité (matching trigram tolérant aux accents/typos). Usage : "Dr Martin à Paris" → nom: "Martin", departement: "75". Nom obligatoire ; prenom et departement affinent.
Tri par match_score ∈ [0..1] décroissant (score trigram pg_trgm). Un score <0.5 = homonymie partielle à confirmer côté caller. Sans departement, des homonymes exacts ("Pierre Martin") ont TOUS le même score ~1.0 et ne sont pas départagés — toujours filtrer par dept ou prénom sur un nom commun.
truncated: true = d'autres résultats existent (restreindre, ne pas parcourir).
Chaque résultat géolocalisé porte geo_precision ∈ {"adresse", "etablissement_finess", "centroide_commune"} — lire ce champ pour évaluer la fiabilité des coords (précise BAN/FINESS au m près vs centroïde commune ~3 km, non discriminant intra-commune).
Catégorie par défaut : Civil (C, ~97 % — libéraux, salariés privés, hospitaliers contractuels). Opt-in : include_agents_publics: true ajoute Agents publics (M, ~0,3 % — PH titulaires, ARS, CNAM, Éducation nationale, PMI, militaires SSA) ; include_etudiants: true ajoute Étudiants (E, ~2,5 % — internes, externes, élèves IDE/SF). Réf : 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 (non vide). | |
| prenom | No | Prénom du PS. | |
| 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. | |
| 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, CDS) 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). | |
| total | No | Effectif réel avant troncature. Présent sur les tools de nomenclature paginés (lister_*) : `count` = échantillon, `total` = total réel, re-appeler avec un `limit` supérieur si `truncated`. | |
| truncated | No | true si le total réel dépasse `limit` (re-paginer via `offset` si supporté, ou augmenter `limit` sur les lister_*). 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`). | |
| perimetre | No | Lentille de la source : ce que le comptage inclut/exclut. Lire `completeness_note` et la restituer au lecteur final. | |
| activite_hebergee | No | Compte juxtaposé des sites hébergeant l'activité correspondant à la famille filtrée, sous une autre catégorie FINESS. Distinct du `count` principal — lire `note` pour comprendre la sémantique et ne JAMAIS additionner les deux comptes sans préciser leur nature. |