Efficient solution for faster first aid

System designed to quickly summon trained volunteers to patients with sudden cardiac arrest before the arrival of the emergency medical service.

First responder system preview

How the system works?

The system can be used for incidents where trained volunteer First responders can be at the patient before the emergency medical services. It targets patients whose diagnosis is associated with sudden circulatory arrest. For these patients, automated external defibrillators (AEDs) are used, which are recorded in the system. The system provides an API through which volunteers are notified of incidents (via a future mobile app). The system can be used as a supplement to rescue systems.

The web part of this system was implemented as a bachelor's thesis
at the Faculty of Management and Informatics at the University of Žilina, Slovakia.

Bachelor's thesis

System features

User management

The system allows to manage users who can have 3 different roles: Unassigned, Responder and Employee. A user with the Employee role can assign other users to groups, which we can use to send mass notifications or assign responders to training sessions. A system user can change their forgotten password if needed.

Evidence of AED devices

We record automated external defibrillators (AEDs) as two different types of devices. Public AED devices are placed in public places and are accessible to anyone in an emergency. We store photographs and location information for the devices. Personal AED devices are owned by responders and are only accessible to them.

Incident management

An incident can be created by selecting a location directly on the map or by entering a GPS location. Once created, it is possible to start searching and notifying responders. Once the incident is accepted by the responder, the responder is displayed on the map and it is possible to communicate with other incident participants. Incident information can be continuously updated.

User management

A user with the Employee role has access to the administrative functions of the system. Within user administration, he can filter system users according to various criteria.

He can add new users to the system, modify their data or change their role. In the user's information, he can also see the user's previous incidents, what groups he is enrolled in and what training he has received in the past.

If necessary, the employee can send an email to the user to change the password.

Responder groups

Responder groups are created by employees and are used for easier sending of bulk notifications and for assigning responders to training sessions.

Each responder can be assigned to more than one group. Within a group, an employee can see all included responders and possibly add new or remove existing responders.

An example of a group might be the village volunteer Fire Department or the city Police Department.

Responder trainings

Responders can attend training sessions designed to improve their first aid knowledge.

Training sessions are created by employees and include information about date, time, location, type of training, and other information. Training participants can be added manually or added using a group. Participants can be sent a mass email invitation to the training.

Types of training can be added, edited or deleted in the system.

Notifications

Notifications are implemented as push notifications that are sent using Firebase Cloud Messaging to the future mobile app for responders.

Notifications can be sent to an individual user or to multiple responders using groups.

Evidence of AED devices

We record Automated External Defibrillators (AEDs) as two different types of devices - Public and Personal. AEDs can be displayed as a filterable list or Public AEDs on a map.

AEDs are colour coded according to their current status, for example whether it is currently ready for use or needs servicing.

It is also possible to record events such as expiration of batteries, electrodes or baby electrodes for the devices. These events can be displayed in the form of a calendar.

Technical parameters of the AED

For AED devices, technical parameters such as the manufacturer, model and language of the device can also be recorded. AED device models are added under the individual manufacturers registered in the system.

All these options can be added, modified or deleted in the system.

Incident management

An incident can be created by selecting a location directly on the map or by entering a GPS location along with other information about the incident. Once an incident is created, it is possible to start searching and notifying responders.

If a responder signs up for an incident, it will be displayed in the list of responders and also on the map, where the employee can also see the responder's type of transport (car, bike, by walking). The responder's location is continuously updated.

Messages can be exchanged between the employee and the responders and after the incident is completed, the responders can create an incident report.

Technology Stack

ASP.NET 8

ASP.NET 8

The system is built on the ASP.NET 8 platform, using the classic MVC approach to create a web application. For the mobile application we provide an API.

MediatR

MediatR

MediatR is a library for implementing the Mediator design pattern. The system is built using Mediator patterning on Clean Architecture, where the business logic is divided into use-case classes.

Entity Framework Core

Entity Framework Core

Entity Framework Core is an ORM framework for communicating with a database. Individual database tables are mapped to C# objects, which simplifies data manipulation.

Microsoft SQL Server

Microsoft SQL Server

Microsoft SQL Server was used as the database system. The modelled relationships between entities in C# code are mapped to tables in the relational database.

SignalR

SignalR

SignalR is used for real-time communication between the server and the web browser. It has been used for real-time update of information about the incident (map of responders, sending messages, ...).

Firebase Cloud Messaging

Firebase Cloud Messaging

We use FCM to send push notifications to mobile devices. In addition to visual notifications, it is also possible to send data and run code in the background of the device as a background service (obtaining location).

Vue.js

Vue.js

The frontend framework Vue.js was used to encapsulate the logic into components at places on the page where a higher level of reactivity is needed. The web application is not a SPA but a classic MPA (Multi-Page Application).

Bulma

Bulma

The Bulma CSS framework provides a modern user interface for our web application, providing a large number of components and styles.

System architecture

Dominik Ježík Bachelor thesis

Dominik Ježík

Web developer

My name is Dominik Ježík and I am a student at the Faculty of Management and Informatics at the University of Žilina, Slovakia, where I successfully defended my bachelor's thesis on the Web part of the First responder system.

During the development of this system, I improved my skills in ASP.NET, EF Core, Vue.js and learned how to work with other modern technologies. This bachelor's thesis gave me a lot of experience and also motivated me to continue learning and improving in the field of software development.