RPM Software with Android Sensors to Increase Care Quality
About Our Client
The Client is a US-based provider of healthcare solutions with development centers in the Middle East.
Challenge
The Client wanted to deliver a sophisticated remote patient monitoring solution for clinics in North America. The solution should help improve medical staff performance, avoid routine visits, and increase the quality of care.
For that reason, the Client needed a team of savvy professionals in R&D and healthcare IT.
Solution
The Client commissioned ScienceSoft, an experienced healthcare app developer, to deliver the project. ScienceSoft performed the project in several stages.
Investigation
The dedicated team conducted research on the best unique way to aggregate data from multiple sensors, enable its further processing, and automate the processes of measuring body temperature, blood pressure, weight, glucose, the oxygen level in blood, etc.
Technology choice
The developers reviewed and analyzed available approaches and frameworks and picked WebRTC technology as the best one for platform-independent voice and video communication. Several Android-powered hardware devices were selected to implement the central communication module or Sensor Network Appliances (SNAs).
Development
The development process was split into 2 major parts: the development of apps for Android and iOS devices and the Web dashboard implementation.
1. Apps for Android and iOS
ScienceSoft’s team delivered apps for both patients and medical staff. Gradle flavors were used to build the apps’ variations fully compatible with different screen sizes: wide screen (for doctors), tablet (for nurses), and smartphone (for healthcare service consumers). Patients could smoothly access numerous sensors in order to monitor data and synchronize it with the server. Medical staff members could diagnose and treat patients remotely and receive automated alerts and notifications when, for example, the patient's state suddenly changes.
Solution components included:
- Central app. Based on Android-powered SNAs, the app collects and analyzes medical data from various Bluetooth sensors and sends the data to the server that runs in the background on a patient’s stationary device.
- Communication app. This app is used to display the list of patients and loads of medical data, including history graphs and updated measurements from Bluetooth sensors. It also allows medical staff members to make video/voice calls. The app is compatible with standard phones and tablets.
- Home app. Installed on a stationary device, the app enables patients to request healthcare services. Alternatively, it can be used on TV or personal mobile devices.
- Extended care team app. By using this app, relatives can access the patient’s data and video/voice call services. It has limited capabilities compared to the one intended for medical staff.
- Heartbeat module. This module sends notifications and updates users on new recommendations pushed directly from the server or from a doctor’s device through the server. It dispatches new recommendations to appropriate modules and provides the server with the list of project components installed on the users’ devices.

2. Web Dashboard
This dashboard assists medical professionals in monitoring the overall status of patients, drilling down on personal medical data. It sends alerts on poor health indicators and maintains the doctor-patient connection. The central communication module was built upon a TV-connected Android-powered device.
Solution components included:
- UI administration tool. Provides useful functionalities to streamline healthcare delivery, such as:
- Check-in and check-out of patients undergoing treatment.
- Registration of SNAs (Sensor Network Appliances) and sensors used to gather statistical data on patients’ activities and health conditions.
- Registration of staff.
- REST server to collect patients’ medical data. The sensors collect medical data (e.g., blood pressure, movements, etc.) and send it to the measurement server. This server stores gathered data and allows using the API to fetch it.
- Chat server. The web interface enables easy doctor-patient communication. At home, a patient owns a TV equipped with connected SNA. To contact a patient, a doctor makes a call by using a web browser. The patient has the incoming call displayed on the TV and can accept it.
- Report server. Patient’s medical data can be processed and presented graphically. The Report server sends a request for patients’ measurements to the API server and then processes the data, drawing up a chart to report back some visualized results. Any changes in the patient’s health condition are marked in the chart for the doctor to monitor the efficiency of the patient’s treatment.
- Survey builder server. The server assists medical professionals in keeping patients informed about the efficiency of treatment and other changes. It sends out medical surveys that can be generated both automatically and manually.
Stabilization and deployment
The experts carried out extensive work optimizing certain project components: developed several solutions to stabilize a high-load system, created a chat server, and provided an algorithm for remote distribution.
Results
The solution was successfully crafted from scratch and delivered to a number of US clinics.
The development team optimized the measurement API server and decreased the system’s load by introducing the following features: request aggregation, data grouping, NGINX server settings, query optimization, and MySQL.
The solution for remote software deployment to SNA devices enabled the distribution of install, delete, and update commands as per the specifics of the Android OS by building a queue of commands and sending them to the devices.
Technologies and Tools
PHP (Symfony), C++, Java, Swift, Apache HTTP Server, MySQL, iOS SDK, Android SDK, NGINX, REST Web Services, JavaScript, Backbone.js, Express.js. Chart.js, Node.js.
