OSEHRA 2014: Modernizing the VistA GUI

Roger A. MaduroAs we approach the 2014 OSEHRA Open Source EHR Summit, the topics of EHR Usability and EHR web enablement have become major points of discussion. This article is a quick attempt to summarize one of the key developments in this area. Sidney Tarason from Astute Semantics has produced groundbreaking prototypes for VistA that could shape the modernization effort moving forward for not just VistA, but for all EHRs based on the polymorphic MUMPS database (about 95% of all electronic health record (EHR) systems in the United States).

Tarason has produced a series of enhancements to VistA using the EWD.js platform. EWD.js is a development framework for creating browser-based versions of VistA, the EHR developed by the US Department of Veterans Affairs (VA) and other MUMPS-based EHRs with all of the benefits of a web application. These enhancements eliminate the current dependence on specific operating systems. That means that any modern device that can use a browser will be capable of interacting with VistA or other MUMPS-based EHR software. Currently, the VA is forced to use Microsoft Windows as their desktop operating system. EWD.js will enable VA user to utilize any device running any operating system including iOS, Android, Firefox OS, and Linux devices. Installation on each machine would no longer be required. Simply updating the code on the server would result in the desired changes for users the next time they open the application. Another significant advantage is that the web apps require less training to use since they are closer to the applications that people are used to using today.

Sidney Tarason

According to Tarason, “In the past, critics have claimed that the VistA security regulations are not capable of being enforced in coordination with EWD.js.” To address this concern, Astute Semantics has created a version of the VistA RPC broker that is compatible with WebSockets-a more modern form of web connectivity that is used by EWD.js. The Remote Procedure Call (RPC) broker is the component on the client side that allows the VistA Graphical User Interface (GUI) to contact a VistA server. This allows for the execution of all the legacy rules and access regulations just as they have been classically instated into the Delphi versions of CPRS and other VistA applications.

Delphi is an integrated development environment for applications which compiles code using an Object Pascal derivative of Pascal. One drawback affecting the Delphi applications being used within the VA is that they are limited to use on the dying Microsoft Windows operating systems. Another is that the compiler itself is notoriously difficult to configure for proper VistA alterations.

CPRS stands for Computerized Patient Record System and it is the most prevalent GUI, by far, that clinicians use at the VA. It is the interface that health care providers use to update and analyze patient health records. In order to use CPRS with and tablets and mobile devices, medical facilities now have to use Virtual Machine (VM) technologies that render the pages on the screen. It works but the results are not pretty and it uses a huge amount of resources. This is what Oroville Hospital has had to do in order to use VistA on iPads (Oroville Hospital, which self-implemented VistA, is one of the first hospitals in the world to fully migrate to iPads for physicians and nurses). At the same time, Oroville Hospital has been successfully developing its own applications, such as the scheduler, using EWD.js, and these apps are beautifully designed, usable, and run natively on the iPads and Android-based tablets.

Tarason is using EWD.js to connect the client-side GUI to the server. In effect, Tarason is using EWD.js to manage the extraction of data from VistA to the GUI. EWD.js was developed by Rob Tweed. It is based on the increasingly popular Node.js framework. Tweed wrote a Node.js module for use with MUMPS. Node.js is a server-side implementation of JavaScript, the language that grew up on and was previously found only in web browsers. Node.js takes the JavaScript language into the enterprise. Its advocates argue that it also provides a significantly simpler alternative to the Java EE architecture, yet offering all the capabilities of a Java EE Platform. What Tweed has made possible is a very close integration of JavaScript and MUMPS, in a way that allows a controlled and low-risk migration of MUMPS applications to the powerful and modern Node.js platform and JavaScript language.

Over the last several years, major companies have begun migrating their Java EE Platform to a Node.js platform. This includes major companies such as EBay, PayPal and Walmart. The extent of this transition is summarized in this Infographic.

The story of a conversion from Java to Node.js at PayPal is particularly insightful. PayPal managed to re-create their Java-based application layer in Node.js with fewer development resources than what they would have used in any other platform. The performance increase was substantial. The new version of their application was capable of handling twice the request per second on a single core! The Java counterpart was running on five cores. There was also a 35% decrease in response time which resulted in pages being served 200ms faster than before.

Rob Tweed

"If big brands and high volume applications rely on Node.js, why shouldn't our healthcare and wellbeing?" Tarason has said when asked about the future of EHR software. Tweed summarizes the advantages of using his open source Node.js module, EWD.js, to modernize the VistA EHR in this article. Tweed discusses in detail why he believes that Node.js is superior to the Java EE Platform for modernizing MUMPS-based EHRs, in particular, VistA, and web-enabling them. In another article, Tweed details the work that went into making Node.js work with MUMPS.

Tarason's work received high praise from one of the people most actively promoting the modernization of VistA. John Willis, writing in his blog, YOUNG MUMPSTER, says:

VistA is about to have long-awaited modern user interfaces thanks to the highly commendable efforts of Sidney Tarason at Astute Semantics, which have a “wow factor” I haven’t ever before seen in this space. MUMPS and VistA users now have two open-source choices for building web apps that access MUMPS and VistA data: Rob Tweed of M/Gateway Developments has released the elegant, modern, and fast EWD.js, exposing MUMPS and VistA within the highly popular Node.js environment, while I personally have released CFMumps, which provides a cohesive high-level API for developing MUMPS and VistA web apps in ColdFusion and Railo–both environments that sit firmly in the J2EE model, while exposing a highly-simplified view thereof. Both are great candidates for VistA and MUMPS exposure and modernization in the web space...

This is certainly high praise coming from one of the leading advocates of the alternative approach of using J2EE and the developer of the leading application that competes with EWD.js, CFMumps. Willis does add two very important caveats. First, he points out that the community needs to continue “evolving the core technologies of VistA, which means MUMPS code, and improving MUMPS code should involve evolving the MUMPS language.” And he emphasizes that this “has to be a community process, as the vendors have no reason to care, and the VA is unlikely to start caring.”

Proofs of Concept

Astute Semantics has created convincing prototypes of VistA modules that can port key VistA functionality into modern browser-based applications and devices. These prototypes have been created using EWD.js. As detailed below, Tarason has created working GUIs for CPRS, Fileman, and VistA Template editor. Collectively they serve as proof of concepts for modernization of both the VistA GUIs (such as CPRS and Capri) as well as the roll-and-scroll portions of VistA using EWD.js. Astute Semantics' new RPC broker is the foundation for their CPRS Evolution prototype. The key purpose of this prototype is to show that this RPC broker can utilize websockets for any Delphi to browser conversion for VistA while still adhering to the legacy VistA security measures.

CPRS Evolution

CPRS Evolution is the Delphi to HTML5, proof of concept. CPRS Evolution runs on the prototype version of the VistA RPC broker for websockets developed by Astute Semantics. This means that the same security and access rules built into VistA can be applied identically to the way that they are in the existing Delphi applications, silencing previous critics of the ability for EWD.js to enforce VistA security regulations. CPRS Evolution mirrors the classic CPRS in terms of functionality, but it lives in the browser and it could be used directly in iPads and Tablets.  It also allows for multiple patient records to be open at the same time via tabs.  A video and screenshots for CPRS Evolution can be found here.

CPRS Evolution coversheet of one patient record just before adding a second patient record tab


Fileman GUI

Fileman is the database management system used for medical applications for the Department of Veterans Affairs.  It was written by George Timson in the late 1970s and early 1980s and originally designed to support complex information storage required by hospitals. With Fileman GUI, Astute Semantics has addressed several limitations which apply to the classic Fileman.   Some of the key enhancements are the ability to have multiple files open simultaneously through the use of tabs, the capability to view/edit multiple fields in a file at the same time and "Google-like" smart search.

Specifically, the highly complex translation of Fileman performed by Astute Semantics; from the roll and scroll to the browser GUI—has shown the promise of finally winning the war against the blue screen. 

"…this is a much better and more comprehensive GUI than anything that has been put on FileMan in 35 years, to my knowledge." - George Timson, Creator of Fileman

In addition to the roll and scroll portion of VistA, legacy desktop applications need to be converted to the web as well. For the VA, and private sector VistA adopters, this transition would greatly decrease the logistical challenge of deploy patches to applications that are in use in their VistA implementations. Node.js applications also allow for real-time connectivity, something that has been lacking up to this point.

A video for the Fileman GUI can be found here.

Fileman GUI with multiple files opened in tabs

Template GUI

When a provider is with a patient, it is more time efficient to utilize a template when taking down information as opposed to writing free text. The template editor is used to create templates. They are developed and edited using the boilerplate method seen here.

Fileman GUI with multiple files opened in tabs

Astute Semantic's Template GUI prototype allows for the creation and modification of VistA Templates in a brand new way. In addition to boilerplate modification, Template GUI also allows for the templates to be manipulated in a format that is far closer to that of how the template appears in use as seen here.

Template GUI by Astute Semantics

Astute Semantics is making a deliberate attempt to cater to the Clinical Application Coordinators (CACs) with Template GUI and an upcoming Reminder Dialog GUI prototype. Both of these applications serve the same purpose for their respective areas of VistA, which is to edit templates and reminder dialogs as they appear when in use.  These pieces of software replace the template editor from CPRS and the reminder dialog editor that is currently only accessible in the terminal/green screen part of VistA. A video and screenshots for the Template GUI can be found here. A video and screenshots for the Reminder Dialog GUI is scheduled for release by the end of September.

VistA GUI Modernization at the OSEHRA Summit

The following presentations will address the VistA/MUMPS GUI modernization issues at the 2014 OSEHRA Open Source EHR Summit. Other presentations, not listed, will also address VistA/EHR usability issues.

VistA Tools & Technologies Track.

Wednesday, September 3rd, Early Afternoon Session (1:15 PM – 2:45PM)

Composable Software, Collaborative Development and the CareWeb Framework:
Doug Martin, M.D., Regenstrief Center for Biomedical Informatics

VistA Evolved: CPRS Evolution, Fileman GUI, Template GUI, Reminder Dialog Editor GUI
Sidney Tarason, Astute Semantics

Chromecast and Its Potential in Healthcare IT:
Rob Tweed, Ph.D., M/Gateway Developments Ltd.

VistA Applications Track,
Thursday Sept. 4th, Afternoon Session (3:30 PM – 5:00 PM).

VA Enterprise Health Management Platform (eHMP):
Marcia Pickard & Peter Koutsovitis, U.S. Department of Veterans Affairs, VHA; David Waltman, ASM Research

VistA Tools & Technologies Track
Friday, Sept. 5th, Morning Sessions (8:30AM to 10:15AM)

VistA Application Developer Sandbox:
Salim Semy, Dave Hill, Liam Morley, The MITRE Corporation

Mobile Track.
Friday, September 5th, Morning Sessions (8:30AM to 10:15AM).

Developing Applications for Mobile Devices: Going Native?:
Rob Tweed, Ph.D., M/Gateway Developments, Ltd


Last Updated 9/3/2014.


MUMPS/VistA Evolution and J2EE

I think it's worth noting that although ColdFusion and Railo are typically deployed in J2EE servlet containers such as GlassFish or Tomcat, and can thus fit quite comfortably into a larger J2EE architecture, neither CFMumps nor Coherent Logic Development requires or suggests that an application use all the many moving parts of traditional J2EE deployments (service buses, enterprise javabeans, etc). While you certainly could go that route, the default CFMumps technology stack has no more moving parts than that of EWD.js.

Per MUMPS evolution, I was speaking of the MUMPS programming language: we need to look at evolving it in the way that other older languages have evolved, such as C, C++, Fortran, COBOL, etc. The main challenge is that the MDC (MUMPS standards body) has not been productive for years.

Coherent Logic Development is currently in the process of updating its in-house MUMPS implementation to support most of the proposed MDC type "A" extensions, and the proposed MDC "Millennium" standard. Stay tuned.