IoMT: Medical Device Software Development - Indeema’s Case Study

Short Overview
Monitoring Life is a startup based in Spain that focuses on medical devices. The Sensocor project aims to provide a comprehensive solution for analyzing heart signals and offering essential insights into patients' health. It includes an IoMT device, cloud for data storage, a web portal for doctors, and mobile apps for patients. This medical device, equipped with a heart monitor sensor, allows doctors to conveniently track their patients' output statistics remotely.
Project Details
- Industry: Healthcare, Consumer IoT
- Team: 9 team members
- Lifetime: August 1, 2023 - Ongoing
- Services: R&D Services, MVP Development, UI/UX Design, Mobile App Development, Android App Development, iOS App Development, IoT App Development, IoT Development, IoT Consulting Services, Cross-Platform App Development, Web Development, Front End Development, Back End Development, Database Development, DevOps Services, Cloud Software Development, Dedicated Team, Tech Advisory
- Client’s Location: Spain
Project Background
The client's project aimed to deliver a monitoring solution for healthcare providers, focusing on patients' vital statistics. The increasing demand for IoT medical devices stems from their capacity to facilitate proactive healthcare management effectively. To achieve this goal, the organization was looking for a medical device design consultancy. They chose Indeema, an established IoT vendor with a track record of delivering innovative healthcare-specific solutions.
What was the customer's request?
- The client initially requested integration of their current Android App, designed to capture signals from the ECG sensor via Bluetooth Serial, with Azure IoT. The objective was to facilitate the real-time transmission of the heart sensor data to the cloud. Specifically, on the cloud side, the requirement was to securely store the data for future analysis and processing.
- Additionally, the client sought consultancy services to develop a machine learning model capable of automatically analyzing time series signals and extracting key features related to ECG, PCG, and PPG signals behavior within predefined time intervals.

What did the client already have?
- Existing project elements included heart monitor sensor hardware with Bluetooth Serial support and an Android App capable of reading data from the serial stream. Additionally, there was a description of Key Performance Indicators (KPIs) to be displayed on the Web Dashboard, along with details on how they should be calculated based on the acquired signals.

Solution We Delivered
Where did we start?
A starting point for the team was establishing an Azure account and conceptualizing the data flow from the sensor to the cloud backend and the doctor's web panel.
Requirements phase
We initiated the process with requirement analysis and processing. The primary challenge revolved around aligning the specifications for hardware/firmware, mobile application, and the web component of the solution to ensure smooth integration. Factors such as sensor sampling rate and BLE throughput were evaluated to design a suitable architecture.
Prototyping and Wireframes
The team's extensive mobile development expertise enabled them to craft an intuitive and minimalist interface, accompanied by clear and concise wireframes for the app. During this phase, screens for sensor discovery, user-friendly displays for signal monitoring, and a well-thought-out OTA firmware upgrade section were conceptualized.
Specification phase
A backend architecture based on Azure was proposed, utilizing a corresponding technology stack. The cloud infrastructure employed Entra for user authentication, Blob Storage for storing data files received from the sensor via the mobile app, and Azure SQL DB for storing Key Performance Indicators (KPIs).

Our Development Process
Firmware/Embedded Development
After reviewing the provided hardware documentation, the team proposed several suggestions to enhance the patient experience with the sensor unit. For instance, modifications to the schematic and PCB design were recommended to facilitate device programming through the USB port without requiring the dismantling of the unit’s enclosure.In terms of connectivity, the decision was made to transition from using Bluetooth Serial to Bluetooth Low Energy. This shift allowed the team to address issues related to data transfer congestion between the unit and the mobile app, while simultaneously enhancing security through the implementation of a protected pairing process.Another significant decision involved transitioning the firmware project from the Arduino framework to the native ESP-IDF framework. The objective of this migration was to improve the system's overall stability and make the design more adaptable for future advancements
UX/UI Design
Once the medical device UX design was completed, the team began working on new designs for the mobile application screens, incorporating fresh branding and colors. They paid particular attention to creating a user-friendly device pairing flow, ensuring ease of navigation through device discovery, secure pairing, and firmware updates over BLE. Additionally, they created a realistic depiction of the revamped sensor unit within the application.Furthermore, the designers suggested and refined the theme and design of the doctor's web portal through ideation sessions with the clients, ensuring it met their needs and preferences.
WEB Development
Web development was a significant aspect of the project. The Azure-based backend served as the central processing unit, managing data and interactions between clients such as the mobile app and web page. Built on a robust architecture using .NET 6+ and EntityFramework, the backend employed Onion architecture with the Chain of Responsibility pattern. For the doctor's web space, Angular with PrimeNG and i18n frameworks were utilized. REST API endpoints, defining URLs, HTTP methods, and purposes, were clearly documented for seamless developer engagement.
Mobile Development
The mobile application development process commenced with a review of the existing codebase. Using insights from the code review, the development team created a detailed specification for the patients’ app, outlining functionalities such as the home screen, patient profile screen, file transmission to the cloud, and necessary permissions for app functionality. Subsequently, the app underwent rework utilizing Jetpack Compose, MVVM, and Kotlin. Firebase was selected for crashlytics and analytics integration.
DevOps and Cloud Development
The DevOps team contributed support across various domains, including storing the codebase in a Git repository on Azure DevOps. They set up building pipelines and configured Azure DevOps to trigger a build process with every code commit. Additionally, they ensured that unit tests were executed during the build process to maintain code quality and functionality. The team also generated compiled code and binaries as artifacts for deployment purposes.
Maintainance
The team employed Azure Kubernetes scaling mechanisms to adjust to increased loads and utilized Azure's monitoring and logging capabilities for efficient debugging and performance tracking. Bug fixes, updates, and enhancements were managed through the CI/CD pipeline, guaranteeing a seamless update process for every system component, including firmware, frontend, backend, and mobile applications.
The Team Involved In The Project
Hardware Engineer
1
Embedded Engineers
2
Web Developers
2
Android developer
1
UX/UI Designer
1
QA Engineer
1
Project Manager
1
Project Challenges And Our Suggestions
Multitechnology Project Challenges
The IoMT project encompassed multiple technologies spanning various domains, necessitating a versatile team for successful completion. Challenges included ensuring signal quality at both hardware and software processing levels, optimizing data transfer for a seamless app user experience, and meeting backend requirements for scalability and reliability. To tackle these challenges, our team proposed and implemented several solutions. These included the development of a BLE OTA mechanism, allowing the app to retrieve new firmware images from Azure Blob storage. We also integrated BLE commands into the app, enabling users to initiate and halt measurements as needed, thereby extending the unit's battery life. Additionally, our web team devised and implemented an integration test procedure to validate data flow after each successful rebuild, ensuring system robustness and reliability.

Impact
Indeema improved the client's solution by updating it and making it more practical and user-friendly. The solution enhances the client's business by boosting its competitiveness in the market, attracting a larger user base, and delivering enhanced value to healthcare providers through improved data administration, analysis, and accessibility.
Before And After Cooperation With Indeema
Before:
Sensor unit hardware limitations:
The hardware could not be re-flashed once assembled, limiting flexibility and future updates.
Outdated sensor unit firmware:
The firmware was based on the Arduino framework, potentially restricting functionality and scalability.
Limited and outdated mobile app:
The mobile application lacked advanced features and had an outdated design, potentially hindering user experience and adoption.
Absence of backend and web portal:
The client did not have a backend infrastructure or a web portal, limiting data management and accessibility for users and administrators.
Lack of cloud infrastructure:
Without cloud infrastructure, data storage, and processing capabilities were limited, potentially constraining scalability and performance.
Absence of CI/CD:
The client did not have continuous integration and continuous deployment (CI/CD) pipelines, hindering the efficiency and reliability of software development and deployment processes.
After:
Enhanced sensor unit hardware:
Indeema enabled USB programming capabilities for the sensor unit hardware, allowing for easier firmware updates and maintenance.
Modernized sensor unit firmware:
The firmware was migrated to the ESP-IDF framework, leveraging BLE and enabling OTA upgrades, enhancing functionality and flexibility.
Revamped mobile app:
Indeema provided a mobile app with custom branding, modern design, and improved device control features. Enhanced security measures were implemented for pairing, and the app could now collect data from sensor units and send it to Azure for further processing.
Established Azure backend:
Indeema set up a fully functional Azure backend, enabling robust data management and processing capabilities.
Developed web portal:
A neatly designed and functional web portal for doctors was created, providing easy access to data and functionalities for healthcare professionals.
Implemented cloud infrastructure:
Indeema designed and implemented a thought-through cloud infrastructure, ensuring scalability, reliability, and performance for the client's product.
CI/CD support:
Indeema established CI/CD pipelines, enabling automated software deployment, scaling, and monitoring, enhancing the efficiency and reliability of the development process.
Technical Highlights
Technologies
BLE
ESP-IDF
embedded C/C++
Java
Kotlin
Jetpack Compose
MVVM
I18next
Angular
.NET 6
Azure
Silicons
Espressif ESP32





