A C++ Builder article today from our Enterprise Software article challenge. Today C++ app developer Courant describes their experiences with creating what they describe as “Software As A Medical Device” or SAMD. It’s not a term I’ve heard before, I must admit, so it’s intriguing to hear from Courant as they tell us about their enterprise app experience. What unfolds is the story of actually something quite extraordinary; how Courant’s app quite literally helps put food in people’s mouths and improve that experience for people who are truly debilitated to the extent that they can’t eat. Eating is something so ordinary and necessary, and which we all take for granted, that we never seem to consider that there might be people out there who have food but are unable to consume it. It’s a pretty humbling thought.
Table of Contents
How did you start on your enterprise project?
My lab was entrusted by a Taiwan biotech company, hoping to develop a software system that is able to connect with one of their products, a medical assistive device. The medical assistive device was considered to be a low-risk class I medical device by US FDA that this software system can be regarded as the hottest product in the MedTech industry recently: Medical Software (Software as a Medical Device, SaMD). Fortunately, in Taiwan, this assistive device is not considered to be a medical device. There is no need to adapt ISO 13485’s Design and Development Control Process or IEC 62304’s Medical Software Validation. That will reduce a lot of development burden.
So, you managed to avoid lots of rules and regulations?
The software is not considered to be a medical device product in Taiwan, so they won’t prepare to invest too much cost developing it. In fact, developing the most powerful product with the lowest budget should be any client’s most intention. They want us to develop a cross-platform mobile app (run both in Android and iPhone) that can connect to one of their products via Bluetooth and collect signals produced by the product and upload to a cloud database just like a personal healthcare management system. This means that in this project, technologies including mobile phone app development, semi-wearable devices (their medical assistive device), sensors (accelerometers embedded in their assistive device), wireless transmission (Bluetooth module), cloud platform, and Web are all involved.
What sort of development technologies were involved?
It is planned that we need a software development team consisting of a Java or a Kolin programmer, a Swift programmer (or a React Native or Flutter programmer to replace the former 2), a back-end SQL DBA, an AWS, GCP, or Azure cloud platform architect and a front-end programmer who is familiar with jQuery, Bootstrap, Node.js, React, or Vue.js, …etc. so we can develop this cross-platform full stack software as medical device. Also, digital signal processing, spectrum analysis, vibration analysis, or even some neurology domain know-how needs to be considered as the software would be applied in a multicenter clinical trial. And since the budget is less than US $70k, I decided to complete the task on my own.
What is the medical hardware you needed to work with?
The medical assistive device product is a vibration suppression spoon whose code name is “Eatsofree”, which means that it can help you to eat so free. Patients suffering from essential tremors, Parkinson’s Disease, diabetes, or stroke might have involuntary uncontrollable hand vibrations, and will make eating difficult. Imagine that when you are eating, your hands vibrate uncontrollably, holding a spoon in your hand, scooping up the food, you may not be able to accurately deliver the food to your mouth, and even in the process, the food will fall due to the shaking.
How does this spoon help people with Parkinson’s Disease?
Eatsofree spoon consists of a microprocessor, tiny motors, accelerometers, and Bluetooth wireless transmitter that make it a high-tech spoon similar to other wearable devices such as smart watches, wristbands, or bets. When a tremor patient is eating food using an Eatsofree spoon, once the spoon detects the uncontrollable hand vibration, it will drive the built-in motor to give force feedback so that the food will be much more stable to stay in the spoon and be easier delivered into the mouth. It is a bit like the digital camera’s optical image stabilizing function only it will last much longer. Google has already its mature product called Liftware.
Our client uses different innovative technology to solve the same clinical unmet need and filed their patents. Our challenge is to write the mobile phone app (in both Android and iOS platforms) to connect the Eatsofree and receive the data with the sampling rate of 90Hz and upload it to the cloud database after the post-processing sequences. That means we have to finish the following numerical operations: 1. Fourier Transform, 2. Spectrum Analysis, 3. Noise Reduction, 4. Inverse Fourier Transform, 5. Temporal Domain Signal Processing 6. Double Integral / Derivative…in several milliseconds. And we think that only native code could have such kind of efficiency and throughput that React Native and Flutter solutions would not be considered.
What made you choose C++ Builder for your enterprise project?
Well, since I learned the Turbo C when I was in college, I finished my master’s thesis about using neural network machine learning on treatment planning for stereotactic radiosurgery and my Ph.D. dissertation about ferric ion diffusion phenomenon in dosimeter gel in radiosurgery, they were all completed by Turbo C, Borland C++, OWL, VCL, BDE, MIDAS, CORBA, SOAP Web Service. C++ Builder is the tool that never let me down. Finally, I use C++ Builder from Rad Studio 11 to develop the Eatsofree App, write once, and run it anywhere. By using FireDAC and DataSnap, Eatsofree can store data in the local SQLite and remote Azure SQL Server. With IntraWeb from Atozed, I successfully finished the cross-platform full-stack medical software. Thanks to Embarcadero.
What are your final thoughts on your enterprise software experience?
In my not-so-long programming experience and semi-programmer career, it is almost mission impossible to use one programming language and one development tool to complete an enterprise software covering everything from mobile phone cross-platform apps, back-end databases, cloud applications, to front-end web pages when development technologies are so complex, and so many frameworks or development tools in the internet.
By using Rad Studio, it can be completed in the shortest time and at the lowest cost, especially for those who face so many rapid challenges in product development. If your project has similar characteristics to mine: your client has no clear requirement that the specification might change every week, and what is worse, he can’t even clearly describe how to solve his problem where some complex algorithm, mathematics, or physics theorem might be implemented in limited time and CPU resource. I will recommend the C++ Builder from Embarcadero’s Rad Studio as the best solution for rapid PoC prototyping, verification, and validation.
This article was submitted as part of our Enterprise Article Showcase. If you have a success story to tell about a project which makes use of RAD Studio with Delphi or C++ Builder, or any of our other great enterprise products please get in touch, you could be featured too and win a prize! Read all about it here: Enterprise Article Showcase