Skip to content

Services externes

L’application s’intègre avec plusieurs services externes, tous situés dans src/Infrastructure/. Chaque intégration est liée à une FeatureKey du plan de souscription.


Service : src/Infrastructure/Doctolib/DoctolibService.php Feature : FeatureKey::ADDONS_DOCTOLIB

Intégration bidirectionnelle avec Doctolib pour la gestion d’agenda.

MéthodeDescription
auth()Authentification API
setConfig()Configuration du connecteur
getEvents()Récupération des événements (polling)
createOrUpdatePatient()Sync patient vers Doctolib
mergePatient()Fusion de patient
deletePatient()Suppression patient
import()Import de données
updateAppointmentStatus()Mise à jour statut RDV

Stockée sur le modèle Site :

  • doctolib_client_id / doctolib_secret — credentials API
  • doctolib_sync — sync activée (bool)
  • doctolib_last_import_at / doctolib_last_import_id — dernier import
  • doctolib_config_push_at — dernière config push
  • DoctolibImport — logique d’import
  • DoctolibPullSync — sync depuis Doctolib
  • DoctolibPushConfiguration — push de config vers Doctolib
  • DoctolibPatientMigration — migration de patients
  • DoctolibMapper — mapping des données

Service : src/Infrastructure/IntellioEditeur/IntellioEditeursService.php Feature : FeatureKey::ADDONS_FSE Spec API : src/Infrastructure/IntellioEditeur/intellio.swagger.json

Gestion des Feuilles de Soins Electroniques (FSE) — facturation Sécurité Sociale.

MéthodeDescription
testAuth()Test d’authentification
getUIToken()Token pour l’interface IntellioEditeur
generateUrl()URL d’accès à l’éditeur
importOrUpdatePatientFromId()Import patient depuis l’annuaire
getEnumValues()Récupération des valeurs d’enum
getInvoice()Consultation d’une facture FSE
createInvoice()Création d’une facture FSE
simulateInvoice()Simulation de facture

L’éditeur FSE expose une interface web intégrée en iframe. Le token UI permet d’authentifier l’accès.


Service : src/Infrastructure/Ophtabase/OphtabaseService.php

Base de données de lentilles ophtalmiques.

MéthodeDescription
authenticate()Auth API
syncCatalog()Sync complète du catalogue
syncLaboratories()Import des laboratoires
syncCorrectionTypes()Import des types de correction
syncLensTypes()Import des types de lentilles
syncLenses()Import des lentilles

Les données sont stockées dans le domaine Lens (src/Domain/Lens/).


Service : src/Infrastructure/GuestSuite/GuestSuiteService.php

Plateforme d’avis patients post-consultation.

MéthodeDescription
createContact()Créer un contact patient
createExperienceFromAppointment()Envoyer un questionnaire post-RDV

Configuration par site via guest_suite_id sur le modèle Site.


Client : src/Infrastructure/Claude/ClaudeClient.php Feature : FeatureKey::ADDONS_AI_GENERATION

Génération de comptes-rendus médicaux via l’API Claude.

  • Config : services.claude.api_key, services.claude.model
  • Méthode unique : generate(prompt, maxTokens) → texte

Service : src/Infrastructure/Gotenberg/GotenbergService.php

Conversion de documents en PDF via un conteneur Docker Gotenberg.

MéthodeDescription
libreOfficeToPdf()Conversion fichier → PDF (via LibreOffice)
chromium()Accès au module Chromium (HTML → PDF)

Config : services.gotenberg.url


Dossier : src/Infrastructure/Stripe/

Utilisé pour 3 cas d’usage distincts :

UsageService/TraitDescription
SubscriptionsLaravel CashierAbonnements tenant
Paiements patientsStripePaymentIntentServicePayment Intents via Connect
TerminauxStripeTerminalServiceTerminaux physiques
RétrocessionRetrocessionPayoutServiceTransferts entre comptes

Les webhooks sont centralisés dans StripeWebhookService → voir FSE & Paiements.