-
Objectifs
- Être capable d'utiliser les différents éléments du framework Bootstrap 5 pour créer une interface d'administration médicale.
- Concevoir un tableau de bord intuitif pour la gestion d'un cabinet médical.
-
Travail à réaliser:
-
Partie 01 : Page index (Tableau de bord)
- Utiliser les classes de Bootstrap 5 pour créer la page Web illustrée dans la vidéo ci-dessous.
- Commencer avec le fichier de code de démarrage TP5 Création de projet projet05 - départ.
- Télécharger les images depuis l'adresse Suivante.
- Pour faire les petites icônes utiliser la police d'icône Font Awesome (ex: stéthoscope, calendrier, utilisateurs).
- Le résultat final est décrit par la vidéo suivante:
-
-
Partie 02 : Base de données
- Schéma de base de données : cabinet-medical
- Table "
Patients"Id (clé primaire) Nom Prénom Date_de_naissance Adresse Numero_de_telephone Adresse_emailCREATE TABLE Patients ( Id INT NOT NULL AUTO_INCREMENT, Nom VARCHAR(255) NOT NULL, Prenom VARCHAR(255) NOT NULL, Date_de_naissance DATE NOT NULL, Adresse VARCHAR(255) NOT NULL, Numero_de_telephone VARCHAR(15) NOT NULL, Adresse_email VARCHAR(255) NOT NULL, PRIMARY KEY (Id) ); - Table "
Consultations"Id (clé primaire) Date_de_consultation Heure_de_consultation Id_patient (clé étrangère) Motif_de_consultation Diagnostic TraitementCREATE TABLE Consultations ( Id INT NOT NULL AUTO_INCREMENT, Date_de_consultation DATE NOT NULL, Heure_de_consultation TIME NOT NULL, Id_patient INT NOT NULL, Motif_de_consultation VARCHAR(255) NOT NULL, Diagnostic VARCHAR(255) NOT NULL, Traitement VARCHAR(255) NOT NULL, PRIMARY KEY (Id), FOREIGN KEY (Id_patient) REFERENCES Patients(Id) ); - Table "
Médecins"Id (clé primaire) Nom Prénom SpécialitéCREATE TABLE Medecins ( Id INT NOT NULL AUTO_INCREMENT, Nom VARCHAR(255) NOT NULL, Prenom VARCHAR(255) NOT NULL, Specialite VARCHAR(255) NOT NULL, PRIMARY KEY (Id) ); - Table "
Rendez-vous"Id (clé primaire) Date_de_rendez_vous Heure_de_rendez_vous Id_patient (clé étrangère) Id_medecin (clé étrangère)CREATE TABLE Rendez_vous ( Id INT NOT NULL AUTO_INCREMENT, Date_de_rendez_vous DATE NOT NULL, Heure_de_rendez_vous TIME NOT NULL, Id_patient INT NOT NULL, Id_medecin INT NOT NULL, PRIMARY KEY (Id), FOREIGN KEY (Id_patient) REFERENCES Patients(Id), FOREIGN KEY (Id_medecin) REFERENCES Medecins(Id) ); - Table "
Antécédents"Id (clé primaire) Id_patient (clé étrangère) Type_antecedent Description_antecedentsCREATE TABLE Antecedents ( Id INT NOT NULL AUTO_INCREMENT, Id_patient INT NOT NULL, Type_antecedent VARCHAR(255) NOT NULL, Description_antecedents TEXT NOT NULL, PRIMARY KEY (Id), FOREIGN KEY (Id_patient) REFERENCES Patients(Id) );
- Table "
- Schéma de base de données : cabinet-medical
-
Partie 03 : Accès Sécurisé au Dossier Médical
- Mettre en place une connexion PDO sécurisée pour accéder à la base de données du cabinet médical :
- Configurez les informations de connexion MySQL dans un fichier
config.phpisolé. - Utilisez
PDO::ERRMODE_EXCEPTIONpour capturer toute erreur de connexion pouvant compromettre les données de santé. - Utilisez systématiquement des requêtes préparées pour contrer les injections SQL, assurant ainsi la protection des dossiers patients.
- Configurez les informations de connexion MySQL dans un fichier
- Mettre en place une connexion PDO sécurisée pour accéder à la base de données du cabinet médical :
-
Partie 04 : Système d'Authentification du Personnel
- Développer un système de connexion robuste pour les médecins et les secrétaires médicales.
-
Authentification et Sécurité :
- Mettre en place un formulaire de connexion protégé par des tokens CSRF.
- Hacher les mots de passe du personnel médical (ex: via
password_hash()) avant leur stockage.
-
Gestion des Sessions Médicales :
- Assurer la persistance de l'état de connexion via les variables de session
$_SESSION. - Déconnecter automatiquement les utilisateurs inactifs pour éviter l'accès non autorisé aux dossiers des patients.
- Assurer la persistance de l'état de connexion via les variables de session
-
Récupération de mot de passe :
- Permettre au personnel de réinitialiser leur mot de passe via un lien sécurisé envoyé par email institutionnel.
-
- Développer un système de connexion robuste pour les médecins et les secrétaires médicales.
-
Partie 05 : Interface de Gestion du Cabinet (CRUD)
- Créer les interfaces permettant la gestion quotidienne du cabinet :
-
Menu de Navigation Médical :
- Ajouter un menu standard (Sidebar/Navbar) avec les liens : Tableau de bord, Patients, Médecins, Rendez-vous, Consultations, Déconnexion.
-
Gestion des Patients et Rendez-vous :
- Créer une page pour afficher la liste des patients sous forme de tableau Bootstrap 5 avec pagination.
- Ajouter un système de recherche en temps réel (par Nom ou Numéro de téléphone) pour retrouver rapidement un dossier.
- Développer un Modal Bootstrap pour l'ajout rapide d'un nouveau patient lors de sa première visite.
-
Dossier Médical (Opérations CRUD) :
- Dans le tableau des patients, inclure une colonne "Actions" avec des boutons : Voir Dossier (Détails), Modifier, et Archiver/Supprimer.
- Le bouton "Voir Dossier" doit afficher une vue détaillée regroupant les consultations passées et les antécédents médicaux du patient concerné.
- Utiliser AJAX et JQuery pour soumettre les formulaires de modification sans recharger la page, optimisant ainsi le temps du secrétariat.
-
- Tester l'application en simulant le parcours complet : prise de rendez-vous, création du dossier patient, et saisie du compte rendu de consultation.
- Créer les interfaces permettant la gestion quotidienne du cabinet :
-
