Overview

Smart Triage Tag is an intelligent system designed to bring order to the chaos of mass casualty incidents.

It monitors victims’ heart rate, oxygen saturation, and ECG in real time, instantly detecting life-threatening conditions and alerting emergency responders—before it’s too late.

The system automates and accelerates triage at the scene of the incident, continuously transmitting vital data to the command team, minimizing the risk of human error and increasing the chances of survival.

The goal is simple: to shorten decision-making time, reduce errors, and increase the chances of survival where every second and every set of eyes can mean the difference between life and death.

Submitted for the Dyson Engineering Design Award 2025, the project is seeking technological support and an implementation grant to become a practical tool in the emergency response systems of the future.

Animacja działania systemu

Problem – Why It Matters

I’ve been working as a paramedic for over 14 years. During that time, I’ve responded to hundreds of emergencies, but the most challenging situations are those involving multiple casualties and limited resources. In mass or multiple casualty incidents, valuable time often passes before reinforcements arrive—sometimes a few minutes, sometimes much longer.
There were times when just two of us had to care for four, five, or even six patients, supported only by volunteer firefighters or bystanders. These are people full of enthusiasm, but without medical training. Meanwhile, a standard ambulance is equipped with just one cardiac monitor, one ventilator, one spinal board, and four hands—barely enough to fight for the lives of several people at once.
In such cases, simplified triage systems like START or SALT are commonly used. They help quickly assess the condition of victims and label them with colors: green, yellow, red, or black. This supports initial classification—but doesn’t indicate what happens next. A patient classified as “stable” can lose consciousness or stop breathing within minutes. The only way to notice that is through constant observation—something that is nearly impossible in the chaos of an emergency scene.
Continuous monitoring is key to effective life-saving, and its absence often leads to unnoticed deterioration in a patient's condition.
The idea for Smart Triage Tag was born out of this very need. While studying computer science and sharing my field experience, my colleagues and I designed a solution intended to truly assist emergency responders and enhance patient safety. Smart Triage Tag is a fusion of medical knowledge, technology, and real-world practice—not a theory, but a tool for situations where every second and every pair of eyes truly matter.

Mass casualty incidents? Not the exception – the reality.

Every year across the European Union, thousands of incidents occur that result in multiple casualties: road and rail disasters, violent attacks, fires, and infrastructure failures.

Poland is no exception – hundreds of people are hospitalized annually due to emergencies that require rapid medical triage. Yet, emergency systems still rely on paper tags and manual coordination.

Smart Triage Tag was created to change that.

Scale of mass casualty risk (2020–2024)

Poland:

Europe (EU):

Why does this matter?

In recent years, despite a general decline in road fatalities, the number of incidents involving multiple casualties remains high – and in some areas, it's even increasing.

Systemic problems:

Table: Mass casualty events (2020–2024)

Type of Incident Poland (2020–2024) Europe (EU, 2020–2024)
Road accidents 108,093 accidents, 10,725 fatalities ~102,000 fatalities
Railway accidents 731 serious accidents, several hundred injured 7,600 serious incidents, over 3,800 casualties
Terrorist and violent attacks 1 attempt foiled (ABW, 2023) 246 attacks, dozens of fatalities
Coach/bus disasters At least 7 major incidents (10+ injured) Over 50 incidents, incl. 12 Polish citizens killed
Fires / explosions Several large fires (incl. industrial) At least 10 incidents with mass casualties
Infrastructure failures Roof, hall, and bridge collapses Numerous incidents in Germany, France, Romania, Italy

Sources:

  1. National Police Headquarters – Road Accidents 2024 (PDF), EC – EU Road Fatalities
  2. Polish Office of Rail Transport, SEWIK data
  3. Eurostat – Railway Accidents
  4. Europol TE-SAT Reports 2021–2024
  5. Media reports: PAP, RMF, TVN24 (e.g. Bogatynia 2022, Radom 2023)
  6. BBC, PAP – Polish coach crash in Croatia, 2022
  7. Chemical plant fire – Kędzierzyn-Koźle, 2021
  8. Hospital fires: Romania, France, Germany (2020–2022)
  9. Sports hall roof collapse – Katowice, 2023
  10. Genoa bridge disaster, 2018

Why Smart Triage Tag?

In 2024 alone, Poland recorded 21,519 road accidents, with 1,896 fatalities and 24,782 injured.

Across Europe, over 19,800 people lost their lives on the roads. Given the scale of these events, effective and rapid triage is critical.

Yet emergency services still rely on outdated tools and processes. Smart Triage Tag was created in direct response to these challenges – to equip first responders with a solution that genuinely supports them in the most difficult moments.

Solution

Smart Triage Tag is a compact and lightweight device designed specifically for mass casualty incidents and situations involving multiple victims. It functions like a miniature emergency department—automatically monitoring a patient’s condition immediately upon activation. Its greatest strength lies in its simplicity and intuitive operation.

Obudowa urządzenia
Specyfikacja obudowy urządzenia

The primary function of Smart Triage Tag is to monitor vital signs: heart rate and blood oxygen saturation (SpO₂), with an additional feature of precise ECG signal tracking. The device uses a MAX30102 sensor to measure SpO₂ and an AD8232 sensor for three-point ECG monitoring, mounted on the forearm. This combination ensures reliable data even in field conditions and while the patient is moving.

Opis urządzenia

The device does not require internet access—data is transmitted locally via Wi-Fi to a mobile or web application, which automatically detects active devices. You simply power on the tag and attach it to the patient. From that moment, their condition is continuously visible on the tablet or smartphone screen of the person coordinating the response. This allows a single responder to monitor the condition of multiple patients in real time, with the ability to act quickly the moment a threat is detected. Integrated bright LED indicator strips on the device housing are clearly visible from a distance and correspond to triage categories (green, yellow, red, black). The color is assigned automatically based on the vital signs detected.

The device reacts dynamically to:

- excessively fast heart rate (tachycardia),
- excessively slow heart rate (bradycardia),
- drop in oxygen saturation (hypoxia).

Zestaw ratunkowy z tagami
Tag

What sets Smart Triage Tag apart is its remarkable simplicity combined with real-world effectiveness. It requires no complex setup, no external databases, and no costly technical infrastructure. Just power it on, attach it, and monitor. In situations where every second counts, this device starts working instantly. The tag is weather-resistant and can be secured using Velcro, a strap, or medical adhesive. Designed with widely available components, it allows for rapid prototyping and scalable production in the future.

Smart Triage Tag bridges the gap between a traditional paper triage tag and real-time medical supervision. It’s a mobile observation system that operates where conventional methods fall short. This is technology that genuinely supports emergency responders—and can save lives.

Process

In mass casualty situations (multiple victims at once), paramedics perform triage—assessing each patient’s condition (breathing, pulse, consciousness, etc.) and assigning them a color-coded tag (e.g., red – immediate help needed, yellow – urgent but can wait, green – minor injuries, black – deceased). The problem is that a victim’s condition can change rapidly, and current guidelines recommend reassessment every 5–15 minutes. In practice, with limited personnel and many victims, frequent retriage is often impossible—a patient's condition may deteriorate before anyone notices. Smart Triage Tag was created to solve this issue: it’s a small electronic device that, once attached to a victim, continuously monitors their basic vital signs (heart rate – HR, blood oxygen saturation – SpO₂, and optionally others) and alerts responders if the condition worsens. This way, a paramedic doesn’t need to constantly return to each patient—the tag itself watches over them and signals when intervention is needed. Our team set out to build such an intelligent triage tag from the ground up, focusing on measurement reliability, ease of use in challenging conditions, and low production cost.

Stage I: First Prototype (Optical Sensor + Display)

Choosing the Hardware Platform

At the beginning of the project, we decided to build the first prototype using proven and widely available components. We selected the ESP32 DevKit V1 microcontroller as the core element—it offered both high computing power and built-in Wi-Fi connectivity, opening the door for future expansion. To measure heart rate and blood oxygen saturation, we chose the MAX30102 sensor—a compact, energy-efficient component well documented in the literature. It operates on the principle of reflective pulse oximetry, analyzing red and infrared light passing through tissue. Based on this, it calculates SpO₂ and heart rate by detecting changes in blood volume and differences in light absorption by hemoglobin.

Assembly on a Breadboard

We assembled the circuit on a breadboard, which allowed for rapid iteration and testing without the need for soldering. The ESP32 communicated with both the sensor and a 16×2 LCD display via the I²C bus. The LCD served as the user interface, effectively displaying real-time heart rate and oxygen saturation readings. Thanks to readily available libraries (DFRobot_MAX30102, LiquidCrystal_I2C), we were able to focus on the application logic. Immediately after powering on, the device displayed the data in a clear format: “HR: 75 bpm” and “SpO₂: 98%”.

Software and Initial Measurements

Even the first tests conducted in home conditions yielded positive results. The readings were close to those from a medical-grade pulse oximeter—the differences of a few percentage points were considered acceptable. However, we quickly noticed how crucial proper sensor contact was—any looseness resulted in unstable or unrealistic readings (e.g., SpO₂ of 41% when the finger was moving). To address this, we implemented error messaging—if the sensor failed to detect a pulse or saturation, the device would display a warning after a few seconds: “No signal. Check sensor placement.” This ensured that a responder would not be misled by faulty data, but instead would receive a clear message indicating the need to reposition the tag correctly.

Testing and Refinement

We spent the following days testing the device in various conditions—each team member took turns acting as the “test patient.” We placed the sensor on a finger and observed the effects of movement, lighting, and contact pressure. It became clear that even minor variations could significantly impact signal quality. This helped us better understand the limitations of PPG sensors, and we adjusted the code to respond dynamically to errors. We reduced the LCD refresh rate to 1 Hz, added calibration messages such as “Applying tag…”, and began considering further UX improvements.

Housing Design and 3D Printing

Work on the housing was carried out in parallel. Using FreeCAD, a two-part structure was designed—the lower section housed the electronics and battery, while the upper part snapped into place. It was printed on a 3D printer using light blue PLA. An opening was added at the bottom, precisely dimensioned for the sensor to ensure direct contact with the skin. A simple snap-fit mechanism enabled quick access to the interior. The entire assembly was lightweight and compact enough to be attached to the body with a strap. Even the first print successfully secured the sensor in the correct position.

Initial Results and Conclusions

At this stage, we also began considering ergonomics in high-stress situations—how to attach the tag quickly and securely, without causing discomfort to the patient. We explored both adhesive surfaces (like medical plasters) and mounting options using straps or bands. Meanwhile, the mechanical team worked on the next version of the housing—more streamlined, with space for an RGB LED to indicate triage status using color.

In summary, the first prototype was completed within a few weeks, operated reliably, and measured basic vital signs with satisfactory accuracy. We tested it across various scenarios, implemented error handling, developed the initial housing, and optimized the user interface. The total cost of components did not exceed 100 PLN, and the final result proved that the concept is both feasible and effective. At this stage, we focused on building a solid technical foundation—and we achieved exactly that.

Stage II: Concept Shift – Centralized Application and ECG Module

Rethinking the Local Display

The first prototype confirmed that the measurements worked, but it also revealed some limitations. The most significant was the local LCD display. While it served its purpose, we began to ask ourselves: in a real emergency, does a responder have time to walk up to each patient and read a tiny screen? The answer was obvious—no. We concluded that instead of a built-in display, a centralized application—mobile or web-based—would be a much better solution. It could aggregate data from multiple devices in one place, allowing the medical team to monitor all patients simultaneously and respond more effectively.

Visual Signal Instead of a Screen

Thanks to the built-in Wi-Fi on the ESP32, we were able to wirelessly transmit data to a command computer or even a smartphone. This allowed us to simplify and reduce the size of the tag itself—we removed the display and all related components. Instead, we kept only a multi-color RGB LED, which clearly indicates the patient's triage status from a distance (green, yellow, red, black). In case of sudden deterioration (e.g., drop in SpO₂ or loss of pulse), the tag blinks red—alerting responders even from several meters away. Thus, the device still works locally, but the main user interface is shifted to the central application.

Stable Readings via ECG

At the same time, we added an AD8232 ECG module to make the heart rate measurement more resistant to external factors. While PPG sensors are sensitive to movement and perfusion, ECG—based on electrodes—provides a stable signal even in unfavorable conditions. We used three electrodes in an Einthoven configuration (RA, LA, RL), connected to the ESP32’s analog input. The microcontroller samples the signal at around 100 Hz and transmits the data via a serial port to a computer.

ECG Analysis and Signal Filtering

On the computer side, we developed a Python script (using matplotlib, numpy, scipy) that visualizes the ECG waveform in real time and detects characteristic QRS peaks—based on which we calculated the heart rate. We applied a Butterworth filter to eliminate noise. After filtering, we obtained a clear and stable waveform that allowed not only heart rate detection but also full cardiac cycle visualization—P, QRS, and T waves. Importantly, the ECG results matched the optical sensor data, confirming the accuracy of our system.

New Housing with ECG Connector

The addition of ECG required changes to the enclosure—we removed the display slot and added a connector for the electrode cable (e.g., 3.5 mm jack) and a dedicated side port. We retained the compact and durable design, keeping the enclosure two-piece, either snap-fit or screw-mounted. The RGB LED was fitted with a diffuser cap to ensure visibility from wider angles. The entire case was planned for 3D printing in PET-G or ABS—materials resistant to heat, impact, and moisture—so the device could withstand drops and continue functioning.

Preparing JSON Wi-Fi Transmission

In parallel, we began preparing for full wireless communication. While ECG testing still relied on a wired USB/UART connection, the code architecture was adapted to transmit data in JSON format via Wi-Fi. The ESP32 can function as a TCP/UDP client or local WebSocket server. Although we didn’t fully implement the network layer at this stage, we successfully tested stable connections and the core protocol.

Stage II Summary

In this phase, we redefined the concept of the tag—readings are now sent to a central application, and the tag acts as a standalone sensing node with visual triage signaling. Heart rate is measured via both optical and electrical methods, ensuring greater data reliability and resistance to interference.

Stage III: Mobile App and Complete Data Transmission – From Sensor to User Interface

WebSocket on ESP32 – Full Data Transmission

First, we finalized the implementation of the wireless communication channel. Using the ESP32’s built-in Wi-Fi module, we configured a WebSocket microserver that enables bidirectional, low-latency communication with the central application.
The device cyclically sends a JSON-formatted data packet, containing:

- HR (Heart Rate) from the ECG sensor (AD8232 module),

- SpO₂ and optical HR from the MAX30102 sensor,

- Device identifier (ID),

- LED status (triage color),

- Optionally: battery level and error flags.


Thanks to the WebSocket protocol, the data reaches the receiver almost instantly—without the need for polling or delays typical of HTTP. This architecture allows multiple tags to connect simultaneously to a single monitoring application, forming a centralized command platform.

Mobile Application – Central Control Panel

The next key element was the development of an Android application, acting as the main user interface.
Core functionalities of the app include:

- Adding and registering Smart Triage Tag devicesby entering the device’s IP address, ID, and API endpoint (e.g., /ws),

- Real-time data reception and visualization – the screen displays the ECG waveform, heart rate, oxygen saturation, and color-coded status indication,

- Alert configuration, e.g., when HR drops below 40 or SpO₂ falls below 90%,

- Monitoring multiple devices simultaneously – the medical commander can supervise several patients from a single interface.


The app interface was designed with a light color scheme, no dark mode, and a clear, uncluttered layout. Key elements are visibly color-coded, allowing users to quickly recognize device status, even under time pressure. Large buttons and an intuitive structure ensure smooth operation—even with reduced precision, such as when wearing disposable gloves.

Wi-Fi Network Integration – Simplifying Logistics

As part of Stage III, we refined how the tags connect to the Wi-Fi network by introducing a dedicated local router acting as the central access point for the entire system. This router was specifically configured for field operations—it creates a closed, standalone Wi-Fi network to which all Smart Triage Tag devices and the mobile application automatically connect.
With this setup, there’s no need to rely on external networks, manually pair devices, or apply additional configurations—everything works automatically once the system is powered on. After turning on the router and powering the tags, the devices connect to the network, and data begins streaming immediately to the commander’s tablet or smartphone app. A single tap is enough to start monitoring.
Additionally, the system is designed to support future enhancements such as auto-configuration (e.g., via mDNS), OTA updates, or local data storage in case of a lost connection to the app. The current version of the system is already sufficient for conducting realistic field tests and simulations.

Stage III Summary

Stage III concluded with the implementation of key system components that transitioned Smart Triage Tag from a “sensor prototype” to a fully functional IoT solution:

A complete data transmission pipeline was implemented—from analog and digital measurement to visualization on a mobile device.

An Android application was designed and deployed as the management center—supporting tag registration by IP, data reception, alerts, and visualization.

The ESP32 was integrated with Wi-Fi and WebSocket, creating a scalable and fast communication platform for multiple devices.

The project was prepared for future expansion with architecture accommodating upcoming features such as data encryption, access authorization, and a web-based version of the application.

Team

The Smart Triage Tag project was developed by a team of four students, each bringing a unique set of skills—ranging from electronics and programming to data analysis, mechanical design, and documentation. Although we had clearly defined roles, many decisions were made collaboratively, combining experience and ideas. As a result, our work was not only effective, but also well-organized and truly team-driven.

Jacek Bajer

A paramedic with 14 years of experience, currently studying computer science, passionate about artificial intelligence, programming, and operating systems. Enjoys exploring algorithms, optimizing code, and experimenting with new technologies. Fascinated by the potential of AI, always striving to develop intelligent solutions that enhance everyday life.

Role in the project:

Responsible for the initial concept and early-stage design, including assembling the first prototype. Also contributed to the early housing design, backend code, and supported the creation of project documentation. Actively involved in testing and implementing improvements to ensure the project met its goals and quality standards.

Arkadiusz Kurasz

A computer science student specializing in full-stack development and mobile application design. Passionate about robotics and electronics, integrating these fields with IT expertise. Works as a wide-area network (WAN) maintenance specialist, combining theoretical knowledge with practical technological experience.

Role in the project:

Responsible for implementing WebSocket communication, developing the mobile app for device registration and monitoring, and designing the local Wi-Fi network architecture. Also assembled and refined the prototype into a fully functional device, integrating and testing the entire system for real-time ECG, heart rate, and SpO₂ monitoring.

Rafał Amrozik

A computer science student with a passion for AI technologies and innovative solutions. An aspiring business analyst, aiming to combine technical knowledge with analytical skills to support organizational growth. In day-to-day work, serves as a sales manager, leveraging experience in team leadership and goal execution.

Role in the project:

Responsible for preparing documentation and analyzing both functional and technical requirements. By critically evaluating project assumptions, ensured their consistency and feasibility within available resources and timelines. Supported feasibility assessments at every stage — from concept and design, through documentation, to demonstrating system functionality.

Klaudia Szwajkowska

A computer science student combining academic learning with hands-on project development. Focused on building functional, accessible, and visually appealing web applications. Currently expanding backend development skills by delving deeper into server-side logic and system architecture

Role in the project:

Contributed to documentation and functional requirements analysis. Responsible for designing and coding the demo website — from UI/UX to implementation — ensuring visual consistency, functionality, and alignment with the project’s goals. Also played an active role in system validation, asking critical questions that helped maintain a high standard of quality.