Drat... that pesky feature in Netscape that sends mail when I do something wrong
while trying to cut and paste a chunk of text sent this prematurely. (I KNOW I
don't accidentally type Ctrl-Enter, so I can't figure out what I am doing...).

We leave number six to permit others to contribute the features I left out...
;-)

Greg Kreis wrote:
> 
> Gunther Schadow wrote:
> >
> > Question: Is there any comprehensive library of documents describing
> > the design of the VistA system. I'd like to know what it is that makes
> > is such a superior system as I have heard so often on this list. I
> > would guess there is a lot of writing about VistA to explain these
> > great ideas, concepts, and designs?
> 
> The Monograph I mentioned in an earlier message gives a brief overview of the
> breadth of the VistA clinical apps.
> 
>   http://www.va.gov/vista/98mono.htm
> 
> I just remembered there are ER diagrams of the VistA database in PDF files at
> the following location.  The diagrams are by app.  [You can use this page -
> http://www.va.gov/vista/Software/Formal%20Packages%20%26%20parents.txt - to
> associate a namespace/prefix with the app's name.]
> 
>    http://www.va.gov/vista/Software/ERdiagrams/
> 
> As far as the design of the system goes, I'll attempt to summarize so all can
> learn some of the neat and not-so-neat things about VistA's infrastructure.
> 
> Keep in mind much of this infrastructure was laid in the late 70s and early
> 80s.  There is much to learn...
> 
>   1.  VistA provides a common services framework, like background tasking of
> jobs, device selection, menus, Hl7 interfacing, datbase, etc. are defined in a
> library called the Kernel.  It is very well documented and all apps are required
> to use them and not invent their own.  So if you know how to select a device,
> pick a menu option or queue a task in one app, you know how to do it in any
> app.  User training is greatly simplified and dependencies on underlying
> platforms is eliminated.  Try to keep the user from seeing ANYTHING system
> specific in the underlieing implementation.  This makes migration issues
> invisible to them - they don't need to be trained.  All they know is that on
> Monday it is suddenly a lot faster.
> 
>   2.  Any non-standard MUMPS code that must be performed (such as not echoing
> characters to avoid seeing a password) is done by calling an API in the Kernel
> that has been adapted to the current platform.   A part of the Kernel therefore
> serves as an adapter to encapsulate the non-standard extensions that would
> corrupt portability if permitted to leak into the apps.  This has been essential
> to permit the code to migrate to several different platforms painlessly over a
> weekend.
> 
>   3.  The File Manager (database manager) uses an active Data Dictionary to
> define files.  It contains the validation code, cross-reference logic, etc.
> Most unfortunately, MUMPS programmers have bypassed this part of VistA all too
> often in the past and so it is not as tightly sealed as one would like.  This
> must be avoided in a future system.
> 
>   4.  The Kernel contains an integrated SMTP Email module (Mailman) that can be
> used for human or computer-to-computer communication.  Some apps use this to
> communicate information to a designated server that gathers it into a database.
> One use could be to automatically track rates of disk usage at all sites so that
> accurate budget projects can be made for equipment expenditures.
> 
>   5.  A powerful distribution mechanism (KIDS) permits you pick up parts of an
> application or all of it and release it as an Email attachment or a file.  A
> KIDS distribution can use Mailman to report to a central server when an
> application or patch (see below) is installed at a site.  This permits the VA to
> quickly see the version and patch level of apps at any facility across the
> country.
> 
>   6.
> 
>   7.  An effective system of patching, based on KIDS, permits simple releases to
> fix problems or elaborate releases of new functionality.  These patches can be
> distributed as Email messages or files.  Unfortunately, there is no 'undo' for
> them.  This should be addressed in a new system.
> 
>   8.  MUMPS code is not 'compiled and linked', so any code is open to anyone to
> call.  The same is true for the data.  This is 'too open', so you have to
> enforce external policies and procedures to avoid unwanted dependencies.  There
> should be a way to declare code and data public, private, protected, etc.
> 
>   9.  There is TONS of source code (15,000+ routines) and thousands of files in
> the apps to illustrate just about anything you might want to do.  The hard part
> is separating good techniques from dangerous ones.
> 
> --
> --------------------------------------------------------------
> Greg Kreis               Pioneer Data Systems, Inc.
> [EMAIL PROTECTED]    http://www.PioneerDataSys.com
> http://www.Hardhats.org/   <-- worldwide VISTA/DHCP users
> 
> If Bill Gates had a nickel for every time Windows crashed...
>             ..oh wait, he does.


-- 
--------------------------------------------------------------
Greg Kreis               Pioneer Data Systems, Inc.
[EMAIL PROTECTED]    http://www.PioneerDataSys.com
http://www.Hardhats.org/   <-- worldwide VISTA/DHCP users

If Bill Gates had a nickel for every time Windows crashed... 
            ..oh wait, he does.

Reply via email to