qrcommunication / rppsapi
SDK PHP pour interroger toutes les sources de données RPPS (Répertoire Partagé des Professionnels de Santé) de l'Annuaire Santé - ANS
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.0
- guzzlehttp/promises: ^2.0
Requires (Dev)
- phpunit/phpunit: ^10.0|^11.0
README
SDK PHP pour interroger l'ensemble des sources de donnees RPPS (Repertoire Partage des Professionnels de Sante) en une seule requete.
Installation
composer require qrcommunication/rppsapi
Quick Start
use QrCommunication\RppsApi\RppsClient; use QrCommunication\RppsApi\RppsClientOptions; use QrCommunication\RppsApi\Dto\RppsSearchCriteria; $client = new RppsClient(new RppsClientOptions( fhirApiKey: $_ENV['FHIR_API_KEY'] ?? null, )); // Profil complet par RPPS $profil = $client->getByRpps('10005173140'); echo $profil->identite->civiliteExercice->libelle . ' '; echo $profil->identite->prenomExercice . ' ' . $profil->identite->nomExercice . "\n"; echo $profil->profession->libelle . "\n"; foreach ($profil->activites as $activite) { echo " - " . $activite->structure->raisonSociale . "\n"; } foreach ($profil->diplomesEtAutorisations as $da) { if ($da->diplome) { echo " - [Diplome] " . $da->diplome->libelle . "\n"; } } // Recherche par nom + code postal $results = $client->search(new RppsSearchCriteria( nom: 'DUPONT', codePostal: '75', )); echo "Total: {$results->total}\n"; foreach ($results->results as $r) { echo " {$r->civilite} {$r->prenomExercice} {$r->nomExercice} — {$r->profession->libelle}\n"; }
API Reference
RppsClient
$client = new RppsClient(new RppsClientOptions( fhirBaseUrl: 'https://gateway.api.esante.gouv.fr/fhir/v2', // defaut fhirApiKey: 'votre-cle-gravitee', // optionnel tabularBaseUrl: 'https://tabular-api.data.gouv.fr/api/resources', // defaut timeout: 30.0, // secondes tabularPageSize: 100, // defaut disabledSources: [], // ex: ['fhir', 'mssante'] ));
getByRpps(string $rpps): RppsFullProfile
Retourne le profil complet avec identite, profession, activites, diplomes, savoir-faire, cartes CPS, messageries MSSante et donnees FHIR.
search(RppsSearchCriteria $criteria, int $page = 1, ?int $pageSize = null): RppsSearchResponse
Recherche partielle insensible a la casse. Au moins un critere obligatoire.
validateRpps(string $rpps): string
Valide un numero RPPS (11 chiffres). Lance RppsException si invalide.
Sources de donnees
| Source | API | Donnees |
|---|---|---|
| personne-activite | Tabular data.gouv.fr | Identite, profession, structures |
| diplomes | Tabular data.gouv.fr | Diplomes, autorisations |
| savoir-faire | Tabular data.gouv.fr | Specialites, competences |
| carte-cps | Tabular data.gouv.fr | Cartes professionnelles |
| mssante | Tabular data.gouv.fr | Messageries securisees |
| fhir | API FHIR ANS | Donnees FHIR normalisees (cle requise) |
Configuration FHIR
Obtenir une cle gratuite sur https://portal.api.esante.gouv.fr :
- Creer un compte
- Creer une application
- S'abonner a "API Annuaire Sante en libre acces"
- Recuperer la cle ESANTE-API-KEY
Skill AI (Claude Code, Cursor, Codex, Windsurf, Gemini...)
Ce SDK inclut un skill AI qui donne a votre agent une connaissance complete du SDK.
bash vendor/qrcommunication/rppsapi/skill/install.sh
Agents supportes : Claude Code, Cursor, Codex, Windsurf, Cline, Aider, Gemini CLI.
Installation manuelle : cp -r vendor/qrcommunication/rppsapi/skill ~/.claude/skills/sdk-rpps
Licence
PolyForm Noncommercial 1.0.0 — Voir LICENSE