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
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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