Earlier quoted context omitted.
This This machines costs hundreds of thousands of dollars. There should be no excuse for using Windows. None. I would not be surprised if the "antivirus" thing was some PHB requirement
To be honest, there is an excuse, although not a very good one. The machine is costly because it is in high demand. R&D and pushing this through regulatory control are costly. This company has great incentives to cut costs to remain competitive.
Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
121–130 of 211 posts
Re: Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
#122Earlier quoted context omitted.
For software critical to human life, test the rare code paths.
The easiest way to be sure a code path will run properly is to avoid writing it in the first place. This kind of application should be designed to run in a highly linear, predictable fashion on robust, fault-tolerant hardware. Why is nobody questioning the propriety of using an off-the-shelf Windows PC in safety-of-life applications?
Agreed. So the app shouldn't contain anything extra not related to it's primary function.
However, handling error conditions reported by the operating trumps the extraneous code rule. But there are many ways to handle an error, including ignoring it if that's the proper thing to do.
Crashing is never the proper thing to do. If the program had simply exited at the very minimum, a restart would have taken a lot less time than a complete reboot of the machine. The software crashed that badly that it required a reboot of the machine.
> Why is nobody questioning the propriety of using an off-the-shelf Windows PC in safety-of-life applications?
They are, in the other threads. But using a better OS for the task wouldn't prevent the coding error the programmer did.
Let's say they chose Linux. A signal goes off or something else happens and their read call fails. Since they expect all their I/O to succeed they crash just like the Windows box.
If they bothered to handle the error and check for EINTR they'd know it was interrupted and not a hardware failure.
My point is, changing operating systems doesn't protect you from poorly coded applications.
Re: Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
#123Let me surprise you, with the code quality that sometimes is running in what is actually 'life-critical' software. Back in the nineties, I wrote a nice piece of some 300kb of C code, for DOS/x86. It was a complete software package, controlling medical equipment that was testing speed of blood coagulation. These tests are crucial in the patient post-operation recovery. This piece of C code had some hardware control co…
Re: Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
#124"Merge says the antivirus froze access to crucial data acquired during the heart catheterization. Unable to access real-time data, the app crashed spectacularly. The company claims that they included proper instructions in their documentation, advising companies to whitelist Merge Hemo's folders in order to prevent crashes from happening, so it seems that the whole incident was nothing more than an oversight on the m…
Better to crash (and restart quickly into a known state) than to enter a rare, untested code path.
But their app crashed. And hard. It required a machine reboot to restart. While it returned the machine to a known state it wasn't quick.
And in medical software, all code paths need to be tested.
Re: Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
#125Earlier quoted context omitted.
The easiest way to be sure a code path will run properly is to avoid writing it in the first place. This kind of application should be designed to run in a highly linear, predictable fashion on robust, fault-tolerant hardware. Why is nobody questioning the propriety of using an off-the-shelf Windows PC in safety-of-life applications?
> The easiest way to be sure a code path will run properly is to avoid writing it in the first place. Agreed. So the app shouldn't contain anything extra not related to it's primary function. However, handling error conditions reported by the operating trumps the extraneous code rule. But there are many ways to handle an error, including ignoring it if that's the proper thing to do. Crashing is never the proper thing…
Re: Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
#126Earlier quoted context omitted.
>No matter what OS you choose it is vulnerable to viruses This may be theoretically true, but it is not practically the case. There is a reason Linux and OS X users almost never use antivirus software. Using Windows on a medical device is inexcusable. It's a heart monitor, not a game system.
Medical devices are used by humans. Humans, for some reason prefer and know Windows better. Why shouldn't the devices use Windows? Today, doctors from a hospital the other side of the country can diagnose your cancer realtime while you are still in the MRI machine, and they do it with Windows, because that's what humans know and use.
Probably because they've been exposed to it in a many settings, for better or for worse. Windows being popular does not imply that Windows is appropriate for any given task.
> Why shouldn't the devices use Windows?
Is this a serious question?
Windows is probably the least stable production OS in the world today.
Windows is extremely bloated compared to an appropriate embedded OS.
Windows is (practically speaking) the only OS where antivirus software is a fact of life. Viruses should not be a concern for medical equipment.
Windows is not even close to real-time.
I don't want to see "Your heart monitor is restarting for updates in 3... 2... 1..."
> and they do it with Windows
This may be technically true, but this in no way implies that Windows is uniquely suited for or appropriate for the task. They could also do it using a PlayStation, but this is probably not an appropriate platform.
Re: Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
#127Earlier quoted context omitted.
every software update to the machine has to be FDA certified Interesting. Does that imply that every Windows update Microsoft releases has been FDA-certified already?
His characterization is not quite accurate. FDA does not certify it; rather, the company building the medical device certifies to the FDA that it has been properly validated for use and the FDA accepts their validation. Trust in the company's ability to properly validate the device is tempered by regular FDA (and other regulatory bodies) audits of their development process and process data, test reports and a general…
Our machines were actually purchasable in two ways: one certified for human diagnostics (FDA Class III, I think), and one not, for eg veterinary or scientific use. The former got 1-2x/year software updates, while the latter got monthly releases. We had to enforce usage requirements both with contracts, download restrictions, and in-machine checking. ie you couldn't use the non-diagnostic firmware or software on a diagnostic-certified device. You also had to use certified reagents -- enforced in hardware -- in diagnostic devices.
It's a lot of work, but given some of the software I've seen, and the fact that if these machines get the diagnosis wrong you either won't be treated for deadly diseases or will be treated in very toxic ways for diseases you don't have, the requirements are reasonable.
Re: Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
#128Why is there a virus scanner on a PC inside the operating room? Don't tell me that PC is connected to the internet...
I was going to ask this as well. Why does this PC need to be connected to the internet? If it doesn't need to phone home while operating as a heart monitor then there is no need to have antivirus or have this PC connected to the internet. Also, plenty of devices not connected to the internet run Windows: ATM's, Billboard, Monitors, etc. Dumb IT is to blame for this mistake.
Re: Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
#129"Merge says the antivirus froze access to crucial data acquired during the heart catheterization. Unable to access real-time data, the app crashed spectacularly. The company claims that they included proper instructions in their documentation, advising companies to whitelist Merge Hemo's folders in order to prevent crashes from happening, so it seems that the whole incident was nothing more than an oversight on the m…
Exactly this. As I was reading the article I hoped to find this exact point in the HN comments. The fault lies in the bad software. It could have been the indexing service, online defrag, automatic updates, or any of the other various background processes windows runs. If it is critical software, it should be designed in a way to not fail when something non-critical malfunctions, and even the critical pieces should b…
Re: Medical Equipment Crashes During Heart Procedure Because of Antivirus Scan
#130Earlier quoted context omitted.
I would expect these kinds of systems to be running a soft realtime OS. Or at the very least a run of the mill OS with no extraneous software running in the background.
This. How are these devices not running on some sort of hardened OS seen in airplanes and automotive? Medical applications are mission critical (or some variant) and should have same (or better!) certification procedures set up for correctness and security.
This application (cath lab activity logging) is not a life-support activity. Product failures of any kind (either due to design error or product defect) represent a diminished capability of diagnosis and treatment. This does not represent a risk of harm to a patient.
That said, some medical device manufacturers treat this aspect of design very seriously and go to great pains to use defeatured and heavily restricted OS and settings.