verifier_site_actif
Verifies active status of a FINESS healthcare establishment by cross-referencing DREES, RPPS, and DINUM, detecting closed sites misreported as active.
Instructions
Vérifie si un établissement de santé FINESS est encore en activité en croisant FINESS DREES ↔ RPPS (pivot SIRET) ↔ DINUM (liste complète des SIRET du SIREN, incluant les fermés). Détecte les SIRET fermés encore listés actifs côté FINESS (DREES a 1-2 mois de retard).
V0.7.0 — breaking : pivot SIRET élargi. Avant V0.7.0, on ne testait que les SIRET RPPS-déclarés (= SIRET du siège employeur typiquement) → on ratait le SIRET physique fermé du site. Désormais, le resolver récupère TOUS les SIRET du SIREN via DINUM puis fuzzy-matche leur adresse contre FINESS — ce qui capte aussi les SIRET fermés invisibles côté RPPS.
Logique :
Lookup FINESS pour récupérer raison sociale + adresse + téléphone DREES
Récupération des SIRET candidats via le resolver (RPPS + DINUM avec scoring d'adresse Dice)
best_match= SIRET avec le meilleur score d'adresse ≥ 0.6 (= site physique)2 verdicts distincts :
verdict_site(actif/ferme/indetermine) : basé surbest_match.actif. C'est le verdict qui compte pour un audit territorial.verdict_groupe(actif/ferme/indetermine) : basé sur l'état admin de l'UL parente (champactifDINUM). Une UL active peut très bien avoir un site fermé.
Format de retour : objet LookupResult discriminé par found. Quand found: true, le payload contient finess (vue DREES), candidates (liste enrichie tri score), best_match, sirens_explored, verdict_site, verdict_groupe, explication. Quand num_finess est absent de FINESS DREES, le tool retourne {found: false, lookupStatus: 'not_found', message, ...}.
Coût : 1 RPC FINESS + 1 SELECT rpps + N appels DINUM (N = nombre de SIREN distincts, typiquement 1). DINUM gère son propre fallback INSEE V3.11 pour les SIREN diffusion partielle.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| num_finess | Yes | Numéro FINESS exact (9 chiffres). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| found | Yes | ||
| lookupStatus | Yes | ||
| key | No | Clé recherchée (SIREN, num_finess, code INSEE, …). | |
| message | No | Explication actionnable quand `found=false` (cause probable + remédiation). |