Understanding IoMT (Internet of Medical Things)
Understanding IoMT
IoT-MD, IoMT, or IOT Medical Devices – a wide-open landscape
The medical device community has coined the interchangeable terms IoT-MD (Internet of Things for Medical Devices), IoT Medical Devices, and IoMT (Internet of Medical Things).
Standard communication and computing devices, such as laptops and phones, have been Internet-connected for years. IoT refers to all other devices, or “things” – TVs, thermostats, cars, refrigerators, toys – the list goes on. But when the connected device is used in the medical world, it falls under IoMT,
One popular definition includes “…a network of sensors, actuators, and other mobile communication devices used in concert with medical devices to improve patient care.” While it is unique in that it influences patient care, IoT-MD nevertheless fits within the definition of the much larger world of IoT. At Syncro Medical, we have been developing software for products that live in the IoT space since long before the term existed.
What’s in a Name?
It’s impossible to comment on IoT without at least acknowledging that its very definition is both variable and fluid. By some standards, an IoT device must be connected to the Internet, or at least have its own IP Address (you may recall the talk about an IP address for every atom on the face of the earth when IPV6 was emerging). By others, any wearable or implantable embedded device that exchanges data is IoT, regardless of the communication model. Some definitions require the actual Internet to be a player, some don’t. So IoT is variable. And of course any new term seeking its own definition is necessarily fluid as it circles the field, looking for a landing place. IoT-MD, being inside the overall scope of IoT, is subject to the same ambiguity.
Talk about IoT-MD and all the futuristic ideas start to flow – the cardiac assist device that tracks and uploads a daily record of heart rate changes. Or a wearable used by a winter rescue team that keeps track of body temperature and alerts the home station if a dangerous health condition exists. And my personal favorite, the Epinephrine injector used in case of pending anaphylaxis which calls 911 when used. Is it Dr. “Bones” McCoy’s Tricorder? Well, no, but you can almost see it from here.
At Syncro Medical, we recently completed a project where a “pocket” personal medical device reports data to the patient’s mobile phone using BLE (Bluetooth Low Energy). From the phone app, data moved through the Internet to cloud storage. Is this IoT? By some definitions, no – there is no IP communication on the device itself. But the data movement relies on the Internet, so by the broader definition, yes it is.
For our purposes, at Syncro Medical we consider IoT-MD to include all data-enabled embedded medical devices that communicate to some remote point of data processing, data storage or data presentation.
Do More With Less
So what’s happening out there that’s continuing to fuel IoT? Some pretty cool processors, for one thing. Processors continue to become more capable and use less power. CPU processing power compared to power consumption is typically measured by microamps per megahertz (µA/Mhz). Not many years ago the state of the art µA/Mhz was hanging around 200. In a few short years we entered the sub-100 range and Atmel has recently introduced an ARM processor spec’ed at 35 µA/Mhz. To give you an idea of how low this is, imagine a small device, perhaps an implantable, that can run in excess of 10 years on a single battery. Or instead of a battery, how about one of the new supercapacitor designs coming out of the labs? Their electrochemistry can produce 3-4 volts, which is perfect for the 3.3v hardware landscape.
These tiny processors run at 45Mhz, several orders of magnitude slower than a typical desktop CPU. But for driving sensors and outputs and supporting communications they are more than adequate. In Syncro Medical’s early embedded days, we used single core processors that got the job done at 2Mhz! Or think about it this way – the low power ARM processor is about 1,000x the speed of the processor that landed Apollo 11 on the moon. That ran at about 45 kilohertz – yes kilohertz.
Sometimes you just want a slice of pi
But a super low power CPU, while clearly a future direction, is not a requirement for all IoT-MD needs. Single Board Computers such as Arduino and Raspberry Pi have been used for many IoT applications. The darling of the hobbyist, the Arduino family of SBCs, is a great starting point for many IoT projects. But with no actual OS, and limited memory and CPU, it’s easy to max one out. The RPi, by contrast, can run several flavors of Linux. This allows the user to leverage existing tools for display and communication, and there are tons of available libraries – it’s Linux, after all.
This brings us to software. IoT-MD can take on a lot of forms, and for some, a dedicated single-thread may get the job done. But the more we move uphill in requirements for I/O, storage and multi-threading, the closer we get to needing an actual OS such as Linux. But imagine you are a full Microsoft shop. Your legacy code is written using Visual Studio and your developers are pros with Microsoft tools. Linux could be a tough sell.
Yet Another Windows® Variant?
One possible solution is the recently released Windows 10 IoT Core from Microsoft. Is this the last word on IoT development? Not exactly, but here is what Microsoft brings to the table: A nicely packaged environment that can use existing Microsoft development models, especially for devices requiring a GUI. What if your device has no GUI, you ask? Yes, IoT Core can run headless, but then it becomes less distinct from a single-threaded or Linux-hosted device and at a higher hardware cost.
Where IoT Core really shines is in its ability to allow Windows developers to build apps using familiar tools and constructs and deploy them on an embedded device, while leveraging existing code sets. It’s like a grown-up version of Windows Embedded that runs on ever smaller platforms. Recently a Syncro Medical IoMT project required a runtime environment for a small SBC and the needs were met quite well by Windows 10 Core IoT.