Une plateforme moderne pour une coordination efficace entre patients et personnel médical
DécouvrirLe système de gestion des urgences hospitalières a été développé pour répondre aux besoins croissants de coordination entre les différents acteurs du milieu médical et les patients.
Dans un environnement hospitalier, la rapidité de communication et la précision des informations sont cruciales pour assurer des soins efficaces, surtout dans des situations d'urgence.
Cette application web permet une communication fluide entre patients, médecins, infirmiers, sécurité et pompiers, avec des fonctionnalités adaptées à chaque rôle.
Langage côté serveur pour le traitement des données et la logique métier
PHP 8+Base de données relationnelle pour le stockage des informations
MySQLTechnologies front-end pour l'interface utilisateur
HTML5 CSS3 JavaScriptLe choix de PHP et MySQL s'est imposé naturellement pour un projet web nécessitant une forte interaction avec une base de données et une logique métier complexe. Ces technologies sont largement supportées par la plupart des hébergements web et offrent un excellent rapport performance/facilité de développement.
Bootstrap a été choisi pour sa capacité à créer des interfaces responsive rapidement, ce qui était crucial pour une application qui doit être accessible sur différents appareils (ordinateurs, tablettes, smartphones).
L'application suit une architecture MVC (Modèle-Vue-Contrôleur) simplifiée, même si elle n'utilise pas un framework MVC complet.
Les principales composantes sont :
La base de données est constituée de plusieurs tables principales :
L'utilisateur effectue une action (clic, soumission de formulaire)
Le système détermine quelle action exécuter en fonction de l'URL
Le contrôleur traite la requête, interagit avec la base de données si nécessaire
La vue appropriée est générée et renvoyée à l'utilisateur
Plusieurs mesures de sécurité ont été implémentées :
Système complet de gestion des utilisateurs avec différents rôles et permissions
Envoi et gestion des alertes avec différents niveaux d'urgence
Communication entre professionnels de santé via des recommandations
Le code est organisé de manière modulaire avec une séparation claire entre :
La fonction sanitize()
est utilisée pour nettoyer toutes les entrées utilisateur :
function sanitize($data) {
return htmlspecialchars(strip_tags(trim($data)));
}
Cette fonction :
trim()
strip_tags()
htmlspecialchars()
Le système de routage est basé sur un paramètre GET action
:
$action = isset($_GET['action']) ? sanitize($_GET['action']) : 'home';
switch ($action) {
case 'login':
handleLogin();
break;
case 'register':
handleRegister();
break;
// ... autres actions
default:
showHome();
}
Connexion sécurisée avec PDO :
try {
$pdo = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,
DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec("SET NAMES utf8mb4");
} catch (PDOException $e) {
die("Erreur de connexion: " . $e->getMessage());
}
Exemple de requête sécurisée :
$stmt = $pdo->prepare("SELECT * FROM utilisateurs WHERE id = ?");
$stmt->execute([$user_id]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
Le système utilise des sessions PHP et le hachage sécurisé des mots de passe :
function hashPassword($password) {
return password_hash($password, PASSWORD_BCRYPT);
}
function verifyPassword($password, $hash) {
return password_verify($password, $hash);
}
// Dans le processus de connexion
if ($user && verifyPassword($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['role'] = $role;
// ... autres données de session
}
La fonction uploadPhoto()
valide et sécurise l'upload des photos de profil :
function uploadPhoto($file) {
$target_dir = "uploads/profiles/";
// Vérification du type de fichier
$check = getimagesize($file["tmp_name"]);
if ($check === false) {
return ['success' => false, 'message' => 'Le fichier n\'est pas une image.'];
}
// Vérification de la taille
if ($file["size"] > 2000000) {
return ['success' => false, 'message' => 'L\'image est trop volumineuse (max 2MB).'];
}
// ... autres vérifications
// Déplacement sécurisé du fichier
if (move_uploaded_file($file["tmp_name"], $target_file)) {
return ['success' => true, 'filename' => $new_filename];
}
}
Le choix de PHP natique plutôt qu'un framework complet a été fait pour plusieurs raisons :
Plusieurs mesures ont été mises en place :
L'architecture a été conçue pour être scalable :
Plusieurs axes d'amélioration sont prévus :
Pour tester le système :