Compelling Reasons to Modernize Your Medical Instrument Software
There are Many Compelling Reasons to Modernize Your Medical Instrument Software
In this article, Fred Page elaborates on the many compelling reasons for manufacturers to upgrade the software powering their medical instruments. Too often, software modernization is put off due to concerns about the cost and complexity of an upgrade. However, the inevitable consequence of delay is lost competitiveness resulting from outdated features, inability to repair defects, and incompatibility with hardware upgrades.
Using his extensive experience developing medical software for In Vitro Diagnostic instruments as a model, Fred details several convincing benefits of taking the plunge on modernizing the software of your medical instrument.
For over a decade, I have worked on several projects that modernized software for In Vitro Diagnostic Devices. I’ve been involved in nearly every aspect of the development effort, including: architecture, technical documentation, requirements, coding, testing, verification, and dealing with issues from the field. In some projects, Syncro Medical only implemented changes to the tool-set or design, whereas, in others, everything changed. I’d like to share with you some of my observations from these projects. While I am focusing on In Vitro Diagnostic software, most of my observations apply to other types of medical systems as well.
Why modernize In Vitro Diagnostic Software?
In my experience, the most common reason our clients decide to modernize In Vitro Diagnostic Software is due to hardware changes. As time moves on, existing hardware components are no longer viable – due to obsolescence, regulatory requirements (e.g.: RoHS), or new features that require major changes to the hardware.
That said, there are other reasons that our clients have decided to modernize their In Vitro Diagnostic Software. The languages may be outdated, such as using assembly language to perform basic logging. The operating system may be written only for that device or class of devices, it may be missing useful functionality, or it’s no longer supported. The design may be poor or dated (in that it can’t support modern features). The defect density may be high. And finally, it may be difficult to hire people to maintain software using an outdated tool-set.
What are the advantages of Modernizing an Operating System?
As I mentioned earlier, hardware is often the catalyst for change. For example, the existing operating system may not support new hardware. In a case such as this, it’s imperative to adopt a new operating system.
A newer operating system is likely to yield other benefits – such as including additional features (such as packaged drivers, hardware support, and better security) that can be used, often better and/or cheaper than writing your own software to implement said feature. As support for older operating systems drops, so do security updates – resulting in greater exposure to new risks. For devices that are now connected to a network, such as the internet, Cybersecurity is increasingly important. Newer operating systems tend to have features that help implement aspects of Cybersecurity.
In one of my recent projects, the change of operating system was driven by a third-party tool. The tool was needed for branding reasons – so that all the new devices with their brand would have a common look, feel, and user interface. Because the tool was only supported in the newest version of the operating system, an upgrade was required.
Newer operating systems have more modern GUIs, often supporting features that users are now accustomed to from their phones. Speaking of GUIs, a recent trend I have noted on projects I’ve worked on is to host or replicate some of the user interaction on a mobile device. This means that the current IVD device will need to talk to those mobile devices. If the chosen means to do this is Bluetooth, or Bluetooth Low Energy (BLE), this can drive the need for an operating system that supports Bluetooth.
What are the advantages of using a modern programming language and/or tool-set?
It is much easier to find talent who is already familiar with, and want to work with newer programming languages and tool-sets. This is definitely not the case for those that are no longer commonly in use. Exclusive uses of older technology can put instrument manufacturers in a real bind, particularly when there’s an urgent need for changes or defect correction.
Do you have legacy and transitional software needs? We can help… Let’s Talk!
There are many technical advantages of newer languages. Newer languages and tool-sets tend to simplify some of the routine tasks software engineers do, oftentimes significantly. This translates into greater productivity and a lower number of defects for the same functionality. I remember one IVD project where an upgrade in the language we were using removed hundreds of lines of code, and fixed over a dozen defects. I recall another situation in which some of the code was in an old language (assembly). Few, if any, of our client’s engineers could read that code, therefore, they were unaware that there were numerous defects in that portion of the code until it was replaced.
What are the advantages of using a modern design and architecture?
In general, a redesign of your code will result in an easier-to-change codebase. It’ll also open the door to introduce useful features that were not available at the time of your original design. As an example, it’s now very common to design in a manner that increases the percentage of code that can be automatically unit tested, as this reduces the defect density. In one IVD project I redesigned, the original design was roughly orthogonal to what the IVD was doing; the redesign made it much simpler to find where issues could be fixed, as the location of the code made logical sense to someone who understood the IVD. In another example, the redesigned code incorporated Unicode character sets, which allowed the client to market their devices in international markets previously inaccessible to them.
Updating the architecture yields benefits as well. In one of my projects, rearchitecting by moving a critical piece of code across processors, languages, and operating systems solved numerous latency issues, allowing the accuracy of the final result to increase. Check out “Skip the Software Architecture Step at your Own Risk” for more detail on this topic.
In summary, there is a multitude of reasons to modernize older medical device software. In the long run, the benefits far outweigh the cost and time required for an overdue update.
Syncro Medical has worked on the software for medical devices (including IVDs) for many years. If you have any questions about how to modernize the software for your medical device, please contact us.