<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://vistapedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ftrotter</id>
	<title>VistApedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://vistapedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ftrotter"/>
	<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php/Special:Contributions/Ftrotter"/>
	<updated>2026-04-27T17:13:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=11086</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=11086"/>
		<updated>2011-09-09T01:52:13Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: cleanups and OSEHRA links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is an &#039;&#039;&#039;Electronic Health Record&#039;&#039;&#039; programmed by federal (US) employees working for the Department of Veterans Affairs (previously the Veterans Administration) for several decades. Because it was created by federal employees, it is available to the public 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.) &lt;br /&gt;
&lt;br /&gt;
== A Disputed History ==&lt;br /&gt;
The [http://www.hardhats.org/history/hardhats.html history of VistA available from Hardhats.org] indicates that VistA development began in the late 1970&#039;s. VA documents, such as the [http://www.va.gov/vista_monograph/ VistA Monograph], date the start of VistA to the mid 1980&#039;s. Why the discrepancy? In short, the version at Hardhats is the real version. It documents how VistA moved from an underground movement to a celebrated system.&lt;br /&gt;
&lt;br /&gt;
VistA (and the vision that led to it) was a programmer-led counter-culture within the VA. Programmers and administrators often risked their jobs (and some lost them) in order to develop a system that would satisfy clinical needs at local hospitals. Each programmer was primarily interested in the needs of the clinical users who worked at the same local VA hospital that the programmer worked at. Nevertheless, they desired that the software they created would be able to be used throughout the VA system.&lt;br /&gt;
&lt;br /&gt;
The software platform that eventually resulted was unique because it represented a combination of modules developed by a distributed team. The method of the creation of VistA was, therefore, a precursor to the distributed &amp;quot;open source&amp;quot; development style now popular today. &lt;br /&gt;
&lt;br /&gt;
Even the original name reflected the nature of its development: Decentralized Hospital Computer Program (DHCP). (The name &amp;quot;VistA&amp;quot; was not chosen until much later.)&lt;br /&gt;
&lt;br /&gt;
The VA officially dates &amp;quot;VistA&amp;quot; from the time they approved the software, of course, but, it was using the VistA software (in some of its hospitals) long before it was officially approved. &lt;br /&gt;
&lt;br /&gt;
The VA bureaucracy is primarily concerned (as it should be) with the care of veterans. As one can imagine, this is a highly political issue with tremendous pressure from Washington. Enlightenment with regard to the development of VistA is largely independent of bureaucratic ability. When the VA is lead by VistA-enlightened leadership, VistA tends to thrive and move forward. When the VA is led by those ignorant of VistA and software generally, VistA tends to stagnate. &lt;br /&gt;
&lt;br /&gt;
The tension between those who actually make VistA work well (the VistA programmers, ADPACs, and CACs) and the bureaucracy that is in charge of the VA resources still exists. In many ways the purpose of WorldVistA is to ease this tension. WorldVistA was intended to be a neutral meeting place that can include VA programmers and VA bureaucrats that is external to the VA.&lt;br /&gt;
&lt;br /&gt;
Recently the VA has created a new non-profit called [http://www.osehra.org/ OSEHRA] to manage the development of VistA and to coordinate between VistA development inside and outside the VA. &lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
Despite the way in which VistA was developed, there is a common misconception that VistA is &amp;quot;open source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result FOIA VistA can legally be the basis of both proprietary software and &amp;quot;free and open source&amp;quot; software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the strict definition of &amp;quot;free software&amp;quot;]. VistA can also be licensed under a combination of proprietary and Open Source license, which is often called a hybrid approach.&lt;br /&gt;
&lt;br /&gt;
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 [http://en.wikipedia.org/w/index.php?title=GPL General Public License (GPL)]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents one from controlling the software source code and making it unavailable to others. However, some VistA vendors favor licenses (such as the Apache License), that allow for Open Source development to be used in proprietary products. &lt;br /&gt;
&lt;br /&gt;
Some in the VistA community favor the open core concept, where a proprietary-friendly Open Source license is chosen for the core software package. This allows both Open Source and proprietary modules as add-ons to the core. Currently this is the licensing approach taken by [http://www.osehra.org/ OSEHRA] &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
A barrier to understanding VistA is often one of overlapping vocabularies. Paradoxically, people who are technically savvy may have a more difficult time with the vocabulary than those with less IT experience. This is because VistA was developed in parallel with many technologies that today we take for granted. Names for technologies in the time-honored VistA lexicon may overlap with names of more recent technologies (causing a degree of confusion for new VistA developers). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;RPC&amp;quot; is a good example. When people outside the VistA Community refer to [http://en.wikipedia.org/wiki/Remote_procedure_call RPC], they usually are referring to a somewhat ubiquitous *nix messaging system. VistA developers and users, in contrast, speak of the the [[VistA RPC]], a method of connecting CPRS clients to a VistA server. While the more recent XML-RPC network protocol is based on the same basic idea as the [[VistA RPC]], on closer inspection they do bear little resemblance to each other.&lt;br /&gt;
&lt;br /&gt;
Here are some other [[Confusing Terms]].&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several characteristics of MUMPS that can confound first-time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point. With MUMPS you must be careful where you indent using spaces. Putting multiple spaces in some places is not allowed at all. (This will really bother those who like Python which forces indentation as part of the syntax instead of using periods as MUMPS does).&lt;br /&gt;
* MUMPS is its own database, but its database is not SQL. It&#039;s a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare. MUMPS can be thought of as an old-school NoSQL database. &lt;br /&gt;
* Global variables mean something in the permanent database, i.e., global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (variables that are shared within all parts of a single program are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS actually were the operating systems on the machine. This legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Some business analysts have also expressed apprehension regarding the prevalence and longevity of MUMPS, and some misconceptions have been propagated as a result.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;We will not be able to find a MUMPS programmer.&amp;quot; While there are more MUMPS programmers than there are for SNOBOL (or other programming languages of the same generation), there clearly are less than for other more common programming languages. You can find MUMPS programmers, but they are retiring and not being replaced by new programmers who have an interest in learning the language. So this is certainly a problem, but it is not an absolute.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;It takes a competent computer scientist much longer to learn MUMPS than other languages.&amp;quot; MUMPS maintains backward compatibility to ideas that recent computer science graduates don&#039;t see much (except in assembly language programming), such as the GOTO command or line tags. It does take programmers longer to pick up, but it is possible.&lt;br /&gt;
 &lt;br /&gt;
* &amp;quot;Because they are rare, MUMPS programmers are often expensive.&amp;quot; Just like diamonds, platinum, and titanium. &lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language having little or no value (often by competing database vendors). Here are some of the really good things about MUMPS, though.&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* It is unbelievably fast. It was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== The terminal interface versus the CPRS GUI ==&lt;br /&gt;
&lt;br /&gt;
Many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. However, CPRS is only a GUI frontend for some of the functions the VistA server/database can provide. Many of the other functions are accessed by &amp;quot;command-line&amp;quot; or &amp;quot;roll and scroll&amp;quot; terminal applications.&lt;br /&gt;
&lt;br /&gt;
Because clinicians often need graphical displays (for charts, for example) that are not possible in terminal applications, CPRS was created to perform most of the common clinical functions in a GUI environment. CPRS is written in Borland&#039;s Delphi (Pascal). It uses VistA-RPC calls to connect to the VistA server/database. (For more clarification, read about the [[How_does_VistA_work|basic VistA architecture]].)&lt;br /&gt;
&lt;br /&gt;
However, VistA was initially designed before monitors were capable of complex graphics displays. Older monitors that only could display text were called &amp;quot;terminals&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Therefore, most of the functionality of the VistA server/ MUMPS database was initially accessed through terminal (&amp;quot;command-line&amp;quot; or &amp;quot;roll-and-scroll&amp;quot;) interfaces. In fact, much of VistA is still only available through such terminal applications (currently). (Many consumer-grade desktop computers use [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators], allowing them to interface with applications in the same way a terminal would.)&lt;br /&gt;
&lt;br /&gt;
Many people unjustly dismiss terminal applications. While GUIs may make learning to use a software programs easier, terminal applications are generally faster to use on a routine basis. Once the initial learning curve is overcome, terminals offer faster data entry and better response times than most GUI applications. When given the choice, experienced users often prefer the terminal (and lose productivity when forced to use GUIs). Text-based (i.e. terminal-based) applications are highly predictable about where they display information, whereas GUIs can often change the location of information on the screen and require time to manipulate the mouse around the screen to figure out where to enter data.&lt;br /&gt;
&lt;br /&gt;
A person who only rarely uses a program must usually figure out how to use it again every time. For such a person a GUI is generally a desirable interface, with pull-down menus that can eventually tell them which option to select.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the primary GUI for VistA. It is able to display part of the VistA system&#039;s total functionality in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians, but those without direct patient contact, such as pharmacists, may not have a well-developed GUI equivalent to display their own functions. They must use a traditional &amp;quot;roll-and-scroll&amp;quot; terminal interface. &lt;br /&gt;
&lt;br /&gt;
CPRS provides a very well-thought-out approach to its interfacing with VistA&#039;s capabilities. It is relatively easy to use, given its complexity and depth. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very customizable. In the VA, a &amp;quot;[[Clinical Application Coordinator]]&amp;quot; (CAC) is responsible for the care and maintenance of local installations of the CPRS client on clinicians&#039; computers. A competent CAC is capable of tuning CPRS in numerous ways to the preferences of individual departments or even individual clinicians. The CPRS menu can even link to other programs, so that clinical programs that are actually separate applications can appear to be a part of CPRS.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized for being &amp;quot;long in the tooth&amp;quot; (too old). It is written in Delphi (which is no longer as popular a programming language as it was in the mid 1980s). Like the rest of VistA, CPRS was written at a time when computers were much slower. As a result CPRS is quite lightweight and fast. While the IT community might seek a [[Compelling CPRS Replacement|compelling CPRS replacement]], CPRS itself is one of the only solutions that can run (and continues to run) on computers that are too old to run any other commonly deployed proprietary EHR systems.&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
* This page was originally written by Fred Trotter. Please send comments and suggestion to him directly at [http://www.fredtrotter.com his blog].&lt;br /&gt;
*The best description of the style of distributed software development is in a paper called [http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ &amp;quot;The Cathedral and the Bazaar&amp;quot;] by Eric Raymond.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=8351</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=8351"/>
		<updated>2011-08-02T22:41:25Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* A Cloudy History */ it is desputed, not cloudy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is an &#039;&#039;&#039;Electronic Health Record&#039;&#039;&#039; programmed by federal (US) employees working for the Department of Veterans Affairs (previously the Veterans Administration) 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.) &lt;br /&gt;
&lt;br /&gt;
== A Disputed History ==&lt;br /&gt;
The [http://www.hardhats.org/history/hardhats.html history of VistA available from Hardhats.org] indicates that VistA development began in the late 1970&#039;s. VA documents, such as the [http://www.va.gov/vista_monograph/ VistA Monograph], date the start of VistA to the mid 1980&#039;s. Why the discrepancy? In short, the version at Hardhats is the real version. It documents how VistA moved from an underground movement to a celebrated system.&lt;br /&gt;
&lt;br /&gt;
VistA (and the vision that led to it) was a programmer-led counter-culture within the VA. Programmers and administrators often risked their jobs (and some lost them) in order to develop a system that would satisfy clinical needs at local hospitals. Each programmer was primarily interested in the needs of the clinical users who worked at the same local VA hospital that the programmer worked at. Nevertheless, they desired that the software they created would be able to be used throughout the VA system.&lt;br /&gt;
&lt;br /&gt;
The software platform that eventually resulted was unique because it represented a combination of modules developed by a distributed team. The method of the creation of VistA was, therefore, a precursor to the distributed &amp;quot;open source&amp;quot; development style now popular today. &lt;br /&gt;
&lt;br /&gt;
Even the original name reflected the nature of its development: Decentralized Hospital Computer Program (DHCP). (The name &amp;quot;VistA&amp;quot; was not chosen until much later.)&lt;br /&gt;
&lt;br /&gt;
The VA officially dates &amp;quot;VistA&amp;quot; from the time they approved the software, of course, but, it was using the VistA software (in some of its hospitals) long before it was officially approved. &lt;br /&gt;
&lt;br /&gt;
The VA bureaucracy is primarily concerned (as it should be) with the care of veterans. As one can imagine, this is a highly political issue with tremendous pressure from Washington. Enlightenment with regard to the development of VistA is largely independent of bureaucratic ability. When the VA is lead by VistA-enlightened leadership, VistA tends to thrive and move forward. When the VA is led by those ignorant of VistA and software generally, VistA tends to stagnate. &lt;br /&gt;
&lt;br /&gt;
The tension between those who actually make VistA work well (the VistA programmers, ADPACs, and CACs) and the bureaucracy that is in charge of the VA resources still exists. In many ways the purpose of WorldVistA is to ease this tension. WorldVistA is intended to be a neutral meeting place that can include VA programmers and VA bureaucrats that is external to the VA.&lt;br /&gt;
&lt;br /&gt;
The common theme in the WorldVistA community is the interest in VistA and making the software better.&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
Despite the way in which VistA was developed, there is a common misconception that VistA is &amp;quot;open source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and &amp;quot;free and open source&amp;quot; software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the strict definition of &amp;quot;free software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [http://en.wikipedia.org/w/index.php?title=GPL General Public License (GPL)]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents someone from controlling the software and making it unavailable to others. However, some VistA vendors favor licenses (such as the Apache License), that allow for Open Source development to be used in proprietary products.&lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
A barrier to understanding VistA is often one of overlapping vocabularies. Paradoxically, people who are technically savvy may have a more difficult time with the vocabulary than those with less IT experience. This is because VistA was developed in parallel with many technologies that today we take for granted. Names for technologies in the time-honored VistA lexicon may overlap with names of more recent technologies (causing a degree of confusion for new VistA developers). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;RPC&amp;quot; is a good example. When people outside the VistA Community refer to [http://en.wikipedia.org/wiki/Remote_procedure_call RPC], they usually are referring to a somewhat ubiquitous *nix messaging system. VistA developers and users, in contrast, may speak of the the [[VistA RPC]], a method of connecting CPRS clients to a VistA server. While the more recent RPC is based on the same basic idea as the [[VistA RPC]], on closer inspection they do not bear much resemblance to each other.&lt;br /&gt;
&lt;br /&gt;
Here are some other [[Confusing Terms]].&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several characteristics of MUMPS that can confound first-time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally). With MUMPS you must be careful where you indent using spaces. Putting multiple spaces in some places is not allowed at all. (This will really bother you if you like Python (which forces indentation as part of the syntax instead of using periods as MUMPS does)).&lt;br /&gt;
* MUMPS is its own database, but its database is not SQL. It&#039;s a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare.&lt;br /&gt;
* Global variables mean something in the permanent database, i.e., global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (variables that are shared within all parts of a single program are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS actually were the operating systems on the machine. This legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Some business analysts have also expressed apprehension regarding the prevalence and longevity of MUMPS, and some misconceptions have been propagated as a result.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;We will not be able to find a MUMPS programmer.&amp;quot; While there are more MUMPS programmers than there are for SNOBOL (or other programming languages of the same generation), there clearly are less than for other more common programming languages. You can find MUMPS programmers, but they are retiring and not being replaced by new programmers who have an interest in learning the language. So this is certainly a problem, but it is not absolute.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;It takes a competent computer scientist much longer to learn MUMPS than other languages.&amp;quot; MUMPS maintains backward compatibility to ideas that recent computer science graduates don&#039;t see much (except in assembly language programming), such as the GOTO command or line tags. It does take programmers longer to pick up, but it is possible to do.&lt;br /&gt;
 &lt;br /&gt;
* &amp;quot;Because they are rare, MUMPS programmers are often expensive.&amp;quot; Just like diamonds, platinum, and titanium. &lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language having little or no value (often by competing database vendors). Here are some of the really good things about MUMPS, though.&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* It is unbelievably fast. It was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== The terminal interface versus the CPRS GUI ==&lt;br /&gt;
&lt;br /&gt;
Many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. However, CPRS is only a GUI frontend for some of the functions the VistA server/database can provide. Many of the other functions are accessed by &amp;quot;command-line&amp;quot; or &amp;quot;roll and scroll&amp;quot; terminal applications.&lt;br /&gt;
&lt;br /&gt;
Because clinicians often need graphical displays (for charts, for example) that are not possible in terminal applications, CPRS was created to perform most of the common clinical functions in a GUI environment. CPRS is written in Borland&#039;s Delphi (Pascal). It uses VistA-RPC calls to connect to the VistA server/database. (For more clarification, read about the [[How_does_VistA_work|basic VistA architecture]].)&lt;br /&gt;
&lt;br /&gt;
However, VistA was initially designed before monitors were capable of complex graphics displays. Older monitors that only could display text were called &amp;quot;terminals&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Therefore, most of the functionality of the VistA server/ MUMPS database was initially accessed through terminal (&amp;quot;command-line&amp;quot; or &amp;quot;roll-and-scroll&amp;quot;) interfaces. In fact, much of VistA is still only available through such terminal applications (currently). (Many consumer-grade desktop computers use [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators], allowing them to interface with applications in the same way a terminal would.)&lt;br /&gt;
&lt;br /&gt;
Many people unjustly dismiss terminal applications. While GUIs may make learning to use a software programs easier, terminal applications are generally faster to use on a routine basis. Once the initial learning curve is overcome, terminals offer faster data entry and better response times than most GUI applications. When given the choice, experienced users often prefer the terminal (and lose productivity when forced to use GUIs). Text-based (i.e. terminal-based) applications are highly predictable about where they display information, whereas GUIs can often change the location of information on the screen and require time to manipulate the mouse around the screen to figure out where to enter data.&lt;br /&gt;
&lt;br /&gt;
A person who only rarely uses a program must usually figure out how to use it again every time. For such a person a GUI is generally a desirable interface, with pull-down menus that can eventually tell them which option to select.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the primary GUI for VistA. It is able to display part of the VistA system&#039;s total functionality in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians, but those without direct patient contact, such as pharmacists, may not have a well-developed GUI equivalent to display their own functions. They must use a traditional &amp;quot;roll-and-scroll&amp;quot; terminal interface. &lt;br /&gt;
&lt;br /&gt;
CPRS provides a very well-thought-out approach to its interfacing with VistA&#039;s capabilities. It is relatively easy to use, given its complexity and depth. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very customizable. In the VA, a &amp;quot;[[Clinical Application Coordinator]]&amp;quot; (CAC) is responsible for the care and maintenance of local installations of the CPRS client on clinicians&#039; computers. A competent CAC is capable of tuning CPRS in numerous ways to the preferences of individual departments or even individual clinicians. The CPRS menu can even link to other programs, so that clinical programs that are actually separate applications can appear to be a part of CPRS.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (too old). It is written in Delphi (which is no longer as popular a programming language as it was in the mid 1980s). Like the rest of VistA, CPRS was written at a time when computers were much slower. As a result CPRS is quite lightweight and fast. While the IT community might seek a [[Compelling CPRS Replacement|compelling CPRS replacement]], CPRS itself is one of the only solutions that can run (and continues to run) on computers that are too old to run any other commonly deployed proprietary EHR systems.&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
* This page was originally written by Fred Trotter. Please send comments and suggestion to him directly at [http://www.fredtrotter.com his blog].&lt;br /&gt;
*The best description of the style of distributed software development is in a paper called [http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ &amp;quot;The Cathedral and the Bazaar&amp;quot;] by Eric Raymond.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=8350</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=8350"/>
		<updated>2011-08-02T22:36:52Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* Your programming language is named after a disease? */ they -are- a dying breed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is an &#039;&#039;&#039;Electronic Health Record&#039;&#039;&#039; programmed by federal (US) employees working for the Department of Veterans Affairs (previously the Veterans Administration) 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.) &lt;br /&gt;
&lt;br /&gt;
== A Cloudy History ==&lt;br /&gt;
The [http://www.hardhats.org/history/hardhats.html history of VistA available from Hardhats.org] indicates that VistA development began in the late 1970&#039;s. VA documents, such as the [http://www.va.gov/vista_monograph/ VistA Monograph], date the start of VistA to the mid 1980&#039;s. Why the discrepancy? In short, the version at Hardhats is the real version. It documents how VistA moved from an underground movement to a celebrated system.&lt;br /&gt;
&lt;br /&gt;
VistA (and the vision that led to it) was a programmer-led counter-culture within the VA. Programmers and administrators often risked their jobs (and some lost them) in order to develop a system that would satisfy clinical needs at local hospitals. Each programmer was primarily interested in the needs of the clinical users who worked at the same local VA hospital that the programmer worked at. Nevertheless, they desired that the software they created would be able to be used throughout the VA system.&lt;br /&gt;
&lt;br /&gt;
The software platform that eventually resulted was unique because it represented a combination of modules developed by a distributed team. The method of the creation of VistA was, therefore, a precursor to the distributed &amp;quot;open source&amp;quot; development style now popular today. &lt;br /&gt;
&lt;br /&gt;
Even the original name reflected the nature of its development: Decentralized Hospital Computer Program (DHCP). (The name &amp;quot;VistA&amp;quot; was not chosen until much later.)&lt;br /&gt;
&lt;br /&gt;
The VA officially dates &amp;quot;VistA&amp;quot; from the time they approved the software, of course, but, it was using the VistA software (in some of its hospitals) long before it was officially approved. &lt;br /&gt;
&lt;br /&gt;
The VA bureaucracy is primarily concerned (as it should be) with the care of veterans. As one can imagine, this is a highly political issue with tremendous pressure from Washington. Enlightenment with regard to the development of VistA is largely independent of bureaucratic ability. When the VA is lead by VistA-enlightened leadership, VistA tends to thrive and move forward. When the VA is led by those ignorant of VistA and software generally, VistA tends to stagnate. &lt;br /&gt;
&lt;br /&gt;
The tension between those who actually make VistA work well (the VistA programmers, ADPACs, and CACs) and the bureaucracy that is in charge of the VA resources still exists. In many ways the purpose of WorldVistA is to ease this tension. WorldVistA is intended to be a neutral meeting place that can include VA programmers and VA bureaucrats that is external to the VA.&lt;br /&gt;
&lt;br /&gt;
The common theme in the WorldVistA community is the interest in VistA and making the software better.&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
Despite the way in which VistA was developed, there is a common misconception that VistA is &amp;quot;open source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and &amp;quot;free and open source&amp;quot; software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the strict definition of &amp;quot;free software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [http://en.wikipedia.org/w/index.php?title=GPL General Public License (GPL)]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents someone from controlling the software and making it unavailable to others. However, some VistA vendors favor licenses (such as the Apache License), that allow for Open Source development to be used in proprietary products.&lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
A barrier to understanding VistA is often one of overlapping vocabularies. Paradoxically, people who are technically savvy may have a more difficult time with the vocabulary than those with less IT experience. This is because VistA was developed in parallel with many technologies that today we take for granted. Names for technologies in the time-honored VistA lexicon may overlap with names of more recent technologies (causing a degree of confusion for new VistA developers). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;RPC&amp;quot; is a good example. When people outside the VistA Community refer to [http://en.wikipedia.org/wiki/Remote_procedure_call RPC], they usually are referring to a somewhat ubiquitous *nix messaging system. VistA developers and users, in contrast, may speak of the the [[VistA RPC]], a method of connecting CPRS clients to a VistA server. While the more recent RPC is based on the same basic idea as the [[VistA RPC]], on closer inspection they do not bear much resemblance to each other.&lt;br /&gt;
&lt;br /&gt;
Here are some other [[Confusing Terms]].&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several characteristics of MUMPS that can confound first-time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally). With MUMPS you must be careful where you indent using spaces. Putting multiple spaces in some places is not allowed at all. (This will really bother you if you like Python (which forces indentation as part of the syntax instead of using periods as MUMPS does)).&lt;br /&gt;
* MUMPS is its own database, but its database is not SQL. It&#039;s a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare.&lt;br /&gt;
* Global variables mean something in the permanent database, i.e., global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (variables that are shared within all parts of a single program are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS actually were the operating systems on the machine. This legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Some business analysts have also expressed apprehension regarding the prevalence and longevity of MUMPS, and some misconceptions have been propagated as a result.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;We will not be able to find a MUMPS programmer.&amp;quot; While there are more MUMPS programmers than there are for SNOBOL (or other programming languages of the same generation), there clearly are less than for other more common programming languages. You can find MUMPS programmers, but they are retiring and not being replaced by new programmers who have an interest in learning the language. So this is certainly a problem, but it is not absolute.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;It takes a competent computer scientist much longer to learn MUMPS than other languages.&amp;quot; MUMPS maintains backward compatibility to ideas that recent computer science graduates don&#039;t see much (except in assembly language programming), such as the GOTO command or line tags. It does take programmers longer to pick up, but it is possible to do.&lt;br /&gt;
 &lt;br /&gt;
* &amp;quot;Because they are rare, MUMPS programmers are often expensive.&amp;quot; Just like diamonds, platinum, and titanium. &lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language having little or no value (often by competing database vendors). Here are some of the really good things about MUMPS, though.&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* It is unbelievably fast. It was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== The terminal interface versus the CPRS GUI ==&lt;br /&gt;
&lt;br /&gt;
Many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. However, CPRS is only a GUI frontend for some of the functions the VistA server/database can provide. Many of the other functions are accessed by &amp;quot;command-line&amp;quot; or &amp;quot;roll and scroll&amp;quot; terminal applications.&lt;br /&gt;
&lt;br /&gt;
Because clinicians often need graphical displays (for charts, for example) that are not possible in terminal applications, CPRS was created to perform most of the common clinical functions in a GUI environment. CPRS is written in Borland&#039;s Delphi (Pascal). It uses VistA-RPC calls to connect to the VistA server/database. (For more clarification, read about the [[How_does_VistA_work|basic VistA architecture]].)&lt;br /&gt;
&lt;br /&gt;
However, VistA was initially designed before monitors were capable of complex graphics displays. Older monitors that only could display text were called &amp;quot;terminals&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Therefore, most of the functionality of the VistA server/ MUMPS database was initially accessed through terminal (&amp;quot;command-line&amp;quot; or &amp;quot;roll-and-scroll&amp;quot;) interfaces. In fact, much of VistA is still only available through such terminal applications (currently). (Many consumer-grade desktop computers use [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators], allowing them to interface with applications in the same way a terminal would.)&lt;br /&gt;
&lt;br /&gt;
Many people unjustly dismiss terminal applications. While GUIs may make learning to use a software programs easier, terminal applications are generally faster to use on a routine basis. Once the initial learning curve is overcome, terminals offer faster data entry and better response times than most GUI applications. When given the choice, experienced users often prefer the terminal (and lose productivity when forced to use GUIs). Text-based (i.e. terminal-based) applications are highly predictable about where they display information, whereas GUIs can often change the location of information on the screen and require time to manipulate the mouse around the screen to figure out where to enter data.&lt;br /&gt;
&lt;br /&gt;
A person who only rarely uses a program must usually figure out how to use it again every time. For such a person a GUI is generally a desirable interface, with pull-down menus that can eventually tell them which option to select.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the primary GUI for VistA. It is able to display part of the VistA system&#039;s total functionality in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians, but those without direct patient contact, such as pharmacists, may not have a well-developed GUI equivalent to display their own functions. They must use a traditional &amp;quot;roll-and-scroll&amp;quot; terminal interface. &lt;br /&gt;
&lt;br /&gt;
CPRS provides a very well-thought-out approach to its interfacing with VistA&#039;s capabilities. It is relatively easy to use, given its complexity and depth. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very customizable. In the VA, a &amp;quot;[[Clinical Application Coordinator]]&amp;quot; (CAC) is responsible for the care and maintenance of local installations of the CPRS client on clinicians&#039; computers. A competent CAC is capable of tuning CPRS in numerous ways to the preferences of individual departments or even individual clinicians. The CPRS menu can even link to other programs, so that clinical programs that are actually separate applications can appear to be a part of CPRS.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (too old). It is written in Delphi (which is no longer as popular a programming language as it was in the mid 1980s). Like the rest of VistA, CPRS was written at a time when computers were much slower. As a result CPRS is quite lightweight and fast. While the IT community might seek a [[Compelling CPRS Replacement|compelling CPRS replacement]], CPRS itself is one of the only solutions that can run (and continues to run) on computers that are too old to run any other commonly deployed proprietary EHR systems.&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
* This page was originally written by Fred Trotter. Please send comments and suggestion to him directly at [http://www.fredtrotter.com his blog].&lt;br /&gt;
*The best description of the style of distributed software development is in a paper called [http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ &amp;quot;The Cathedral and the Bazaar&amp;quot;] by Eric Raymond.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=8349</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=8349"/>
		<updated>2011-08-02T22:31:17Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* Licensing of FOIA VistA */ it has nothing to do with modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is an &#039;&#039;&#039;Electronic Health Record&#039;&#039;&#039; programmed by federal (US) employees working for the Department of Veterans Affairs (previously the Veterans Administration) 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.) &lt;br /&gt;
&lt;br /&gt;
== A Cloudy History ==&lt;br /&gt;
The [http://www.hardhats.org/history/hardhats.html history of VistA available from Hardhats.org] indicates that VistA development began in the late 1970&#039;s. VA documents, such as the [http://www.va.gov/vista_monograph/ VistA Monograph], date the start of VistA to the mid 1980&#039;s. Why the discrepancy? In short, the version at Hardhats is the real version. It documents how VistA moved from an underground movement to a celebrated system.&lt;br /&gt;
&lt;br /&gt;
VistA (and the vision that led to it) was a programmer-led counter-culture within the VA. Programmers and administrators often risked their jobs (and some lost them) in order to develop a system that would satisfy clinical needs at local hospitals. Each programmer was primarily interested in the needs of the clinical users who worked at the same local VA hospital that the programmer worked at. Nevertheless, they desired that the software they created would be able to be used throughout the VA system.&lt;br /&gt;
&lt;br /&gt;
The software platform that eventually resulted was unique because it represented a combination of modules developed by a distributed team. The method of the creation of VistA was, therefore, a precursor to the distributed &amp;quot;open source&amp;quot; development style now popular today. &lt;br /&gt;
&lt;br /&gt;
Even the original name reflected the nature of its development: Decentralized Hospital Computer Program (DHCP). (The name &amp;quot;VistA&amp;quot; was not chosen until much later.)&lt;br /&gt;
&lt;br /&gt;
The VA officially dates &amp;quot;VistA&amp;quot; from the time they approved the software, of course, but, it was using the VistA software (in some of its hospitals) long before it was officially approved. &lt;br /&gt;
&lt;br /&gt;
The VA bureaucracy is primarily concerned (as it should be) with the care of veterans. As one can imagine, this is a highly political issue with tremendous pressure from Washington. Enlightenment with regard to the development of VistA is largely independent of bureaucratic ability. When the VA is lead by VistA-enlightened leadership, VistA tends to thrive and move forward. When the VA is led by those ignorant of VistA and software generally, VistA tends to stagnate. &lt;br /&gt;
&lt;br /&gt;
The tension between those who actually make VistA work well (the VistA programmers, ADPACs, and CACs) and the bureaucracy that is in charge of the VA resources still exists. In many ways the purpose of WorldVistA is to ease this tension. WorldVistA is intended to be a neutral meeting place that can include VA programmers and VA bureaucrats that is external to the VA.&lt;br /&gt;
&lt;br /&gt;
The common theme in the WorldVistA community is the interest in VistA and making the software better.&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
Despite the way in which VistA was developed, there is a common misconception that VistA is &amp;quot;open source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and &amp;quot;free and open source&amp;quot; software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the strict definition of &amp;quot;free software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [http://en.wikipedia.org/w/index.php?title=GPL General Public License (GPL)]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents someone from controlling the software and making it unavailable to others. However, some VistA vendors favor licenses (such as the Apache License), that allow for Open Source development to be used in proprietary products.&lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
A barrier to understanding VistA is often one of overlapping vocabularies. Paradoxically, people who are technically savvy may have a more difficult time with the vocabulary than those with less IT experience. This is because VistA was developed in parallel with many technologies that today we take for granted. Names for technologies in the time-honored VistA lexicon may overlap with names of more recent technologies (causing a degree of confusion for new VistA developers). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;RPC&amp;quot; is a good example. When people outside the VistA Community refer to [http://en.wikipedia.org/wiki/Remote_procedure_call RPC], they usually are referring to a somewhat ubiquitous *nix messaging system. VistA developers and users, in contrast, may speak of the the [[VistA RPC]], a method of connecting CPRS clients to a VistA server. While the more recent RPC is based on the same basic idea as the [[VistA RPC]], on closer inspection they do not bear much resemblance to each other.&lt;br /&gt;
&lt;br /&gt;
Here are some other [[Confusing Terms]].&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several characteristics of MUMPS that can confound first-time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally). With MUMPS you must be careful where you indent using spaces. Putting multiple spaces in some places is not allowed at all. (This will really bother you if you like Python (which forces indentation as part of the syntax instead of using periods as MUMPS does)).&lt;br /&gt;
* MUMPS is its own database, but its database is not SQL. It&#039;s a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare.&lt;br /&gt;
* Global variables mean something in the permanent database, i.e., global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (variables that are shared within all parts of a single program are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS actually were the operating systems on the machine. This legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Some business analysts have also expressed apprehension regarding the prevalence and longevity of MUMPS, and some misconceptions have been propagated as a result.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Compared to the number of programmers in mainstream programming languages, there are relatively few qualified MUMPS programmers.&amp;quot; While there are more MUMPS programmers than there are for SNOBOL (or other programming languages of the same generation), there clearly are less than for other more pervasive databases. Nevertheless, MUMPS is used widely in health care and banking, so while programmers are not on every street corner, they are not a dying breed.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;It takes a competent computer scientist much longer to learn MUMPS than other languages.&amp;quot; MUMPS maintains backward compatibility to ideas that recent computer science graduates don&#039;t see much (except in assembly language programming), such as the GOTO command or line tags.&lt;br /&gt;
 &lt;br /&gt;
* &amp;quot;Because they are rare, MUMPS programmers are often expensive.&amp;quot; Just like diamonds, platinum, and titanium. &lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language having little or no value (often by competing database vendors). Here are some of the really good things about MUMPS, though.&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* It is unbelievably fast. It was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== The terminal interface versus the CPRS GUI ==&lt;br /&gt;
&lt;br /&gt;
Many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. However, CPRS is only a GUI frontend for some of the functions the VistA server/database can provide. Many of the other functions are accessed by &amp;quot;command-line&amp;quot; or &amp;quot;roll and scroll&amp;quot; terminal applications.&lt;br /&gt;
&lt;br /&gt;
Because clinicians often need graphical displays (for charts, for example) that are not possible in terminal applications, CPRS was created to perform most of the common clinical functions in a GUI environment. CPRS is written in Borland&#039;s Delphi (Pascal). It uses VistA-RPC calls to connect to the VistA server/database. (For more clarification, read about the [[How_does_VistA_work|basic VistA architecture]].)&lt;br /&gt;
&lt;br /&gt;
However, VistA was initially designed before monitors were capable of complex graphics displays. Older monitors that only could display text were called &amp;quot;terminals&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Therefore, most of the functionality of the VistA server/ MUMPS database was initially accessed through terminal (&amp;quot;command-line&amp;quot; or &amp;quot;roll-and-scroll&amp;quot;) interfaces. In fact, much of VistA is still only available through such terminal applications (currently). (Many consumer-grade desktop computers use [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators], allowing them to interface with applications in the same way a terminal would.)&lt;br /&gt;
&lt;br /&gt;
Many people unjustly dismiss terminal applications. While GUIs may make learning to use a software programs easier, terminal applications are generally faster to use on a routine basis. Once the initial learning curve is overcome, terminals offer faster data entry and better response times than most GUI applications. When given the choice, experienced users often prefer the terminal (and lose productivity when forced to use GUIs). Text-based (i.e. terminal-based) applications are highly predictable about where they display information, whereas GUIs can often change the location of information on the screen and require time to manipulate the mouse around the screen to figure out where to enter data.&lt;br /&gt;
&lt;br /&gt;
A person who only rarely uses a program must usually figure out how to use it again every time. For such a person a GUI is generally a desirable interface, with pull-down menus that can eventually tell them which option to select.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the primary GUI for VistA. It is able to display part of the VistA system&#039;s total functionality in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians, but those without direct patient contact, such as pharmacists, may not have a well-developed GUI equivalent to display their own functions. They must use a traditional &amp;quot;roll-and-scroll&amp;quot; terminal interface. &lt;br /&gt;
&lt;br /&gt;
CPRS provides a very well-thought-out approach to its interfacing with VistA&#039;s capabilities. It is relatively easy to use, given its complexity and depth. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very customizable. In the VA, a &amp;quot;[[Clinical Application Coordinator]]&amp;quot; (CAC) is responsible for the care and maintenance of local installations of the CPRS client on clinicians&#039; computers. A competent CAC is capable of tuning CPRS in numerous ways to the preferences of individual departments or even individual clinicians. The CPRS menu can even link to other programs, so that clinical programs that are actually separate applications can appear to be a part of CPRS.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (too old). It is written in Delphi (which is no longer as popular a programming language as it was in the mid 1980s). Like the rest of VistA, CPRS was written at a time when computers were much slower. As a result CPRS is quite lightweight and fast. While the IT community might seek a [[Compelling CPRS Replacement|compelling CPRS replacement]], CPRS itself is one of the only solutions that can run (and continues to run) on computers that are too old to run any other commonly deployed proprietary EHR systems.&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
* This page was originally written by Fred Trotter. Please send comments and suggestion to him directly at [http://www.fredtrotter.com his blog].&lt;br /&gt;
*The best description of the style of distributed software development is in a paper called [http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ &amp;quot;The Cathedral and the Bazaar&amp;quot;] by Eric Raymond.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Main_Page&amp;diff=7450</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Main_Page&amp;diff=7450"/>
		<updated>2010-04-12T13:07:40Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: removed links about vista to wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Vistapedia=&lt;br /&gt;
Vistapedia (this website) is an effort to document VA VistA (the [http://en.wikipedia.org/wiki/Electronic_health_record EHR] software platform developed within the US Veteran&#039;s Administration and software that is derived from it or related to it. &lt;br /&gt;
&lt;br /&gt;
== What is Vista? ==&lt;br /&gt;
VistA is an electronic health record programmed by federal (US) employees working for the [http://www.va.gov Department of Veterans Affairs] (previously Veterans Administration) over the past several decades. It is software in the [http://en.wikipedia.org/wiki/Public_domain public domain] and is considered by many to be a national treasure. &lt;br /&gt;
&lt;br /&gt;
For more info, see the [[VistA]] article or for an informal introduction read [[What is VistA Really]] .&lt;br /&gt;
&lt;br /&gt;
== What is RPMS? ==&lt;br /&gt;
[http://www.ehr.ihs.gov/ RPMS] is a public domain electronic health record that is used by the [http://en.wikipedia.org/wiki/Indian_Health_Service Indian Health Service] (IHS). Prior to the 1980s it used a different architecture from VistA, but since the 80&#039;s it has shared a large amount of its architecture with VistA.  It is strong in population-based and outpatient-based outcomes reporting. It is not currently available for download (because IHS has not made a FOIA release available). It may be available in the future.&lt;br /&gt;
* [http://www.chnwv.org/Solutions/RPMSEHR/tabid/110/Default.aspx Usage of RPMS in West Virginia community clinics]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is Vistapedia? ==&lt;br /&gt;
Vistapedia is a wiki for several varieties of the public-domain version of [http://en.wikipedia.org/wiki/VistA VistA] (the [http://en.wikipedia.org/wiki/Electronic_health_record EHR] software platform developed within the [http://en.wikipedia.org/wiki/United_States_Department_of_Veterans_Affairs US Veteran&#039;s Administration]). Information about the integrated VistA installer called [[Astronaut_VistA|Astronaut]] and the Indian Health Service&#039; [http://www.ehr.ihs.gov/ RPMS EHR] is also contained within these pages. &lt;br /&gt;
&lt;br /&gt;
This wiki covers installation, configuration, and usage of these VistA derivatives. It also serves as an introduction to the [[VistA Documentation Library]] for everyone outside the VA. In addition, current events, development advances, and other news about the flavors of VistA are posted here, as well.&lt;br /&gt;
&lt;br /&gt;
This wiki runs the same [http://www.mediawiki.org software] as [http://www.wikipedia.com/ Wikipedia].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Current events ==&lt;br /&gt;
&lt;br /&gt;
[[Current events]] -- The 20th VistA Community Meeting was larger and more energetic than before.&lt;br /&gt;
&lt;br /&gt;
=== Versions of VistA ===&lt;br /&gt;
&lt;br /&gt;
There are several versions of VistA that are used outside of the VA. (See [[Which VistA|this page]] for some introductory information regarding aspects of the different versions.)&lt;br /&gt;
&lt;br /&gt;
* [[WorldVista]] ([http://www.opensource.org/licenses/gpl-2.0.php GPL] licensed) ([http://worldvista.org Home]) ([http://worldvista.org/Software_Download Download]) ([[WorldVista|Installation]]) ([[Astronaut_VistA#Astronaut_WorldVistA_installers|Astronaut installer]])&lt;br /&gt;
 &lt;br /&gt;
* [[OpenVista]] ([http://www.opensource.org/licenses/agpl-v3.html AGPL] licensed) ([http://medsphere.org Home]) ([http://medsphere.org Download])  ([[OpenVista|Installation]]) ([[Astronaut_VistA#Astronaut_OpenVistA_installers|Astronaut installer]])&lt;br /&gt;
&lt;br /&gt;
* [[vxVista]] ([http://www.opensource.org/licenses/eclipse-1.0.php EPL] licensed) ([http://www.docstorsys.com/dss-vxOpenSource.html Home]) (not downloadable)&lt;br /&gt;
&lt;br /&gt;
* FOIA Vista ([http://en.wikipedia.org/wiki/Public_domain public domain] under [http://en.wikipedia.org/wiki/Freedom_of_Information_Act_%28United_States%29 FOIA]) ([http://www.va.gov/vista_monograph/ Home]) ([ftp://ftp.va.gov/Vista/Software/VISTA_FOIA_ZIPS/ Download])&lt;br /&gt;
&lt;br /&gt;
(Other versions such as da Vinci Vista, VOE Vista, and Hui Vista no longer exist or are no longer maintained.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Detailed Information ==&lt;br /&gt;
&lt;br /&gt;
*[[How does VistA work]]? -- basic information about VistA&#039;s components.&lt;br /&gt;
&lt;br /&gt;
*[[Where do I Start]]? -- Start here. &lt;br /&gt;
&lt;br /&gt;
*[http://www.vistapedia.net/index.php?title=Category:FAQ FAQ] -- common Questions about VistA.&lt;br /&gt;
&lt;br /&gt;
*[[Usage]] -- start using VistA once it is successfully installed&lt;br /&gt;
&lt;br /&gt;
*[[Special:Popularpages|Popular pages]] -- frequently viewed pages in this wiki.&lt;br /&gt;
&lt;br /&gt;
*[http://www.vistapedia.net/index.php?title=Special:Categories Categories] -- good for browsing.&lt;br /&gt;
&lt;br /&gt;
*[[Special:Specialpages|Special pages]] -- a form of Table of Contents for this wiki.&lt;br /&gt;
&lt;br /&gt;
*[[VistA Community Challenges]] -- the issues we&#039;re trying to solve currently.&lt;br /&gt;
&lt;br /&gt;
*[[Meaningful Use (WG6)|Meaningful Use]] -- analyses of the EHR requirements to qualify for stimulus funds from the US government.&lt;br /&gt;
&lt;br /&gt;
== Topics in active development ==&lt;br /&gt;
*[[ePrescribing]]&lt;br /&gt;
&lt;br /&gt;
*[[Health Information Exchange]]&lt;br /&gt;
&lt;br /&gt;
*[[Scanned_Documents|Working with Scanned Documents and Images]]&lt;br /&gt;
&lt;br /&gt;
*[[Certification]]&lt;br /&gt;
&lt;br /&gt;
*[[Training centers]]&lt;br /&gt;
&lt;br /&gt;
*[[Practice_Management_System|Practice Management Systems]]&lt;br /&gt;
&lt;br /&gt;
*[[Web Interfaces|Web-based Interfaces]]&lt;br /&gt;
&lt;br /&gt;
== Other content ==&lt;br /&gt;
&lt;br /&gt;
* [[Old_Main|Old Main Page]]&lt;br /&gt;
* [[Installation_Overview|Installation Overview (old)]]&lt;br /&gt;
* [[Licensing|Licensing issues]]&lt;br /&gt;
* [https://medsphere.org/docs/DOC-1195 Other client modules]&lt;br /&gt;
* [[User setups]] -- specific success (or failure) stories with various configurations provided by various users and adopters&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
* [http://66.206.177.92/conference_presentations WorldVistA conference presentations]&lt;br /&gt;
&lt;br /&gt;
* VistA enthusiasts and developers connect through [http://www.google.com/group/hardhats the Hardhats Google Group]. For more info, email: info at worldvista dot org.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
To get access to Vistapedia, contact David Whitten ( whitten at worldvista.org ) through &lt;br /&gt;
an e-mail, or phone 713 870 3834 to get an account. Please send a contact telephone number with your e-mail, and/or have an e-mail address ready when you call. (I need both.) Please decide on your preferred User name and send it as well. We have provided a [[User Status|page]] for new users and  their current status. Thank you.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Interim Final Rule Possible Comments== [[Interim Final Rule Possible Responses|Interim Final Rule Possible Responses]]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Main_Page&amp;diff=7449</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Main_Page&amp;diff=7449"/>
		<updated>2010-04-12T13:04:53Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: reorganized the top of the fold to focus on general introductions to VistA. VistApedia as a topic can be covered later.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Vistapedia=&lt;br /&gt;
Vistapedia (this website) is an effort to document [http://en.wikipedia.org/wiki/VistA VA VistA] (the [http://en.wikipedia.org/wiki/Electronic_health_record EHR] software platform developed within the [http://en.wikipedia.org/wiki/United_States_Department_of_Veterans_Affairs US Veteran&#039;s Administration]) and software that is derived from it or related to it. &lt;br /&gt;
&lt;br /&gt;
== What is Vista? ==&lt;br /&gt;
[http://en.wikipedia.org/wiki/VistA VistA] is an [http://en.wikipedia.org/wiki/Electronic_health_record electronic health record] programmed by federal (US) employees working for the [http://www.va.gov Department of Veterans Affairs] (previously Veterans Administration) over the past several decades. It is software in the [http://en.wikipedia.org/wiki/Public_domain public domain] and is considered by many to be a national treasure. &lt;br /&gt;
&lt;br /&gt;
For more info, see the [[VistA]] article or for an informal introduction read [[What is VistA Really]] .&lt;br /&gt;
&lt;br /&gt;
== What is RPMS? ==&lt;br /&gt;
[http://www.ehr.ihs.gov/ RPMS] is a public domain electronic health record that is used by the [http://en.wikipedia.org/wiki/Indian_Health_Service Indian Health Service] (IHS). Prior to the 1980s it used a different architecture from VistA, but since the 80&#039;s it has shared a large amount of its architecture with VistA.  It is strong in population-based and outpatient-based outcomes reporting. It is not currently available for download (because IHS has not made a FOIA release available). It may be available in the future.&lt;br /&gt;
* [http://www.chnwv.org/Solutions/RPMSEHR/tabid/110/Default.aspx Usage of RPMS in West Virginia community clinics]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is Vistapedia? ==&lt;br /&gt;
Vistapedia is a wiki for several varieties of the public-domain version of [http://en.wikipedia.org/wiki/VistA VistA] (the [http://en.wikipedia.org/wiki/Electronic_health_record EHR] software platform developed within the [http://en.wikipedia.org/wiki/United_States_Department_of_Veterans_Affairs US Veteran&#039;s Administration]). Information about the integrated VistA installer called [[Astronaut_VistA|Astronaut]] and the Indian Health Service&#039; [http://www.ehr.ihs.gov/ RPMS EHR] is also contained within these pages. &lt;br /&gt;
&lt;br /&gt;
This wiki covers installation, configuration, and usage of these VistA derivatives. It also serves as an introduction to the [[VistA Documentation Library]] for everyone outside the VA. In addition, current events, development advances, and other news about the flavors of VistA are posted here, as well.&lt;br /&gt;
&lt;br /&gt;
This wiki runs the same [http://www.mediawiki.org software] as [http://www.wikipedia.com/ Wikipedia].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Current events ==&lt;br /&gt;
&lt;br /&gt;
[[Current events]] -- The 20th VistA Community Meeting was larger and more energetic than before.&lt;br /&gt;
&lt;br /&gt;
=== Versions of VistA ===&lt;br /&gt;
&lt;br /&gt;
There are several versions of VistA that are used outside of the VA. (See [[Which VistA|this page]] for some introductory information regarding aspects of the different versions.)&lt;br /&gt;
&lt;br /&gt;
* [[WorldVista]] ([http://www.opensource.org/licenses/gpl-2.0.php GPL] licensed) ([http://worldvista.org Home]) ([http://worldvista.org/Software_Download Download]) ([[WorldVista|Installation]]) ([[Astronaut_VistA#Astronaut_WorldVistA_installers|Astronaut installer]])&lt;br /&gt;
 &lt;br /&gt;
* [[OpenVista]] ([http://www.opensource.org/licenses/agpl-v3.html AGPL] licensed) ([http://medsphere.org Home]) ([http://medsphere.org Download])  ([[OpenVista|Installation]]) ([[Astronaut_VistA#Astronaut_OpenVistA_installers|Astronaut installer]])&lt;br /&gt;
&lt;br /&gt;
* [[vxVista]] ([http://www.opensource.org/licenses/eclipse-1.0.php EPL] licensed) ([http://www.docstorsys.com/dss-vxOpenSource.html Home]) (not downloadable)&lt;br /&gt;
&lt;br /&gt;
* FOIA Vista ([http://en.wikipedia.org/wiki/Public_domain public domain] under [http://en.wikipedia.org/wiki/Freedom_of_Information_Act_%28United_States%29 FOIA]) ([http://www.va.gov/vista_monograph/ Home]) ([ftp://ftp.va.gov/Vista/Software/VISTA_FOIA_ZIPS/ Download])&lt;br /&gt;
&lt;br /&gt;
(Other versions such as da Vinci Vista, VOE Vista, and Hui Vista no longer exist or are no longer maintained.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Detailed Information ==&lt;br /&gt;
&lt;br /&gt;
*[[How does VistA work]]? -- basic information about VistA&#039;s components.&lt;br /&gt;
&lt;br /&gt;
*[[Where do I Start]]? -- Start here. &lt;br /&gt;
&lt;br /&gt;
*[http://www.vistapedia.net/index.php?title=Category:FAQ FAQ] -- common Questions about VistA.&lt;br /&gt;
&lt;br /&gt;
*[[Usage]] -- start using VistA once it is successfully installed&lt;br /&gt;
&lt;br /&gt;
*[[Special:Popularpages|Popular pages]] -- frequently viewed pages in this wiki.&lt;br /&gt;
&lt;br /&gt;
*[http://www.vistapedia.net/index.php?title=Special:Categories Categories] -- good for browsing.&lt;br /&gt;
&lt;br /&gt;
*[[Special:Specialpages|Special pages]] -- a form of Table of Contents for this wiki.&lt;br /&gt;
&lt;br /&gt;
*[[VistA Community Challenges]] -- the issues we&#039;re trying to solve currently.&lt;br /&gt;
&lt;br /&gt;
*[[Meaningful Use (WG6)|Meaningful Use]] -- analyses of the EHR requirements to qualify for stimulus funds from the US government.&lt;br /&gt;
&lt;br /&gt;
== Topics in active development ==&lt;br /&gt;
*[[ePrescribing]]&lt;br /&gt;
&lt;br /&gt;
*[[Health Information Exchange]]&lt;br /&gt;
&lt;br /&gt;
*[[Scanned_Documents|Working with Scanned Documents and Images]]&lt;br /&gt;
&lt;br /&gt;
*[[Certification]]&lt;br /&gt;
&lt;br /&gt;
*[[Training centers]]&lt;br /&gt;
&lt;br /&gt;
*[[Practice_Management_System|Practice Management Systems]]&lt;br /&gt;
&lt;br /&gt;
*[[Web Interfaces|Web-based Interfaces]]&lt;br /&gt;
&lt;br /&gt;
== Other content ==&lt;br /&gt;
&lt;br /&gt;
* [[Old_Main|Old Main Page]]&lt;br /&gt;
* [[Installation_Overview|Installation Overview (old)]]&lt;br /&gt;
* [[Licensing|Licensing issues]]&lt;br /&gt;
* [https://medsphere.org/docs/DOC-1195 Other client modules]&lt;br /&gt;
* [[User setups]] -- specific success (or failure) stories with various configurations provided by various users and adopters&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
* [http://66.206.177.92/conference_presentations WorldVistA conference presentations]&lt;br /&gt;
&lt;br /&gt;
* VistA enthusiasts and developers connect through [http://www.google.com/group/hardhats the Hardhats Google Group]. For more info, email: info at worldvista dot org.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
To get access to Vistapedia, contact David Whitten ( whitten at worldvista.org ) through &lt;br /&gt;
an e-mail, or phone 713 870 3834 to get an account. Please send a contact telephone number with your e-mail, and/or have an e-mail address ready when you call. (I need both.) Please decide on your preferred User name and send it as well. We have provided a [[User Status|page]] for new users and  their current status. Thank you.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Interim Final Rule Possible Comments== [[Interim Final Rule Possible Responses|Interim Final Rule Possible Responses]]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Astronaut_VistA&amp;diff=6103</id>
		<title>Astronaut VistA</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Astronaut_VistA&amp;diff=6103"/>
		<updated>2009-09-26T23:14:49Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is Astronaut VistA == &lt;br /&gt;
&lt;br /&gt;
[http://www.astronautvista.com Astronaut VistA ] is not actually a version of VistA itself. Rather it is a simple installation bundle of other VistA rollups. Currently, OpenVistA and WorldVistA are available as Astronaut Installers. Once VxVista is released, Astronaut will consider making an installer for that as well.&lt;br /&gt;
&lt;br /&gt;
Astronaut attempts to get lots of different clients and auxillary software packages to work together, out of the box. Currently, no other installer has the following features all working together:&lt;br /&gt;
&lt;br /&gt;
=== Astronaut Features ===&lt;br /&gt;
&lt;br /&gt;
* Medsphers OVID - A Mumps to Java bridge system&lt;br /&gt;
* TMG CPRS - An improved version of CPRS that allows for creating patients, and html not rendering&lt;br /&gt;
* (soon) EWD.&lt;br /&gt;
&lt;br /&gt;
== Where can I get Astronaut VistA ==&lt;br /&gt;
&lt;br /&gt;
You can download the current version of Astronaut VistA from the &lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/worldvistaautoi/ Astronaut WorldVistA sourceforge page]. &lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/astronautnostro/ Astronaut OpenVistA(tm) Sourceforge page] - Astronaut installers for Medsphere&#039;s OpenVistA]&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To isntall Astronaut, you must choose a version of VistA to install, and then decide if you want to install on a  [http://www.tuxfiles.org/linuxhelp/rpminstall.html rpm based system] or [http://www.cyberciti.biz/faq/ubuntu-linux-how-do-i-install-deb-packages/ a debian based system]. It helps if you already understand a little about GNU/Linux to get this working. If this seems a little over your head, you can get help with GNU/Linux at your local [http://www.linux.org/groups/ Linux Users Group].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VistA Standard Base ==&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Main_Page&amp;diff=5885</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Main_Page&amp;diff=5885"/>
		<updated>2009-09-26T22:57:57Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* Installation Guides */ added Astronaut VistA link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is Vistapedia? ==&lt;br /&gt;
Vistapedia is a wiki resource for VistA (all variants including: WorldVistA EHR, vxVistA, Hui Openvista and Medsphere OpenVistA) and RPMS. Wikis are a place to document shared knowledge. The best example of a wiki is the eponymous [http://www.wikipedia.com/ Wikipedia]. This [[Why a wiki?| wiki]] covers installation and configuration of [[DHCP~|DHCP]] derivatives such as [[VistA~|VistA]], [[RPMS~|RPMS]] and [[CHCS~|CHCS]].&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
Contents of Vistapedia such as a Table of Contents equivalent can generally be found in: &lt;br /&gt;
* [[Special:Specialpages|Special pages]]&lt;br /&gt;
&lt;br /&gt;
Particularly in: &lt;br /&gt;
* [[Old_Main|Old Main Page]]&lt;br /&gt;
* [[Special:Popularpages|Popular pages]] and&lt;br /&gt;
* [[Special:Categories|Categories]].&lt;br /&gt;
&lt;br /&gt;
== What is Vista? ==&lt;br /&gt;
VistA is a Electronic Health Record programmed by Federal (US) employees working for the [http://www.va.gov Department of Veterans Affairs (previously Veterans Administration)] for several decades, since the late 1970s. It&#039;s public domain software. It is considered by many to be a national treasure. For a more complete coverage of the question you should read [[What is VistA Really]]. This wiki does not just have what you can read in any high level press article, but the information that you need to understand its culture and its values.&lt;br /&gt;
=== The flavors of Vista ===&lt;br /&gt;
At the time I write this (June 21, 2009), there are four flavors of Vista:&lt;br /&gt;
* FOIA Vista (unlicensed [http://en.wikipedia.org/wiki/Public_domain public domain] software) ([http://www.va.gov/vista_monograph/ Home]) ([ftp://ftp.va.gov/Vista/Software/VISTA_FOIA_ZIPS/ Download])&lt;br /&gt;
* WorldVista ([http://www.opensource.org/licenses/gpl-2.0.php GPL] licensed) ([http://worldvista.org Home]) ([http://worldvista.org/Software_Download Download], [http://vistapedia.net/index.php?title=Astronaut_Installers Astronaut-Auto-Install]) &lt;br /&gt;
* OpenVista ([http://www.opensource.org/licenses/agpl-v3.html AGPL] licensed) ([http://medsphere.org Home]) ([http://medsphere.org Download])&lt;br /&gt;
* vxVista (Eclipse Public License - [http://www.opensource.org/licenses/eclipse-1.0.php EPL]) ([http://www.dssinc.com Home]) (not downloadable)&lt;br /&gt;
&lt;br /&gt;
(You may hear about da Vinci Vista, VOE Vista, and Hui Vista. These don&#039;t exist and/or are not maintained anymore.)&lt;br /&gt;
&lt;br /&gt;
Go to [[Which VistA]] for more information on the different flavors.&lt;br /&gt;
&lt;br /&gt;
== What is RPMS? ==&lt;br /&gt;
RPMS is another public domain Electronic Health Record, programmed by the Indian Health Service (IHS). It actually started in the late 60&#039;s, and thus predates Vista. From the 60&#039;s to the 80&#039;s, it was a different architecture. Since the 80&#039;s, it uses the same architecture as Vista. While RPMS shares a lot of features with Vista, it&#039;s much stronger in population-based and outpatient-based Electronic Health Records. Currently, it is not downloadable because IHS has not made a FOIA Gold database available, but it is expected to do so shortly. When it does, I will post a link here. [[User:Shabiel|Sam]]&lt;br /&gt;
&lt;br /&gt;
== I want a human to talk to! ==&lt;br /&gt;
Vista implementors and enthusiasts are on a mailing list called HardHats. It&#039;s on google groups. Follow this [http://www.google.com/group/hardhats link] to browse and join the group. Or email info at worldvista dot org.&lt;br /&gt;
&lt;br /&gt;
== Installation Guides ==&lt;br /&gt;
&lt;br /&gt;
By far the easiest way to get an instance of VistA running is to use the Astronaut installers by Dr. Ignacio Valdes. The installers provide a simple way to install VistA using rpm or deb files. First you need to download and install either a debian based (like Ubuntu or Debian) or rpm based (like Fedora or CentOS) version of GNU/Linux. Then download the version of VistA you like from sourceforge below.   &lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/worldvistaautoi/ Astronaut WorldVistA(tm) Auto Installer] - rpm and deb installers for WorldVista EHR &lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/astronautnostro/ Astronaut OpenVistA(tm) Sourceforge page] - rpm and deb installers for Medsphere&#039;s OpenVistA&lt;br /&gt;
&lt;br /&gt;
Then follow the instructions for [http://www.tuxfiles.org/linuxhelp/rpminstall.html installing an rpm] or [http://www.cyberciti.biz/faq/ubuntu-linux-how-do-i-install-deb-packages/ installing a deb] depending on which version you chose. It helps if you already understand a little about GNU/Linux to get this working. If this seems a little over your head, you can get help with GNU/Linux at your local [http://www.linux.org/groups/ Linux Users Group].&lt;br /&gt;
&lt;br /&gt;
For the time being the documentation for Astronaut is hosted here in VistApedia, under [[Astronaut VistA]]&lt;br /&gt;
&lt;br /&gt;
== Technical Information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.vistapedia.net/index.php?title=Category:FAQ Common Questions about VistA].&lt;br /&gt;
&lt;br /&gt;
[[How does VistA work]]? This is the technology that you need to understand about VistA even if you really do not want to understand technology&lt;br /&gt;
&lt;br /&gt;
[[Where do I Start]]? VistA is very well documented. Almost too well. This page help you find the information that you need, depending on what you are looking for. Another way to look at things is on the [[Old Main]] page.&lt;br /&gt;
&lt;br /&gt;
[[VistA Community Challenges]] technical features that VistA needs and issues that hold VistA development back. If VistA is not good enough for your environment, the reason should be listed here.&lt;br /&gt;
&lt;br /&gt;
[[Introduction To Programming VistA with MUMPS]]&lt;br /&gt;
&lt;br /&gt;
[http://www.vistapedia.net/index.php?title=Special:Categories Browse Categories]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
To get access, contact David Whitten ( whitten at worldvista.org ) through &lt;br /&gt;
an e-mail, or phone 713 870 3834 to get an account. Please send a contact telephone number with your e-mail, and/or have an e-mail address ready when you call. (I need both.) Please decide on your preferred User name and send it as well. We have provided a [[User Status|page]] for new users and  their current status. Thank you.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Why_VistA_development_does_not_use_sourceforge&amp;diff=5591</id>
		<title>Why VistA development does not use sourceforge</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Why_VistA_development_does_not_use_sourceforge&amp;diff=5591"/>
		<updated>2009-07-08T23:36:37Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: updated to jonathans reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It&#039;s fine to use Sourceforge if a certain project wants to use&lt;br /&gt;
Sourceforge - they support multiple SCMs including Bazaar (the current&lt;br /&gt;
list is Subversion, Git, Mercurial, Bazaar, and CVS) - although I&lt;br /&gt;
personally feel that Launchpad.net provides tighter integration with the&lt;br /&gt;
SCM and has better tools around requirements (Blueprints), translations,&lt;br /&gt;
end-user support (Answers), and code review.&lt;br /&gt;
&lt;br /&gt;
What&#039;s more important is the use of a modern, distributed source control&lt;br /&gt;
system vs. a centralized one.  I&#039;ve already posted at length about the&lt;br /&gt;
advantages of doing this (and apparently my post has been re-posted&lt;br /&gt;
several times already ;) ).&lt;br /&gt;
&lt;br /&gt;
If you really want to use a centralized system, who would host it?&lt;br /&gt;
Sourceforge, ok, but what group would control the repository?  How would&lt;br /&gt;
that group vet contributions?  Or contributors?  What gives them&lt;br /&gt;
authority over anyone else?  How would they manage derivatives?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://vistaexpertise.blogspot.com/2009/07/point-3-vista-requires-many-authorities.html As Rick Marshall points out], VISTA Requires Many Authorities, Not&lt;br /&gt;
One.  And distributed revision control is the best way to achieve that.&lt;br /&gt;
There&#039;s a reason why the really big projects like Linux (git), GNOME&lt;br /&gt;
(git), MySQL (bzr), Ubuntu (bzr), Mozilla (hg), Xen (hg) are either&lt;br /&gt;
using distributed systems or are moving in that direction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For now it is enough to say that [[VistA Version Control is Hard]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=VistA_Version_Control_is_Hard&amp;diff=5587</id>
		<title>VistA Version Control is Hard</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=VistA_Version_Control_is_Hard&amp;diff=5587"/>
		<updated>2009-07-08T19:35:22Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: add creative commons note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People have suggested that we use a version control system for VistA countless times. However, VistA cannot just use git or subversion or whatever. Those systems cannot handle the way VistA&#039;s code is designed. This wiki article was copied in mass from a [http://medsphere.org/people/jon.tai/blog/2009/07/01/the-case-for-distributed-revision-control-in-the-vista-community post on the subject by Jonathan Tai]. In response to a [http://groups.google.com/group/Hardhats/browse_thread/thread/af94f540f527d10d Hardhats thread on the subject]&lt;br /&gt;
&lt;br /&gt;
For VistA development to really take off, we need distributed revision&lt;br /&gt;
control and automated merging.&lt;br /&gt;
&lt;br /&gt;
Take Linux for example.  Linux uses a distributed revision control&lt;br /&gt;
system called git.  Linus has a branch of Linux that is the &amp;quot;official&amp;quot;&lt;br /&gt;
branch. This is called the &amp;quot;mainline&amp;quot;.  Everyone can make a copy of&lt;br /&gt;
this branch and do their own development.  So far, it sounds just like&lt;br /&gt;
centralized revision control, but the difference between centralized and&lt;br /&gt;
distributed is that you can commit to your own private branch.  You&lt;br /&gt;
don&#039;t need permission from anyone.  With a centralized system like&lt;br /&gt;
Subversion, you have to have commit access to the repository, so you&lt;br /&gt;
start by submitting one-off patches here and there until you gain enough&lt;br /&gt;
karma to be entrusted with commit access.  This doesn&#039;t scale.  More on&lt;br /&gt;
this later...&lt;br /&gt;
&lt;br /&gt;
Getting back to the example, when you have done some development and are satisfied with it, you can publish your branch in a public location. You can then bring the branch to the official maintainer&#039;s attention, and request that he &amp;quot;merge&amp;quot; or &amp;quot;pull&amp;quot; your branch.  This is another critical difference - with distributed version control, changes are *pulled*, not *pushed*.  So the first time you request a merge, the maintainer can inspect your code closely.  He may suggest changes.  You can do those in your own branch (and each change is tracked because you can commit to your own branch) and re-submit your request.  With a centralized system, you&#039;d be sending a patch.  If you&#039;re a frequent contributor, the maintainer may review your code less closely because he trusts you more, but the review process is built in.&lt;br /&gt;
&lt;br /&gt;
After a little re-working, the maintainer finally decides your code is&lt;br /&gt;
worthy for merging.  With automated merging, even if that maintainer has&lt;br /&gt;
made changes to other parts of the codebase since you cloned his branch,&lt;br /&gt;
when the maintainer merges your branch, your changes are brought in&lt;br /&gt;
automatically.  If other people have branched off *your* branch and&lt;br /&gt;
those changes have been merged already, most distributed systems are&lt;br /&gt;
smart enough to figure that out and only merge the unmerged revisions.&lt;br /&gt;
Subversion has gotten a lot better at this recently, but in earlier&lt;br /&gt;
versions, it was *terrible* at this.&lt;br /&gt;
&lt;br /&gt;
Another important point is that each branch is equal (at least on a&lt;br /&gt;
technical level) - the maintainer&#039;s branch is only special because it&#039;s&lt;br /&gt;
the maintainer&#039;s branch and is recognized by the community as the&lt;br /&gt;
official branch.  If the maintainer were to become disinterested in the&lt;br /&gt;
software or otherwise unable to maintain it, or should you want to take&lt;br /&gt;
the software in a different direction, your branch could just as easily&lt;br /&gt;
become *the* branch.  Getting back to the Linux example, each subsystem&lt;br /&gt;
maintainer has his own tree - there are trees dedicated to filesystems,&lt;br /&gt;
to memory managers, drivers, etc.  There are also trees dedicated to&lt;br /&gt;
stability, so they branch off an official Linux release and then only&lt;br /&gt;
merge critical bugfixes from that point on.  If you wanted a more stable&lt;br /&gt;
version of Linux, you may follow that branch instead of the official&lt;br /&gt;
mainline branch.&lt;br /&gt;
&lt;br /&gt;
So in the VistA world - imagine several distributions like WorldVistA,&lt;br /&gt;
OpenVista, FOIA VistA, vxVistA, etc.  Each would have their own&lt;br /&gt;
mainline.  We could have package branches - so the FileMan group might&lt;br /&gt;
have their own branch that&#039;s distro-independent.  All the distros would&lt;br /&gt;
merge changes from the FileMan group to maintain a &amp;quot;shared core&amp;quot;, while&lt;br /&gt;
each distribution does their own application work.  Provided that the&lt;br /&gt;
code/data structures are compatible and the licenses are compatible, the&lt;br /&gt;
distributions could merge changes across - so WorldVista could merge in&lt;br /&gt;
the server-side OpenVista CIS patches to allow CIS to run against&lt;br /&gt;
WorldVista.  And most importantly, when OpenVista updates those patches,&lt;br /&gt;
WorldVista could just merge the new changes.  If automated merging&lt;br /&gt;
worked properly, this would be very seamless and easy - no re-porting&lt;br /&gt;
required.&lt;br /&gt;
&lt;br /&gt;
In fact, you could take it a step further.  Each implementing site could&lt;br /&gt;
choose to have (and maintain) their own branch.  So a site might branch&lt;br /&gt;
off of WorldVistA&#039;s mainline, make a few local mods, then merge new&lt;br /&gt;
changes from WorldVista as time goes on.  And if WorldVistA liked those&lt;br /&gt;
local changes, they could merge in the other direction - the local&lt;br /&gt;
changes are accepted back into the main distribution.  For an&lt;br /&gt;
all-volunteer distribution like WorldVistA, this may be the main source&lt;br /&gt;
of their changes.&lt;br /&gt;
&lt;br /&gt;
So why don&#039;t we do all of this now?  First of all, some of us are still&lt;br /&gt;
using centralized revision control.  That&#039;s what Ignacio was trying to&lt;br /&gt;
address by starting this thread.  Fixing this is the easy part -&lt;br /&gt;
switching from a centralized model to a distributed model is fairly&lt;br /&gt;
simple because the centralized model is just a subset of the distributed&lt;br /&gt;
model.  It&#039;s like having just one branch that everyone commits to.&lt;br /&gt;
&lt;br /&gt;
The second thing we need is automated merging.  What we need to do is&lt;br /&gt;
come up with a way to express VistA structures in a way that existing&lt;br /&gt;
revision control tools can understand.  Right now, a menu is stored in&lt;br /&gt;
FileMan, which is stored as globals in a binary database file.  A tool&lt;br /&gt;
designed to handle source code can&#039;t handle that.  It doesn&#039;t know how&lt;br /&gt;
to merge two multi-gigabyte binary blobs to make a meaningful new&lt;br /&gt;
version.  We could export the database as plain text (e.g., %GO or&lt;br /&gt;
ZWRITE format), but even that is not enough to allow automated merging&lt;br /&gt;
because a menu might have a certain IEN at one site but another IEN at&lt;br /&gt;
another site.  The existing tools have no idea what&#039;s important and&lt;br /&gt;
needs to be merged and what is site-specific and can be discarded.  What&lt;br /&gt;
we need is an abstract representation of a menu, similar to what KIDS&lt;br /&gt;
has.  If we can present these VistA structures to an existing tool, we&lt;br /&gt;
can leverage the power of these existing tools to do development as a&lt;br /&gt;
community more efficiently.&lt;br /&gt;
&lt;br /&gt;
From talking to various folks at the VistA Community Meetings, some&lt;br /&gt;
thought has gone into how to do #2, but I haven&#039;t seen anything workable&lt;br /&gt;
yet.  For now, I agree with Ignacio that we should do what we can, i.e., #1.  Standardize on a distributed revision control tool so we can build the tools for #2 around it.&lt;br /&gt;
&lt;br /&gt;
editors note: because this was copied from Medsphere.org, its creative commons license applies.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=VistA_Version_Control_is_Hard&amp;diff=5585</id>
		<title>VistA Version Control is Hard</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=VistA_Version_Control_is_Hard&amp;diff=5585"/>
		<updated>2009-07-08T19:27:00Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People have suggested that we use a version control system for VistA countless times. However, VistA cannot just use git or subversion or whatever. Those systems cannot handle the way VistA&#039;s code is designed. This wiki article was copied in mass from a [http://medsphere.org/people/jon.tai/blog/2009/07/01/the-case-for-distributed-revision-control-in-the-vista-community post on the subject by Jonathan Tai].&lt;br /&gt;
&lt;br /&gt;
For VistA development to really take off, we need distributed revision&lt;br /&gt;
control and automated merging.&lt;br /&gt;
&lt;br /&gt;
Take Linux for example.  Linux uses a distributed revision control&lt;br /&gt;
system called git.  Linus has a branch of Linux that is the &amp;quot;official&amp;quot;&lt;br /&gt;
branch. This is called the &amp;quot;mainline&amp;quot;.  Everyone can make a copy of&lt;br /&gt;
this branch and do their own development.  So far, it sounds just like&lt;br /&gt;
centralized revision control, but the difference between centralized and&lt;br /&gt;
distributed is that you can commit to your own private branch.  You&lt;br /&gt;
don&#039;t need permission from anyone.  With a centralized system like&lt;br /&gt;
Subversion, you have to have commit access to the repository, so you&lt;br /&gt;
start by submitting one-off patches here and there until you gain enough&lt;br /&gt;
karma to be entrusted with commit access.  This doesn&#039;t scale.  More on&lt;br /&gt;
this later...&lt;br /&gt;
&lt;br /&gt;
Getting back to the example, when you have done some development and are satisfied with it, you can publish your branch in a public location. You can then bring the branch to the official maintainer&#039;s attention, and request that he &amp;quot;merge&amp;quot; or &amp;quot;pull&amp;quot; your branch.  This is another critical difference - with distributed version control, changes are *pulled*, not *pushed*.  So the first time you request a merge, the maintainer can inspect your code closely.  He may suggest changes.  You can do those in your own branch (and each change is tracked because you can commit to your own branch) and re-submit your request.  With a centralized system, you&#039;d be sending a patch.  If you&#039;re a frequent contributor, the maintainer may review your code less closely because he trusts you more, but the review process is built in.&lt;br /&gt;
&lt;br /&gt;
After a little re-working, the maintainer finally decides your code is&lt;br /&gt;
worthy for merging.  With automated merging, even if that maintainer has&lt;br /&gt;
made changes to other parts of the codebase since you cloned his branch,&lt;br /&gt;
when the maintainer merges your branch, your changes are brought in&lt;br /&gt;
automatically.  If other people have branched off *your* branch and&lt;br /&gt;
those changes have been merged already, most distributed systems are&lt;br /&gt;
smart enough to figure that out and only merge the unmerged revisions.&lt;br /&gt;
Subversion has gotten a lot better at this recently, but in earlier&lt;br /&gt;
versions, it was *terrible* at this.&lt;br /&gt;
&lt;br /&gt;
Another important point is that each branch is equal (at least on a&lt;br /&gt;
technical level) - the maintainer&#039;s branch is only special because it&#039;s&lt;br /&gt;
the maintainer&#039;s branch and is recognized by the community as the&lt;br /&gt;
official branch.  If the maintainer were to become disinterested in the&lt;br /&gt;
software or otherwise unable to maintain it, or should you want to take&lt;br /&gt;
the software in a different direction, your branch could just as easily&lt;br /&gt;
become *the* branch.  Getting back to the Linux example, each subsystem&lt;br /&gt;
maintainer has his own tree - there are trees dedicated to filesystems,&lt;br /&gt;
to memory managers, drivers, etc.  There are also trees dedicated to&lt;br /&gt;
stability, so they branch off an official Linux release and then only&lt;br /&gt;
merge critical bugfixes from that point on.  If you wanted a more stable&lt;br /&gt;
version of Linux, you may follow that branch instead of the official&lt;br /&gt;
mainline branch.&lt;br /&gt;
&lt;br /&gt;
So in the VistA world - imagine several distributions like WorldVistA,&lt;br /&gt;
OpenVista, FOIA VistA, vxVistA, etc.  Each would have their own&lt;br /&gt;
mainline.  We could have package branches - so the FileMan group might&lt;br /&gt;
have their own branch that&#039;s distro-independent.  All the distros would&lt;br /&gt;
merge changes from the FileMan group to maintain a &amp;quot;shared core&amp;quot;, while&lt;br /&gt;
each distribution does their own application work.  Provided that the&lt;br /&gt;
code/data structures are compatible and the licenses are compatible, the&lt;br /&gt;
distributions could merge changes across - so WorldVista could merge in&lt;br /&gt;
the server-side OpenVista CIS patches to allow CIS to run against&lt;br /&gt;
WorldVista.  And most importantly, when OpenVista updates those patches,&lt;br /&gt;
WorldVista could just merge the new changes.  If automated merging&lt;br /&gt;
worked properly, this would be very seamless and easy - no re-porting&lt;br /&gt;
required.&lt;br /&gt;
&lt;br /&gt;
In fact, you could take it a step further.  Each implementing site could&lt;br /&gt;
choose to have (and maintain) their own branch.  So a site might branch&lt;br /&gt;
off of WorldVistA&#039;s mainline, make a few local mods, then merge new&lt;br /&gt;
changes from WorldVista as time goes on.  And if WorldVistA liked those&lt;br /&gt;
local changes, they could merge in the other direction - the local&lt;br /&gt;
changes are accepted back into the main distribution.  For an&lt;br /&gt;
all-volunteer distribution like WorldVistA, this may be the main source&lt;br /&gt;
of their changes.&lt;br /&gt;
&lt;br /&gt;
So why don&#039;t we do all of this now?  First of all, some of us are still&lt;br /&gt;
using centralized revision control.  That&#039;s what Ignacio was trying to&lt;br /&gt;
address by starting this thread.  Fixing this is the easy part -&lt;br /&gt;
switching from a centralized model to a distributed model is fairly&lt;br /&gt;
simple because the centralized model is just a subset of the distributed&lt;br /&gt;
model.  It&#039;s like having just one branch that everyone commits to.&lt;br /&gt;
&lt;br /&gt;
The second thing we need is automated merging.  What we need to do is&lt;br /&gt;
come up with a way to express VistA structures in a way that existing&lt;br /&gt;
revision control tools can understand.  Right now, a menu is stored in&lt;br /&gt;
FileMan, which is stored as globals in a binary database file.  A tool&lt;br /&gt;
designed to handle source code can&#039;t handle that.  It doesn&#039;t know how&lt;br /&gt;
to merge two multi-gigabyte binary blobs to make a meaningful new&lt;br /&gt;
version.  We could export the database as plain text (e.g., %GO or&lt;br /&gt;
ZWRITE format), but even that is not enough to allow automated merging&lt;br /&gt;
because a menu might have a certain IEN at one site but another IEN at&lt;br /&gt;
another site.  The existing tools have no idea what&#039;s important and&lt;br /&gt;
needs to be merged and what is site-specific and can be discarded.  What&lt;br /&gt;
we need is an abstract representation of a menu, similar to what KIDS&lt;br /&gt;
has.  If we can present these VistA structures to an existing tool, we&lt;br /&gt;
can leverage the power of these existing tools to do development as a&lt;br /&gt;
community more efficiently.&lt;br /&gt;
&lt;br /&gt;
From talking to various folks at the VistA Community Meetings, some&lt;br /&gt;
thought has gone into how to do #2, but I haven&#039;t seen anything workable&lt;br /&gt;
yet.  For now, I agree with Ignacio that we should do what we can, i.e., #1.  Standardize on a distributed revision control tool so we can build the tools for #2 around it.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Why_VistA_development_does_not_use_sourceforge&amp;diff=5586</id>
		<title>Why VistA development does not use sourceforge</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Why_VistA_development_does_not_use_sourceforge&amp;diff=5586"/>
		<updated>2009-07-08T19:20:35Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hopefully this page will someday say &#039;We do, here is a link!!&#039;. We already use sourceforge to allow for downloads. But what you really mean is using one of the source code version control systems that sourceforge offers. Which of course would enable us to use the bugtracking and other goodness that sourceforge and the other forge sites have... &lt;br /&gt;
&lt;br /&gt;
For now it is enough to say that [[VistA Version Control is Hard]]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=VistA_Community_Challenges&amp;diff=5653</id>
		<title>VistA Community Challenges</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=VistA_Community_Challenges&amp;diff=5653"/>
		<updated>2009-07-08T19:18:30Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== VistA Version Control ==&lt;br /&gt;
&lt;br /&gt;
First you should understand why [[VistA Version Control is Hard]] which is also the answer to the question [[Why VistA development does not use sourceforge]]&lt;br /&gt;
&lt;br /&gt;
== Private sector billing ==&lt;br /&gt;
== Private sector oriented GUI scheduling in VA VistA ==&lt;br /&gt;
== e-prescribing ==&lt;br /&gt;
== Easier lab connectivity ==&lt;br /&gt;
== Out-of-box HIE compatibility ==&lt;br /&gt;
== Extensive template library ==&lt;br /&gt;
== Patient web portal ==&lt;br /&gt;
== Certification or re-certification ==&lt;br /&gt;
== More than one typeface, bold, italic available for clinic notes ==&lt;br /&gt;
== Improved developer tools ==&lt;br /&gt;
=== work flow description analysis and redesign for VistA readiness ===&lt;br /&gt;
&lt;br /&gt;
There are tools for this sort ofpreparatory work that could be adapted to the specifics of a VistA implementation and used to increase the chances for success. &lt;br /&gt;
&lt;br /&gt;
=== Resurrect MailMan ===&lt;br /&gt;
&lt;br /&gt;
Resurrect MailMan as a viable tool for KIDS distribution and all the other things it could do within and between VistA sites.&lt;br /&gt;
&lt;br /&gt;
=== Invent a mechanism for INSTITUTION File standardization outside the VA ===&lt;br /&gt;
&lt;br /&gt;
=== ODBC connectivity for VistA in GTM  ===&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Main_Page&amp;diff=5600</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Main_Page&amp;diff=5600"/>
		<updated>2009-07-08T19:06:23Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: added challenges page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is Vistapedia? ==&lt;br /&gt;
Vistapedia is a wiki resource for VistA (all variants including: WorldVistA EHR, vxVistA, Hui Openvista and Medsphere OpenVistA) and RPMS. Wikis are a place to document shared knowledge. The best example of a wiki is the eponymous [http://www.wikipedia.com/ Wikipedia]. This [[Why a wiki?| wiki]] covers installation and configuration of [[DHCP~|DHCP]] derivatives such as [[VistA~|VistA]], [[RPMS~|RPMS]] and [[CHCS~|CHCS]].&lt;br /&gt;
&lt;br /&gt;
== What is Vista? ==&lt;br /&gt;
VistA is a Electronic Health Record programmed by Federal (US) employees working for the [http://www.va.gov Department of Veterans Affairs (previously Veterans Administration)] for several decades, since the late 1970s. It&#039;s public domain software. It is considered by many to be a national treasure. For a more complete coverage of the question you should read [[What is VistA Really]]. This wiki does not just have what you can read in any high level press article, but the information that you need to understand its culture and its values.&lt;br /&gt;
=== The flavors of Vista ===&lt;br /&gt;
At the time I write this (June 21, 2009), there are four flavors of Vista:&lt;br /&gt;
* FOIA Vista (unlicensed [http://en.wikipedia.org/wiki/Public_domain public domain] software) ([http://www.va.gov/vista_monograph/ Home]) ([ftp://ftp.va.gov/Vista/Software/VISTA_FOIA_ZIPS/ Download])&lt;br /&gt;
* WorldVista ([http://www.opensource.org/licenses/gpl-2.0.php GPL] licensed) ([http://worldvista.org Home]) ([http://worldvista.org/Software_Download Download], [http://vistapedia.net/index.php?title=Astronaut_Installers Astronaut-Auto-Install]) &lt;br /&gt;
* OpenVista ([http://www.opensource.org/licenses/agpl-v3.html AGPL] licensed) ([http://medsphere.org Home]) ([http://medsphere.org Download])&lt;br /&gt;
* vxVista (Eclipse Public License - [http://www.opensource.org/licenses/eclipse-1.0.php EPL]) ([http://www.dssinc.com Home]) (not downloadable)&lt;br /&gt;
&lt;br /&gt;
(You may hear about da Vinci Vista, VOE Vista, and Hui Vista. These don&#039;t exist and/or are not maintained anymore.)&lt;br /&gt;
&lt;br /&gt;
Go to [[Which VistA]] for more information on the different flavors.&lt;br /&gt;
&lt;br /&gt;
== What is RPMS? ==&lt;br /&gt;
RPMS is another public domain Electronic Health Record, programmed by the Indian Health Service (IHS). It actually started in the late 60&#039;s, and thus predates Vista. From the 60&#039;s to the 80&#039;s, it was a different architecture. Since the 80&#039;s, it uses the same architecture as Vista. While RPMS shares a lot of features with Vista, it&#039;s much stronger in population-based and outpatient-based Electronic Health Records. Currently, it is not downloadable because IHS has not made a FOIA Gold database available, but it is expected to do so shortly. When it does, I will post a link here. [[User:Shabiel|Sam]]&lt;br /&gt;
&lt;br /&gt;
== I want a human to talk to! ==&lt;br /&gt;
Vista implementors and enthusiasts are on a mailing list called HardHats. It&#039;s on google groups. Follow this [http://www.google.com/group/hardhats link] to browse and join the group. Or email info at worldvista dot org.&lt;br /&gt;
&lt;br /&gt;
== Installation Guides ==&lt;br /&gt;
&lt;br /&gt;
By far the easiest way to get an instance of VistA running is to use the Astronaut installers by Dr. Ignacio Valdes. The installers provide a simple way to install VistA using rpm or deb files. First you need to download and install either a debian based (like Ubuntu or Debian) or rpm based (like Fedora or CentOS) version of GNU/Linux. Then download the version of VistA you like from sourceforge below.   &lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/astronautnostro/ Astronaut Nostromo OpenVistA(tm) Sourceforge page] - rpm and deb installers for Medsphere&#039;s OpenVistA&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/worldvistaautoi/ Astronaut WorldVistA(tm) Auto Installer] - rpm and deb installers for WorldVista EHR &lt;br /&gt;
&lt;br /&gt;
Then follow the instructions for [http://www.tuxfiles.org/linuxhelp/rpminstall.html installing an rpm] or [http://www.cyberciti.biz/faq/ubuntu-linux-how-do-i-install-deb-packages/ installing a deb] depending on which version you chose. It helps if you already understand a little about GNU/Linux to get this working. If this seems a little over your head, you can get help with GNU/Linux at your local [http://www.linux.org/groups/ Linux Users Group].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.vistapedia.net/index.php?title=Category:FAQ Common Questions about VistA].&lt;br /&gt;
&lt;br /&gt;
[[How does VistA work]]? This is the technology that you need to understand about VistA even if you really do not want to understand technology&lt;br /&gt;
&lt;br /&gt;
[[Where do I Start]]? VistA is very well documented. Almost too well. This page help you find the information that you need, depending on what you are looking for. Another way to look at things is on the [[Old Main]] page.&lt;br /&gt;
&lt;br /&gt;
[[VistA Community Challenges]] technical features that VistA needs and issues that hold VistA development back. If VistA is not good enough for your environment, the reason should be listed here.&lt;br /&gt;
&lt;br /&gt;
[http://www.vistapedia.net/index.php?title=Special:Categories Browse Categories]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
To get access, contact David Whitten ( whitten at worldvista.org ) through &lt;br /&gt;
an e-mail, or phone 713 870 3834 to get an account. Please send a contact telephone number with your e-mail, and/or have an e-mail address ready when you call. (I need both.) Please decide on your preferred User name and send it as well. We have provided a [[User Status|page]] for new users and  their current status. Thank you.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Main_Page&amp;diff=5584</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Main_Page&amp;diff=5584"/>
		<updated>2009-07-08T19:03:17Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: replace install instructions with links to Astronaut&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is Vistapedia? ==&lt;br /&gt;
Vistapedia is a wiki resource for VistA (all variants including: WorldVistA EHR, vxVistA, Hui Openvista and Medsphere OpenVistA) and RPMS. Wikis are a place to document shared knowledge. The best example of a wiki is the eponymous [http://www.wikipedia.com/ Wikipedia]. This [[Why a wiki?| wiki]] covers installation and configuration of [[DHCP~|DHCP]] derivatives such as [[VistA~|VistA]], [[RPMS~|RPMS]] and [[CHCS~|CHCS]].&lt;br /&gt;
&lt;br /&gt;
== What is Vista? ==&lt;br /&gt;
VistA is a Electronic Health Record programmed by Federal (US) employees working for the [http://www.va.gov Department of Veterans Affairs (previously Veterans Administration)] for several decades, since the late 1970s. It&#039;s public domain software. It is considered by many to be a national treasure. For a more complete coverage of the question you should read [[What is VistA Really]]. This wiki does not just have what you can read in any high level press article, but the information that you need to understand its culture and its values.&lt;br /&gt;
=== The flavors of Vista ===&lt;br /&gt;
At the time I write this (June 21, 2009), there are four flavors of Vista:&lt;br /&gt;
* FOIA Vista (unlicensed [http://en.wikipedia.org/wiki/Public_domain public domain] software) ([http://www.va.gov/vista_monograph/ Home]) ([ftp://ftp.va.gov/Vista/Software/VISTA_FOIA_ZIPS/ Download])&lt;br /&gt;
* WorldVista ([http://www.opensource.org/licenses/gpl-2.0.php GPL] licensed) ([http://worldvista.org Home]) ([http://worldvista.org/Software_Download Download], [http://vistapedia.net/index.php?title=Astronaut_Installers Astronaut-Auto-Install]) &lt;br /&gt;
* OpenVista ([http://www.opensource.org/licenses/agpl-v3.html AGPL] licensed) ([http://medsphere.org Home]) ([http://medsphere.org Download])&lt;br /&gt;
* vxVista (Eclipse Public License - [http://www.opensource.org/licenses/eclipse-1.0.php EPL]) ([http://www.dssinc.com Home]) (not downloadable)&lt;br /&gt;
&lt;br /&gt;
(You may hear about da Vinci Vista, VOE Vista, and Hui Vista. These don&#039;t exist and/or are not maintained anymore.)&lt;br /&gt;
&lt;br /&gt;
Go to [[Which VistA]] for more information on the different flavors.&lt;br /&gt;
&lt;br /&gt;
== What is RPMS? ==&lt;br /&gt;
RPMS is another public domain Electronic Health Record, programmed by the Indian Health Service (IHS). It actually started in the late 60&#039;s, and thus predates Vista. From the 60&#039;s to the 80&#039;s, it was a different architecture. Since the 80&#039;s, it uses the same architecture as Vista. While RPMS shares a lot of features with Vista, it&#039;s much stronger in population-based and outpatient-based Electronic Health Records. Currently, it is not downloadable because IHS has not made a FOIA Gold database available, but it is expected to do so shortly. When it does, I will post a link here. [[User:Shabiel|Sam]]&lt;br /&gt;
&lt;br /&gt;
== I want a human to talk to! ==&lt;br /&gt;
Vista implementors and enthusiasts are on a mailing list called HardHats. It&#039;s on google groups. Follow this [http://www.google.com/group/hardhats link] to browse and join the group. Or email info at worldvista dot org.&lt;br /&gt;
&lt;br /&gt;
== Installation Guides ==&lt;br /&gt;
&lt;br /&gt;
By far the easiest way to get an instance of VistA running is to use the Astronaut installers by Dr. Ignacio Valdes. The installers provide a simple way to install VistA using rpm or deb files. First you need to download and install either a debian based (like Ubuntu or Debian) or rpm based (like Fedora or CentOS) version of GNU/Linux. Then download the version of VistA you like from sourceforge below.   &lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/astronautnostro/ Astronaut Nostromo OpenVistA(tm) Sourceforge page] - rpm and deb installers for Medsphere&#039;s OpenVistA&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/worldvistaautoi/ Astronaut WorldVistA(tm) Auto Installer] - rpm and deb installers for WorldVista EHR &lt;br /&gt;
&lt;br /&gt;
Then follow the instructions for [http://www.tuxfiles.org/linuxhelp/rpminstall.html installing an rpm] or [http://www.cyberciti.biz/faq/ubuntu-linux-how-do-i-install-deb-packages/ installing a deb] depending on which version you chose. It helps if you already understand a little about GNU/Linux to get this working. If this seems a little over your head, you can get help with GNU/Linux at your local [http://www.linux.org/groups/ Linux Users Group].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.vistapedia.net/index.php?title=Category:FAQ Common Questions about VistA].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[How does VistA work]]? This is the technology that you need to understand about VistA even if you really do not want to understand technology&lt;br /&gt;
&lt;br /&gt;
[[Where do I Start]]? VistA is very well documented. Almost too well. This page help you find the information that you need, depending on what you are looking for. Another way to look at things is on the [[Old Main]] page.&lt;br /&gt;
&lt;br /&gt;
? There are several products based on VA VistA, here is a list and some basic information.&lt;br /&gt;
&lt;br /&gt;
[http://www.vistapedia.net/index.php?title=Special:Categories Browse Categories]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
To get access, contact David Whitten ( whitten at worldvista.org ) through &lt;br /&gt;
an e-mail, or phone 713 870 3834 to get an account. Please send a contact telephone number with your e-mail, and/or have an e-mail address ready when you call. (I need both.) Please decide on your preferred User name and send it as well. We have provided a [[User Status|page]] for new users and  their current status. Thank you.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Which_VistA&amp;diff=6268</id>
		<title>Which VistA</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Which_VistA&amp;diff=6268"/>
		<updated>2009-07-08T18:41:17Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: added EPL to vxvista&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is available form the United States Federal Government via a Freedom of Information Act request. The sourcecode that you get from this request is in the public domain, which means that it can be used for a product using any license. Here is a list of products based on VistA, what their licenses are and links to further information about them. The version of VistA that you can get directly from the Veterans administration is often called FOIA VistA to distinguish it from the other products on this list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;| Product&lt;br /&gt;
&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;| Description&lt;br /&gt;
&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;| Who packages it?&lt;br /&gt;
&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;| License&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| VA VistA or FOIA VistA&lt;br /&gt;
&lt;br /&gt;
| The version of VistA available directly from the United States Federal Government. This is the version that all of these other products are based on. &lt;br /&gt;
&lt;br /&gt;
| [http://www.va.gov/vista_monograph/ Veterans Administration VistA Page]&lt;br /&gt;
&lt;br /&gt;
| public domain&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| [[RPMS~|RPMS]]&lt;br /&gt;
&lt;br /&gt;
| Resource and Patient Management System is a fork of VistA within the Federal Government, used by Indian Health Services.  &lt;br /&gt;
&lt;br /&gt;
| [http://www.ihs.gov/Cio/RPMS/index.cfm?module=home&amp;amp;option=index IHS RPMS home page]&lt;br /&gt;
&lt;br /&gt;
| public domain&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| [[CHCS~|CHCS]]&lt;br /&gt;
&lt;br /&gt;
| Consolidated Health Care System is a fork of VistA within the Federal Government, used by the Department of Defense.  &lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
| public domain&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| [http://www.worldvista.org/World_VistA_EHR WorldVistA EHR]&lt;br /&gt;
&lt;br /&gt;
| WorldVistA EHRTM  is an open source electronic health record (EHR) based on the highly acclaimed VistA system of the United States Department of Veterans Affairs (VA). The foundation for WorldVistA EHR was developed as part of the VistA-Office project, a collaborative effort funded by the Centers for Medicare &amp;amp; Medicaid Services (CMS), an agency of the Department of Health and Human Services (DHHS). The overall goal of the VistA-Office EHR (VOE) project was to encourage the broader adoption and effective use of EHRs among physicians by making a robust, flexible EHR solution alternative available. After completion of the VOE project in March 2007, WorldVistA made additional enhancements and submitted WorldVistA EHR for certification by theCertification Commission for Healthcare Information Technology(CCHITSM). WorldVistA EHR, Verison VOE/1.0 achieved full CCHITSM EHR&lt;br /&gt;
&lt;br /&gt;
| [http://www.worldvista.org WorldVistA]&lt;br /&gt;
&lt;br /&gt;
| GPL&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| [http://www.vistaexperts.com/what_is_vxvista.htm vxVistA]&lt;br /&gt;
&lt;br /&gt;
| VistA Experts VistA or vxVistA is a set of DSS Electronic Health Record (EHR) product suites designed and built around the Veterans Health Information Systems and Technology Architecture (VistA).  VistA is a proven, robust EHR with documented patient care benefits. (copied from the DSS page on vxVista) vxVistA is CCHIT certified. &lt;br /&gt;
&lt;br /&gt;
| [http://www.vistaexperts.com/index.htm DSS]&lt;br /&gt;
&lt;br /&gt;
| proprietary / Eclipse Public License&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| [http://medsphere.org/ OpenVista]&lt;br /&gt;
&lt;br /&gt;
| OpenVista provides a robust commercial EHR framework that will enable healthcare providers to leverage the incredible innovations, talent, and billions of dollars invested in the VA&#039;s VistA system over more than 20 years, as well as Medsphere&#039;s four years of investment in tailoring VistA for use outside the VA and successfully deploying the results in several sites.&lt;br /&gt;
&lt;br /&gt;
| [http://www.medsphere.com/ Medsphere]&lt;br /&gt;
&lt;br /&gt;
| various open source licenses&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| VistA-Office&lt;br /&gt;
&lt;br /&gt;
| VistA Office was sponsored by the CMS as a clinical version of VA VistA. Eventually it became WorldVistA EHR.&lt;br /&gt;
&lt;br /&gt;
| [http://www.worldvista.org WorldVista]&lt;br /&gt;
&lt;br /&gt;
| GPL&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Main_Page&amp;diff=5583</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Main_Page&amp;diff=5583"/>
		<updated>2009-07-08T18:40:08Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: display name of what is vista really, rather than article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is Vistapedia? ==&lt;br /&gt;
Vistapedia is a wiki resource for VistA (all variants including: WorldVistA EHR, vxVistA, Hui Openvista and Medsphere OpenVistA) and RPMS. Wikis are a place to document shared knowledge. The best example of a wiki is the eponymous [http://www.wikipedia.com/ Wikipedia]. This [[Why a wiki?| wiki]] covers installation and configuration of [[DHCP~|DHCP]] derivatives such as [[VistA~|VistA]], [[RPMS~|RPMS]] and [[CHCS~|CHCS]].&lt;br /&gt;
&lt;br /&gt;
== What is Vista? ==&lt;br /&gt;
VistA is a Electronic Health Record programmed by Federal (US) employees working for the [http://www.va.gov Department of Veterans Affairs (previously Veterans Administration)] for several decades, since the late 1970s. It&#039;s public domain software. It is considered by many to be a national treasure. For a more complete coverage of the question you should read [[What is VistA Really]]. This wiki does not just have what you can read in any high level press article, but the information that you need to understand its culture and its values.&lt;br /&gt;
=== The flavors of Vista ===&lt;br /&gt;
At the time I write this (June 21, 2009), there are four flavors of Vista:&lt;br /&gt;
* FOIA Vista (unlicensed [http://en.wikipedia.org/wiki/Public_domain public domain] software) ([http://www.va.gov/vista_monograph/ Home]) ([ftp://ftp.va.gov/Vista/Software/VISTA_FOIA_ZIPS/ Download])&lt;br /&gt;
* WorldVista ([http://www.opensource.org/licenses/gpl-2.0.php GPL] licensed) ([http://worldvista.org Home]) ([http://worldvista.org/Software_Download Download], [http://vistapedia.net/index.php?title=Astronaut_Installers Astronaut-Auto-Install]) &lt;br /&gt;
* OpenVista ([http://www.opensource.org/licenses/agpl-v3.html AGPL] licensed) ([http://medsphere.org Home]) ([http://medsphere.org Download])&lt;br /&gt;
* vxVista (Eclipse Public License - [http://www.opensource.org/licenses/eclipse-1.0.php EPL]) ([http://www.dssinc.com Home]) (not downloadable)&lt;br /&gt;
&lt;br /&gt;
(You may hear about da Vinci Vista, VOE Vista, and Hui Vista. These don&#039;t exist and/or are not maintained anymore.)&lt;br /&gt;
&lt;br /&gt;
Go to [[Which VistA]] for more information on the different flavors.&lt;br /&gt;
&lt;br /&gt;
== What is RPMS? ==&lt;br /&gt;
RPMS is another public domain Electronic Health Record, programmed by the Indian Health Service (IHS). It actually started in the late 60&#039;s, and thus predates Vista. From the 60&#039;s to the 80&#039;s, it was a different architecture. Since the 80&#039;s, it uses the same architecture as Vista. While RPMS shares a lot of features with Vista, it&#039;s much stronger in population-based and outpatient-based Electronic Health Records. Currently, it is not downloadable because IHS has not made a FOIA Gold database available, but it is expected to do so shortly. When it does, I will post a link here. [[User:Shabiel|Sam]]&lt;br /&gt;
&lt;br /&gt;
== I want a human to talk to! ==&lt;br /&gt;
Vista implementors and enthusiasts are on a mailing list called HardHats. It&#039;s on google groups. Follow this [http://www.google.com/group/hardhats link] to browse and join the group. Or email info at worldvista dot org.&lt;br /&gt;
&lt;br /&gt;
== Installation Guides ==&lt;br /&gt;
[[RPMS Installation|Installing RPMS from a gold database]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[How to Get WorldVistA EHR]] (from Hardhats)&lt;br /&gt;
&lt;br /&gt;
[http://www.vistapedia.net/index.php?title=Category:FAQ Common Questions about VistA].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[How does VistA work]]? This is the technology that you need to understand about VistA even if you really do not want to understand technology&lt;br /&gt;
&lt;br /&gt;
[[Where do I Start]]? VistA is very well documented. Almost too well. This page help you find the information that you need, depending on what you are looking for. Another way to look at things is on the [[Old Main]] page.&lt;br /&gt;
&lt;br /&gt;
? There are several products based on VA VistA, here is a list and some basic information.&lt;br /&gt;
&lt;br /&gt;
[http://www.vistapedia.net/index.php?title=Special:Categories Browse Categories]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
To get access, contact David Whitten ( whitten at worldvista.org ) through &lt;br /&gt;
an e-mail, or phone 713 870 3834 to get an account. Please send a contact telephone number with your e-mail, and/or have an e-mail address ready when you call. (I need both.) Please decide on your preferred User name and send it as well. We have provided a [[User Status|page]] for new users and  their current status. Thank you.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=6473</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=6473"/>
		<updated>2009-02-19T15:42:35Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: 80s not 90s&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is a Electronic Health Record programmed by Federal (US) employees working for the Department of Veterans Affairs (previously Veterans Administration) for several decades, since the late 1970s. 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. &lt;br /&gt;
&lt;br /&gt;
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 be fans of VistA, so here is the page that will give some insight to what is great about VistA.&lt;br /&gt;
&lt;br /&gt;
== Disputed History ==&lt;br /&gt;
The [http://www.hardhats.org/history/hardhats.html history of VistA available from hardhats.org] indicates that VistA development began in the late 1970&#039;s. VA documents, such as the [http://www.va.gov/vista_monograph/ VistA Monograph] date  the start of VistA as in the mid 1980&#039;s. Why the discrepancy? In short the version at hardhats is the real version. It documents how VistA moved from an underground movement to a celebrated system.&lt;br /&gt;
&lt;br /&gt;
VistA and the vision of VistA was a programmer led counter-culture within the VA. Programmers and administrators often risked their jobs (and some lost them) in order to develop a system that would satisfy clinical needs at the local hospital. Each programmer was primarily interested in the needs of clinical users who worked at the same local VA hospital that the programmer did. However, they were committed to building software that could be used across the VA system.&lt;br /&gt;
&lt;br /&gt;
What is unique about this is that it represented one combined system that was developed by a distributed team. In short, the creation of VistA was a precursor  to the distributed &amp;quot;open source&amp;quot; development style way before the concept came into vogue in the 1990&#039;s. The best description of this style of distributed development is in a paper called [http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ &amp;quot;The Cathedral and the Bazaar&amp;quot;] by Eric Raymond.&lt;br /&gt;
&lt;br /&gt;
The VA dates &amp;quot;VistA&amp;quot; from the time when they approved the software. The VA was using VistA long before they approved it, but only in some of their hospitals, instead of across the VA system. In fact, the name &amp;quot;VistA&amp;quot; was not created until much later, the original name was DHCP (for Decentralized Hospital Computer Program). The VA bureaucracy is primarily concerned (as it should be) with the care of veterans. As one can imagine, this is a highly political issue with tremendous pressure from Washington. Enlightenment with regard to the development of VistA is largely independent of bureaucratic ability. When the VA is lead by VistA-enlightened leadership, VistA tends to thrive and move forward. When the VA is led by those ignorant of VistA and software generally, VistA tends to stagnate. &lt;br /&gt;
&lt;br /&gt;
The tension between those who actually make VistA good (the VistA programmers, ADPACs, and CACs) and the bureaucracy in charge of the VA resources still exists. In many ways the purpose of WorldVistA is to ease this tension. WorldVistA is intended to be neutral meeting place for VA programmers, VA bureaucrats and those external to the VA. The only common theme in the WorldVistA community is the interest in VistA and making VistA better.&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
Despite the way in which VistA was developed, it is a common misconception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the strict definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [http://en.wikipedia.org/w/index.php?title=GPL General Public License (GPL)]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents someone from controlling the software and making it unavailable to others. Some proprietary VistA vendors favor other licenses that allow for proprietarization.&lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
The first barrier to really understanding VistA is one of overlapping vocabularies. Often people who are technically savvy have a more difficult time with this than those with less technological 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. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;RPC&amp;quot; is a good example. When most people outside the VistA Community say RPC they are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call standard meaning of RPC] is based on the same basic idea as the [[VistA RPC]] mechanism, but otherwise, and in detail, 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused: first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and second, read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confound first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally) With MUMPS you must be careful where you indent using spaces.  Putting multiple spaces in some places is not allowed at all, which will really bother you if you like python (which forces indentation as part of the syntax instead of using periods as MUMPS does)&lt;br /&gt;
* MUMPS is its own database, but its database is not SQL. It&#039;s a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals (variables) means something in the permanent database, ie: global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (variables that are shared within all parts of a single program are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS actually were the operating systems on the machine, and this legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers, compared to the much larger number of programmers in mainstream languages.  There are more MUMPS people than SNOBOL or many of other programming languages of the same generation, but for the market segment the number of programmers is definitely disproportional.  Just because MUMPS is commonly used in healthcare does not mean that it is easy to find non-healthcare programmers who use MUMPS.&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages because MUMPS maintains backward compatibility to ideas that modern computer scientists don&#039;t see except in assembly language programming, such as the GOTO command or line tags.&lt;br /&gt;
* Because they are rare, MUMPS programmers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language having little or no value. Here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, as it was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a text based (command line) system. CPRS is only the GUI. ==&lt;br /&gt;
&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
Much of VistA is only available on terminals. CPRS is a [[GUI~|GUI]] client written in Borland&#039;s Delphi (Pascal) 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.&lt;br /&gt;
&lt;br /&gt;
[[Image:Server.png|Basic VistA architecture]]&lt;br /&gt;
&lt;br /&gt;
Many people unjustly dismiss terminal applications. GUIs make learning programs faster, but 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 lose productivity when forced to use GUIs.  Some of this is because Graphical interfaces use both a mouse and a keyboard, and some of this is because GUIs can change the location of information on the screen, whereas text applications are highly predictable about where they display information.&lt;br /&gt;
&lt;br /&gt;
People who only rarely use a program have to figure out how to use it from scratch every time.  For them a GUI is the best program system, because they can use their general knowledge about computer systems to figure out how to use the program anew.&lt;br /&gt;
&lt;br /&gt;
Often clinicians need graphical displays that are not possible in terminal applications, such as for graphing results or seeing trends. CPRS is intended to perform most of the common clinical functions in a GUI environment.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the dominant GUI for VistA. It takes a small percentage of the underlying VistA functionality and presents it in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians. Often those without direct patient contact, such as pharmacists, do not have a GUI based interface, and must use the traditional roll-and-scroll terminal interface. Since so many clinicians are trained with CPRS, and because they often use only this interface, many clinicians assume that CPRS is VistA.&lt;br /&gt;
&lt;br /&gt;
This is not entirely a bad thing. CPRS provides a very well thought out approach to the underlying VistA capabilities. It is relatively easy to use, given the complexity and depth that it contains. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very, very customizable. In the VA, the [[Clinical Application Coordinator]] (CAC) role, is essentially responsible for the care and feeding of CPRS. A competent CAC is capable of tuning CPRS in numerous ways to the preferences of departments, floors, or even individual clinicians. The CPRS menu is capable of linking to other programs, so that clinical programs that are actually separate applications can appear to be a part of CPRS.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (that means too old for you Yankees). It is written in Delphi, which is no longer a popular programming language as it was in the mid 1980s. Like the rest of VistA, CPRS was written when computers were much slower, and as a result CPRS is comparatively 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.&lt;br /&gt;
&lt;br /&gt;
== Contact the Editor ==&lt;br /&gt;
This page was originally written and is currently edited by [http://www.fredtrotter.com Fred Trotter]. If you have comments or suggestions about the contents of the article please [http://www.fredtrotter.com contact Fred Trotter] directly.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5323</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5323"/>
		<updated>2008-08-27T18:53:21Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* Licensing of FOIA VistA */ typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is a Electronic Health Record programmed by Federal (US) employees working for the Department of Veterans Affairs (previously Veterans Administration) for several decades, since the late 1970s. 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. &lt;br /&gt;
&lt;br /&gt;
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 be fans of VistA, so here is the page that will give some insight to what is great about VistA.&lt;br /&gt;
&lt;br /&gt;
== Disputed History ==&lt;br /&gt;
The [http://www.hardhats.org/history/hardhats.html history of VistA available from hardhats.org] indicates that VistA development began in the late 1970&#039;s. VA documents, such as the [http://www.va.gov/vista_monograph/ VistA Monograph] date  the start of VistA as in the mid 1980&#039;s. Why the discrepancy? In short the version at hardhats is the real version. It documents how VistA moved from an underground movement to a celebrated system.&lt;br /&gt;
&lt;br /&gt;
VistA and the vision of VistA was a programmer led counter-culture within the VA. Programmers and administrators often risked their jobs (and some lost them) in order to develop a system that would satisfy clinical needs at the local hospital. Each programmer was primarily interested in the needs of clinical users who worked at the same local VA hospital that the programmer did. However, they were committed to building software that could be used across the VA system.&lt;br /&gt;
&lt;br /&gt;
What is unique about this is that it represented one combined system that was developed by a distributed team. In short, the creation of VistA was a precursor  to the distributed &amp;quot;open source&amp;quot; development style way before the concept came into vogue in the 1990&#039;s. The best description of this style of distributed development is in a paper called [http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ &amp;quot;The Cathedral and the Bazaar&amp;quot;] by Eric Raymond.&lt;br /&gt;
&lt;br /&gt;
The VA dates &amp;quot;VistA&amp;quot; from the time when they approved the software. The VA was using VistA long before they approved it, but only in some of their hospitals, instead of across the VA system. In fact, the name &amp;quot;VistA&amp;quot; was not created until much later, the original name was DHCP (for Decentralized Hospital Computer Program). The VA bureaucracy is primarily concerned (as it should be) with the care of veterans. As one can imagine, this is a highly political issue with tremendous pressure from Washington. Enlightenment with regard to the development of VistA is largely independent of bureaucratic ability. When the VA is lead by VistA-enlightened leadership, VistA tends to thrive and move forward. When the VA is led by those ignorant of VistA and software generally, VistA tends to stagnate. &lt;br /&gt;
&lt;br /&gt;
The tension between those who actually make VistA good (the VistA programmers, ADPACs, and CACs) and the bureaucracy in charge of the VA resources still exists. In many ways the purpose of WorldVistA is to ease this tension. WorldVistA is intended to be neutral meeting place for VA programmers, VA bureaucrats and those external to the VA. The only common theme in the WorldVistA community is the interest in VistA and making VistA better.&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
Despite the way in which VistA was developed, it is a common misconception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the strict definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [http://en.wikipedia.org/w/index.php?title=GPL General Public License (GPL)]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents someone from controlling the software and making it unavailable to others. Some proprietary VistA vendors favor other licenses that allow for proprietarization.&lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
The first barrier to really understanding VistA is one of overlapping vocabularies. Often people who are technically savvy have a more difficult time with this than those with less technological 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. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;RPC&amp;quot; is a good example. When most people outside the VistA Community say RPC they are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call standard meaning of RPC] is based on the same basic idea as the [[VistA RPC]] mechanism, but otherwise, and in detail, 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused: first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and second, read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confound first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally) With MUMPS you must be careful where you indent using spaces.  Putting multiple spaces in some places is not allowed at all, which will really bother you if you like python (which forces indentation as part of the syntax instead of using periods as MUMPS does)&lt;br /&gt;
* MUMPS is its own database, but its database is not SQL. It&#039;s a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals (variables) means something in the permanent database, ie: global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (variables that are shared within all parts of a single program are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS actually were the operating systems on the machine, and this legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers, compared to the much larger number of programmers in mainstream languages.  There are more MUMPS people than SNOBOL or many of other programming languages of the same generation, but for the market segment the number of programmers is definitely disproportional.  Just because MUMPS is commonly used in healthcare does not mean that it is easy to find non-healthcare programmers who use MUMPS.&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages because MUMPS maintains backward compatibility to ideas that modern computer scientists don&#039;t see except in assembly language programming, such as the GOTO command or line tags.&lt;br /&gt;
* Because they are rare, MUMPS programmers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language having little or no value. Here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, as it was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a text based (command line) system. CPRS is only the GUI. ==&lt;br /&gt;
&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
Much of VistA is only available on terminals. CPRS is a [[GUI~|GUI]] client written in Borland&#039;s Delphi (Pascal) 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.&lt;br /&gt;
&lt;br /&gt;
[[Image:Server.png|Basic VistA architecture]]&lt;br /&gt;
&lt;br /&gt;
Many people unjustly dismiss terminal applications. GUIs make learning programs faster, but 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 lose productivity when forced to use GUIs.  Some of this is because Graphical interfaces use both a mouse and a keyboard, and some of this is because GUIs can change the location of information on the screen, whereas text applications are highly predictable about where they display information.&lt;br /&gt;
&lt;br /&gt;
People who only rarely use a program have to figure out how to use it from scratch every time.  For them a GUI is the best program system, because they can use their general knowledge about computer systems to figure out how to use the program anew.&lt;br /&gt;
&lt;br /&gt;
Often clinicians need graphical displays that are not possible in terminal applications, such as for graphing results or seeing trends. CPRS is intended to perform most of the common clinical functions in a GUI environment.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the dominant GUI for VistA. It takes a small percentage of the underlying VistA functionality and presents it in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians. Often those without direct patient contact, such as pharmacists, do not have a GUI based interface, and must use the traditional roll-and-scroll terminal interface. Since so many clinicians are trained with CPRS, and because they often use only this interface, many clinicians assume that CPRS is VistA.&lt;br /&gt;
&lt;br /&gt;
This is not entirely a bad thing. CPRS provides a very well thought out approach to the underlying VistA capabilities. It is relatively easy to use, given the complexity and depth that it contains. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very, very customizable. In the VA, the [[Clinical Application Coordinator]] (CAC) role, is essentially responsible for the care and feeding of CPRS. A competent CAC is capable of tuning CPRS in numerous ways to the preferences of departments, floors, or even individual clinicians. The CPRS menu is capable of linking to other programs, so that clinical programs that are actually separate applications can appear to be a part of CPRS.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (that means too old for you Yankees). It is written in Delphi, which is no longer a popular programming language as it was in the mid 1990s. Like the rest of VistA, CPRS was written when computers were much slower, and as a result CPRS is comparatively 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.&lt;br /&gt;
&lt;br /&gt;
== Contact the Editor ==&lt;br /&gt;
This page was originally written and is currently edited by [http://www.fredtrotter.com Fred Trotter]. If you have comments or suggestions about the contents of the article please [http://www.fredtrotter.com contact Fred Trotter] directly.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Restoring_a_VistA_installation&amp;diff=8589</id>
		<title>Restoring a VistA installation</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Restoring_a_VistA_installation&amp;diff=8589"/>
		<updated>2008-08-18T17:45:06Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First of all it is important to know that you should be using the journalling functionality of your underlying MUMPS implementation. &lt;br /&gt;
&lt;br /&gt;
Second, you should read this the thread on Hardhats that discusses this issue.&lt;br /&gt;
&lt;br /&gt;
 [http://groups.google.com/group/Hardhats/browse_thread/thread/fa504e6ecd5d1660 Intracare Implementation Log Episode 8: Power outage restart. ]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=VistA_Administration&amp;diff=5171</id>
		<title>VistA Administration</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=VistA_Administration&amp;diff=5171"/>
		<updated>2008-08-18T17:42:29Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installing VistA ==&lt;br /&gt;
&lt;br /&gt;
== Setup VistA ==&lt;br /&gt;
&lt;br /&gt;
== Maintaining VistA ==&lt;br /&gt;
&lt;br /&gt;
== Restoring VistA ==&lt;br /&gt;
Your system either has already crashed or it will eventually. &lt;br /&gt;
&lt;br /&gt;
[[Restoring a VistA installation]]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Where_do_I_Start&amp;diff=5981</id>
		<title>Where do I Start</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Where_do_I_Start&amp;diff=5981"/>
		<updated>2008-08-18T17:40:41Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* Technical Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Depends on who you are!! =&lt;br /&gt;
&lt;br /&gt;
VistA is many things to many people. In order to help you get what you want from VistA, we need to know a little more about you. Depending on what kind of VistA user you are, this system will provide documentation that will be relevant to you. &lt;br /&gt;
&lt;br /&gt;
== Evaluators == &lt;br /&gt;
You are an evaluator if you are considering using VistA. The Evaluator page will help you to determine if VistA is right for you. This is a place to get an honest evaluation of VistA&#039;s strengths and weaknesses. (Granted, we are biased.)&lt;br /&gt;
&lt;br /&gt;
[[Evaluator Page]]&lt;br /&gt;
&lt;br /&gt;
== Clinical Users == &lt;br /&gt;
Clinical Users of VistA do not necessarily need to know the complex details of what makes VistA tick. While you should probably understand the [[Basic VistA Architecture]] you really do not need to know much more about the VistA server itself. To you VistA will largely be an application called [[CPRS]]. This application is a powerful front end to VistA that will vary based on what kind of user you are. &lt;br /&gt;
&lt;br /&gt;
=== Physician VistA User ===&lt;br /&gt;
If you are a physician and you are interested in using VistA to improve the quality of your care, this is a good place to start. &lt;br /&gt;
&lt;br /&gt;
[[Physician Page]]&lt;br /&gt;
&lt;br /&gt;
=== Nurse VistA User ===&lt;br /&gt;
 You are a nurse who is interested in using VistA to better care for your patients&lt;br /&gt;
&lt;br /&gt;
[[Nurse Page]]&lt;br /&gt;
&lt;br /&gt;
=== Pharmacist VistA User === &lt;br /&gt;
If you are a pharmacist and you are interested in improving the way you handle medications with VistA, then this page is for you. There is currently no GUI for the pharmacy interface, rather an advanced text interface is used.&lt;br /&gt;
&lt;br /&gt;
[[Pharmacist Page]]&lt;br /&gt;
== Technical Users == &lt;br /&gt;
If you care what server it runs on then you are probably a technical user. This is the section for you if you want more help with operating systems, technical terms, programming help and everything you ever wanted to know about how VistA works underneath.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vendor === &lt;br /&gt;
You are a Vendor if you are hoping to make money supporting VistA. This section will cover the technology behind VistA in-depth and stepwise. Look here if you want to learn about the technologies that VistA relies on, and how to install, configure and support a VistA system. &lt;br /&gt;
&lt;br /&gt;
[[Vendor Page]]&lt;br /&gt;
&lt;br /&gt;
=== MUMPSter === &lt;br /&gt;
If you already know MUMPS you have a huge leg up in learning VistA! This section will give you the deep technical references to get you deeper into the system fast. &lt;br /&gt;
&lt;br /&gt;
[[MUMPSter Page]]&lt;br /&gt;
&lt;br /&gt;
=== Novice Programmer ===&lt;br /&gt;
If you understand the fundamentals of C/C++/Java/PHP/Python but you are a novice to MUMPS then this is the page for you. This section will give you an introduction to MUMPS, which is the critical first step to becoming a competent VistA developer.&lt;br /&gt;
&lt;br /&gt;
[[Novice Programmer Page]]&lt;br /&gt;
&lt;br /&gt;
=== VistA Administrator === &lt;br /&gt;
Here you will find links on how to Install Configure Maintain and Restore VistA installations.&lt;br /&gt;
&lt;br /&gt;
[[VistA Administration]]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Main_Page&amp;diff=5125</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Main_Page&amp;diff=5125"/>
		<updated>2008-03-31T19:08:37Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: migrated to simpler menu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[What is VistA Really]]? This article will help you to understand what VistA is. Not just what you can read in any high level press article, but the information that you need to understand its culture and its values.&lt;br /&gt;
&lt;br /&gt;
[[How does VistA work]]? This is the technology that you need to understand about VistA even if you really do not want to understand technology&lt;br /&gt;
&lt;br /&gt;
[[Where do I Start]]? VistA is very well documented. Almost too well. This page help you find the information that you need, depending on what you are looking for.&lt;br /&gt;
&lt;br /&gt;
[[Which VistA]]? There are several products based on VA VistA, here is a list and some basic information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Old Main]]? Does this simplistic menu annoy you? If so click here to be overwhelmed by an over-complex menu.&lt;br /&gt;
&lt;br /&gt;
[[Complaints and Comments]]? Do you have a useful critism of this website, WorldVistA generally or something that WorldVistA is doing? This is a place to vent, and to discover that we often understand our flaws and we are working on them.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Old_Main&amp;diff=5335</id>
		<title>Old Main</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Old_Main&amp;diff=5335"/>
		<updated>2008-03-31T19:07:23Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: copied from main_page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki covers questions regarding the VistA software, the various components of that software, and configuration and installation of the same. It incorporates information from many people. We have been repeatedly vandalized by people trying to advance their google page rank, hence this is now a closed community wiki.&lt;br /&gt;
&lt;br /&gt;
 To get access, contact David Whitten ( whitten at worldvista.org ) through an e-mail,&lt;br /&gt;
 or phone 713 870 3834 to get an account.&lt;br /&gt;
 Please send a contact telephone number with your e-mail, and/or&lt;br /&gt;
 have an e-mail address ready when you call. (I need both.)&lt;br /&gt;
 Please decide on your preferred User name.&lt;br /&gt;
 We have provided a [[User Status|page]] for new users and their current status.&lt;br /&gt;
 Thank you.  &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Configuration is the process of changing details about a VistA package. &lt;br /&gt;
These details are fine level controls over the behaviour of the package.&lt;br /&gt;
&lt;br /&gt;
=== Overview of VistA ===&lt;br /&gt;
* [[Basic Questions]]&lt;br /&gt;
* [[Frequently Asked Questions]]&lt;br /&gt;
* [[VistA System Components]]&lt;br /&gt;
* [[Documentation Overview]]&lt;br /&gt;
** [[Glossary of Terms]] ([[Glossary Template]])&lt;br /&gt;
* [[Programming Languages Overview]]&lt;br /&gt;
** [[MUMPS Overview]]&lt;br /&gt;
** [[Delphi Overview]]&lt;br /&gt;
** [[Java Overview]]&lt;br /&gt;
** [[SQL Overview]]&lt;br /&gt;
** [[XML Overview]]&lt;br /&gt;
* [[Programming VistA Issues]]&lt;br /&gt;
* [[FileMan Overview]] (with details also)&lt;br /&gt;
* [[Kernel Overview]]&lt;br /&gt;
* [[Operating Systems Overview]]&lt;br /&gt;
* [[VistA Packages Overview]]&lt;br /&gt;
** [[CPRS Overview]]&lt;br /&gt;
* [[M2Web Overview]]&lt;br /&gt;
&lt;br /&gt;
=== Projects Information ===&lt;br /&gt;
* Information is available at the [[Projects_List]] page&lt;br /&gt;
&lt;br /&gt;
=== Installation Guides ===&lt;br /&gt;
* [[Installation Overview]]&lt;br /&gt;
* [[Installation How To VistA GT.M Linux]]&lt;br /&gt;
* [[Installation How To VistA GT.M Ubuntu Linux | Installation How To VistA GT.M Ubuntu Linux including VistALink (Java)]]&lt;br /&gt;
* [[Migrating a VistA/GT.M installation from one platform to another]]&lt;br /&gt;
* [[Installation How To VistA/Cache]]&lt;br /&gt;
* [[Introducing VistA VivA 0.1]]&lt;br /&gt;
* [[Hardware Issues]]&lt;br /&gt;
* [[CPRS Installation]]&lt;br /&gt;
* [[VistALink]]&lt;br /&gt;
&lt;br /&gt;
=== Installation of Demos ===&lt;br /&gt;
* [[Installation How To VistA/GT.M coLinux]]&lt;br /&gt;
* [[Using the VistA Appliance]]&lt;br /&gt;
&lt;br /&gt;
=== Installation of Programmer Tools ===&lt;br /&gt;
* [[Victory Programmer Environment (VPE) Installation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration of Packages ===&lt;br /&gt;
* [[Configuration Overview]]&lt;br /&gt;
* [[Register a Patient]]&lt;br /&gt;
* [[HL7 Multi-Listener]]&lt;br /&gt;
&lt;br /&gt;
=== Collaboration Tools ===&lt;br /&gt;
* [[OpenForum]]&lt;br /&gt;
* Message Board (read only): http://www.mail-archive.com/hardhats-members@lists.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
* [[CHC Corner]] for &#039;&#039;&#039;   Community Health Centers   &#039;&#039;&#039; discussion/wish list/collaboration/etc.&lt;br /&gt;
&lt;br /&gt;
* [[From Hardhats Listserve:]]&lt;br /&gt;
&lt;br /&gt;
=== Volunteer Opportunities with WorldVistA ===&lt;br /&gt;
* [[Volunteer Coordinator]]&lt;br /&gt;
* [[Planning for VistA Advances]]&lt;br /&gt;
* [[Advocating VistA]]&lt;br /&gt;
* [[Documenting VistA]]&lt;br /&gt;
* [[Organization and Planning For VistA Community Meeting]]&lt;br /&gt;
* [[Recording Results Of A VistA Community Meeting]]&lt;br /&gt;
* [[Categorizing Needs For New VistA Packages]]&lt;br /&gt;
* [[Developing New VistA Packages]]&lt;br /&gt;
* [[Administration Of OpenForum]]&lt;br /&gt;
* [[VistA Community Weekly Conference Call]]&lt;br /&gt;
&lt;br /&gt;
=== Working Groups ===&lt;br /&gt;
*[[Software Development (WG1)]]&lt;br /&gt;
*[[Education and Training (WG2)]]&lt;br /&gt;
*[[Finance (WG3)]]&lt;br /&gt;
*[[Membership and Community (WG4)]]&lt;br /&gt;
*[[International (WG5)]]&lt;br /&gt;
&lt;br /&gt;
=== [[Community Meeting]] ===&lt;br /&gt;
* [[VistA Community Meeting Q1 2007]]&lt;br /&gt;
* [[VistA Community Meeting Q2 2007]]&lt;br /&gt;
* [[VistA Community Meeting Q1 2006]]&lt;br /&gt;
* [[VistA Community Meeting Q2 2006]]&lt;br /&gt;
* [[VCM Boston 2005]]&lt;br /&gt;
&lt;br /&gt;
=== [[Weekly Conference Calls]] ===&lt;br /&gt;
&lt;br /&gt;
=== Details about this page ===&lt;br /&gt;
To limit vandalism, this page has been write-protected. If you need to make modifications to this page,&lt;br /&gt;
contact DavidWhitten, who will help you make changes. Thank you for your support.&lt;br /&gt;
=== Details of this website&#039;s software ===&lt;br /&gt;
&lt;br /&gt;
This Wiki is based on the mediawiki software. [[Unique Features of Forum Wiki]]&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.&lt;br /&gt;
&lt;br /&gt;
Editing help see http://meta.wikimedia.org/wiki/Help:Editing#Sections.2C_paragraphs.2C_lists_and_lines&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Main_Page2&amp;diff=10254</id>
		<title>Main Page2</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Main_Page2&amp;diff=10254"/>
		<updated>2008-03-31T19:06:51Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: copied from main_page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki covers questions regarding the VistA software, the various components of that software, and configuration and installation of the same. It incorporates information from many people. We have been repeatedly vandalized by people trying to advance their google page rank, hence this is now a closed community wiki.&lt;br /&gt;
&lt;br /&gt;
 To get access, contact David Whitten ( whitten at worldvista.org ) through an e-mail,&lt;br /&gt;
 or phone 713 870 3834 to get an account.&lt;br /&gt;
 Please send a contact telephone number with your e-mail, and/or&lt;br /&gt;
 have an e-mail address ready when you call. (I need both.)&lt;br /&gt;
 Please decide on your preferred User name.&lt;br /&gt;
 We have provided a [[User Status|page]] for new users and their current status.&lt;br /&gt;
 Thank you.  &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Configuration is the process of changing details about a VistA package. &lt;br /&gt;
These details are fine level controls over the behaviour of the package.&lt;br /&gt;
&lt;br /&gt;
=== Overview of VistA ===&lt;br /&gt;
* [[Basic Questions]]&lt;br /&gt;
* [[Frequently Asked Questions]]&lt;br /&gt;
* [[VistA System Components]]&lt;br /&gt;
* [[Documentation Overview]]&lt;br /&gt;
** [[Glossary of Terms]] ([[Glossary Template]])&lt;br /&gt;
* [[Programming Languages Overview]]&lt;br /&gt;
** [[MUMPS Overview]]&lt;br /&gt;
** [[Delphi Overview]]&lt;br /&gt;
** [[Java Overview]]&lt;br /&gt;
** [[SQL Overview]]&lt;br /&gt;
** [[XML Overview]]&lt;br /&gt;
* [[Programming VistA Issues]]&lt;br /&gt;
* [[FileMan Overview]] (with details also)&lt;br /&gt;
* [[Kernel Overview]]&lt;br /&gt;
* [[Operating Systems Overview]]&lt;br /&gt;
* [[VistA Packages Overview]]&lt;br /&gt;
** [[CPRS Overview]]&lt;br /&gt;
* [[M2Web Overview]]&lt;br /&gt;
&lt;br /&gt;
=== Projects Information ===&lt;br /&gt;
* Information is available at the [[Projects_List]] page&lt;br /&gt;
&lt;br /&gt;
=== Installation Guides ===&lt;br /&gt;
* [[Installation Overview]]&lt;br /&gt;
* [[Installation How To VistA GT.M Linux]]&lt;br /&gt;
* [[Installation How To VistA GT.M Ubuntu Linux | Installation How To VistA GT.M Ubuntu Linux including VistALink (Java)]]&lt;br /&gt;
* [[Migrating a VistA/GT.M installation from one platform to another]]&lt;br /&gt;
* [[Installation How To VistA/Cache]]&lt;br /&gt;
* [[Introducing VistA VivA 0.1]]&lt;br /&gt;
* [[Hardware Issues]]&lt;br /&gt;
* [[CPRS Installation]]&lt;br /&gt;
* [[VistALink]]&lt;br /&gt;
&lt;br /&gt;
=== Installation of Demos ===&lt;br /&gt;
* [[Installation How To VistA/GT.M coLinux]]&lt;br /&gt;
* [[Using the VistA Appliance]]&lt;br /&gt;
&lt;br /&gt;
=== Installation of Programmer Tools ===&lt;br /&gt;
* [[Victory Programmer Environment (VPE) Installation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration of Packages ===&lt;br /&gt;
* [[Configuration Overview]]&lt;br /&gt;
* [[Register a Patient]]&lt;br /&gt;
* [[HL7 Multi-Listener]]&lt;br /&gt;
&lt;br /&gt;
=== Collaboration Tools ===&lt;br /&gt;
* [[OpenForum]]&lt;br /&gt;
* Message Board (read only): http://www.mail-archive.com/hardhats-members@lists.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
* [[CHC Corner]] for &#039;&#039;&#039;   Community Health Centers   &#039;&#039;&#039; discussion/wish list/collaboration/etc.&lt;br /&gt;
&lt;br /&gt;
* [[From Hardhats Listserve:]]&lt;br /&gt;
&lt;br /&gt;
=== Volunteer Opportunities with WorldVistA ===&lt;br /&gt;
* [[Volunteer Coordinator]]&lt;br /&gt;
* [[Planning for VistA Advances]]&lt;br /&gt;
* [[Advocating VistA]]&lt;br /&gt;
* [[Documenting VistA]]&lt;br /&gt;
* [[Organization and Planning For VistA Community Meeting]]&lt;br /&gt;
* [[Recording Results Of A VistA Community Meeting]]&lt;br /&gt;
* [[Categorizing Needs For New VistA Packages]]&lt;br /&gt;
* [[Developing New VistA Packages]]&lt;br /&gt;
* [[Administration Of OpenForum]]&lt;br /&gt;
* [[VistA Community Weekly Conference Call]]&lt;br /&gt;
&lt;br /&gt;
=== Working Groups ===&lt;br /&gt;
*[[Software Development (WG1)]]&lt;br /&gt;
*[[Education and Training (WG2)]]&lt;br /&gt;
*[[Finance (WG3)]]&lt;br /&gt;
*[[Membership and Community (WG4)]]&lt;br /&gt;
*[[International (WG5)]]&lt;br /&gt;
&lt;br /&gt;
=== [[Community Meeting]] ===&lt;br /&gt;
* [[VistA Community Meeting Q1 2007]]&lt;br /&gt;
* [[VistA Community Meeting Q2 2007]]&lt;br /&gt;
* [[VistA Community Meeting Q1 2006]]&lt;br /&gt;
* [[VistA Community Meeting Q2 2006]]&lt;br /&gt;
* [[VCM Boston 2005]]&lt;br /&gt;
&lt;br /&gt;
=== [[Weekly Conference Calls]] ===&lt;br /&gt;
&lt;br /&gt;
=== Details about this page ===&lt;br /&gt;
To limit vandalism, this page has been write-protected. If you need to make modifications to this page,&lt;br /&gt;
contact DavidWhitten, who will help you make changes. Thank you for your support.&lt;br /&gt;
=== Details of this website&#039;s software ===&lt;br /&gt;
&lt;br /&gt;
This Wiki is based on the mediawiki software. [[Unique Features of Forum Wiki]]&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.&lt;br /&gt;
&lt;br /&gt;
Editing help see http://meta.wikimedia.org/wiki/Help:Editing#Sections.2C_paragraphs.2C_lists_and_lines&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Which_VistA&amp;diff=5097</id>
		<title>Which VistA</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Which_VistA&amp;diff=5097"/>
		<updated>2007-11-10T14:27:36Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: added RPMS, improved link format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is available form the United States Federal Government via a Freedom of Information Act request. The sourcecode that you get from this request is in the public domain, which means that it can be used for a product using any license. Here is a list of products based on VistA, what their licenses are and links to further information about them. The version of VistA that you can get directly from the Veterans administration is often called FOIA VistA to distinguish it from the other products on this list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! Product&lt;br /&gt;
&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
! Who packages it?&lt;br /&gt;
&lt;br /&gt;
! License&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| VA VistA or FOIA VistA&lt;br /&gt;
&lt;br /&gt;
| The version of VistA available directly from the United States Federal Government. This is the version that all of these other products are based on. &lt;br /&gt;
&lt;br /&gt;
| Veterans Administration VistA Page http://www.va.gov/vista_monograph/&lt;br /&gt;
&lt;br /&gt;
| public domain&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| RPMS&lt;br /&gt;
&lt;br /&gt;
| Resource and Patient Management System is a fork of VistA within the Federal Government, used by Indian Health Services.  &lt;br /&gt;
&lt;br /&gt;
| IHS RPMS home page http://www.ihs.gov/Cio/RPMS/index.cfm?module=home&amp;amp;option=index&lt;br /&gt;
&lt;br /&gt;
| public domain&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| WorldVistA EHR http://www.worldvista.org/World_VistA_EHR&lt;br /&gt;
&lt;br /&gt;
| WorldVistA EHRTM  is an open source electronic health record (EHR) based on the highly acclaimed VistA system of the United States Department of Veterans Affairs (VA). The foundation for WorldVistA EHR was developed as part of the VistA-Office project, a collaborative effort funded by the Centers for Medicare &amp;amp; Medicaid Services (CMS), an agency of the Department of Health and Human Services (DHHS). The overall goal of the VistA-Office EHR (VOE) project was to encourage the broader adoption and effective use of EHRs among physicians by making a robust, flexible EHR solution alternative available. After completion of the VOE project in March 2007, WorldVistA made additional enhancements and submitted WorldVistA EHR for certification by theCertification Commission for Healthcare Information Technology(CCHITSM). WorldVistA EHR, Verison VOE/1.0 achieved full CCHITSM EHR&lt;br /&gt;
&lt;br /&gt;
| WorldVistA http://www.worldvista.org&lt;br /&gt;
&lt;br /&gt;
| GPL&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| vxVistA http://www.vistaexperts.com/what_is_vxvista.htm&lt;br /&gt;
&lt;br /&gt;
| VistA Experts VistA or vxVistA is a set of DSS Electronic Health Record (EHR) product suites designed and built around the Veterans Health Information Systems and Technology Architecture (VistA).  VistA is a proven, robust EHR with documented patient care benefits. (copied from the DSS page on vxVista) vxVistA is CCHIT certified. &lt;br /&gt;
&lt;br /&gt;
| DSS http://www.vistaexperts.com/index.htm&lt;br /&gt;
&lt;br /&gt;
| proprietary&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| OpenVista http://medsphere.org/&lt;br /&gt;
&lt;br /&gt;
| OpenVista provides a robust commercial EHR framework that will enable healthcare providers to leverage the incredible innovations, talent, and billions of dollars invested in the VA&#039;s VistA system over more than 20 years, as well as Medsphere&#039;s four years of investment in tailoring VistA for use outside the VA and successfully deploying the results in several sites.&lt;br /&gt;
&lt;br /&gt;
| Medsphere http://www.medsphere.com/&lt;br /&gt;
&lt;br /&gt;
| various open source licenses&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| VistA-Office&lt;br /&gt;
&lt;br /&gt;
| VistA Office was sponsored by the CMS as a clinical version of VA VistA. Eventually it became WorldVistA EHR.&lt;br /&gt;
&lt;br /&gt;
| WorldVista http://www.worldvista.org&lt;br /&gt;
&lt;br /&gt;
| GPL&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Which_VistA&amp;diff=5096</id>
		<title>Which VistA</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Which_VistA&amp;diff=5096"/>
		<updated>2007-11-08T16:55:15Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is available form the United States Federal Government via a Freedom of Information Act request. The sourcecode that you get from this request is in the public domain, which means that it can be used for a product using any license. Here is a list of products based on VistA, what their licenses are and links to further information about them. The version of VistA that you can get directly from the Veterans administration is often called FOIA VistA to distinguish it from the other products on this list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! Product&lt;br /&gt;
&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
! Who packages it?&lt;br /&gt;
&lt;br /&gt;
! License&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| VA VistA or FOIA VistA&lt;br /&gt;
&lt;br /&gt;
| The version of VistA available directly from the United States Federal Government. This is the version that all of these other products are based on. &lt;br /&gt;
&lt;br /&gt;
| [Veterans Administration VistA Page http://www.va.gov/vista_monograph/]&lt;br /&gt;
&lt;br /&gt;
| public domain&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| [WorldVistA EHR http://www.worldvista.org/World_VistA_EHR]&lt;br /&gt;
&lt;br /&gt;
| WorldVistA EHRTM  is an open source electronic health record (EHR) based on the highly acclaimed VistA system of the United States Department of Veterans Affairs (VA). The foundation for WorldVistA EHR was developed as part of the VistA-Office project, a collaborative effort funded by the Centers for Medicare &amp;amp; Medicaid Services (CMS), an agency of the Department of Health and Human Services (DHHS). The overall goal of the VistA-Office EHR (VOE) project was to encourage the broader adoption and effective use of EHRs among physicians by making a robust, flexible EHR solution alternative available. After completion of the VOE project in March 2007, WorldVistA made additional enhancements and submitted WorldVistA EHR for certification by theCertification Commission for Healthcare Information Technology(CCHITSM). WorldVistA EHR, Verison VOE/1.0 achieved full CCHITSM EHR&lt;br /&gt;
&lt;br /&gt;
| [WorldVistA http://www.worldvista.org]&lt;br /&gt;
&lt;br /&gt;
| GPL&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| [vxVistA http://www.vistaexperts.com/what_is_vxvista.htm]&lt;br /&gt;
&lt;br /&gt;
| VistA Experts VistA or vxVistA is a set of DSS Electronic Health Record (EHR) product suites designed and built around the Veterans Health Information Systems and Technology Architecture (VistA).  VistA is a proven, robust EHR with documented patient care benefits. (copied from the DSS page on vxVista) vxVistA is CCHIT certified. &lt;br /&gt;
&lt;br /&gt;
| [DSS http://www.vistaexperts.com/index.htm]&lt;br /&gt;
&lt;br /&gt;
| proprietary&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| [OpenVista http://medsphere.org/]&lt;br /&gt;
&lt;br /&gt;
| OpenVista provides a robust commercial EHR framework that will enable healthcare providers to leverage the incredible innovations, talent, and billions of dollars invested in the VA&#039;s VistA system over more than 20 years, as well as Medsphere&#039;s four years of investment in tailoring VistA for use outside the VA and successfully deploying the results in several sites.&lt;br /&gt;
&lt;br /&gt;
| [Medsphere http://www.medsphere.com/]&lt;br /&gt;
&lt;br /&gt;
| various open source licenses&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| VistA-Office&lt;br /&gt;
&lt;br /&gt;
| VistA Office was sponsored by the CMS as a clinical version of VA VistA. Eventually it became WorldVistA EHR.&lt;br /&gt;
&lt;br /&gt;
| [WorldVista http://www.worldvista.org]&lt;br /&gt;
&lt;br /&gt;
| GPL&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Main_Page1&amp;diff=11083</id>
		<title>Main Page1</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Main_Page1&amp;diff=11083"/>
		<updated>2007-11-08T16:02:10Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: added which VistA link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[What is VistA Really]]? This article will help you to understand what VistA is. Not just what you can read in any high level press article, but the information that you need to understand its culture and its values.&lt;br /&gt;
&lt;br /&gt;
[[How does VistA work]]? This is the technology that you need to understand about VistA even if you really do not want to understand technology&lt;br /&gt;
&lt;br /&gt;
[[Where do I Start]]? VistA is very well documented. Almost too well. This page help you find the information that you need, depending on what you are looking for.&lt;br /&gt;
&lt;br /&gt;
[[Which VistA]]? There are several products based on VA VistA, here is a list and some basic information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Reference Material]]? Does this simplistic menu annoy you? If so click here to be overwhelmed by an over-complex menu.&lt;br /&gt;
&lt;br /&gt;
[[Complaints and Comments]]? Do you have a useful critism of this website, WorldVistA generally or something that WorldVistA is doing? This is a place to vent, and to discover that we often understand our flaws and we are working on them.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5082</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5082"/>
		<updated>2007-08-13T15:10:45Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: improved readbility of history&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is a Electronic Health Record programmed by Federal (US) employees working for the Department of Veterans Affairs (previously Veterans Administration) for several decades, since the late 1970s. 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. &lt;br /&gt;
&lt;br /&gt;
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 what is great about VistA.&lt;br /&gt;
&lt;br /&gt;
== Disputed History ==&lt;br /&gt;
The [http://www.hardhats.org/history/hardhats.html history of VistA available from hardhats.org] indicates that VistA development began in the late 1970&#039;s. VA documents, such as the [http://www.va.gov/vista_monograph/ VistA Monograph] date  the start of VistA as in the mid 1980&#039;s. Why the discrepancy? In short the version at hardhats is the real version. It documents how VistA moved from an underground movement to a celebrated system.&lt;br /&gt;
&lt;br /&gt;
VistA and the vision of VistA was a programmer lead counter-culture within the VA. Programmers often risked their jobs (and some lost them) in order to develop a system that would satisfy local clinical needs. Each programmer was primarily interested in the needs of clinical users who worked at the same local VA hospital that the programmer did. However, they were committed to building software that could be used across the VA system.&lt;br /&gt;
&lt;br /&gt;
What is unique about this is that it represented one combined system that was developed by a distributed team. In short, the creation of VistA was precursor  to the distributed &amp;quot;open source&amp;quot; development style way before the concept came into vogue in the 1990&#039;s. The best description of this style of distributed development is [http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ The Cathedral and the Bazaar] by Eric Raymond.&lt;br /&gt;
&lt;br /&gt;
The VA dates &amp;quot;VistA&amp;quot; from the time when they approved the software. The VA was using VistA long before they approved it. In fact the name &amp;quot;VistA&amp;quot; was not created until much later. The VA bureaucracy is primarily concerned (as it should be) with the care of veterans. As one can imagine this is a highly political issue with tremendous pressure from Washington. Enlightenment with regards to the development of VistA is largely independent of bureaucratic ability. When the VA is lead by VistA-enlightened leadership VistA tends to thrive and move forward. When the VA is lead by those ignorant of VistA and software generally, VistA tends to stagnate. &lt;br /&gt;
&lt;br /&gt;
The tension between those who actually make VistA good (the VistA programmers and CACs) and the bureaucracy in charge of the VA resources still exists. In many ways the purpose of WorldVistA is to ease this tension. WorldVistA is intended to be neutral meeting place for VA programmers, VA bureaucrats and those external to the VA. The only common theme in the WorldVistA community is the interest in VistA and making VistA better. &lt;br /&gt;
   &lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
Despite the way in which VistA was developed, it is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [[http://en.wikipedia.org/w/index.php?title=GPL GPL]]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
The first barrier to really understanding VistA is one of overlapping vocabularies. Often people who are technically savvy have a more difficult time with this than those with less technological 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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally) With MUMPS you cannot indent at all, which will really bother you if you like python (which forces indentation as part of the syntax instead of using periods as MUMPS does)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals (variables) means something in the permanent database, ie: global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (those are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS were the operating systems on the machine, and this legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers, compared to the much larger number of programmers in mainstream languages.  There are more MUMPS people than SNOBOL or many of other programming languages of the same generation, but the number of programmers for the market segment is definitely disproportional.&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages because MUMPS maintains backward compatibility to ideas that modern computer scientists don&#039;t see except in assembly language programming, such as the GOTO command.&lt;br /&gt;
* Because they are rare, MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language and thus having little or no value. Here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a text based (command line) system. CPRS is only the GUI. ==&lt;br /&gt;
&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
Much of VistA is only available on terminals. CPRS is a [[GUI~|GUI]] client written in Borland&#039;s Delphi (Pascal) 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.&lt;br /&gt;
&lt;br /&gt;
[[Image:Server.png|Basic VistA architecture]]&lt;br /&gt;
&lt;br /&gt;
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.  Some of this is because Graphical interfaces use both a mouse and a keyboard, and some of this is because GUIs can change the location of information on the screen, where as text applications are highly predictable about where the same information is displayed.&lt;br /&gt;
&lt;br /&gt;
People who only rarely use a program have to figure out how to use it from scratch every time they use the program.  For these people, a GUI is the best program system, because they have to use their general knowledge about computer systems every time they use the program, and figure out how to use the program anew every time.&lt;br /&gt;
&lt;br /&gt;
Often clinicians need graphical displays that are not possible in terminal applications, such as graphing results, or seeing trends. CPRS is intended to perform most of the common clinical functions in a GUI environment.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the dominate GUI for VistA. It takes a small percentage of the underlying VistA functionality and presents it in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians. Often those without direct patient contact, such as pharmacists, do not have a GUI based interface, and must use the traditional roll-and-scroll terminal interface. Since so many clinicians are trained with CPRS, and because they often only use this interface, many clinicians assume that CPRS is VistA.&lt;br /&gt;
&lt;br /&gt;
This is not entirely a bad thing. CPRS provides a very well thought-out approach to the underlying VistA capabilities. It is relatively easy to use, given the complexity and depth that it contains. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very, very customizable. In the VA, the [[Clinical Application Coordinator]] (CAC) role, is essentially responsible for the care and feeding of CPRS. A competent CAC is capable of tuning CPRS in numerable ways, it is possible to configure CPRS to the preferences of departments, floors, or even individual clinicians. The CPRS menu is capable of linking to other programs, because of this separate clinical programs can appear to a part of CPRS even though they are actually separate applications.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (that means too old for you Yankees). It is written in Delphi which is no longer as a popular programming language as it was in the mid 1990s. Like the rest of VistA, CPRS was written when computers were much slower, and as a result CPRS is comparitively 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.&lt;br /&gt;
&lt;br /&gt;
== Contact the Editor ==&lt;br /&gt;
This page was originally written and is currently edited by [http://www.fredtrotter.com Fred Trotter]. If you have comments or suggestions about the contents of the article please [http://www.fredtrotter.com contact Fred Trotter] directly.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5079</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5079"/>
		<updated>2007-08-13T15:07:57Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: added editor note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is a Electronic Health Record programmed by Federal (US) employees working for the Department of Veterans Affairs (previously Veterans Administration) for several decades, since the late 1970s. 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. &lt;br /&gt;
&lt;br /&gt;
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 what is great about VistA.&lt;br /&gt;
&lt;br /&gt;
== Disputed History ==&lt;br /&gt;
The [http://www.hardhats.org/history/hardhats.html history of VistA available from hardhats.org] indicates that VistA development began in the late 1970&#039;s. VA documents, such as the [http://www.va.gov/vista_monograph/ VistA Monograph] date  the start of VistA as in the mid 1980&#039;s. Why the discrepancy? In short the version at hardhats is the real version. It documents how VistA moved from an underground movement to a celebrated system.&lt;br /&gt;
&lt;br /&gt;
VistA and the vision of VistA was a programmer lead counter-culture within the VA. Programmers often risked their jobs (and some lost them) in order to develop a system that would satisfy local clinical needs. Each programmer was primarily interested in the needs of clinical users who worked at the same local VA hospital that the programmer did. However, they were committed to building software that could be used across the VA system.&lt;br /&gt;
&lt;br /&gt;
What is unique about this is that it represented one combined system that was developed by a distributed team. In short, the creation of VistA was precursor  to the distributed &amp;quot;open source&amp;quot; development style way before the concept came into vogue in the 1990&#039;s. The best description of this style of distributed development is [http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ The Cathedral and the Bazaar] by Eric Raymond.&lt;br /&gt;
&lt;br /&gt;
The VA dates &amp;quot;VistA&amp;quot; from the time when they approved the software. The VA was using VistA long before they approved it. In fact the name &amp;quot;VistA&amp;quot; was not created until much later. The VA bureaucracy is primarily concerned (as it should be) with the care of veterans. As one can imagine this is a highly political issue with tremendous pressure from Washington politicians. Enlightenment with regards to the development of VistA is largely independent bureaucratic ability. When the VA is lead by VistA-enlightened leadership VistA tends to thrive and move forward. When the VA is lead by those ignorant of VistA and software generally, VistA tends to stagnate. &lt;br /&gt;
&lt;br /&gt;
The tension between those who actually make VistA good (the VistA programmers and CACs) and the bureaucracy in charge of the VA resources still exists. In many ways the purpose of WorldVistA is to ease this tension. WorldVistA is intended to be neutral meeting place for VA programmers, VA bureaucrats and those external to the VA. The only common theme in the WorldVistA community is the interest in VistA and making VistA better. &lt;br /&gt;
   &lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
Despite the way in which VistA was developed, it is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [[http://en.wikipedia.org/w/index.php?title=GPL GPL]]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
The first barrier to really understanding VistA is one of overlapping vocabularies. Often people who are technically savvy have a more difficult time with this than those with less technological 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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally) With MUMPS you cannot indent at all, which will really bother you if you like python (which forces indentation as part of the syntax instead of using periods as MUMPS does)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals (variables) means something in the permanent database, ie: global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (those are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS were the operating systems on the machine, and this legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers, compared to the much larger number of programmers in mainstream languages.  There are more MUMPS people than SNOBOL or many of other programming languages of the same generation, but the number of programmers for the market segment is definitely disproportional.&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages because MUMPS maintains backward compatibility to ideas that modern computer scientists don&#039;t see except in assembly language programming, such as the GOTO command.&lt;br /&gt;
* Because they are rare, MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language and thus having little or no value. Here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a text based (command line) system. CPRS is only the GUI. ==&lt;br /&gt;
&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
Much of VistA is only available on terminals. CPRS is a [[GUI~|GUI]] client written in Borland&#039;s Delphi (Pascal) 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.&lt;br /&gt;
&lt;br /&gt;
[[Image:Server.png|Basic VistA architecture]]&lt;br /&gt;
&lt;br /&gt;
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.  Some of this is because Graphical interfaces use both a mouse and a keyboard, and some of this is because GUIs can change the location of information on the screen, where as text applications are highly predictable about where the same information is displayed.&lt;br /&gt;
&lt;br /&gt;
People who only rarely use a program have to figure out how to use it from scratch every time they use the program.  For these people, a GUI is the best program system, because they have to use their general knowledge about computer systems every time they use the program, and figure out how to use the program anew every time.&lt;br /&gt;
&lt;br /&gt;
Often clinicians need graphical displays that are not possible in terminal applications, such as graphing results, or seeing trends. CPRS is intended to perform most of the common clinical functions in a GUI environment.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the dominate GUI for VistA. It takes a small percentage of the underlying VistA functionality and presents it in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians. Often those without direct patient contact, such as pharmacists, do not have a GUI based interface, and must use the traditional roll-and-scroll terminal interface. Since so many clinicians are trained with CPRS, and because they often only use this interface, many clinicians assume that CPRS is VistA.&lt;br /&gt;
&lt;br /&gt;
This is not entirely a bad thing. CPRS provides a very well thought-out approach to the underlying VistA capabilities. It is relatively easy to use, given the complexity and depth that it contains. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very, very customizable. In the VA, the [[Clinical Application Coordinator]] (CAC) role, is essentially responsible for the care and feeding of CPRS. A competent CAC is capable of tuning CPRS in numerable ways, it is possible to configure CPRS to the preferences of departments, floors, or even individual clinicians. The CPRS menu is capable of linking to other programs, because of this separate clinical programs can appear to a part of CPRS even though they are actually separate applications.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (that means too old for you Yankees). It is written in Delphi which is no longer as a popular programming language as it was in the mid 1990s. Like the rest of VistA, CPRS was written when computers were much slower, and as a result CPRS is comparitively 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.&lt;br /&gt;
&lt;br /&gt;
== Contact the Editor ==&lt;br /&gt;
This page was originally written and is currently edited by [http://www.fredtrotter.com Fred Trotter]. If you have comments or suggestions about the contents of the article please [http://www.fredtrotter.com contact Fred Trotter] directly.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5078</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5078"/>
		<updated>2007-08-13T15:04:00Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: added history section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is a Electronic Health Record programmed by Federal (US) employees working for the Department of Veterans Affairs (previously Veterans Administration) for several decades, since the late 1970s. 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. &lt;br /&gt;
&lt;br /&gt;
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 what is great about VistA.&lt;br /&gt;
&lt;br /&gt;
== Disputed History ==&lt;br /&gt;
The [http://www.hardhats.org/history/hardhats.html history of VistA available from hardhats.org] indicates that VistA development began in the late 1970&#039;s. VA documents, such as the [http://www.va.gov/vista_monograph/ VistA Monograph] date  the start of VistA as in the mid 1980&#039;s. Why the discrepancy? In short the version at hardhats is the real version. It documents how VistA moved from an underground movement to a celebrated system.&lt;br /&gt;
&lt;br /&gt;
VistA and the vision of VistA was a programmer lead counter-culture within the VA. Programmers often risked their jobs (and some lost them) in order to develop a system that would satisfy local clinical needs. Each programmer was primarily interested in the needs of clinical users who worked at the same local VA hospital that the programmer did. However, they were committed to building software that could be used across the VA system.&lt;br /&gt;
&lt;br /&gt;
What is unique about this is that it represented one combined system that was developed by a distributed team. In short, the creation of VistA was precursor  to the distributed &amp;quot;open source&amp;quot; development style way before the concept came into vogue in the 1990&#039;s. The best description of this style of distributed development is [http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ The Cathedral and the Bazaar] by Eric Raymond.&lt;br /&gt;
&lt;br /&gt;
The VA dates &amp;quot;VistA&amp;quot; from the time when they approved the software. The VA was using VistA long before they approved it. In fact the name &amp;quot;VistA&amp;quot; was not created until much later. The VA bureaucracy is primarily concerned (as it should be) with the care of veterans. As one can imagine this is a highly political issue with tremendous pressure from Washington politicians. Enlightenment with regards to the development of VistA is largely independent bureaucratic ability. When the VA is lead by VistA-enlightened leadership VistA tends to thrive and move forward. When the VA is lead by those ignorant of VistA and software generally, VistA tends to stagnate. &lt;br /&gt;
&lt;br /&gt;
The tension between those who actually make VistA good (the VistA programmers and CACs) and the bureaucracy in charge of the VA resources still exists. In many ways the purpose of WorldVistA is to ease this tension. WorldVistA is intended to be neutral meeting place for VA programmers, VA bureaucrats and those external to the VA. The only common theme in the WorldVistA community is the interest in VistA and making VistA better. &lt;br /&gt;
   &lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
Despite the way in which VistA was developed, it is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [[http://en.wikipedia.org/w/index.php?title=GPL GPL]]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
The first barrier to really understanding VistA is one of overlapping vocabularies. Often people who are technically savvy have a more difficult time with this than those with less technological 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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally) With MUMPS you cannot indent at all, which will really bother you if you like python (which forces indentation as part of the syntax instead of using periods as MUMPS does)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals (variables) means something in the permanent database, ie: global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (those are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS were the operating systems on the machine, and this legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers, compared to the much larger number of programmers in mainstream languages.  There are more MUMPS people than SNOBOL or many of other programming languages of the same generation, but the number of programmers for the market segment is definitely disproportional.&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages because MUMPS maintains backward compatibility to ideas that modern computer scientists don&#039;t see except in assembly language programming, such as the GOTO command.&lt;br /&gt;
* Because they are rare, MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language and thus having little or no value. Here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a text based (command line) system. CPRS is only the GUI. ==&lt;br /&gt;
&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
Much of VistA is only available on terminals. CPRS is a [[GUI~|GUI]] client written in Borland&#039;s Delphi (Pascal) 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.&lt;br /&gt;
&lt;br /&gt;
[[Image:Server.png|Basic VistA architecture]]&lt;br /&gt;
&lt;br /&gt;
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.  Some of this is because Graphical interfaces use both a mouse and a keyboard, and some of this is because GUIs can change the location of information on the screen, where as text applications are highly predictable about where the same information is displayed.&lt;br /&gt;
&lt;br /&gt;
People who only rarely use a program have to figure out how to use it from scratch every time they use the program.  For these people, a GUI is the best program system, because they have to use their general knowledge about computer systems every time they use the program, and figure out how to use the program anew every time.&lt;br /&gt;
&lt;br /&gt;
Often clinicians need graphical displays that are not possible in terminal applications, such as graphing results, or seeing trends. CPRS is intended to perform most of the common clinical functions in a GUI environment.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the dominate GUI for VistA. It takes a small percentage of the underlying VistA functionality and presents it in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians. Often those without direct patient contact, such as pharmacists, do not have a GUI based interface, and must use the traditional roll-and-scroll terminal interface. Since so many clinicians are trained with CPRS, and because they often only use this interface, many clinicians assume that CPRS is VistA.&lt;br /&gt;
&lt;br /&gt;
This is not entirely a bad thing. CPRS provides a very well thought-out approach to the underlying VistA capabilities. It is relatively easy to use, given the complexity and depth that it contains. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very, very customizable. In the VA, the [[Clinical Application Coordinator]] (CAC) role, is essentially responsible for the care and feeding of CPRS. A competent CAC is capable of tuning CPRS in numerable ways, it is possible to configure CPRS to the preferences of departments, floors, or even individual clinicians. The CPRS menu is capable of linking to other programs, because of this separate clinical programs can appear to a part of CPRS even though they are actually separate applications.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (that means too old for you Yankees). It is written in Delphi which is no longer as a popular programming language as it was in the mid 1990s. Like the rest of VistA, CPRS was written when computers were much slower, and as a result CPRS is comparitively 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.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=CPRS&amp;diff=5080</id>
		<title>CPRS</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=CPRS&amp;diff=5080"/>
		<updated>2007-08-12T18:00:30Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: initial stub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CPRS is the main GUI client for VistA. CPRS stands for Computerized Patient Record System. &lt;br /&gt;
&lt;br /&gt;
You can quickly see a demo of CPRS by downloading the [http://www1.va.gov/cprsdemo/ VA CPRS Demo]&lt;br /&gt;
&lt;br /&gt;
This article is a stub, please help extend it.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5077</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5077"/>
		<updated>2007-08-12T17:57:51Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* VistA is a text based (command line) system. CPRS is only the GUI. */ added image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is a Electronic Health Record programmed by Federal (US) employees working for the Department of Veterans Affairs (previously Veterans Administration) for several decades, since the late 1970s. 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. &lt;br /&gt;
&lt;br /&gt;
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 what is great about VistA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
It is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [[http://en.wikipedia.org/w/index.php?title=GPL GPL]]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
The first barrier to really understanding VistA is one of overlapping vocabularies. Often people who are technically savvy have a more difficult time with this than those with less technological 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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally) With MUMPS you cannot indent at all, which will really bother you if you like python (which forces indentation as part of the syntax instead of using periods as MUMPS does)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals (variables) means something in the permanent database, ie: global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (those are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS were the operating systems on the machine, and this legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers, compared to the much larger number of programmers in mainstream languages.  There are more MUMPS people than SNOBOL or many of other programming languages of the same generation, but the number of programmers for the market segment is definitely disproportional.&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages because MUMPS maintains backward compatibility to ideas that modern computer scientists don&#039;t see except in assembly language programming, such as the GOTO command.&lt;br /&gt;
* Because they are rare, MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language and thus having little or no value. Here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a text based (command line) system. CPRS is only the GUI. ==&lt;br /&gt;
&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
Much of VistA is only available on terminals. CPRS is a [[GUI~|GUI]] client written in Borland&#039;s Delphi (Pascal) 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.&lt;br /&gt;
&lt;br /&gt;
[[Image:Server.png|Basic VistA architecture]]&lt;br /&gt;
&lt;br /&gt;
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.  Some of this is because Graphical interfaces use both a mouse and a keyboard, and some of this is because GUIs can change the location of information on the screen, where as text applications are highly predictable about where the same information is displayed.&lt;br /&gt;
&lt;br /&gt;
People who only rarely use a program have to figure out how to use it from scratch every time they use the program.  For these people, a GUI is the best program system, because they have to use their general knowledge about computer systems every time they use the program, and figure out how to use the program anew every time.&lt;br /&gt;
&lt;br /&gt;
Often clinicians need graphical displays that are not possible in terminal applications, such as graphing results, or seeing trends. CPRS is intended to perform most of the common clinical functions in a GUI environment.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the dominate GUI for VistA. It takes a small percentage of the underlying VistA functionality and presents it in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians. Often those without direct patient contact, such as pharmacists, do not have a GUI based interface, and must use the traditional roll-and-scroll terminal interface. Since so many clinicians are trained with CPRS, and because they often only use this interface, many clinicians assume that CPRS is VistA.&lt;br /&gt;
&lt;br /&gt;
This is not entirely a bad thing. CPRS provides a very well thought-out approach to the underlying VistA capabilities. It is relatively easy to use, given the complexity and depth that it contains. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very, very customizable. In the VA, the [[Clinical Application Coordinator]] (CAC) role, is essentially responsible for the care and feeding of CPRS. A competent CAC is capable of tuning CPRS in numerable ways, it is possible to configure CPRS to the preferences of departments, floors, or even individual clinicians. The CPRS menu is capable of linking to other programs, because of this separate clinical programs can appear to a part of CPRS even though they are actually separate applications.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (that means too old for you Yankees). It is written in Delphi which is no longer as a popular programming language as it was in the mid 1990s. Like the rest of VistA, CPRS was written when computers were much slower, and as a result CPRS is comparitively 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.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=File:Server.png&amp;diff=11407</id>
		<title>File:Server.png</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=File:Server.png&amp;diff=11407"/>
		<updated>2007-08-12T17:56:00Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: taking credit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA-CPRS architecture diagram (ft)&lt;br /&gt;
&lt;br /&gt;
contributed and draw by [http://www.fredtrotter.com Fred Trotter] Please use this image as you like, please give credit if that is appropriate.&lt;br /&gt;
&lt;br /&gt;
-FT&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=File:Server.png&amp;diff=5075</id>
		<title>File:Server.png</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=File:Server.png&amp;diff=5075"/>
		<updated>2007-08-12T17:54:03Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: VistA-CPRS architecture diagram (ft)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA-CPRS architecture diagram (ft)&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Confusing_Terms&amp;diff=11406</id>
		<title>Confusing Terms</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Confusing_Terms&amp;diff=11406"/>
		<updated>2007-08-12T15:37:13Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: intial stub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* [[VistA RPC]] has nothing to do with the [http://en.wikipedia.org/wiki/Remote_procedure_call standard meaning of RPC]&lt;br /&gt;
&lt;br /&gt;
* The Kernel probably means ??? and not the Linux (or other operating system) Kernel&lt;br /&gt;
&lt;br /&gt;
This article is a stub... help us by expanding it.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Compelling_CPRS_Replacement&amp;diff=11405</id>
		<title>Compelling CPRS Replacement</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Compelling_CPRS_Replacement&amp;diff=11405"/>
		<updated>2007-08-12T15:34:11Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CPRS is programmed in Delphi. Since CPRS was initially developed other programming languages have become more popular and capable than delphi. As a result some feel that CPRS should be re-written in a modern language.&lt;br /&gt;
&lt;br /&gt;
=== To replace or not to replace... that is the question ===&lt;br /&gt;
&lt;br /&gt;
Reasons that the current delphi based CPRS is no longer workable&lt;br /&gt;
&lt;br /&gt;
* Delphi is not a popular language, modern programmers are not trained in it. &lt;br /&gt;
* There only a few people who are trained in modifying the current CPRS application.&lt;br /&gt;
* Without other considerations programmers are typically unwilling to learn a new language for the sake of a single application.&lt;br /&gt;
* Unlike MUMPS Delphi offers so special benefits over modern languages. &lt;br /&gt;
&lt;br /&gt;
Reasons that the current CPRS is workable&lt;br /&gt;
&lt;br /&gt;
* CPRS has an extremely small foot-print, making it easy to distribute automatically.&lt;br /&gt;
* CPRS works well on older hardware, which might have difficulty supporting a hardware &amp;quot;heavy&amp;quot; language like Java.&lt;br /&gt;
* CPRS has a tremendous amount of institutional knowledge embedded in its design, reprogramming CPRS is a very difficult task.&lt;br /&gt;
&lt;br /&gt;
=== Medsphere OpenVistA CIS ===&lt;br /&gt;
&lt;br /&gt;
[http://www.medsphere.com Medsphere] has created a potential CPRS replacement using [http://www.mono-project.com/ mono] (apparently we must prefer languages names after diseases) called [http://medsphere.org/openvista_cis.html OpenVistA CIS]. It works against a modified version of the VistA server which is unfortunately not compatible with FOIA VistA. Currently, it also uses a badgeware license that requires the display of a Medsphere logo if the client is used. Medsphere&#039;s reputation within the community is the subject of some [http://www.gplmedicine.org/articles_12/ controversy].&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Clinical_Application_Coordinator&amp;diff=11404</id>
		<title>Clinical Application Coordinator</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Clinical_Application_Coordinator&amp;diff=11404"/>
		<updated>2007-08-12T15:17:55Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: reorder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A clinically experienced person who guides and supports&lt;br /&gt;
clinicians, IT experts, and others through design, adoption,&lt;br /&gt;
tailoring, and use of clinical computing systems such as an&lt;br /&gt;
electronic medical record. A CAC teaches, trains, supports and&lt;br /&gt;
innovates.&lt;br /&gt;
&lt;br /&gt;
This article is a stub and needs to be fleshed out. You can help us by writing an article here. Contact Fred Trotter to help.&lt;br /&gt;
&lt;br /&gt;
This definition is borrowed from the VistA Institute...&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=Clinical_Application_Coordinator&amp;diff=5074</id>
		<title>Clinical Application Coordinator</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=Clinical_Application_Coordinator&amp;diff=5074"/>
		<updated>2007-08-12T15:17:32Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: initial stub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is a stub and needs to be fleshed out. You can help us by writing an article here. Contact Fred Trotter to help.&lt;br /&gt;
&lt;br /&gt;
This definition is borrowed from the VistA Institute...&lt;br /&gt;
&lt;br /&gt;
A clinically experienced person who guides and supports&lt;br /&gt;
clinicians, IT experts, and others through design, adoption,&lt;br /&gt;
tailoring, and use of clinical computing systems such as an&lt;br /&gt;
electronic medical record. A CAC teaches, trains, supports and&lt;br /&gt;
innovates.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5076</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5076"/>
		<updated>2007-08-12T15:11:28Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* What is CPRS? */ expanded&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is a Electronic Health Record programmed by Federal (US) employees working for the Department of Veterans Affairs (previously Veterans Administration) for several decades, since the late 1970s. 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. &lt;br /&gt;
&lt;br /&gt;
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 what is great about VistA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
It is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [[http://en.wikipedia.org/w/index.php?title=GPL GPL]]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
The first barrier to really understanding VistA is one of overlapping vocabularies. Often people who are technically savvy have a more difficult time with this than those with less technological 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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally) With MUMPS you cannot indent at all, which will really bother you if you like python (which forces indentation as part of the syntax instead of using periods as MUMPS does)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals (variables) means something in the permanent database, ie: global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (those are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS were the operating systems on the machine, and this legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers, compared to the much larger number of programmers in mainstream languages.  There are more MUMPS people than SNOBOL or many of other programming languages of the same generation, but the number of programmers for the market segment is definitely disproportional.&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages because MUMPS maintains backward compatibility to ideas that modern computer scientists don&#039;t see except in assembly language programming, such as the GOTO command.&lt;br /&gt;
* Because they are rare, MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language and thus having little or no value. Here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a text based (command line) system. CPRS is only the GUI. ==&lt;br /&gt;
&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
Much of VistA is only available on terminals. CPRS is a [[GUI~|GUI]] client written in Borland&#039;s Delphi (Pascal) 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.&lt;br /&gt;
&lt;br /&gt;
Note: insert VistA architecture diagram here.&lt;br /&gt;
&lt;br /&gt;
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.  Some of this is because Graphical interfaces use both a mouse and a keyboard, and some of this is because GUIs can change the location of information on the screen, where as text applications are highly predictable about where the same information is displayed.&lt;br /&gt;
&lt;br /&gt;
People who only rarely use a program have to figure out how to use it from scratch every time they use the program.  For these people, a GUI is the best program system, because they have to use their general knowledge about computer systems every time they use the program, and figure out how to use the program anew every time.&lt;br /&gt;
&lt;br /&gt;
Often clinicians need graphical displays that are not possible in terminal applications, such as graphing results, or seeing trends. CPRS is intended to perform most of the common clinical functions in a GUI environment.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
[[CPRS]] is the dominate GUI for VistA. It takes a small percentage of the underlying VistA functionality and presents it in a graphical fashion. CPRS focuses on those activities that are most frequently used by clinicians. Often those without direct patient contact, such as pharmacists, do not have a GUI based interface, and must use the traditional roll-and-scroll terminal interface. Since so many clinicians are trained with CPRS, and because they often only use this interface, many clinicians assume that CPRS is VistA.&lt;br /&gt;
&lt;br /&gt;
This is not entirely a bad thing. CPRS provides a very well thought-out approach to the underlying VistA capabilities. It is relatively easy to use, given the complexity and depth that it contains. A quick look at the [http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=CPRS+VistA&amp;amp;btnG=Search Google Scholar search for &amp;quot;VistA&amp;quot; and &amp;quot;CPRS&amp;quot;] reveals that CPRS is one of the most studied EHR interfaces available. &lt;br /&gt;
&lt;br /&gt;
CPRS is also very, very customizable. In the VA, the [[Clinical Application Coordinator]] (CAC) role, is essentially responsible for the care and feeding of CPRS. A competent CAC is capable of tuning CPRS in numerable ways, it is possible to configure CPRS to the preferences of departments, floors, or even individual clinicians. The CPRS menu is capable of linking to other programs, because of this separate clinical programs can appear to a part of CPRS even though they are actually separate applications.&lt;br /&gt;
&lt;br /&gt;
CPRS is often criticized by recent programmers for being &amp;quot;long in the tooth&amp;quot; (that means too old for you Yankees). It is written in Delphi which is no longer as a popular programming language as it was in the mid 1990s. Like the rest of VistA, CPRS was written when computers were much slower, and as a result CPRS is comparitively 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.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5073</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=5073"/>
		<updated>2007-08-12T14:39:06Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* Your programming language is named after a disease? */ typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA is a Electronic Health Record programmed by Federal (US) employees working for the Department of Veterans Affairs (previously Veterans Administration) for several decades, since the late 1970s. 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. &lt;br /&gt;
&lt;br /&gt;
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 what is great about VistA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
It is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 [[http://en.wikipedia.org/w/index.php?title=GPL GPL]]. The GPL is a &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
The first barrier to really understanding VistA is one of overlapping vocabularies. Often people who are technically savvy have a more difficult time with this than those with less technological 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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, as most modern programming languages are. This means that MUMPS code looks strange to outsiders.&lt;br /&gt;
* MUMPS is not white space invariant. This means that you must pay attention to where you put spaces. Many modern program languages allow you to freely put in spaces at any point (following FORTRAN rules originally) With MUMPS you cannot indent at all, which will really bother you if you like python (which forces indentation as part of the syntax instead of using periods as MUMPS does)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals (variables) means something in the permanent database, ie: global across all processes in the system, not the typical programming meaning of global across all the subparts of a single program (those are called locals in MUMPS).&lt;br /&gt;
* MUMPS often behaves like an operating system. Due to space limitations, some original implementations of MUMPS were the operating systems on the machine, and this legacy still influences the behavior of MUMPS.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers, compared to the much larger number of programmers in mainstream languages.  There are more MUMPS people than SNOBOL or many of other programming languages of the same generation, but the number of programmers for the market segment is definitely disproportional.&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages because MUMPS maintains backward compatibility to ideas that modern computer scientists don&#039;t see except in assembly language programming, such as the GOTO command.&lt;br /&gt;
* Because they are rare, MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language and thus having little or no value. Here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flies on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a text based (command line) system. CPRS is only the GUI. ==&lt;br /&gt;
&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
Much of VistA is only available on terminals. CPRS is a [[GUI~|GUI]] client written in Borland&#039;s Delphi (Pascal) 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.&lt;br /&gt;
&lt;br /&gt;
Note: insert VistA architecture diagram here.&lt;br /&gt;
&lt;br /&gt;
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.  Some of this is because Graphical interfaces use both a mouse and a keyboard, and some of this is because GUIs can change the location of information on the screen, where as text applications are highly predictable about where the same information is displayed.&lt;br /&gt;
&lt;br /&gt;
People who only rarely use a program have to figure out how to use it from scratch every time they use the program.  For these people, a GUI is the best program system, because they have to use their general knowledge about computer systems every time they use the program, and figure out how to use the program anew every time.&lt;br /&gt;
&lt;br /&gt;
Often clinicians need graphical displays that are not possible in terminal applications, such as graphing results, or seeing trends. CPRS is intended to perform most of the common clinical functions in a GUI environment.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
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 by recent programmers for being &amp;quot;long in the tooth&amp;quot; (that means too old for you Yankees). It is written in Delphi which is no longer as a popular programming language as it was in the mid 1990s. Like the rest of VistA, CPRS was written when computers were much slower, and as a result CPRS is comparitively 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.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=VistA_RPC&amp;diff=7951</id>
		<title>VistA RPC</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=VistA_RPC&amp;diff=7951"/>
		<updated>2007-06-26T00:18:55Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: added port info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA RPC is a VA developed protocol that allows for [[Remote Procedure Calls~|remote procedure calls]] against VistA. Most famously, CPRS uses the RPC mechanism as its primary communication method.&lt;br /&gt;
&lt;br /&gt;
== Protocol Definition == &lt;br /&gt;
&lt;br /&gt;
The protocol definition is still to be found in detail,&lt;br /&gt;
but the RPC Standard Header and Message Parameters are documented at:&lt;br /&gt;
[ftp://ftp.va.gov/vista/Software/Packages/RPC%20Broker%20-%20XWB/PROGRAMS/broker%20msg%20specs.doc broker msg specs.doc]&lt;br /&gt;
&lt;br /&gt;
== Delphi Implemetation ==&lt;br /&gt;
&lt;br /&gt;
The Delphi Components and Published Property and Methods are documented at:&lt;br /&gt;
&lt;br /&gt;
[ftp://ftp.va.gov/vista/Software/Packages/RPC%20Broker%20-%20XWB/PROGRAMS/broker%20msg%20specs.doc broker msg specs.doc]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CPRS is written in delphi and relies on a delphi library to make VistA RPC calls.    This library is documented in [http://www.va.gov/vdl/documents/Infrastructure/Remote_Proc_Call_Broker_(RPC)/xwb1_1p40pm.pdf RPC BROKER: Getting Started with the Broker Development Kit (BDK)] which you can download from the VA.&lt;br /&gt;
&lt;br /&gt;
=== Return types ===&lt;br /&gt;
There five different values that can be returned by a VistA RPC call. &lt;br /&gt;
&lt;br /&gt;
* Single Value : a single value is returned&lt;br /&gt;
* Array : a small array of values is returned&lt;br /&gt;
* Word Processing : a stream text with carriage returns is returned&lt;br /&gt;
* Global Array: This type is useful for returning large amounts of data to the client, where using the ARRAY type can exceed the symbol table limit and crash your RPC.&lt;br /&gt;
* Global Instance: Set the return parameter to a closed global reference.&lt;br /&gt;
&lt;br /&gt;
Obviously the last two are special cases that are very specific to MUMPS. &lt;br /&gt;
&lt;br /&gt;
=== Calling methods === &lt;br /&gt;
In order to call an RPC, you must give it arguments or parameters which live in a &amp;quot;Params&amp;quot; object. From the manual:&lt;br /&gt;
&lt;br /&gt;
 RPCBroker1.Param[0].Value := &#039;10/31/97&#039;;&lt;br /&gt;
 RPCBroker1.Param[0].PType := literal;&lt;br /&gt;
 RPCBroker1.Param[1].Mult[&#039;&amp;quot;NAME&amp;quot;&#039;] := &#039;SMITH, JOHN&#039;;&lt;br /&gt;
 RPCBroker1.Param[1].Mult[&#039;&amp;quot;SSN&amp;quot;&#039;] := &#039;123-45-6789&#039;;&lt;br /&gt;
 RPCBroker1.Param[1].PType := list;&lt;br /&gt;
&lt;br /&gt;
This shows how to pass a single variable, or an array.&lt;br /&gt;
&lt;br /&gt;
Then set the RPC to execute&lt;br /&gt;
&lt;br /&gt;
 RPCBroker1.RemoteProcedure:=&#039;A6A LIST&#039;;&lt;br /&gt;
&lt;br /&gt;
Then send it...&lt;br /&gt;
&lt;br /&gt;
 try&lt;br /&gt;
     RPCBroker1.Call;&lt;br /&gt;
 except&lt;br /&gt;
   On EBrokerError do&lt;br /&gt;
     ShowMessage(&#039;A problem was encountered communicating with the server.&#039;);&lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
You should get back the results in the Results property like so??&lt;br /&gt;
&lt;br /&gt;
 RPCBroker1.Results[0].Value &lt;br /&gt;
 &lt;br /&gt;
not sure how multiple values are stored...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaLink Implementation ==&lt;br /&gt;
&lt;br /&gt;
no idea.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== M2M Broker Implementation ==&lt;br /&gt;
&lt;br /&gt;
== TCP/IP information == &lt;br /&gt;
&lt;br /&gt;
If you are trying to access VistA from behind a firewall you might have some problems, here is a complete description of what those problems might be and some troubleshooting tips.&lt;br /&gt;
&lt;br /&gt;
Like FTP VistA RPC is a multiple port protocol. There are two stages in the VistA RPC protocol&lt;br /&gt;
&lt;br /&gt;
* CPRS -&amp;gt; VistA. source port is random. Destination port is whatever VistA is configured to listen to usually in the 9211 range. The system will attempt to login with the most modern VistA RPC implementation which is marked by the &#039;[XWB]&#039; in the protocol. Failing that the system will increase the source port by one and attempt to connect using the older version of the protocol which begins with &#039;{XWB}&#039;&lt;br /&gt;
* VistA -&amp;gt; CPRS After receiving the initial connection, VistA will attempt to call the client back. VistA will choose a random port? in the low range i.e. 1250 and attempt to connect to the CPRS client machine on the original CPRS sourceport +1. So if CPRS originally contacted VistA from 1586, then VistA will try to call back to destination port 1587. If VistA cannot get through to the client it will try and change its source port. So it will try 1250 first, then 1251 then 1252 and so on. &lt;br /&gt;
&lt;br /&gt;
The &amp;quot;callback&amp;quot; nature of the RPC protocol is a problem for a NAT environment. For instance when a network is hidden behind a single IP address, the outgoing connection to VistA from inside the network is understood by the NAT device. The  &amp;quot;callback&amp;quot; is the problem without some mechanism to associate the the callback to the original connection the NAT device does not know which host on the NATed network to send the new traffic to. However, the callbacks do enable a certain amount of implicit security. Because the RPC protocol is a &amp;quot;single packet&amp;quot; protocol, it is particularly vulnerable to spoofing. Apparently there is a setting within VistA to force &amp;quot;same-port&amp;quot; operation. &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
University of Kuopio in Finland has written an RAD tool making use of the delphoi RPCBroker system called [http://www.uku.fi/tike/fixit/english.html FixIT]. [http://www.hardhats.org/cs/fixIT/fixITmain.html HardHats has some FixIT information]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=VistA_RPC&amp;diff=4824</id>
		<title>VistA RPC</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=VistA_RPC&amp;diff=4824"/>
		<updated>2007-06-21T09:58:56Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: found the specs :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA RPC is a VA developed protocol that allows for remote procedure calls against VistA. Most famously, CPRS uses the RPC mechanism as its primary communication method.&lt;br /&gt;
&lt;br /&gt;
== Protocol Definition == &lt;br /&gt;
The protocol definition is found in [ftp://ftp.va.gov/vista/Software/Packages/RPC%20Broker%20-%20XWB/PROGRAMS/broker%20msg%20specs.doc broker msg specs.doc]&lt;br /&gt;
&lt;br /&gt;
Thank God.&lt;br /&gt;
&lt;br /&gt;
== Delphi Implemetation ==&lt;br /&gt;
&lt;br /&gt;
CPRS is written in delphi and relies on a delphi library to make VistA RPC calls.    This library is documented in [http://www.va.gov/vdl/documents/Infrastructure/Remote_Proc_Call_Broker_(RPC)/xwb1_1p40pm.pdf RPC BROKER: Getting Started with the Broker Development Kit (BDK)] which you can download from the VA.&lt;br /&gt;
&lt;br /&gt;
=== Return types ===&lt;br /&gt;
There five different values that can be returned by a VistA RPC call. &lt;br /&gt;
&lt;br /&gt;
* Single Value : a single value is returned&lt;br /&gt;
* Array : a small array of values is returned&lt;br /&gt;
* Word Processing : a stream text with carriage returns is returned&lt;br /&gt;
* Global Array: This type is useful for returning large amounts of data to the client, where using the ARRAY type can exceed the symbol table limit and crash your RPC.&lt;br /&gt;
* Global Instance: Set the return parameter to a closed global reference.&lt;br /&gt;
&lt;br /&gt;
Obviously the last two are special cases that are very specific to MUMPS. &lt;br /&gt;
&lt;br /&gt;
=== Calling methods === &lt;br /&gt;
In order to call an RPC, you must give it arguments or parameters which live in a &amp;quot;Params&amp;quot; object. From the manual:&lt;br /&gt;
&lt;br /&gt;
 RPCBroker1.Param[0].Value := &#039;10/31/97&#039;;&lt;br /&gt;
 RPCBroker1.Param[0].PType := literal;&lt;br /&gt;
 RPCBroker1.Param[1].Mult[&#039;&amp;quot;NAME&amp;quot;&#039;] := &#039;SMITH, JOHN&#039;;&lt;br /&gt;
 RPCBroker1.Param[1].Mult[&#039;&amp;quot;SSN&amp;quot;&#039;] := &#039;123-45-6789&#039;;&lt;br /&gt;
 RPCBroker1.Param[1].PType := list;&lt;br /&gt;
&lt;br /&gt;
This shows how to pass a single variable, or an array.&lt;br /&gt;
&lt;br /&gt;
Then set the RPC to execute&lt;br /&gt;
&lt;br /&gt;
 RPCBroker1.RemoteProcedure:=&#039;A6A LIST&#039;;&lt;br /&gt;
&lt;br /&gt;
Then send it...&lt;br /&gt;
&lt;br /&gt;
 try&lt;br /&gt;
     RPCBroker1.Call;&lt;br /&gt;
 except&lt;br /&gt;
   On EBrokerError do&lt;br /&gt;
     ShowMessage(&#039;A problem was encountered communicating with the server.&#039;);&lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
You should get back the results in the Results property like so??&lt;br /&gt;
&lt;br /&gt;
 RPCBroker1.Results[0].Value &lt;br /&gt;
 &lt;br /&gt;
not sure how multiple values are stored...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaLink Implementation ==&lt;br /&gt;
&lt;br /&gt;
no idea.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=VistA_RPC&amp;diff=4822</id>
		<title>VistA RPC</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=VistA_RPC&amp;diff=4822"/>
		<updated>2007-06-21T09:17:32Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VistA RPC is a VA developed protocol that allows for remote procedure calls against VistA. Most famously, CPRS uses the RPC mechanism as its primary communication method.&lt;br /&gt;
&lt;br /&gt;
== Delphi Implemetation ==&lt;br /&gt;
&lt;br /&gt;
CPRS is written in delphi and relies on a delphi library to make VistA RPC calls.    This library is documented in [http://www.va.gov/vdl/documents/Infrastructure/Remote_Proc_Call_Broker_(RPC)/xwb1_1p40pm.pdf RPC BROKER: Getting Started with the Broker Development Kit (BDK)] which you can download from the VA.&lt;br /&gt;
&lt;br /&gt;
=== Return types ===&lt;br /&gt;
There five different values that can be returned by a VistA RPC call. &lt;br /&gt;
&lt;br /&gt;
* Single Value : a single value is returned&lt;br /&gt;
* Array : a small array of values is returned&lt;br /&gt;
* Word Processing : a stream text with carriage returns is returned&lt;br /&gt;
* Global Array: This type is useful for returning large amounts of data to the client, where using the ARRAY type can exceed the symbol table limit and crash your RPC.&lt;br /&gt;
* Global Instance: Set the return parameter to a closed global reference.&lt;br /&gt;
&lt;br /&gt;
Obviously the last two are special cases that are very specific to MUMPS. &lt;br /&gt;
&lt;br /&gt;
=== Calling methods === &lt;br /&gt;
In order to call an RPC, you must give it arguments or parameters which live in a &amp;quot;Params&amp;quot; object. From the manual:&lt;br /&gt;
&lt;br /&gt;
 RPCBroker1.Param[0].Value := &#039;10/31/97&#039;;&lt;br /&gt;
 RPCBroker1.Param[0].PType := literal;&lt;br /&gt;
 RPCBroker1.Param[1].Mult[&#039;&amp;quot;NAME&amp;quot;&#039;] := &#039;SMITH, JOHN&#039;;&lt;br /&gt;
 RPCBroker1.Param[1].Mult[&#039;&amp;quot;SSN&amp;quot;&#039;] := &#039;123-45-6789&#039;;&lt;br /&gt;
 RPCBroker1.Param[1].PType := list;&lt;br /&gt;
&lt;br /&gt;
This shows how to pass a single variable, or an array.&lt;br /&gt;
&lt;br /&gt;
Then set the RPC to execute&lt;br /&gt;
&lt;br /&gt;
 RPCBroker1.RemoteProcedure:=&#039;A6A LIST&#039;;&lt;br /&gt;
&lt;br /&gt;
Then send it...&lt;br /&gt;
&lt;br /&gt;
 try&lt;br /&gt;
     RPCBroker1.Call;&lt;br /&gt;
 except&lt;br /&gt;
   On EBrokerError do&lt;br /&gt;
     ShowMessage(&#039;A problem was encountered communicating with the server.&#039;);&lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
You should get back the results in the Results property like so??&lt;br /&gt;
&lt;br /&gt;
 RPCBroker1.Results[0].Value &lt;br /&gt;
 &lt;br /&gt;
not sure how multiple values are stored...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaLink Implementation ==&lt;br /&gt;
&lt;br /&gt;
no idea.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4827</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4827"/>
		<updated>2007-06-21T08:55:29Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* What do you mean by... */ liked VistA RPC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
It is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, most modern programming languages are so often MUMPS code looks strange to outsiders&lt;br /&gt;
* MUMPS is not white space invariant. This means that you cannot indent which will really bother you if you like python (which forces indentation)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals means something in the permenant database, not the typical programming meaning.&lt;br /&gt;
* MUMPS often behaves like an operating system . Some implementations of MUMPS were operating systems.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages&lt;br /&gt;
* Because they are rare MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flys on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a command line program. CPRS is the GUI ==&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: insert VistA architecture diagram here.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
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 &amp;quot;long in the tooth&amp;quot; (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.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4821</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4821"/>
		<updated>2007-06-07T04:03:03Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: fixed intro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
It is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, most modern programming languages are so often MUMPS code looks strange to outsiders&lt;br /&gt;
* MUMPS is not white space invariant. This means that you cannot indent which will really bother you if you like python (which forces indentation)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals means something in the permenant database, not the typical programming meaning.&lt;br /&gt;
* MUMPS often behaves like an operating system . Some implementations of MUMPS were operating systems.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages&lt;br /&gt;
* Because they are rare MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flys on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a command line program. CPRS is the GUI ==&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: insert VistA architecture diagram here.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
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 &amp;quot;long in the tooth&amp;quot; (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.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4792</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4792"/>
		<updated>2007-06-07T03:59:49Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: /* VistA is command line. CPRS is the GUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; 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. &lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
It is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, most modern programming languages are so often MUMPS code looks strange to outsiders&lt;br /&gt;
* MUMPS is not white space invariant. This means that you cannot indent which will really bother you if you like python (which forces indentation)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals means something in the permenant database, not the typical programming meaning.&lt;br /&gt;
* MUMPS often behaves like an operating system . Some implementations of MUMPS were operating systems.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages&lt;br /&gt;
* Because they are rare MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flys on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is a command line program. CPRS is the GUI ==&lt;br /&gt;
Many many people who have used VistA think that CPRS &#039;&#039;&#039;is&#039;&#039;&#039; VistA. Most of VistA is what is known as &amp;quot;roll and scroll&amp;quot; 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 [http://en.wikipedia.org/wiki/Terminal_emulator Terminal Emulators] which allow modern computers to interface with applications as though they were terminals.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: insert VistA architecture diagram here.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== What is CPRS? ==&lt;br /&gt;
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 &amp;quot;long in the tooth&amp;quot; (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.&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4791</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4791"/>
		<updated>2007-06-07T03:44:05Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: added MUMPS section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; 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. &lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
It is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;keep-it-free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors favor other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
RPC is a good example. When most people say RPC that are referring to a common *nix messaging system. This [http://en.wikipedia.org/wiki/Remote_procedure_call 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.&lt;br /&gt;
&lt;br /&gt;
There are two things that you can do to avoid being confused, first, do not assume that you know what a &amp;quot;VistA person&amp;quot; means when they use these technological terms, and read the [[Confusing Terms]] section of this website.&lt;br /&gt;
&lt;br /&gt;
== Your programming language is named after a disease? ==&lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]. There are several facts about MUMPS that often confond first time programmers.&lt;br /&gt;
&lt;br /&gt;
* MUMPS is not a C-based syntax, most modern programming languages are so often MUMPS code looks strange to outsiders&lt;br /&gt;
* MUMPS is not white space invariant. This means that you cannot indent which will really bother you if you like python (which forces indentation)&lt;br /&gt;
* MUMPS is its own database, but its not SQL. Its a [http://en.wikipedia.org/wiki/Hierarchical_model Hierarchical Database] that is ideally suited to healthcare&lt;br /&gt;
* Globals means something in the permenant database, not the typical programming meaning.&lt;br /&gt;
* MUMPS often behaves like an operating system . Some implementations of MUMPS were operating systems.&lt;br /&gt;
&lt;br /&gt;
Business people might be a little jarred by some of the business implications of MUMPS.&lt;br /&gt;
&lt;br /&gt;
* There are very very few qualified MUMPS programmers&lt;br /&gt;
* It takes a competent computer scientist much longer to learn MUMPS than other languages&lt;br /&gt;
* Because they are rare MUMPS progammers are often expensive&lt;br /&gt;
&lt;br /&gt;
MUMPS is too often written off as an obscure language here are some of the really good things about MUMPS&lt;br /&gt;
&lt;br /&gt;
* Excellent string handling&lt;br /&gt;
* The database is really really good, especially for healthcare&lt;br /&gt;
* It is unbelievably fast, it was designed to run on ancient hardware, so it flys on modern hardware.&lt;br /&gt;
&lt;br /&gt;
== VistA is command line. CPRS is the GUI ==&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4790</id>
		<title>What is VistA Really</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=What_is_VistA_Really&amp;diff=4790"/>
		<updated>2007-06-07T03:19:51Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: starting out.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
 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. &lt;br /&gt;
&lt;br /&gt;
== Licensing of FOIA VistA ==&lt;br /&gt;
&lt;br /&gt;
It is a common mis-conception that VistA is &amp;quot;Open Source&amp;quot; software. Technically, VistA is in the [http://en.wikipedia.org/wiki/Public_domain public domain]. As a result VistA can legally be the basis of both proprietary software and Free and Open Source Software. [http://www.linuxmednews.com/974769856/index_html FOIA VistA does meet the definition of &amp;quot;Free Software&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;keep it free&amp;quot; license that prevents proprietarization. Some proprietary VistA vendors support other licenses that allow for proprietarization. &lt;br /&gt;
&lt;br /&gt;
== What do you mean by... ==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
VistA is written in [http://en.wikipedia.org/wiki/MUMPS MUMPS]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=User:Ftrotter&amp;diff=11079</id>
		<title>User:Ftrotter</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=User:Ftrotter&amp;diff=11079"/>
		<updated>2007-06-07T02:47:56Z</updated>

		<summary type="html">&lt;p&gt;Ftrotter: more about me.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.fredtrotter.com Fred Trotter] is the original author of [[FreeB]]. He works for [http://www.synseer.com SynSeer] the primary sponsor of FreeB and [http://www.mirrormed.org MirrorMed]. Fred Trotter is an enthusiastic member of WorldVistA, but is still learning about VistA. His contributions to this wiki are the result of a partial documentation of his learning process. &lt;br /&gt;
&lt;br /&gt;
Fred is an outspoken critic of proprietary VistA companies and argues that the only moral license for Medical Software is the GPL. You can read more at [http://gplmedicine.org GPLMedicine.org]&lt;/div&gt;</summary>
		<author><name>Ftrotter</name></author>
	</entry>
</feed>