Transcript
A (0:02)
Massachusetts General Hospital Utility Multiprogramming System, or mumps, is a pioneering language and database. Originally designed for one of America's most prominent hospitals, MUMPS has since spread far outside of the ward. In this video, we talk mumps. Is it a programming language? A database? It's both, and it still powers much of America's healthcare facilities. Massachusetts General Hospital is one of America's oldest and most well respected hospitals. They were founded in 1811 and have a long running association with Harvard Medical School. Shrine of Asian parents everywhere. All in all, it's a big, prestigious hospital with esteemed doctors and staff. Yet at the same time, hospital work back in the day was chaotic. On any given day, each of the hospital's many doctors seized 20 to 30 patients for about six minutes each. For each patient, the doctor must obtain information firsthand from the patient, review prior notes from the medical record, decide on a treatment, update the record, and then issue a prescription if necessary. To do this, the doctor manages a large staff of about 50 professionals, including nurses, lab technicians, pharmacists, radiologists, and more. Treatment was chaotic and communication errors were common, and the costs of such were rising. A 1974 study done at the Kaiser Permanente Healthcare System in California found that 25 to 40% of healthcare costs then stemmed from information processing. Can technology help improve communications and data flow? By the 1960s, computers from IBM and such were already well established in business, and studies done in the late 1950s hinted that that it can do the same for the hospital. But the enormous complexity of the task, the cost of making software, and the uncertainty of the benefits to be gained meant that nothing would arise for pretty much a decade. In 1962, Mass General signs a contract with a Cambridge consulting company called Bolt, Baranek and Newman, or bbn, to produce a new computer system. The project had been initiated by a brilliant MIT professor and BBN senior manager named Jordan Baruch. He envisioned a total information system for a hospital centered on a concept called timesharing. Timesharing is when multiple users connect to a central computer via terminals. In this case, that computer would also have a mass storage device attached that those users can all access. Baruch thus envisioned a system for gathering, processing, storing and retrieving medical data in real time. Baruch convinced the National Institutes of Health to pony up $1 million a year to fund development. But NIH insisted that BBN bring in a hospital partner. So they signed MGH, who came aboard with little knowledge of what to expect, but hoped to get a free product out of it. Alas, after two Years, progress was quite slow. The initial efforts focused on producing an admission and discharge tracking system, a medicine ordering system and a laboratory reporting system. But after two years, there was little uptake inside the hospital. For instance, the medicine ordering data input flow required nurses to slowly type up everything about the prescribed medicine, from patient details to distribution times. Floor nurses are very busy and they don't have time for that. Eventually, NIH did an on site evaluation of the project and strongly suggested to the Mass General Hospital that they take a more active leadership role. Yes sir, they gave the hospital a very hard time and they should, because the project cost $1.5 million a year, with a million dollars of that going to bbn. So Mass General's director looked for someone to spearhead the hospital side of the project and they found Dr. Octo Barnett. Barnett had more training in cardiology than computer science and information theory. But for this hospital project, that was good enough. Thus, in 1964, Barnett joined the hospital as the founding director of its Laboratory of Computer Science, or lcs. Barnett recalls Jordan Baruchs and his recruiting. He was a pathological liar, but undoubtedly also a guy who had a vision and a brilliance and ability to verbalize it in a way that I've never met since he talked to me and said it'd be a great opportunity. Well, the first two years were absolute disaster. Why was it a disaster? Barnett recalls that the whole project was written in assembly language, basically low level machine code. They were using Model 33 teletypes, which were essentially electromechanical printers connected to a large PDP1 computer. Programmers wrote scarcely readable code on paper tape and fed it into the teletype and debugging literally meant cutting out pieces of that paper tape. So between having BBN write the program, deploying it to the hospital staff, collecting feedback and then working on changes, the project loop feedback cycle took a rather long time in steps. Two recent LCs, MIT graduates, Antonio Neil Pappalardo and Kurt Marble, neither had much computer experience either. Pappalardo got recruited because he worked with Barnett for his undergraduate thesis and which involved the incidence of EKG arrhythmias. But Pavalardo had heard from a friend about the work done by a guy at the RAND Corporation named Clifford Shaw. And those with sharp memories might recall Shaw from the videos about Lisp and AI. Shaw worked with Herbert Simon and Alan Newell on the famous symbolic AI program General Problem Solver. Anyway, here in this episode, Shaw was working on something called jaws, an interpreted programming language that was easier to learn. Interpreted meaning that the programmer's code is read line by line, rather than wholly compiled by a compiler. Pappalardo suggests to Barnett that the lab develop its own programming language to speed things up. Barnett told him that a hospital lab should not be doing that, and two to three times even threatened to fire him if he did it. So naturally, Pappalardo and Marble went ahead and did it anyway. Barnett looked at the rough prototype that the two had hastily done in a short period of time, and to his credit, recognized it as something useful. He convinced the NIH to have the hospital LCS take the lead in the project. And so in 1966, LCS began what would eventually become the Massachusetts General Hospital utility Multi Programming System. Mumps. The acronym came first, but nobody remembers exactly where it came from. In its early days, Mumps was not just a programming language, it was everything an operating system with time sharing functionality, a programming language and a database. And the integration between them all was super tight. The language interpreter, database management module, and the OS kernel, so to say, were all written as a single integrated body of code. This monolithic approach reflects Mump's technical heritage. It was originally developed on a PDP7 minicomputer with just 18 kilobytes of memory, about as much as a text file. Such measures were necessary to get the best performance out of the PTP7's limited resources. The core Mump's function from the very beginning, however, was the database, and it was tuned for the medical environment's stringent demands. As I mentioned, mistakes in the hospital can be catastrophic, and when seeing a patient, the doctor needs the most up to date information from a variety of sources. Moreover, medical data outside of laboratory results is often recorded in narrative or free form format. So MUMPS was built to be good at keeping data up to date and searching through variable lengths of text for keywords, number, numbers, letters, and other things. The mump's DB is hierarchical, meaning that data is stored in text nodes organized in parent child node relationships, branching out in layers from a single starting point. So like a tree or an upside down tree, I guess. Accessing data requires that we traverse said tree. We always enter the tree from the same starting node and and move our way down to the data we want via pointers and a set of coordinates. In mumps, these coordinates are formatted as an up arrow or caret followed by something like a patient ID and then a list of subscript values that take you to your desired data. The flexibility is immense. For better or worse, you just start saving data in the form of text to the tree. The hierarchical database structure is well known. IBM's Information Management System, or IMS, one of the most famous contemporary database softwares prior to the emergence of the relational model, helped popularize it and is still used to this day. What made Mumps different from those business oriented systems was how it integrates and stores medical data. As designed, Mumps treats all data on disk like it were an extension of local memory. Note how I mentioned the up arrow or caret prior to the patient file name. These identify a global array. Global arrays can be accessed and traversed like regular arrays, but are permanently stored on disk and so outlive the program. The upcarrot is the only way to tell between global arrays and the regular local arrays. This fast and simple input and output of medical textual data was attractive to busy doctors and nurses. It also ensures that stakeholders get the latest data as soon as it is saved. Mumps would eventually shed its operating system traits, but retains its dual identity of both programming language and database. Imagine the SQL query language and PostgreSQL being one and the same. No third party database libraries necessary. Such tight integration is part of the appeal. After Mumps got up and running, it began to attract interest from other hospitals. And at the time mumps was essentially open source. Anybody who wanted to use it can write in and get a tape, kind of like how Bell Labs gave anyone a tape of Unix user. Groups of volunteers were set up for support and tips. And private companies like Meditech, which was founded by the aforementioned Neil Pappelardo in 1969, arose with their own dialects of the language. And though it works best when implemented inside its own operating system, Mumps was ported to other computers. But none of these ports were perfect. And eventually this organic viral propagation created an unfortunate babble problem. By 1972, there were at least seven distinct mumps dialects circulating in the population. The Mumps language is already a bit cryptic. There are just 22 functions and 19 commands, but those commands are often abbreviated to a single word or symbol for memory reasons. Programmers complicated this yet further with their own extensions, often prefixed with the Z letter. This fracturing made it increasingly difficult to port mumps application packages across dialects and machines. And that was an issue for the US government, which by 1972 had spent about $5 million total developing various mumps medical applications. You want those to be compatible with all the dialects. Something had to be done. A similar fracturing had led to the Unix wars, and the immense efforts expended by all parties on fighting the wars contributed to Unix's eventual decline. In 1972, the U.S. department of Health, Education and Welfare, national, now the Department of Health and Human Services, as well as the U.S. national Bureau of Standards, now the NIST, sponsored a field study of the various mumps dialects out there. A year later, the two sponsored the creation of the Mumps Development Committee to create a mumps computer language standard to submit to the American National Standards Institute, or ansi. A mumps avengers made up of industry and hospital users was assembled. With 35 initial institutional members. The committee rapidly but arduously worked out a standard. It set into stone things like language, syntax, formal definitions and a guide for portability. And with that, in 1977 the mumps standard was labeled an American national standard, averting a Unix wars type scenario. The health department essentially paid for this committee effort pro bono to guarantee the future effectiveness of their existing mumps language medical applications. Such work would soon come in handy. Mumps receiving its ANSI standard kicked off another massive round of dissemination and commercialization. User groups were started in foreign countries like Europe, South America, Australia, Japan and the People's Republic of China. The adoption outside of the HEL system has been surprisingly broad. Switzerland used it for their Parliament crisis system. The Netherlands used it for their patent tracking system in the Chamber of commerce. The UK's Royal Mint used it to track equipment. The British Stock Exchange once used it as their language of choice. And the massive Soviet fishing fleets in Riga used a mumps network to track and record their catches. But the single largest and most significant deployment must undoubtedly be the work done by the US Veterans Health Administration or vha. It is one of, if not the largest healthcare organizations in in the United States and has been tending to wounded veterans since the days of Abraham Lincoln. In the late 1970s, the VHA began hiring people and binds hardware for an integrated hospital information system serving all its 27 healthcare sites. They have been frustrated with the former COBOL based solution that was so slow to develop for that it killed many potential new applications. A small internal mumps group started picking up the Kobold Group's rejected application requests and developed the apps. But this kicked off a fierce political battle with the old Kobold group, which the mumps group saw as unnecessarily killing application requests made by physicians. Never believing that mumps can do what it claimed it can do, the Kobold group demanded and got full control over application development and it as well as the funding that comes with it. They then cracked down on the small mumps group, eventually getting VHA leadership to kill all funding for mumps application development and labeling their development computers as scrap, the mumps supporters went underground, so to say, fighting to fulfill requests and get funding. They made surprising progress and eventually in 1981, the head of the national association of Veterans Administration Physicians, which looks out for the VHA's doctors, caught wind of the good that these small applications were doing. He arranged a bake off with the Kopel team that the mumps team won. The VHA thus decentralized our hospital information system, allowing local hospital teams to adopt grassroots effort applications and many adopted mumps. Then in December 1982, Congress approved $62 million to help scale up the implementation of of a field developed hospital information system centrally arranged around the MUMPS language and database. First named the Decentralized Hospital Computer Program, but then later renamed to the Veterans Health Information Systems and Technology Architecture, or VISTA. VISTA describes a set of 180 or so decentralized subsystems that are different but share a common data language and and a single lifelong database. By the 1980s, VISTA covered 169 medical facilities, 180,000 medical staff and over 8 million veterans, all without relying on a single vendor. In recent years the VHA has been transitioning to a massive new electronic health record system made by Cerner or Oracle Health. It's a very high profile deal worth something like $16 billion. And in recent days it has hit something of a snag, a grim reminder of just how hard this stuff is. In the early 1990s commercial vendors like Intersystems started advocating a shift away from the jokish sounding mumps name. In 1992 the mumps user group adopted the alternative name of just M language. And even this is a sly reference to mumps programmers tendency to be terse to to the point of being reductive. There's a lot of hate thrown at mumps. They call it an archaic dinosaur, a joke language that is hard to read and deserves to be replaced with something more modern. And the name seems to conjure nightmares of shoddy architecture and programmers without future job prospects. Though one can easily argue that mumps quirks and skill shortages can be its own form of job security. But mumps is well suited for what it does. It's fast, people love the deep database integration and it's been battle tested for years and across millions of people. And all this contributes to keeping mumps alive. Alright everyone, that's it for tonight. Thanks for watching. Subscribe to the channel, sign up for the Patreon and I'll see you guys next time.
