|
|
|||||
The software behind the VA health care transformationA review of Phillip Longman's book "Best Care Anywhere."
I'm beginning to think our blind spot about the VA and VistA comes from the sheer magnitude of the whole achievement. Longman's modest-length book is just an introduction to the swirling mass of issues that come with this topic: what VA's quality program has to say about health care, about business motivations, about government, about software development, even about ordinary people and how they handle the most important aspects of their own lives. There's just too much there for us to absorb, and the lessons of VistA force us to relinquish too many prejudices. I'm beginning to make the necessary shift to understanding VistA after talking to doctors, hearing from the people porting it to new environments, and now reading Longman's book. For other people without so many contacts in the health care field, his book is a good start. Don't expect it to answer all your questions, but just to make you uncomfortable enough to change the way you think -- and act. I'll focus on the development and technical aspects of VistA in this blog, because I'm writing for a computer technology website. But we should recognize the big points made by Longman, a journalist with a clear public policy agenda:
There's a lot more in this pithy and readable book, such as how to encourage providers to report errors and how to expand the VA health care system. I'll let you get the book for yourself to enjoy the details. I'll turn now to the software-related issues raised by the book. Bottom-up development wins bigVistA software was most decidedly a bazaar, not a cathedral. It was conceived by doctors in the late 1970s, and built either by health care providers or by programmers working closely (sometimes having chairs literally side by side) with health care providers. VistA is actually a loosely interconnected system containing over 100 integrated, patient-focused applications. Distributed development started because many different doctors had bright ideas at about the same time. The distributed approach continued despite (perhaps even because of) overt persecution. When the developers tried to get together to formalize their relationships, they were discovered and disciplined (through firings or having their computers confiscated) because they were bucking the official mainframe-based IT team. The developers' tenuous position was reflected in the name they picked for themselves, the Hard Hats, and even more in the name attributed to them later by the head of the VA: the Underground Railroad. Conceptually, VistA also emerged in a bazaar-like fashion. No one originally thought of the comprehensive life-long health management system VistA has become. Rather, each piece of the system emerged from a narrow need recognized by a health care provider: keeping track of diagnoses, analyzing diabetic nutrition, ensuring that medicine was administered to patients properly, and so on. Eventually, once the VA administration got on board the railroad, everything was linked together. It's a truism that open source software development (and perhaps all software development ) is best driven by the people who will ultimately use it. So we can understand why VistA meets certain essential needs -- such as allowing an emergency room doctor enter an order within a few seconds -- that are missed by most proprietary software in the health care field. But I find it surprising that the system could work so well when each piece was developed in isolation. Perhaps the software used can provide a clue. The MUMPS language and databaseVistA, like most proprietary products offered for sale to health care providers, is written in a language called MUMPS, invented at Massachusetts General Hospital in 1966 and standardized as M by ANSI and ISO. MUMPS is little more than an interface to a hierarchical, key-value database (pretty much an associative array). What SQL is for relational databases, MUMPS is for this hierarchical database. The rest of the language, to my mind, is just a thin wrapper with essential language traits such as flow control constructs and string manipulation. As a child of the' 60s, MUMPS shares the hippie libertarian trappings of languages from that time. For instance, it has no concept of packaging, and certainly no concern for "GOTOs considered harmful." Instead of formal functions, it lets a programmer jump to a label at any point in the program, even in another file. However, GOTOs are not required for MUMPS programs any more than they are for C programs, and MUMPS has features that modern programmers expect, such as parameter-passing, localizing variables to particular scopes, block structure, etc. It also comes with features to write applications that use multiple, cooperating processes. Perhaps this extreme open architecture for programs made integration easy. But tying programs together isn't the only task in integration; data from one program must also be accessible to others. Here we turn to the hierarchical database. Persistence in MUMPS is achieved simply by marking data as "global," which is like tied variables in Perl. Every read or write to a global variable involves the file system. The VA, Department of Defense, and Indian Health Service have licensed, for use with VistA and its derivatives, a proprietary database called Caché from the company InterSystems. An open source implementation of MUMPS, led by K.S. Bhaskar and called GT.M, is available from FIS, a large public corporation, with support on commercial terms. GT.M has its own database and is popular for VistA implementations outside the Federal government. Most databases assign types to data. If one database calls an ID a Patient and another calls it a Client, you have to write special conversion code to tie them together. Things are even harder if Patient is stored as an integer and Client as a string. In MUMPS, everything is a string (a choice that was popular with other scripting languages as well, notably Tcl). MUMPS offers "canonical numbers," strings that encode numeric values and can be input to mathematical operations. So there's no such thing as data conversion problems. What you do need to do, however, is find the exact path to a data item. Unlike SQL, you can't simply ask the database to tell you everything it knows about a patient. You have to know where the patient is in the hierarchy. MUMPS provides just two simple functions for retrieving data: you can specify a node in the hierarchy, or start at an arbitrary point in the hierarchy and cycle through it in order, somewhat like an SQL cursor. While it may not be obvious how these very simple operations and data structures can produce highly interconnected, robust systems, the VA has proven that it can be done. The key to using such fundamental -- but powerful -- data structuring and representation is to create higher-level data abstractions that map real-world information at a higher level. Furthermore, you don't need to learn MUMPS unless you want to program VistA internals. VistA exposes its functionality through remote procedure calls, and open source wrappers provide access to this functionality from modern languages such as Python and Java, OVID from Medsphere being one example. If you'd like to learn more about VistA, help to add features so it can become the nation's electronic health record system, or just meet the fascinating people who work with it, check out the WorldVistA community. As Longman points out, doctors are moving quickly to install electronic record systems so they can benefit from government funding. To play in this space, VistA needs both more promotion and (according to one project leader, Joseph Dal Molin) changes to simplify deployment and configuration. Related: |
|||||
|
|||||
Comments: 12
Denise [19 August 2010 03:30 PM]
Good Post.
One teeny thing - VA is Veterans Affairs not Veterans Administration.
Andy Oram [19 August 2010 04:35 PM]
Apologies--that was a silly oversight, and I fixed it. Funny that all the people who reviewed this for me overlooked the error.
Ken McNamara [19 August 2010 07:04 PM]
I'm not surprised that was missed.
Although today it is formally the US Department of Veterans Affairs -- common usage interchanges VA with Veterans Administration.
That's probably because it was named the Veterans Administration until 1989.
Susan Rose [21 August 2010 03:25 PM]
Hello,
I am a VA nurse with 25 years there.
I remember paper charting and the switch to the blue screen VISTA to the CPRS Version of VISTA.
I just came back from a VA conference where the VA is moving forward, perhaps to a web based record.
What ever it is, I am sure it will turn out well.
My nursing practice has changed over the years. With the electronic medical record as marvelous as CPRS/VISTA I am able to do the detective work, quickly, giving the medical provider accurate information to accurately make a diagnosis or select the appropriate care, especially when time is of the essence.
Anticipating the next move (and not letting the medical provider make a mistake by overlooking a significant bit of data) is the work of every good nurse. At the VA, because of the computerized record, I can practice at a much higher level of critical thinking.
It was only last year that it was pointed out to me that CPRS/Vista is OPEN Source too! Since my daughter was already affiliated with the Ohio Linux Fest, I am also known as "Beth Lynn Eicher's Mom", I was asked to present at this convention on the this open source medial topic.
This quickly became a medical track after I learned that other Linux Fests were including medical tracks. If you would like see the medical track overview for the Ohio Linux Fest it is at http://www.ohiolinux.org/medical-track
Thank you for spreading the word
About the Great VA care as well as the Ohio Linux Fest.
Susan Rose RN MSN
Ohio Linux Fest Medical Track Chairperson
Sept 10-11-12 Columbus Ohio
suzenrose@verizon.net
oldmster [24 August 2010 04:58 PM]
Nice article - thanks for looking past the prejudices against M(umps) and seeing the results for what they are - an excellent system. Not because of (or in spite of ) the tools used, but because of the way it was developed.
I really like the 'What SQL is for relational databases, MUMPS is for this hierarchical database.' sentence. I've tried to make that point, but never said it that well.
Michael Zacharias [26 August 2010 01:36 PM]
Even though Mumps is "a child of the '60's" it can be programmed using a modern object oriented like programming language. Examples are Intersystems' Cache Object Script and Profile Scripting Language (PSL) available in Fidelity's PIP project which is built on top of GT.M.
SQL and Object Oriented database abstractions are also available in these projects making Mumps a modern/advanced development platform and not just "a child of the '60's."
Michael Zacharias
http://www.muumps.me
Carol Somer [27 August 2010 10:42 AM]
A great review of a terrific book -- as a child of the '60s myself, appreciate the appreciation for the oldies but goodies--in software and health IT as well as music! Sometimes old solutions bear repeating.
Miles Beckett [28 August 2010 10:51 AM]
Great post! I'm happy to see VistA get the attention it deserves in the technology community, and for the best practices of the VA system to come to light.
I'm a physician turned technology entrepreneur and I used VistA first-hand when I worked as a medical student at the San Diego VA hospital, and as a surgery intern at the Loma Linda VA hospital.
The VA is an incredible healthcare system. I was constantly amazed at how good their outcomes were with patients who were much sicker on average than the general population. I always felt like the VA was this hidden gem within an otherwise terrible healthcare system that we have here in the US.
It was pretty clear to me (as a meta-thinking geek) that the success of the VA could be attributed to the PROCESSES they had put in place, rather than to the individuals that actually worked there. Don't get me wrong, the VA has excellent staff, but it's often the exact same residents and attendings working at the VA who also cover medical services at nearby University and private hospitals. The difference was the organizational structure, not the people.
The VistA system is a key component to the successful implementation of the VA's medical best practices. It enforces charting rules and provides ridiculously deep and thorough access to patient information. I remember accessing patient information at the SD VA for a guy who was visiting from Kansas City and I was able to pull up his ENTIRE medical history with a few keyboard strokes.
Non-physicians reading this will say, "Duh, well of course you could do that. Obviously." Physicians and nurses reading this who haven't worked at the VA will GASP.
It seems so obvious that pulling up a patient's complete medical history from any terminal should be "standard of care" in US hospitals but unfortunately it isn't. Pulling up his chart made me feel like I had performed a MIRACLE compared to my typical experience working at the University and private hospital where it was truly impossible to get any medical history whatsoever about patients who weren't in the local system.
In most hospitals there isn't even interoperability between the ER, ICU, and Floor computer systems. Seriously. We would have patients transferred from the ICU to the floor and we'd have almost NO ACCESS to any of their vital data from the time they were in the ICU (drugs, vitals, chemistries, etc.). At best we might get a paper printout. It was madness.
I learned that VistA was open source when I was a medical student, and I was shocked that it hadn't been adopted by every hospital in the country. It was free software! Yeah, the UI was nothing to write home about, but slap a pretty GUI on it and you could sell it to hospitals around the country. Unfortunately, as noted in this post, there are powerful business forces preventing quality long-term healthcare for the general population, and hospitals simply aren't interested in paying for "yet another" technology upgrade to improve patient care unless it will make them money. Good patient care doesn't make hospitals money. Billing for procedures and services does.
I left medicine for a lot of reasons, but one of them was definitely my frustration with how archaic and backwards the heathlcare system is. Once out, I considered starting an EMR company with VistA at its core, but my frustrations with the medical industry and concerns about the inherently anti-patient business model made me decide otherwise. Are their for-profit companies selling VistA right now? It's still something I might do down the line.
In the meantime, I hope that we can find a way as a society to change how we finance our healthcare system, and I also hope that VistA will get broader support and adoption throughout the medical community.
Andy Oram [28 August 2010 06:30 PM]
I've been enjoying and learning from the excellent comments on my blog. In response to Miles's specific question about companies that market VistA, there are two that were represented at the recent O'Reilly Open Source conference; Medsphere and vxVistA. See my blog http://radar.oreilly.com/2010/07/vista-scenarios-and-other-cont.html
Torkild Smith [16 September 2010 02:42 AM]
Well written.
And I also like the 'What SQL is for relational databases, MUMPS is for this hierarchical database.' sentence. It is very well formulated!
GPHC [ 1 October 2010 05:32 AM]
Great article. Can you please check this out and tell me what you think?
http://www.mumps-migration.com/index.php?option=com_content&task=view&id=12&Itemid=1
Katie [17 November 2011 07:22 AM]
I know I'm a little late but - great article! I'm working on building a timeline of the history of electronic health records and this post has certainly been helpful. Thanks for your insight.