professionnel_by_rpps
Retrieve a healthcare professional's complete record by RPPS/IDNPS identifier. Returns one entry per practice site with geolocation precision, falling back to live API when not found locally.
Instructions
Récupère la fiche complète d'un PS par identifiant national (rpps_id / IDNPS, 11 ou 12 chiffres — IDs émis depuis 2020 ont un préfixe "81" = 12 chars ; anciens IDs = 11 chars). Renvoie N entrées quand le PS exerce sur plusieurs sites (1 par site, chacun avec sa propre geo_precision — un même PS peut donc cumuler un site précis FINESS et un site au centroïde commune).
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).
Fallback automatique sur l'API FHIR ANS live (gateway.api.esante.gouv.fr/fhir/v2) si non trouvé en base locale (snapshot mensuel J-30 max). Le champ source distingue db (base locale) de ans_fhir (live). include_freshness n'affecte que source: "db". Source : Annuaire Santé, Agence du Numérique en Santé (ANS) — Licence Ouverte v2.0
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rpps_id | Yes | ||
| include_freshness | No | Si true, ajoute un champ `data_freshness` au payload (dans `query_metadata` si présent, sinon à la racine) listant, par source (FINESS, Ameli, RPPS, CDS, IRIS), la dernière ingestion réussie (`last_success_at`, `staleness_days`) ET la dernière fois que la donnée a réellement changé (`last_data_change_at`, `data_age_days` — un run court-circuité « fichier amont identique » compte comme succès mais ne rajeunit pas la donnée ; c'est `data_age_days` qui dit l'âge réel de ce qui est servi). 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 |
|---|---|---|---|
| key | No | Clé recherchée (SIREN, num_finess, code INSEE, …). | |
| found | Yes | ||
| message | No | Explication actionnable quand `found=false` (cause probable + remédiation). | |
| lookupStatus | Yes |