Sharpening your .NET applications

In detail

Patiello, een innovatieve applicatie voor het onthaal in een medisch centrum

Patiello, een innovatieve applicatie voor het onthaal in een medisch centrum

In het begin is de vraag eenvoudig: hoe weet je in een klein medisch centrum zonder onthaalpersoneel dat een bepaalde patiënt is aangekomen en in de wachtkamer zit? Door meerdere verdiepingen naar beneden te gaan, meerdere keren per dag, om het met eigen ogen vast te stellen!

Het centrale idee: een interactieve kiosk

De kiosk toont een welkomstbericht, de vormgeving is geïnspireerd op de huisstijl van het medisch centrum en vooral: er worden evenveel knoppen weergegeven als er op dat moment zorgverleners in het centrum aanwezig zijn. De patiënt hoeft alleen maar op de juiste knop te drukken en er wordt een notificatie naar de smartphone van de zorgverlener gestuurd.

De applicatie van de interactieve kiosk wordt ontwikkeld als een hybride .NET MAUI-applicatie voor Android. De applicatie wordt « hybride » genoemd omdat het hoofdscherm op dezelfde manier als een website is opgebouwd. Hierdoor kan de vormgeving met CSS worden gepersonaliseerd en door de koper van het systeem worden geconfigureerd.

Een configuratieportaal voor de kiosk

De kiosk bevindt zich in een openbare ruimte. Dat is niet de geschikte plaats om de instellingen ervan te wijzigen. Het beheer gebeurt daarom online via een speciaal daarvoor ontwikkeld portaal. Daar kunnen het welkomstbericht, de algemene vormgeving van de kiosk en de lijst van zorgverleners die in het systeem zijn geregistreerd, worden ingesteld.

Dit deel van het project is ontwikkeld met ASP.NET Core Blazor. Hiermee kan een website worden gebouwd die aanvoelt als een applicatie. De interface werkt vloeiend, zonder dat pagina’s opnieuw moeten worden geladen (postback). De gegevens worden opgeslagen in een SQL Server-database. Het geheel draait op een Ubuntu-server die in de cloud wordt gehost.

Dit portaal wordt aangevuld met enkele pagina’s die samen een presentatiewebsite vormen voor de commerciële voorstelling van het systeem.

Voor elke zorgverlener een mobiele applicatie

Om een notificatie te ontvangen wanneer een patiënt aankomt, heeft de zorgverlener een applicatie op zijn smartphone nodig. Deze is ontwikkeld met MAUI voor Android en iOS. De applicatie is vrij beschikbaar via Google Play en de App Store.

Met de applicatie kan de zorgverlener ook zijn status « aanwezig » of « afwezig » aan de kiosk doorgeven. De applicatie genereert een QR-code. Bij aankomst in het centrum toont de zorgverlener deze QR-code aan de scanner die in de kiosk is geïntegreerd. Zijn status wordt vervolgens automatisch aangepast. Bij het verlaten van het centrum voert hij dezelfde handeling uit. Met de applicatie kunnen ook korte geschreven of gesproken berichten naar de kiosk worden gestuurd. 

En om alles met elkaar te laten communiceren: een REST API-server

Zowel de interactieve kiosk als de applicatie van de zorgverleners moeten communiceren met een serverlaag die toegang geeft tot de gegevens. Omdat het systeem al over een webapplicatie beschikt, maakt ASP.NET Core het mogelijk om de REST API-functionaliteiten rechtstreeks in die webapplicatie te integreren. Enkele MVC-controllers zorgen voor de uitwisseling van de nodige informatie met de interactieve kiosk en de mobiele applicatie, en voor het verzenden van notificaties naar de smartphones. Hierdoor kunnen de gebruikte private sleutels, bijvoorbeeld voor het verzenden van notificaties, veilig worden bewaard en wordt de database nooit rechtstreeks toegankelijk gemaakt. Een op SignalR gebaseerde service maakt het mogelijk om in realtime instructies naar de kiosk te sturen: een gesproken bericht vanuit de mobiele applicatie afspelen, een refresh aanvragen, …

Dit project vertrekt vanuit een heel eenvoudige bedrijfsbehoefte en toch was een groot deel van de technologieën die vandaag mijn development stack vormen nodig om er een volledige oplossing voor te bouwen.

Dat maakt dit project voor mij bijzonder interessant. Even buiten de ERP-wereld stappen en toch dezelfde fundamenten terugvinden: een concrete behoefte begrijpen, een eenvoudige oplossing voor de gebruiker bedenken en verschillende, maar coherente technologieën met elkaar laten communiceren zodat alles vanuit zijn standpunt vanzelfsprekend werkt.

Vorige Volgende
Alle producten, technologieën en bedrijfsnamen die op deze website worden vermeld, zijn handelsmerken of gedeponeerde handelsmerken van hun respectieve eigenaars. De vermelde Microsoft-producten (SQL Server, Windows, MAUI, Xamarin, .NET, Blazor, ...) zijn handelsmerken van Microsoft Corporation. Ubuntu is een gedeponeerd handelsmerk van Canonical Ltd.
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.