Fonctionnalités FrontEnd - PsychoEnLigne¶
Document généré le 2026-04-22
Vue d'ensemble¶
Ce document détaille toutes les fonctionnalités à développer pour le FrontEnd de PsychoEnLigne, organisées selon la structure Domain-First mise en place.
1. Domaine Patients (@patients/*)¶
Gestion des Dossiers Patients¶
- CRUD Patients: Création, consultation, modification, suppression des dossiers patients
- Recherche avancée: Par nom, numéro de sécurité sociale, date de naissance
- Historique médical: Visualisation des consultations, rendez-vous, traitements
- Documents médicaux: Upload/consultation d'ordonnances, résultats d'examens
- Fiche patient complète: Informations démographiques, contacts, antécédents
Interfaces à développer¶
PatientsListePage.tsx- Liste des patients avec filtresPatientFichePage.tsx- Dossier patient détailléPatientCreationPage.tsx- Formulaire de création patientPatientModificationPage.tsx- Modification dossier patient
2. Domaine Rendez-vous (@rendezvous/*)¶
Prise de Rendez-vous¶
- Calendrier interactif: Vue semaine/mois avec disponibilités
- Gestion des créneaux: Configuration des horaires par médecin
- Confirmation automatique: SMS/Email de confirmation
- Rappels: Notifications avant les rendez-vous
- Annulation/Report: Gestion des modifications
Interfaces à développer¶
RendezVousCalendrierPage.tsx- Calendrier principalRendezVousCreationPage.tsx- Prise de rendez-vousRendezVousModificationPage.tsx- Modification/annulationRendezVousListePage.tsx- Liste des rendez-vous
3. Domaine Consultations (@consultations/*)¶
Gestion des Consultations¶
- Dossier de consultation: Interface de saisie pendant la consultation
- Ordonnances: Génération et impression d'ordonnances
- Prescriptions: Médicaments avec posologie
- Notes médicales: Observations et diagnostic
- Historique: Consultations précédentes du patient
Interfaces à développer¶
ConsultationsListePage.tsx- Liste des consultations (déjà existante)ConsultationsFichePage.tsx- Dossier de consultationConsultationsOrdonnancePage.tsx- Gestion ordonnancesConsultationsNotesPage.tsx- Notes médicales
4. Domaine Facturation (@facturation/*)¶
Gestion Financière¶
- Génération des factures: Automatique après consultation
- Paiements: Suivi des paiements (carte, chèque, espèce)
- Remboursements: Interface mutuelle/assurance
- Rapports financiers: Journal des ventes, statistiques
- Tarification: Configuration des prix par consultation
Interfaces à développer¶
FacturationListePage.tsx- Liste des facturesFacturationCreationPage.tsx- Génération factureFacturationPaiementPage.tsx- Enregistrement paiementFacturationRapportsPage.tsx- Rapports financiers
5. Domaine Authentification (@auth/*)¶
Sécurité et Accès¶
- Login/Multi-facteurs: Sécurité renforcée
- Gestion des mots de passe: Oubli, réinitialisation
- Rôles et permissions: Admin, médecin, secrétaire, patient
- Session management: Timeout, reconnexion automatique
- Audit trail: Journal des connexions
Interfaces à développer¶
LoginPage.tsx- Connexion (déjà existante)ForgotPasswordPage.tsx- Mot de passe oublié (déjà existante)ResetPasswordPage.tsx- Réinitialisation mot de passe (déjà existante)TwoFactorPage.tsx- Authentification 2 facteurs (déjà existante)ProfilePage.tsx- Profil utilisateur
6. Domaine Utilisateurs (@utilisateurs/*)¶
Gestion du Personnel¶
- Profils utilisateurs: Informations personnelles, préférences
- Permissions: Gestion des droits d'accès
- Annuaire interne: Liste des collaborateurs
- Messagerie interne: Communication entre staff
- Planning personnel: Congés, disponibilités
Interfaces à développer¶
UtilisateursListePage.tsx- Liste des utilisateurs (déjà existante)MonProfilPage.tsx- Profil personnel (déjà existante)UtilisateurCreationPage.tsx- Création utilisateurUtilisateurPermissionsPage.tsx- Gestion permissions
7. Domaine Médecins (@medecins/*)¶
Gestion des Professionnels¶
- Profils médecins: Spécialités, disponibilités, tarifs
- Planning personnel: Gestion des congés, disponibilités
- Statistiques: Nombre de patients, revenus, etc.
- Affectations: Liaison avec les patients
- Agenda personnel: Vue du calendrier médecin
Interfaces à développer¶
MedecinsListePage.tsx- Annuaire des médecinsMedecinFichePage.tsx- Profil médecin détailléMedecinPlanningPage.tsx- Planning médecinMedecinStatistiquesPage.tsx- Statistiques personnelles
8. Domaine Dashboard (@dashboard/*)¶
Tableau de Bord Principal¶
- Vue d'ensemble: Rendez-vous du jour, patients en attente
- Statistiques: Fréquentation, revenus, indicateurs KPI
- Alertes: Rendez-vous à confirmer, paiements en retard
- Quick actions: Accès rapide aux fonctions principales
- Widgets personnalisables: Configuration par utilisateur
Interfaces à développer¶
DashboardPage.tsx- Tableau de bord principalDashboardStatsPage.tsx- Statistiques détailléesDashboardAlertesPage.tsx- Centre d'alertes
9. Domaine Notifications (@notifications/*)¶
Centre de Notifications¶
- Centre de notifications: Centralisation des alertes
- Types de notifications: Rendez-vous, messages, paiements
- Préférences: Configuration par utilisateur
- Historique: Journal des notifications envoyées
- Templates: Modèles de messages
Interfaces à développer¶
NotificationsCentrePage.tsx- Centre de notificationsNotificationsHistoriquePage.tsx- HistoriqueNotificationsPreferencesPage.tsx- Préférences utilisateur
10. Shared Kernel (@shared/*)¶
Infrastructure Commune¶
- Composants UI: Bibliothèque de composants réutilisables
- Hooks personnalisés: Auth, API, formulaires
- Utilitaires: Validation, formatage, helpers
- Infrastructure: Client HTTP, gestion des erreurs
- Types TypeScript: Interfaces et types partagés
Composants à développer¶
- UI Components: Button, Input, Modal, Table, etc.
- Layout Components: Header, Sidebar, Footer
- Form Components: FormField, FormSelect, FormDatePicker
- Display Components: Card, Badge, Alert, Loading
11. Fonctionnalités Techniques Additionnelles¶
Mobile Responsive¶
- Design adaptatif: Tablettes, smartphones
- PWA: Application web progressive
- Offline mode: Accès limité sans connexion
Intégrations¶
- API BackEnd: Communication avec tous les modules DDD
- Services externes: SMS, email, paiement
- Export/Import: PDF, Excel, données patients
Performance¶
- Lazy loading: Chargement à la demande
- Caching: Mise en cache intelligente
- Optimisation: Bundle splitting, code splitting
12. Priorités de Développement¶
Phase 1 (MVP - 2-3 semaines)¶
- Authentification complète - Login, permissions, profils
- Dashboard principal - Vue d'ensemble, KPIs
- Gestion Patients (CRUD) - Dossiers patients de base
- Prise de Rendez-vous simple - Calendrier de base
Phase 2 (Fonctionnalités Core - 4-6 semaines)¶
- Consultations et ordonnances - Dossier consultation
- Facturation de base - Génération factures, paiements
- Notifications essentielles - Rappels rendez-vous
- Gestion Médecins - Profils et planning
Phase 3 (Avancées - 6-8 semaines)¶
- Fonctionnalités avancées - Statistiques, rapports
- Mobile responsive - Adaptation mobile/tablette
- Intégrations externes - SMS, email, paiement
- Optimisations - Performance, UX avancée
13. Architecture Technique¶
Structure Domain-First¶
FrontEnd/
Modules/src/
@auth/ # Authentification
@patients/ # Gestion patients
@rendezvous/ # Prise de rendez-vous
@consultations/ # Consultations médicales
@facturation/ # Facturation et paiements
@medecins/ # Gestion médecins
@utilisateurs/ # Gestion utilisateurs
@dashboard/ # Tableau de bord
@notifications/ # Centre de notifications
shared-kernel/src/ # Éléments communs
Stack Technique¶
- React 18 avec TypeScript
- Vite comme bundler
- TailwindCSS pour le styling
- TanStack Query pour la gestion d'état serveur
- Zustand pour la gestion d'état client
- React Hook Form pour les formulaires
- React Router 7 pour la navigation
14. Dépendances API¶
Endpoints à consommer¶
GET /api/v1/patients- Liste des patientsPOST /api/v1/patients- Création patientGET /api/v1/rendezvous- Liste rendez-vousPOST /api/v1/rendezvous- Création rendez-vousGET /api/v1/consultations- Liste consultationsPOST /api/v1/consultations- Création consultationGET /api/v1/factures- Liste facturesPOST /api/v1/factures- Génération facture
Conclusion¶
La structure Domain-First est maintenant prête pour accueillir toutes ces fonctionnalités de manière organisée et scalable. Chaque domaine peut être développé indépendamment tout en bénéficiant des composants partagés du Shared Kernel.
Le développement peut commencer par la Phase 1 (MVP) pour avoir une application fonctionnelle rapidement, puis s'enrichir progressivement avec les fonctionnalités avancées.
Document à mettre à jour au fur et à mesure du développement des fonctionnalités.