A patient using a tablet to video-call a doctor with a vitals reading on a phone

RPM Software with Android Sensors to Increase Care Quality

Industry
Healthcare, Software products
Technologies
Android, iOS, MySQL, PHP, C/C++, Java, Node.js

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 (RPM) solution for clinics in North America. The solution had to help improve medical-staff performance, reduce routine visits, and increase the quality of care. To achieve this, the Client needed a team of professionals skilled in R&D and healthcare IT.

Solution

The Client commissioned INNERLUXES, an experienced healthcare app developer, to deliver the project in several stages.

Investigation

The dedicated team researched the best way to aggregate data from multiple sensors, enable its further processing, and automate the measurement of body temperature, blood pressure, weight, glucose, blood oxygen level, and more.

Technology choice

The developers reviewed and analyzed the available approaches and frameworks and selected WebRTC as the best technology for platform-independent voice and video communication. Several Android-powered hardware devices were chosen to implement the central communication module, or Sensor Network Appliances (SNAs).

Development

The development effort was split into two major parts: apps for Android and iOS devices, and the web dashboard.

1. Apps for Android and iOS

INNERLUXES delivered apps for both patients and medical staff. Gradle flavors were used to build app variations fully compatible with different screen sizes — wide screen (for doctors), tablet (for nurses), and smartphone (for healthcare service consumers). Patients could seamlessly access numerous sensors to monitor data and synchronize it with the server, while medical staff could diagnose and treat patients remotely and receive automated alerts and notifications — for example, when a patient's state suddenly changes.

Solution components included:

  • Central app. Based on Android-powered SNAs, it collects and analyzes medical data from various Bluetooth sensors and sends the data to a server that runs in the background on a patient's stationary device.
  • Communication app. It displays the list of patients and loads of medical data, including history graphs and updated measurements from Bluetooth sensors, and lets medical staff make video/voice calls. It is compatible with standard phones and tablets.
  • Home app. Installed on a stationary device, it enables patients to request healthcare services. It can alternatively be used on a TV or personal mobile devices.
  • Extended care team app. Relatives can access the patient's data and video/voice call services. It has limited capabilities compared with the app intended for medical staff.
  • Heartbeat module. It sends notifications and updates users on new recommendations pushed directly from the server or from a doctor's device through the server, dispatches new recommendations to the appropriate modules, and provides the server with the list of components installed on users' devices.

2. Web dashboard

The dashboard helps medical professionals monitor the overall status of patients and drill down into personal medical data. It sends alerts on poor health indicators and maintains the doctor-patient connection. The central communication module was built on a TV-connected Android-powered device.

Solution components included:

  • UI administration tool. Streamlines healthcare delivery with functionality such as: check-in and check-out of patients undergoing treatment; registration of SNAs and the sensors used to gather statistics on patients' activities and health; and registration of staff.
  • REST server to collect patients' medical data. The sensors collect medical data (e.g., blood pressure, movement) and send it to the measurement server, which stores the data and exposes an API to fetch it.
  • Chat server. The web interface enables easy doctor-patient communication. At home, a patient has a TV equipped with a connected SNA; a doctor calls via a web browser, and the patient sees the incoming call on the TV and can accept it.
  • Report server. A patient's medical data can be processed and presented graphically. The report server requests measurements from the API server, processes the data, and draws charts; any changes in the patient's condition are marked so the doctor can monitor treatment efficiency.
  • Survey builder server. Helps medical professionals keep patients informed about treatment efficiency and other changes by sending medical surveys generated automatically or manually.

Stabilization and deployment

The team carried out extensive work optimizing key components — developing several solutions to stabilize a high-load system, building the chat server, and providing an algorithm for remote distribution.

Results

The solution was successfully built from scratch and delivered to a number of US clinics.

The team optimized the measurement API server and decreased the system's load through request aggregation, data grouping, NGINX server tuning, query optimization, and MySQL improvements.

The remote-deployment solution for SNA devices enabled the distribution of install, delete, and update commands according to 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.