R-Style Lab developed an iOS data visualization app for an American digital health company. The application works in sync with a custom heart monitor, which enhances diagnosis and therapy of heart disease.
The custom heart monitor was enhanced with EKG sensors, which measured the electrical signals of a human body, providing a detailed picture of a patient’s condition. The client wanted to create an app to easily get access to incoming sensor data.
R-Style Lab created a front-end part of the solution and paired the app with the heart monitor via Bluetooth. The main challenge was to find a way to process sensor readings and visualize the data as medical heartbeat graphs at the speed of 300 dots per second.
The most obvious implementation option for this task from the get-go was the Core Plot library. However, the amount of incoming data was that large that it would have resulted in the lag in data processing and rendering, and the app wouldn’t have been able to comply with the 2-second speed requirements. Since fast real-time data visualization was critical for the healthcare device, R-Style team came with the idea of using OpenGL instead.
In order to enable real-time data visualization, our team had to segment Objective-C data into separate data units (raw C), transfer some of the workload to GPU and render C-data using OpenGL line primitives. Another requirement was to render some graphs with dotted lines, so we implemented OpenGL Fragment Shaders, which took each fragment (a rasterized pixel) as input and produced a single fragment as output. Thanks to OpenGL, the app was able to produce high-quality (300-500 dpi per second) solid and dotted line graphs with a delay of only 1/60 second.
This medical application can be used by both cardiologists and patients with heart disease. It has been approved by the US Food and Drug Administration.
Find out more details of this project here!
Just Share Your Project Idea
(We'll Keep It Safe!)
& Get Your Bonuses for Free!
Thank you! Your request has been sent.
Our sales team will contact you as soon as possible!
Update the page and submit the form again