En détail
Patiello, une application inédite pour l’accueil dans un centre médical

Au départ, la question est simple : comment, dans un petit centre médical où il n’y a pas de personnel à l’accueil, savoir que tel patient est arrivé et est présent dans la salle d’attente ? En descendant plusieurs étages, plusieurs fois par jour, pour le constater de visu !
L’idée centrale : une borne interactive
Elle présente un message d’accueil, son apparence est inspirée de la charte graphique du centre médical et elle montre surtout autant de boutons que de soignants présents à ce moment dans le centre. Le patient va simplement appuyer sur ce bouton et une notification sera envoyée sur le smartphone du soignant.
L’application de la borne interactive (kiosk) est éveloppée en .NET MAUI hybride pour Android. L’application est dite « hybride » car son écran principal est conçu exactement comme un site web. Cela permet de personnaliser les apparences en utilisant des CSS qui seront paramétrables par l’acquéreur du système.
Un portail de paramétrage de cette borne
La borne est dans un lieu public. Ce n’est pas l’endroit pour modifier ses paramètres. Son administration s’effectue donc en ligne, au travers d’un portail dédié. Il est possible à cet endroit de définir le message d’accueil, l’apparence générale de la borne et la liste des soignants inscrits sur le système.
Cette partie du projet est développée en ASP.NET Core Blazor. Cela permet de produire un site web qui ressemble à une application. L’interface est fluide, sans rechargement de page (postback). Les données sont stockées dans une base de données SQL Server. Le tout se trouve sur un serveur Ubuntu, hébergé dans le cloud.
A ce portail s’ajoutent quelques pages constituant un site vitrine pour sa présentation commerciale.
Pour chaque soignant, une application mobile
Afin que le soignant reçoive une notification lors de l’arrivée d’un patient, il doit disposer d’une application sur son smartphone. Elle est développée en MAUI, pour les environnements Android et iOS. Cette application est disponible librement sur Google Play et sur l’App Store.
Elle va aussi lui permettre d’indiquer à la borne son statut « présent » ou « absent ». L’application génère un code QR. Lors de son arrivée au centre, le soignant présente ce code QR au scanner intégré à la borne. Son statut est alors automatiquement modifié. Il fait la même opération lorsqu’il quitte les lieux. Elle permet aussi de transmettre à la borne de courts messages écrits ou vocaux.
Et pour que l’ensemble communique : un serveur API REST
Tant la borne interactive que l’application des soignants doivent communiquer avec une couche serveur donnant accès aux données. Le système disposant déjà d’une application web, ASP.NET Core permet d’intégrer les fonctionnalités API REST directement dans l’application web. Quelques contrôleurs MVC permettent donc d’échanger les informations nécessaires avec la borne interactive et l’application mobile, ainsi qu’envoyer les notifications vers les smartphones. Cela permet de sécuriser les clés privées utilisées, par exemple, pour l’envoi des notifications et de ne jamais exposer directement l’accès à la base de données. Un service fondé sur SignalR permet d’envoyer des instructions en temps réel à la borne : diffusion d’un message vocal depuis l’application mobile, demande de rafraîchissement, …
Ce projet part d’un besoin métier très simple et pourtant, pour y répondre de manière complète, il aura fallu faire appel à une grande partie des technologies qui composent aujourd’hui ma stack de développement.
C’est ce qui rend ce projet particulièrement intéressant à mes yeux. Sortir du monde de l’ERP tout en retrouvant les mêmes fondamentaux : comprendre un besoin concret, imaginer une solution simple pour l’utilisateur et faire communiquer des technologies différentes mais cohérentes pour que, de son point de vue, tout fonctionne naturellement.
