Primary Menu

VistA and MUMPS: Big, Ugly and Proud

The Veterans Affairs (VA) VistA Electronic Medical Record is based on MUMPS, a programming language designed specifically for healthcare in the 1960’s. People and organizations are rarely neutral on both public domain VistA-the-software, and MUMPS the language. VistA the software is almost universally liked by the doctors and nurses of the VA doing clinical work. VistA and MUMPS is also loathed by programmers, competitors and outsiders to the VA. VistA is big, the language it is written in is ugly, they say. Yet there is a jarring contradiction. By most accounts and measures the software, works and works well. The MUMPS language also seems to work for private sector EMR companies such as Epic. In a field that is littered with the corpses of companies that have tried and failed to create useful, commercially viable EMR software, this success counts for a lot. Why is it so successful?

WorldVistA president Rick Marshall attributes its success to its iconoclastic nature: ‘Everything that has been emphasized in University teaching about modern computer programming languages (such as strong typing, early bindings and declarations) on purpose it does not do. It violates their theories because it works in the real world, and they say it shouldn’t. It emphasizes backward compatibility and portability, which is great because it does not force you to re-write code every few years like most programmers do. Programs like VistA are simply too big to be re-written all at once and we are not compelled to do so. There is a whole industry built around re-writing old code instead of adding new features. What would you rather do?’

Marshall believes that this and the MUMPS language’s relative isolation has been the reason for its success in healthcare: ‘We do not want average programmers in this space, they are frequently arrogant. Programming in healthcare requires intimate knowledge with both programming and medicine…It is easier to teach a medical professional how to program than to teach a programmer about medicine. It is not a hard language to learn, but it is impossible to master.’ says Marshall.

Another major criticism of VistA is that it is large and un-wieldy with over 9,500 items in its Option file and a large number of packages. However, a counter argument is that this is un-avoidable in a system that brings meaningful function and completeness to healthcare. A text-based, rather than a Graphic User Interface (GUI) for many administrative tasks is another difficulty. However, clinicians have a comprehensive, modern, GUI that is near-universally liked.

A look at the book ‘M Programming A Comprehensive Guide’ by Richard Walters, reveals what feels like a not difficult, and perhaps dated syntax. But then sparse arrays and advanced programming features are revealed in the book. The power and appropriateness of the language to easily handle medical data is suddenly apparent. The language, along with the breadth and depth of VistA applications available, may be reasons for its success.