Health boss unsure how many patients were overdosed due to Windows upgrade
abc.net.au
abc.net.au
However, what works is if the complex system is monitored by a simple, auditable sanity check. In the case of the Therac-25, nothing bad would have happened if the simple mechanical interlocks ("if A isn't in place, don't turn on B") hadn't been optimized away due to misplaced faith in the software's reliability.
Similarly, a trained medical person would look at the off-by-10x dosage number and say this isn't right, let's just check that. And a simple can't fail software check could probably flag this sort of thing as well.
"It was a generic issue in the prescribing software. It's a patch relating to upgrading to Microsoft 10."
Like a game of telephone (chinese whispers?), the actual root cause gets buried in layers of misunderstanding. The root cause might be (purely as an example, not even speculative on this particular case): "We use a terminal emulator to interface with an ancient system, the particular emulator we use has a dependency on library XYZ which has always mishandled number inputs but nobody noticed due to an unexpected interaction with Windows' IME. In Windows 10, IME was reworked and the bug was no longer masked."
Who's really at fault in such a case? Is it Microsoft for changing OS behavior? Is it the original manufacturer/developer for relying on unspecified behavior? Is it the hospitals for not fully testing each upgrade themselves?
Each party should be asking "If something were to break, what's the worst that could happen?"
This concept should be mandated at every level of software rollout that could endanger lives. Part of this is a failure of the software industry because we have perpetuated the narrative that stuff "Just works." which is dangerously misleading to the general public. The public needs to understand more about the practicalities of software through better education.
As developers, we need to push robustness way further than the average company cares to produce.
Such an error seems possible only if treating numbers as strings, an error that would defeat a possible function to validate dosages according to the patient prescriptions and related min-max values. I wouldn't use Windows for anything critical such as medical prescriptions, but honestly that looks more like sloppy programming.