Development of Remote Patient Monitoring Software
The Customer is a US-based provider of healthcare solutions with development centers in Israel and Belarus.
The Customer wanted to deliver a sophisticated remote patient monitoring solution for clinics of North America. The solution should help to improve medical staff performance, avoid routine visits, and increase the quality of care.
For that reason, the Customer needed a team of savvy professionals in R&D and healthcare IT.
The Customer commissioned ScienceSoft, an experienced healthcare app developer, to deliver the project. ScienceSoft performed the project in several stages.
The dedicated team conducted a research on the best unique way to enable data aggregation from multiple data-generating sensors and its further processing, as well as to automate the processes of measuring body temperature, blood pressure, weight, glucose, the oxygen level in blood, etc.
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 central communication module or Sensor Network Appliances (SNAs).
The development process was split into 2 major parts: the development of apps for Android and iOS devices and 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 services 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 patient remotely and receive automated alerts and notifications, when, for example patient 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 updating 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 patient’s data and video/voice call services. It has limited capabilities as compared to the one intended for medical stuff.
- “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 user’s devices.
2. Web Dashboard
This dashboard assisted medical professionals in monitoring the overall status of patients drilling down on personal medical data. It sent 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. Provided 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 patient’s activities and health conditions.
- Registration of staff.
- REST server to collect patient’s medical data. The sensors collected medical data (e.g. blood pressure, movements, etc.) and send it to the measurements server. This server stores gathered data and allows using 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 this incoming call displayed on the TV and can accept the call.
- Report server. Patient’s medical data can be processed and presented graphically. The Report server sends a request for patient’s measurements to the API server and then processes the data and draws up a chart to report back some visualized results. Any changes in patient’s health condition are fixed in the chart for a doctor to monitor the efficiency of 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 or manually.
Stabilization and deployment
The experts carried out extensive work optimizing for some project components: developed several solutions to stabilize a high-load system, created a chat server and provided an algorithm for remote distribution.
The solution was successfully crafted from scratch and delivered to a number of the US clinics.
The development team optimized the measurement API server and decreased the load on the system by introducing the following features: aggregation of requests, grouping of data, NGINX server settings, optimization of queries and MySQL.
The solution for remote software deployment to SNA devices enabled the distribution order of install, delete and update commands as per specifics of Android OS by building a queue of commands and sending them to the devices.
Technologies and Tools