Le défi
SHCA gérait des dizaines d’établissements pour aînés avec un patchwork de feuilles Excel, de notes de quart sur papier et de trois outils de type DME déconnectés — sans source de vérité unique pour aucun patient. Les infirmières ressaisissaient les mises à jour dans plusieurs systèmes à chaque quart, les familles n’avaient aucune visibilité, les administrateurs ne pouvaient pas prouver qui avait vu quoi, et l’intégration d’un nouvel établissement signifiait recréer le même fragile modèle Excel.
La demande était sans compromis : livrer un SaaS de gestion des patients multi-établissements, aligné HIPAA, sur lequel toute infirmière, tout médecin, administrateur ou membre de la famille pouvait se connecter en toute sécurité dès le premier jour — avec des notes cliniques basées sur des modèles, un accès aux dossiers par rôle, des pistes d’audit complètes et la possibilité d’intégrer un tout nouvel établissement en quelques minutes plutôt qu’en semaines. Moins que « un dossier, un journal, une source de vérité » aurait livré le même problème de fragmentation sous un meilleur habillage.
Notre solution
Nous avons construit un SaaS multi-tenant Next.js + Django + PostgreSQL hébergé sur AWS, où chaque patient existe dans un seul dossier et où chaque action est observable, auditable et limitée par rôle.
Le backend Django expose une API Django REST Framework avec une frontière stricte entre locataires — chaque requête est filtrée par `facility_id` au niveau de l'ORM, de sorte qu'un infirmier de l'établissement A ne peut littéralement pas faire un SELECT sur un patient de l'établissement B, même avec une URL falsifiée. L'authentification par JWT relie quatre rôles (médecin, infirmier, administrateur, famille) à des permissions par endpoint et par champ, et un unique journal en ajout seul « audit_event » consigne chaque lecture, écriture et export avec `(user_id, role, facility_id, patient_id, action, timestamp, ip)`, afin de pouvoir produire en quelques secondes un audit conforme à HIPAA pour n'importe quel patient sur n'importe quelle période.
Les notes cliniques — le flux de travail à plus forte valeur du produit — reposent sur des modèles. Au lieu de saisir librement une note SOAP de 20 minutes, l'infirmier choisit un modèle, ne renseigne que les différences, et le système sérialise une note structurée accompagnée d'un résumé lisible. Des champs de texte adaptés à la saisie vocale, un enregistrement automatique toutes les 5 secondes et des instantanés de médication / de constantes vitales joignables réduisent le temps moyen de rédaction d'une note de plus de 18 minutes à moins de 5.
Le front-end Next.js propose une expérience unique de type SPA pour tous les rôles, avec une navigation adaptée au rôle, des mises à jour optimistes des patients et un sélecteur d'établissement interne pour les administrateurs qui gèrent plusieurs sites. Les membres de la famille disposent d'un portail strictement cloisonné — ils ne voient que le patient auquel ils sont rattachés, et uniquement les champs que le médecin a approuvés pour le partage.
Côté infrastructure : PostgreSQL sur RDS avec restauration à un instant donné automatisée, S3 avec pièces jointes chiffrées par KMS et URL signées à durée limitée (aucune URL S3 brute dans la nature), CloudWatch + Sentry sur chaque endpoint, vérification nocturne automatisée des sauvegardes, et infrastructure as code pour pouvoir déployer une seconde région sans ouvrir de ticket auprès de l'équipe cloud.
- Dossiers patients multi-locataires avec une frontière `facility_id` stricte appliquée au niveau de l'ORM Django (l'accès entre établissements est impossible, et pas simplement improbable)
- Accès limité par rôle pour le médecin, l'infirmier, l'administrateur et la famille — contrôlé à la fois au niveau de l'endpoint et du champ
- Notes cliniques basées sur des modèles avec enregistrement automatique, constantes vitales/médicaments joignables et résumé lisible stocké avec le JSON structuré
- Journal `audit_event` en ajout seul sur chaque lecture, écriture et export, interrogeable par patient sur n'importe quelle période — conforme à HIPAA dès le départ
- Portail famille avec partage au niveau des champs approuvé par le médecin, pièces jointes via URL signées à durée limitée et périmètre d'accès par patient
- Console d'administration multi-établissements : intégrez un nouvel établissement, attribuez les rôles et réaffectez les patients sans modification de code
- Infrastructure AWS renforcée : restauration à un instant donné RDS, chiffrement S3 + KMS, CloudWatch + Sentry, vérification nocturne des sauvegardes, infrastructure as code