This is the user interface for our CPR Coach tool, it displays active feedback about performance in BPM and LBs of force exerted.
This shows our information page in our CPR Coach tool, it can be found by hovering the mouse over the question mark icon in the top right.
This shows a proper CPR compression form, where CPR is performed on the Activ5 sensor.
This is an alternate angle of the same form.
Every year, about 600,000 cases of cardiac arrest happen in the U.S., of which 395,000 cases occur outside of a hospital setting. Research has indicated that the amount of time between cardiac arrest and CPR commencing is directly correlated to survival rates. The problem: less than 3% of the U.S. population receives CPR training every year. We built this app with the purpose of helping people learn and practice effective CPR techniques.
What it does
CPR Coach is a training tool that teaches people how to perform CPR. It does this by providing feedback on the beats per minute of CPR compressions and on the force of individual CPR compressions. The user gets active feedback while performing the compressions, and can change their frequency and force of their individual compressions. At the end of a training session, the user can view the statistics about their average frequency of compressions and their average force exerted per compression in pounds.
How we built it
Challenges we ran into
Getting access to the Activ5's raw data was particularly hard, as none of our team members had experience in handling TypeScript and AngularJS code. We got around this by finding where the data was being handled, and then funneling the data into our own scripts through Socket.IO web-sockets.
Another challenge we ran into was designing the core algorithms that detect when the user compresses the Activ5. Since we only have the force of compression, we had to analyze the patterns between individual readings to determine when the user compressed the Activ5.
Another big challenge was coding the user interface. We spent a lot of time trying to connect the Socket.IO websockets of the back-end to our localhost front-end user interface. We also spent a lot of time creating the beating heart on the user interface, which provides visual feedback whenever the user compresses the Activ5.
Accomplishments that we're proud of
Our app provides very accurate analytics when a user performs CPR. It is an excellent training tool to help people learn CPR, and it helps people fine tune their frequency and strength of individual compressions. Our user interface is also something that we're proud of, as it provides a simplistic and yet effective way of learning CPR. We did not want to over-complicate the amount of data provided to the user, and we wanted to encourage the user to fine-tune their frequency and strength of their compressions. Our user interface does this effectively, and helps the user learn CPR through multiple visual stimuli.
What we learned
We learned a lot about algorithm time complexity, AngularJS, HTML and CSS development, and overall integration. This app taught us a lot about distributing individual tasks to teams as well, and we learned how to manage our time very effectively through this project. Learning to be patient with one another, and to work as a collective unit was another huge experience for us.
What's next for CPR Coach
We would love to integrate our code more with the current SDK. Although we can effectively get data from the Activ5, we do not have a very direct approach of interacting the SDK since we utilized a web-socket solution. We would like to clean up the overall integration of our project, and provide a more clean experience for the user. As of now, our project is more of a proof-of-concept than it is a fully-fledged product. We have a lot more room to grow, and we're excited to develop this project more.