What is VistA Really

From VistApedia
Revision as of 08:55, 21 June 2007 by Ftrotter (talk | contribs) (What do you mean by...: liked VistA RPC)
Jump to: navigation, search

VistA is a Electronic Health Record programed by Federal (US) employees working for the Veterans Association for several decades. Because it was developed by Federal Employees, it is available under a Freedom of Information Act (FOIA) request. The version of VistA available directly from the US Government is usually referred to as FOIA VistA.

But what is exciting about that? What is VistA really? Why do people have such strong feelings about it? This is the WorldVistA wiki, and we tend to fans of VistA, so here is the page that give some insight to why is great about VistA.


Licensing of FOIA VistA

It is a common mis-conception that VistA is "Open Source" software. Technically, VistA is in the public domain. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. FOIA VistA does meet the definition of "Free Software".

The fact that VistA can be proprietary software AND free software creates an ongoing tension between different portions of the VistA community. For instance WorldVistA has a policy of releasing software under the GPL. The GPL is a "keep-it-free" license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization.

What do you mean by...

The first barrier to really understanding VistA is one of overlapping vocabularies. Often people who are technically savy have a more difficult time with this than those with less technolgical experience. This problem is directly related to the age of VistA. VistA developed in parallel with many technologies that we take for granted. Often names for technologies in VistA overlap with the names for more common technologies and give tremendous headaches to new VistA developers.

RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This standard meaning of RPC is based on the same idea as the VistA RPC mechanism, but otherwise bears no resemblance. CPRS connects to VistA using the VistA RPC methods, so it is an important part of the VistA technology model, but its name often causes confusion with those familiar with the more common meaning of RPC.

There are two things that you can do to avoid being confused, first, do not assume that you know what a "VistA person" means when they use these technological terms, and read the Confusing Terms section of this website.

Your programming language is named after a disease?

VistA is written in MUMPS. There are several facts about MUMPS that often confond first time programmers.

  • MUMPS is not a C-based syntax, most modern programming languages are so often MUMPS code looks strange to outsiders
  • MUMPS is not white space invariant. This means that you cannot indent which will really bother you if you like python (which forces indentation)
  • MUMPS is its own database, but its not SQL. Its a Hierarchical Database that is ideally suited to healthcare
  • Globals means something in the permenant database, not the typical programming meaning.
  • MUMPS often behaves like an operating system . Some implementations of MUMPS were operating systems.

Business people might be a little jarred by some of the business implications of MUMPS.

  • There are very very few qualified MUMPS programmers
  • It takes a competent computer scientist much longer to learn MUMPS than other languages
  • Because they are rare MUMPS progammers are often expensive

MUMPS is too often written off as an obscure language here are some of the really good things about MUMPS

  • Excellent string handling
  • The database is really really good, especially for healthcare
  • It is unbelievably fast, it was designed to run on ancient hardware, so it flys on modern hardware.

VistA is a command line program. CPRS is the GUI

Many many people who have used VistA think that CPRS is VistA. Most of VistA is what is known as "roll and scroll" or a terminal application. VistA was designed long before monitors where capable of complex graphics displays. Old monitors that only displayed text were called terminals. Modern computers use Terminal Emulators which allow modern computers to interface with applications as though they were terminals.

Much of VistA is only available on terminals. CPRS is a GUI client written in delphi that uses VistA-RPC calls to connect to VistA. Most of the underlying architecture of VistA will not be discussed here, but it is important to clarify that CPRS is only part of what VistA has to offer.

Note: insert VistA architecture diagram here.

Many people unjustly dismiss terminal applications. GUIs make learning programs faster, terminals make using programs faster. Once the initial learning curve is overcome terminals offer faster data entry and better response times than most modern GUI applications. When given the choice experienced users often prefer the terminal, and often lose productivity when forced to use GUIs.

Often clinicians need graphical displays that are not possible in terminal applications. CPRS is intended to perform most of the common clinical functions in a GUI environment.

What is CPRS?

CPRS is the GUI for VistA. It takes a small percentage of the underlying VistA functionality and presents it in a graphical fashion. CPRS is often criticised for being "long in the tooth" (that means too old for you Yankees). It is written in Delphi which is no longer a popular programming language. Like the rest of VistA CPRS was written when computers were much slower, and as a result CPRS is very light-weight. While the community is seeking a Compelling CPRS Replacement CPRS itself continues to run on computers that are too old to run any commonly deployed proprietary EHR systems.