This repository contains the ENGAGE-HF iOS application. ENGAGE-HF builds on top of the Stanford Spezi Template Application using the Spezi ecosystem, and is primarily written using the Swift programming language in conjunction with SwiftUI. The application is developed as part of the DOT-HF study. It records measurements taken on Bluetooth Low Energy peripherals (a weight scale and a blood pressure cuff), saves them to Firestore, and generates medication recommendations based on recent vitals trends and KCCQ-12 survey responses. ENGAGE-HF also allows patients to interact with and manage their measurement history via a Heart Health page built with Swift Charts.
Note
Do you want to learn more about how to use, extend, and modify this application? Check out the Stanford Spezi Template Application documentation to get started.
There are 6 main features of the app: a Home page with a dashboard that displays in-app messages and recent health vitals; a Heart Health page that allows the user to interact with and manage their health data; a Medications page that displays medication recommendations generated by the back-end algorithm; an Education page that features educational videos about the application, the study, and common heart failure medications; a sheet that displays a KCCQ-12 symptom survey; and a sophisticated Bluetooth implementation that allows the user to seamlessly pair bluetooth devices and record measurements without leaving the application.
Home Page | Heart Health | Medications |
Education | Symptom Survey | Bluetooth |
The home page demonstrates that the application is server-driven, as the application displays messages that are generated on the backend. For ENGAGE-HF, this is a Firebase based backend (for more information, see ENGAGE-HF-Firebase). To help integrate the backend with our application, we use the standard Firebase Firestore SDK as defined in the API documentation as well as SpeziFirebase. Similarly, we manage user account information via SpeziAccount.
The Symptom Survey demonstrates how we can collect survery results from the user from pre-defined surveys. ENGAGE-HF presents the survey using SpeziQuestionnaire. The survey is stored in Firestore as an HL-7 FHIR Questionnaire Resource.
ENGAGE-HF includes sophisticated bluetooth connectivity. Once paired, the app passively collects measurements from BLE peripherals. This is handled via SpeziBluetooth, a powerful library that builds on top of Core Bluetooth.
Contributions to this project are welcome. Please make sure to read the contribution guidelines and the contributor covenant code of conduct first.
You can find a list of contributors in the Contributors file.
This project is licensed under the MIT License. See Licenses for more information.