The client offers an AI-based electroencephalogram (EEG) analytics platform designed to accelerate new treatments and improve human health through advanced brain analysis. The core of this solution is a Bluetooth Low-Energy (BLE) device that measures electric waves and converts them into data. In order to capture, process, and upload the data to a server, a mobile application was necessary. With that in mind, the client approached Elinext to develop a cross-platform mobile application that would pair with the BLE device, receive EEG brain data, and display it on a mobile screen.
After an initial interview with a client, Elinext spent two weeks working on a prototype of a mobile app. The client was eager to test whether the app could work when paired with their BLE device. Following a successful showcase of the prototype, Elinext progressed to the development phase, utilizing app screens designed by the client. In total, it took the team 6 months to develop a functional prototype. Currently, the app is undergoing the 510(k) process, meaning that the app must obtain FDA approval for market release.
The solution is a mobile application that provides real-time EEG monitoring data viewed via a graphical user interface (GUI). The current version of the mobile application includes features that enable users to scan and connect to BLE devices, receive an alert when the device loses connection, and display the battery level of the EEG device.
The mobile app provides detailed instructions on how to set up the device as well as its EEG kit.
Using the app, users can start or stop the recording session, view EEG data in real-time, change the settings of view, and store data on the cloud server.
Calendar and mood tracker features
- The calendar feature helps users keep track of their EEG sessions
- The mood tracker monitors the quality of sleep and tracks feelings. This feature can also be utilized during monitoring sessions to track events like seizures, for example.
These features are not currently included in the 510(k) app version; however, they could potentially be incorporated into future app iterations.
Fast and smooth app performance
The app displays data as a curved graph that changes in real time based on the information gathered from a device. Afterward, we used the SKIA engine tool to draw and display the curved line on the graph.
We utilize requestAnimationFrame to ensure that updates to the user interface are synchronized with the device's display refresh rate, typically occurring at around 60 frames per second (FPS). Doing so also ensures the app’s functionality even on low-end devices.
The user can interact with the graph by changing range (1 sec, 2 sec, 5 sec, 10 sec), and changing microvolts value. The graph displays axis labels and gridlines, providing a clear visual representation of the data.
Users can switch from portrait to landscape mode when using the application and the graphics will adapt accordingly.
Elinext has created a 50-page system design document that includes detailed descriptions on components, their characteristics, events, and error handling. Additionally, we've crafted a SOAP analysis, the verification protocol documents necessary for QA engineers.
Multi-part upload of data feature
We’ve implemented a feature that divides files into 1 MB sections and uploads them to a server. This solution was crucial, given that monitoring sessions can extend for up to 14 hours, resulting in output data as large as 800 MB. Handling such heavy data loads is complex. With this new feature enabled, the process of data upload is streamlined. In case there is an error during uploading, users can refresh the process from where it stopped.
In order to handle authentication within the app, we've integrated Keycloak. It enables us to manage user identities, allowing individuals to securely log in using their credentials.
We implemented an auto versioning feature through scripts that help to bump a version of the app. By implementing the automated builds process, we ensure that the code is consistently built and tested, which is essential for the CI/CD pipeline.
To enhance the CI/CD process, we also implemented the following capabilities:
- Linter feature — it ensures that new developers joining the project adhere to established coding standards and rules.
- Pre-commit hook — it prevents developers from committing code that didn’t pass the checking process.
- Auto changelog — it generates changelogs automatically and includes such info as the latest version of the application, bug fixes, and other relevant updates.
The outcome of the project is a cross-platform mobile application that provides real-time EEG monitoring data.
Currently, the app is undergoing the 510(k) review process. Once accepted into the market, the app will be utilized by medical centers in conjunction with the rest of the EEG kit developed by the client.