As I mentioned previously, the VA is making a formal open-source project and governing body for its VistA electronic health record (EHR) system. VistA was developed internally by the VA in a collaborative, open-source fashion, but it has essentially been open source within the VA, with no attention or collaboration with VistA users outside the VA.
There are several challenges that the Open Source Electronic Health Record Agent (OSEHRA) faces, and many of them sit squarely between technical and political issues.
The first question any open-source project must answer is: “Who can commit?” That’s almost immediately followed by: “How do we decide who can commit?” But to manage VistA OSEHRA, we must first ask: “How do we commit?” There is no version control system that currently works with VA VistA.
VistA is famously resistant to being managed via version control systems. The reason? Over the course of development of VistA, which predates most modern version control systems, updating was handled by a tool developed specifically for VistA. That system is called KIDS.
The problem with KIDS, and managing version control generally in VistA, is that MUMPS, the language/database that VistA is programmed in, happily lends itself to “source code in the database.” MUMPS is a merged database and programming language, and is an intellectual predecessor to modern NoSQL databases. MUMPS is a dominant force in healthcare, and despite comments to the contrary by its numerous critics, it has features that are ideal for healthcare. (This is another excellent place to shamelessly plug “Meaningful Use and Beyond,” which discusses the comprehensive use of MUMPS in healthcare.)
To understand the issue with MUMPS and VistA you must:
- Imagine developing an application using Node.js and MongoDB.
- Imagine that Node.js and MongoDB are one project.
- Imagine doing that for 30 years.
Given that in MUMPS the programming language is the database and the database is the programming language, certain problematic historical decisions were made. First, MUMPS’ executable code is sometimes included inside the MUMPS database. That makes it pretty impossible to map out what the source code is doing separately from what the database is doing.
Overlay the fact that the KIDS update system (think YUM for VistA) would update both the source code “on disk” at the same time as updating the system “in memory.” KIDS is like source code patches and system updates all rolled together.
OSEHRA must find a way to reconcile the KIDS process with a version control system. Without that, there is no way to reconcile a VistA development environment with a given production environment.
Without a modern distributed version control system (DVCS) powering VistA development, OSEHRA will be unable to run VistA development as a meritocracy. The technology enables multiple parties to participate as “core VistA developers.”
Without a DVCS, the VA had to rely on a process for software based on “classes” of software. Class I software was released by the national VA office and was the core of the EHR installed at each VA hospital. Class II was software that was used regionally or at several hospitals. Class III software was software that was used locally at one VA hospital.
VistA programmers at each hospital were required to reconcile Class I patches from the national office (which came as KIDS patches) with local instances that included Class III software. Each KIDS patch had the potential for requiring a local hospital programming effort in order to reconcile with local software changes.
With a DVCS, multiple parties could develop “core” changes to VistA, freeing the VA from the top-down VistA development management that prevents outsiders from contributing back. Remember, one of the largest “outsiders” to the VA is the Resource and Patient Management System (RPMS), which is a VistA fork extensively developed and improved by another federal agency, the Indian Health Service (IHS).
The KIDS- and Class-based software deployment model essentially made interagency cooperation between IHS and the VA impossible. There was no way for another “master” copy of the EHR to exist in cooperation.
To solve this problem, OSEHRA is betting heavily on Git and creating a project called SKIDS. From that project’s page:
This project will design and implement “Source KIDS” in order to represent VistA software in a source tree suitable for use with modern version control tools. Once deployed, SKIDS will make it possible to exchange source code and globals between VistA instances and Git repositories.
“Globals” in MUMPS means “the database,” which is different than most programming languages. With that explained, you can see that this project is intended to address exactly the problem that I have just outlined.
There is no guarantee that OSEHRA will be successful. Not everyone in the VA bureaucracy is keen on the notion of truly open-source VistA. Those of us in the VistA community outside the VA are apprehensive. We want to believe that OSEHRA is for real and will actually become the true seat of VistA development that is friendly to outsiders like us and run as a transparent open-source project. The single most important thing that OSEHRA can do to ensure the success of a truly open-source VistA process is to tackle and handle these challenges well.
The fact that OSEHRA is addressing these problems head-on is a very good sign. The emphasis on Git has been obvious from early days. The new SKIDS project indicates that there is a distinct lack of pointy-haired bosses at OSEHRA. They might be biting off more than they can chew, but there is no confusion about identifying the problems that need solving.
There are other major challenges facing OSEHRA, but almost all of them are manageable if a collaborative development process is created that lets the best ideas about VistA bubble to the top. Most open-source projects simply take for granted the transparency afforded by a version control system, and almost all theory about how to manage a project well are based on the assumption of that transparency. So, this problem really lives “underneath” all of the other potential issues that OSHERA will face. If it can get this one right, or mostly right — or even “leastly” wrong — it will be a long way toward solving all of the other issues.