OpenVista CIS
Release Notes

OpenVista® CIS is a cross platform client application for interfacing with the Veteran Affairs' VistA system (an Electronic Health Record (EHR)) and systems derived from VistA, like OpenVista Server. The emphasis is on replacing the previous Delphi, win32 only client, VA Computerized Patient Record System (CPRS), with a client written in a modern language and with a focus on issues such as i18n, cross-platform support, etc.

Architecture

There are two major components to OpenVista, a client (Medsphere OpenVista CIS) and a middleware component (Medsphere OpenVista Bridge). The Bridge handles doing raw RPC communication with the VistA Broker and provides a Binary Remoting interface to the client. The Bridge is meant to be run on a server (either one running VistA itself, or a separate machine), while CIS runs on a client machine (any machine with a .NET environment and Gtk# available).

There is another component, called OpenVista Vitals. The shared library piece (Medsphere.OpenVista.Vitals.*) is used inside of CIS to provide its vitals functionality, and also used in the OpenVista Vitals application. OpenVista Vitals is designed to take vitals for several patients at a time, for instance for all patients on a Unit, while the CIS part is designed for single patient access.

Requirements

  • .NET Runtime (mono 1.1.x or MS .NET v1.1)
  • Gtk# 2.8 or greater (not required to just run the Bridge component).
    (Gtk# for Windows can be found at the OpenVista SourceForge page)
    NOTE: Starting with version 0.9.1 of OpenVista(R) CIS, the OpenVista(R) CIS team has introduced a new versioning scheme for their Gtk# Windows installers. Version numbers previously tracked the bundled Gtk+ version, however quite quickly, we realized that the Gtk# version was much more important to external users. As a result of this new numbering scheme, version numbers starting with 2.8.3-7 will actually be lower than the previous version, 2.10.7.3, released on February 24th, 2007. This change will obviously confuse some users, so version 0.9.1 of OpenVista(R) CIS will prompt users to update their Gtk# version when run with a version older than 2.8.3-7. Simply update to the latest version found on the OpenVista(R) SourceForge project to remedy this error.

Building

OpenVista can be built 3 different ways.

1) make - The usual process is all it takes:

./configure && make

2) MonoDevelop -

* See the note below about building with newer automake versions.

There are two options. Using the monodevelop command line tool:

mdtool build

Or from the MonoDevelop UI:

Open ./OpenVista.mds

3) Visual Studio .NET -

* See the note below about building with newer automake versions.

Generated Visual Studio 2005 files will work, but CIS has some problems when running. We haven't looked into this any deeper.

Note: The following steps are annoying and repetitive, but unfortunately we have been unable to find a way to perform then during our automatic solution/project generation step.

Initial setup:

From VS .NET, Open ./OpenVista.sln. Right click the OpenVista solution and select Properties. Click "Startup Project" from the left tree view. Click the "Multiple Startup Projects" radio button, and then change the action for the Bridge and OpenVistaCIS projects to be "Start". Next, click the "Configuration Properties" item from the left tree view. Check the boxes next to every sub-project to indicate the project should be built. Click Ok.

Bridge build setup:

The final piece is to do some configuration tweaks to the Bridge project, which requires the most hand holding to get building with VS .NET. Right click the "Bridge" project node from the Solution Explorer, and select Properties. Click Configuration Properties -> Debugging from the left tree view. Under Start Options, set the Command Line Arguments property to include the right --vista-host and --vista-port parameters as discussed in the *Running* section of this README. Click Ok.

Next, right click on the "Bridge" project in the Solution Explorer, and Add Existing Item. Find the data directory, and select "version.aspx". You'll most likely have to change "Files of type" to All Files (*.*) first. Click No to the dialog "There is no class file in the project associated with the Web Form 'version.aspx'. Create a new class file now?".

Building:

You should finally be able to build the solution by clicking Build -> Build Solution.

* Issues with project file generation and newer automake releases:

Newer versions of automake have caused the make target order when multiple "all" targets are found to *change*, which broke the OpenVista.mds and OpenVista.sln file generation. In order to resolve this until a proper fix is found, the following steps must be taken after building with "./configure && make":

$ rm OpenVista.sln OpenVista.mds .solution.tmp.xml
$ make OpenVista.sln OpenVista.mds

At that point, you can open the solution files in either VS .NET or MonoDevelop.

Running the Bridge

Running on Linux:

Change directories into build/output/bridge. Start the bridge with:

mono Bridge.exe --vista-host foo --vista-port 9999

Note that "foo" and "9999" should be the hostname/IP and port (respectively) where a VistA TCP broker is listening.

Running on Windows:

Right click Bridge.exe, and click Create Shortcut. Right click the created shortcut, and click Properties. In the Target field, append '--vista-host foo --vista-port 9999' (substituting the hostname/IP and port to point to a VistA TCP broker.).

Double click the shortcut to run the bridge.

Running the CIS client

Running on Linux:

Change directories into build/output/cis. Start CIS with:

mono OpenVistaCIS.exe

Under Options, enter the hostname the bridge is running on, and enter port 7979 in the port entry.

Enter a access and verify code, and click Connect.

Running on Windows:

Double click OpenVistaCIS.exe

Licensing

Various pieces of OpenVista CIS, OpenVista Vitals and OpenVista Bridge are licensed differently. The details of all the pieces are laid out below.

src/Medsphere.OpenVista.CIS.Core.UI/*:
src/Medsphere.OpenVista.CIS.Proxy/*:
src/Medsphere.OpenVista.CIS.Remoting/*:
src/Medsphere.OpenVista.CIS.Shared/*:
src/Medsphere.OpenVista.CIS.UI/*:
src/Medsphere.OpenVista.Core/*:
src/Medsphere.OpenVista.Core.UI/*:
src/Medsphere.OpenVista.Imaging/*:
src/Medsphere.OpenVista.Proxy/*:
src/Medsphere.OpenVista.Remoting/*:
src/Medsphere.OpenVista.Shared/*:
src/Medsphere.OpenVista.Shared.Test/*:
src/Medsphere.OpenVista.Shared.UI/*:
src/Medsphere.OpenVista.Vista.Remoting/*:
src/Medsphere.OpenVista.Vitals.Remoting/*:
src/Medsphere.OpenVista.Vitals.Shared/*:
src/Medsphere.OpenVista.Vitals.UI/*:
src/OpenVistaCIS/*:
src/OpenVistaVitals/*:
src/Benchmark/*:
src/Bridge/src/*:

These constitute the majority of the sources, and are all licensed under the AGPL v3.

src/Bridge/src/web-server/*:

These are MIT/X11 files imported from the source of XSP, which is a project by the Mono team at Novell. The upstream sources can be found on their SVN server at http://svn.myrealbox.com/viewcvs/trunk/xsp/.

src/Medsphere.OpenVista.Spelling/*:

This is a port of the LGPL spell-checking library gtkspell3 to C#, and C# bindings for Aspell, also licensed under LGPL.

src/Medsphere.OpenVista.Imaging.Core/*:

This is an LGPL library which provides pluggable imaging backends which can be added via Mono.Addins.

src/Medsphere.OpenVista.Imaging.Pdf/*:

This is a pluggable backend for the Imaging framework which links to the GPL poppler-sharp. This is also licensed under the GPL.

src/Medsphere.Widgets/*:

Licensed under the LGPL, this directory is a dump of the files from the Medsphere.Widgets project available at http://www.medsphere.org/projects/widgets.

src/Mono.Addins/*:

These are MIT/X11 files imported from the source of Mono.Addins, which is a project by the Mono team at Novell. The upstream sources can be found on their SVN server at http://anonsvn.mono-project.com/viewcvs/trunk/mono-addins/.

Download

The source and pre-compiled binary of the OpenVista CIS release can be downloaded from the OpenVista SF.net project.