One of the first things that people unfamiliar with the language have been known to ask me when I mention I have MUMPS experience is “What is this MUMPS?”. Thankfully, I have never been a sufferer of this particular viral infection, although it is highly contagious, because of extensive immunisation programmes against it, the number of cases per head of population is now greatly reduced. That said, the MUMPS I have experience with is, somehow, vaguely related to its viral namesake.
So…not the virus then. It is also not a Metrolink station in Oldham which takes a part of its name from the local district either, that’s the photograph on the right.
The MUMPS I know so well is in fact a programming language and database storage engine, both intertwined in one environment. It was designed in the mid 1960s by a team of developers who were working on building a Hospital Information System in Massachusetts, it became known as the Massachusetts General Hospital Utility Multi-Programming System, these days it is also known as <a href=""http://en.wikipedia.org/wiki/MUMPS">M
To say M was largely designed in the 60s, the early feature set was surprising, even by modern standards. It is an interpreted language in which there are no explicit data types and almost everything is a variable, even your persistently stored data. The interpreted code was designed to be easily portable and platform agnostic, the runtime environment handled multiple user accesses and multi tasking for you. The use of external devices is a simple task with most of the plumbing being expertly handled by the runtime environment’s upstream provider. This allowed the application developer to concentrate on his or her own project without needing to think too much about all that low-level work, unsurprisingly word of this modern environment moved quickly through the medical community, spreading much like the virus which shares the name.
Due to its early start in healthcare, M is used widely in both the healthcare sector and the financial sector, no doubt helped by its transactions, ease of multiuser access and other useful features. The U.S. Department of Veterans Affairs healthcare system are still actively developing their VistA EPR (Electronic Patient Record) system.
Until a couple of years ago there were thousands of UK GP Surgeries who were using the EMIS LV system, where the core database was running on a M runtime environment called MSM (Micronetics Standard M). If you’ve ever been registered with a UK GP Surgery, you have a fair chance one of them was using M to hold your data in the background. If you work in a GP Surgery who are running an EMIS clinical system, your support call contacts have been held in an InterSystems Cache database, a modern superset of an M environment.