Astronaut WorldVistA Installers for Linux Beta 0.7 (Falling with
Style!) (see WorldVistA license below)
Description: Installs WorldVistA EHR/VOE 1.0 via rpm (Fedora/RedHat)
or dpkg (.deb file Ubuntu/Debian)
Downloads: http://sourceforge.net/projects/worldvistaautoi/files/
Changes: GUI-Scheduling client probably will work in this release by
changing XUS1.m and adding IPv6 processing to BMXMON and XWBTCPM.
Monster release with fixes for TMG-GUI-Config that allows User
access/verify code management, pre-loads bmx and all the pieces needed
to run GUI-Scheduling.
Other changes: Latest Fidelity Information Services gtm V53004A "Rock
Solid, lightning fast.", gtm is now symlinked to /opt/lsb-gtm/gtm so
that it can be easily upgraded. All client installers upgraded with
the latest TMG-CPRS, TMG-GUI-Config and GUI-Scheduling. The p(atch)
subdirectory will now work correctly (which is in the eye of the
beholder) and is now populated with the results of many patches. mupip
man page is now installed.
Default ID's and passwords: System Linux id for an instance now follow
the VistA Standard Base spec of <branding>vista<instance> to avoid
conflict and allow multiple instances to run side by side. For example
worldvistaEHR is the default Linux id for rpm install with password
vista!123. The default VistA id is sys.admin vista!123.
Author: Ignacio Valdes <iva...@hal-pc.org>
Contributors of code, modules or other in Alphabetic order (Ommitted?
Don't want to appear? Let me know.)
Individuals:
Anthracite, Nancy -- Original install document, general knowledge.
Bodtke, Peter -- Testing, documentation.
Bhaskar, KS -- GT.M, Acculturation documentation, architecture, shell scripts.
Dorsey, Jon -- VistA Standard Base co-proposer.
Hagood, Eddie -- TMG-GUI-Config and fixes.
Habiel, Sam -- BMX functionality, GUI-Scheduling.
Landis, "Gus" -- VistA Standard Base co-proposer.
Noorden, Lars -- Mupip man page.
Meiling, Ben -- VistA Standard Base co-proposer.
Papillion, Anthony -- VistA Standard Base co-proposer.
Pardue, Andy -- OVID.
Self, Jim -- m2web
Tai, Jonathan -- GT.M knowledge, VistA Standard Base, rpm wizardry.
Timson, George -- Pointed out IHS fix for SSN problem.
Toppenberg, Kevin -- TMG-CPRS, TMG-GUI-Config, TMGIDE, general knowledge.
Trotter, Fred -- VistA Standard Base co-proposer.
Watson, Steve -- Testing, documentation, VistA Standard Base co-proposer.
Whitby, Bruce -- Testing, , VistA Standard Base co-proposer, Misc.
Whitten, David -- Global expertise, debugging, architecture.
Corporations:
Fidelity Information Services -- GT.M
Medsphere Systems Corp -- OVID, Other.
M/Gateway Developments Ltd -- EWD
WorldVistA -- Processed FOIA VistA/VOE.
Government:
Indian Health Service -- BMX, scheduling GUI.
Veterans Affairs -- FOIA VistA.
Problems, comments, bugs: Post problems or issues to the Hardhats
group: http://groups.google.com/group/Hardhats or to
<iva...@hal-pc.org>
License: Installer: Affero GNU GPL version 3. No warranties expressed
or implied, use at your own risk. (see WorldVistA license below)
This installer has been tested on Fedora 10 and Ubuntu 9.
To install on rpm based systems, log in as root:
# yum install -y --nogpg astronaut-<version info>.rpm
Will install all depencencies and then the rpm or somewhat independently:
# rpm -i astronaut-wv-server-installer-XXX-0.X-X.i386.rpm
IT IS NORMAL TO SEE A BUNCH OF ERROR MESSAGES DURING COMPILATION.
To uninstall:
# rpm -e astronaut-wv-server-installer-XXXX-0.X-X
(NOTE: the absence of .i386.rpm for uninstalling)
To install on .deb, dpkg apt-get based systems, use sudo or sudo su to
log in as root:
# dpkg -i astronaut-wv-server-installer-XXXX_0.X-0.X.deb
IT IS NORMAL TO SEE A BUNCH OF ERROR MESSAGES DURING COMPILATION.
To uninstall:
# dpkg -r astronaut-wv-server-installer-XXXX_0.X-0.X.deb
You can change the default installation parameters: location, port,
etc by creating a file called wv-rpm-defaults in /, (rpm apparently
can only find it in /):
vista_path="/opt/worldvista/EHR" # Full path with the last node being
the instance name.
vista_instance="EHR" # Same as the last node above in
/opt/worldvista/EHR
VISTAUSER=worldvista$vista_instance
VISTAGROUP=worldvista$vista_instance
port=9260 # Listening port. By convention 9260
Production, 9261 Training, 9262 Development
vista_port_old_rpc=9210 # Listening port for old rpc broker.
Defaults to 9210
vista_port_vistalink=8002
Alter the above parameters as desired before running the rpm and it
will override the above defaults.
Follow the next steps after the rpm install has run. This gets you to
the point of being able to login as a text or CPRS client. BOX:VOLUME
PAIR GETS AUTOMATICALLY SET! The pre-set Access Code is: sys.admin
with Verify Code: vista!123. You will have to re-set the verify code
upon first login. Download the Windows client installers which should
all work out of the box with this server. The pre-set Linux id is
vista.world password is vista!123 which you will also have to re-set
on first login to the Linux vista.world id. To start m2web simply
start or restart apache then go to step 10 here:
http://vista.vmth.ucdavis.edu/notebook/index/48.html
Features:
1) Conforms to VistA Standard Base 0.9 RC 10.
2) Quick install.
3) Automatically sets BOX:VOLUME pair!
4) Creates a text<instance> id, automatically edits, compiles and
installs Bhaskar's runzu so that text<instance> runs with no shell and
no home directory.
5) Relatively smaller download size 155Mb complete package containing all files.
6) Controller software such as vistactl.sh start | stop | restart,
xinetd listener automatically configured and installed.
7) Automatic vista startup with journaling on server start and
graceful shutdown. Bhaskar's code.
8) Automatically opens CPRS port.
9) Has a backup solution (some assembly required).
10) Latest WorldVistA and gtm V53004A
11) Installs /opt/worldvista/EHR
12) Creates default vista id automatically.
13) Management commands: copy_this_vista_to.sh and
change_client_port.sh and uninstall_this_vista.sh
14) Requires two-factor deletion to really delete an instance. rpm -e
only removes symlinks to log files, text-client id and auto-start
routines. Requires explicit rm -Rf to really delete it all. rpm -i
--force will NOT over-write an existing instance.
15) Checks for file wv-rpm-defaults and overrides default install
parameters for different locations for the install.
16) Port handling files correspond to worldvista name spaces.
17) Pre-installs m2web. Start or restart apache then go to step 10
here: http://vista.vmth.ucdavis.edu/notebook/index/48.html Turn off
and on SELinux between boots by: echo 0 >/selinux/enforce or echo 1
>/selinux/enforce
18) Refreshed: Pre-installs Kevin Toppenberg's debugger, see
http://vistapedia.net for activation.
19) Pre-installs EWD (currently broken).
20) Pre-installs OVID.
21) Pre-installs Victory Programming Environment, see
http://vistapedia.net for activation.
# 22) MSC Fileman 1034 Had to be removed as it was causing a problem.
Stay tuned!
23) TMG-CPRS support with all associated bug fixes.
24) TMG-GUI-Config now supports user management.
25) BMX RPC broker and necessary parts pre-loaded.
26) GUI-Scheduling components pre-loaded.
27) Man page for mupip command.
Caveats:
1) Beta installer.
WorldVistA EHR /VOE 1.0 Release 6-2008
IMPORTANT FOR ALL PROVIDERS:
All drugs that the provider may need must be entered into the database
BEFORE THE PROVIDER PRESCIBES THEM from WorldVistA EHR.THE DRUG FILE
INCLUDED HAS NOT BEEN PREVIOUSLY RELEASED. IT IS ALWAYS IMPERATIVE THAT
ANY AND ALL DRUG ORDERS AND PRESCRIPTIONS BE CAREFULLY REVIEWED BY THE
PRESCRIBING PHYSICIAN AND DISPENSING PHARMACIST TO INSURE ACCURACY. IF
PROBLEMS ARE FOUND, PLEASE REPORT THEM HERE
IN...@WORLDVISTA.ORG
OR
http://trac.opensourcevista.net/worldvistaehr
Please see this link for information about entering new drugs and drug
doseages:
<http://worldvista.org/World_VistA_EHR/license-and-readme/ReadMe%20-%20Wor
ldVistA%20Pharmacy%20Drug%20File%202008-01-31.pdf>
Please look for additional information and updates about this release
here:
<http://worldvista.org/World_VistA_EHR/license-and-readme>
All portions of this release that are modified from the original Freedom
of Informtion Act release provided by the Department of Veterans Affairs
carry the GPL license and are Copyright WorldVistA. See this URL for the
full text of the license:
http://worldvista.org/World_VistA_EHR/license-and-readme/WorldVistA%20EHR%
20GPL%20License.txt
YOU SHOULD CAREFULLY READ THE FOLLOWING TERMS AND CONDITIONS BEFORE USING
THIS PRODUCT. DOWNLOADING OR USING ANY PART OF THE SOFTWARE AND
DOCUMENTATION INDICATES THAT YOU ACCEPT THESE TERMS AND CONDITIONS. IF
YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT, DO NOT
PROCEED.
A. General Disclaimer. THE WORLDVISTA-EHR (WV-EHR) SOFTWARE IS
PROVIDED TO RECIPIENT HEREUNDER "AS IS" AND ANY USE OF WV-EHR SOFTWARE BY
REQUESTOR SHALL BE AT ITS OWN RISK. TO THE MAXIMUM EXTENT PERMITTED BY
APPLICABLE LAW, WORLDVISTA AND ITS CONTRACTORS, EMPLOYEES AND AGENTS
DISCLAIM ALL WARRANTIES WITH RESPECT TO WV-EHR SOFTWARE, EXPRESS, IMPLIED
AND STATUTORY, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY,
COMPLETENESS, TIMELINESS, NON INFRINGEMENT OF THIRD-PARTY RIGHTS, NON
INTERFERENCE, AND ERROR FREE SERVICE. WORLDVISTA TAKES NO RESPONSIBILITY
FOR MONITORING OR REGULATING THE USE OR ACCURACY OF WV-EHR SOFTWARE.
RECIPIENT ACKNOWLEDGES AND AGREES THAT WORLDVISTA IS UNDER NO OBLIGATION
TO VERIFY THE ACCURACY OF OR OTHERWISE UPDATE WV-EHR SOFTWARE OR ANY
CONTENT CONTAINED THEREIN OR TO NOTIFY RECIPIENT OF ANY INACCURACIES
THEREIN OR UPDATES THERETO THAT MAY COME TO THE ATTENTION OF OR BE
DEVELOPED BY WORLDVISTA. WV-EHR MAY BE UPDATED PERIODICALLY, AND IT IS
THE RESPONSIBILITY OF THE RECIPIENT TO OBTAIN UPDATED VERSIONS OF THE
WV-EHR RELEASE AS REQUIRED. WORLDVISTA BEARS NO RESPONSIBILITY FOR
PROVIDING UPDATES TO RECIPIENTS. PASSWORD IS asdTYU
B. LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY
APPLICABLE LAW, NEITHER WORLDVISTA NOR ANY OF ITS EMPLOYEES, AGENTS OR
CONTRACTORS SHALL BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
CONSEQUENTIAL OR PUNITIVE DAMAGES, INCLUDING WITHOUT LIMITATION DAMAGES
FOR LOST PROFITS OR REVENUES, GOODWILL, WORK STOPPAGE, SECURITY BREACHES,
VIRUSES, COMPUTER FAILURE OR MALFUNCTION, USE, DATA OR OTHER INTANGIBLE
LOSSES OR COMMERCIAL DAMAGES, EVEN IF ANY OF SUCH PARTIES IS ADVISED OF
THE POSSIBILITY OF SUCH LOSSES, ARISING UNDER OR IN CONNECTION WITH THIS
AGREEMENT, COMPLIANCE EFFECTIVENESS STUDY TOOLS, THE USE OF OR INABILITY
TO USE THE SAME, OR ANY OTHER SUBJECT MATTER HEREOF. IN ADDITION, TO THE
MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, NEITHER WORLDVISTA NOR ANY OF
ITS EMPLOYEES, AGENTS OR CONTRACTORS SHALL BE LIABLE FOR ANY LOSS OR
DAMAGE SUFFERED BY RECIPIENT WHICH ARISES OUT OF OR IN CONNECTION WITH
ANY INFORMATION OBTAINED BY RECIPIENT VIA OR IN CONNECTION WITH WV-EHR
SOFTWARE.
Okay, I just uploaded and updated Astronaut WorldVistA 0.7.3 rpm/deb/windows appliance.
17) Pre-installs m2web. Start or restart apache then go to step 10 here: http://vista.vmth.ucdavis.edu/notebook/index/48.html Turn off and on SELinux between boots by: echo 0 >/selinux/enforce or echo 1 /selinux/enforce
19) Pre-installs EWD (currently broken).
Having the KIDS builds themselves available is a good first step. For
OpenVista Server, we've begun to distribute KIDS builds separately[1]
from full-database releases to accommodate users who are upgrading. The
installation sequence can be found in the commit messages[2] of our open
repository.
> 2. ?
For #2, I would suggest that separating out the Linux components from
VistA itself, as we've done this with our OpenVista/GT.M Integration
Project[3], is vital. If the VistA management tools are separated from
VistA, you can attack making the tools upgradeable and making VistA
upgradable separately.
Making the tools upgradeable is relatively easy, since the tools don't
involve any configuration or patient data that must be preserved. Our
management tools from the OV/GT.M integration project have been
upgradeable from release to release since the first 0.8.0 release back
in May. In fact, you can upgrade from any older release to any newer
release (e,g. 0.8.0 => 0.8.2, 0.8.1 => 0.8.5), just like packages from
upstream Linux distributions.
VistA is already upgradeable via KIDS, and a (relatively) small amount
of work could allow a series of KIDS builds to be installed quickly,
provided that your upstream is pushing out a reliable sequence of builds
(see #1, above).
> 3. ... Well, I don't know <everything>. :)
I don't know everything either, but for #3, I'd suggest that the
next-generation revision control tools I've ranted about[4] at length on
this list could be used to distribute upgrades. Having the revision
control tools in place would allow a site to consume more than one patch
stream at once (although care should be taken that the two streams do
not conflict with one another). In practice, production sites with no
developers on staff will probably want to consume just a single
"aggregate" stream (possibly provided by a VistA integrator), and the
development work required to ensure no conflicts, QA, etc. will be done
in the integrator's branch.
- Jon
[1] http://tinyurl.com/mkyt4f
http://sourceforge.net/projects/openvista/files/OpenVista%20Server/1.5SP2/openvistaserver-1.5.sp2-kids.zip/download
[2] http://tinyurl.com/netwru
http://bazaar.launchpad.net/~ov+server/openvista-server/mainline/revision/37
[3] http://medsphere.org/community/project/gtm
[4] http://tinyurl.com/m2yoja
http://medsphere.org/people/jon.tai/blog/2009/07/01/the-case-for-distributed-revision-control-in-the-vista-community
[jl.z] Begging David's pardon for ignoring the meat of his post,
Besides, I see that Jon has more substantial contributions to make
(and is typing faster than I)
1. KIDS (just one, essential tool)
> What are the details of that part ?
We must have a better way of maintaining a repository of KIDS distributions.
And there should be an automated or semi-automated method of
distributing them to "subscribers".
I do not believe that this needs to be a central repository. But there
needs to be a complete listing of KIDS files however widely they may
be distributed physically. So, yes, a virtual central repository.
> Why is it worth doing ?
The VA FOIA site remains an important resource and its patch stream is
unlikely to replace KIDS with something more "modern". So VistA users
will continue to need access to these patches. Those of us living
outside the firewall should be able to evolve reliable mechanisms for
using KIDS, to include notification of new entries
In addition there are other potentially valuable inputs to the patch
stream outside the VA firewall.
** on the Trac server one can find the work of the CCR/CCD group:
https://trac.opensourcevista.net/browser/ccr/trunk/archive/C0C_1_0_10_T1_GTM.KID
It also holds kdtop's work on TMG-CPRS:
https://trac.opensourcevista.net/browser/cprs/branches/tmg-cprs/Server_KIDS/TMG1-1.0-3.KIDS
** Medsphere is contributing work on several fronts, for example on
GTM integration:
http://code.launchpad.net/openvista-gtm-integration/mainline/0.8.5/+download/MSC_GTM_INTEG_8.KID
** There are things hanging out on Nancy's server:
http://opensourcevista.net:8888/NancysVistAServer/Scheduling/VWSD_1_0.KID
(just an example)
** I'd like to find somewhere (and perhaps a namespace) for my pipe
print device.
> Do we have what we need to do it ?
Initially one individual could build a virtual repository, not of
files but of pointers to files.
> Who has permission to do it ?
It's a free country. I would expect some vendor or the other to have
a hidden repository for its own purposes. But I could start from FOIA
and the other freely available sources listed here.
> What will people get from it ?
Ask Kevin about the need for maintaining a patch stream up to date.
Until we start to maintain public lists of patches, we will miss
things.
> Who can we depend on to maintain it ?
We'd better depend on ourselves.
Other relevant issues:
Synchronization within an organization's VistA servers
MailMan distribution
Versions for Cache vs GT.M,
The limitations of KIDS distributions.
jl.z
-- --------------------------------------- Jim Self (http://www.vmth.ucdavis.edu/us/jaself) M2Web (http://vista.vmth.ucdavis.edu/notebook) ---------------------------------------
> > Who has permission to do it ?
>
> It's a free country. I would expect some vendor or the other to have
> a hidden repository for its own purposes. But I could start from FOIA
> and the other freely available sources listed here.
Wearing my "some vendor" hat for a moment:
1) The OpenVista repo is not hidden [1]
2) KIDS builds are available in a tarball [2] and an open, source code
management, repository [3]
3) Patch sequence is available in release documentation (ChangeLog)
- Ben
[1] http://bazaar.launchpad.net/~ov+server/openvista-server/mainline/files
[2] https://sourceforge.net/projects/openvista/files/OpenVista%20Server/1.5SP2/
(openvistaserver-1.5.sp2-kids.zip)
[3] http://bazaar.launchpad.net/~ov%2Bserver/openvista-server/mainline/files/head%3A/kids/
I was <not> referring to Medsphere, currently the most open vendor we have. :-)
I even used http://code.launchpad.net/openvista-gtm-integration/mainline/0.8.5/+download/MSC_GTM_INTEG_8.KID
as an example of a KIDS distribution that should be included.
"I would expect some <other> vendor(s) to maintain their own repository."
Highest regards,
jl.z -- Rock solid (not counting the right knee).
Lightning fast (except for that prostate thingy).
Phew! Thank goodness! Removing that hat then -- besides, it doesn't
fit very well. ;-) -Ben
Nothing stops you from just using 32KB block sizes for everything and
not having to care. If you care about performance, GT.M let's you tune
for performance. We cater to all needs! (Since the computer systems at
some of our high end users are in the million dollar range and up,
saving a few percentage points in performance is pretty real money.)
Nomex not needed here!
Regards
-- Bhaskar
GT.M - Rock solid. Lightning fast.
_____________
Jim You have to understand that (like most software that I anticipate ending up in GT.M over coming years) EWD was originally developed on Cache where 32k strings are the norm. Much of EWD's compiler functionality has been designed and relies on the fact that 32k strings are available in global storage. I dare say I could mess about and re-code stuff to make do with a lot less, but a) I don't have the time (or rather can't justify it), b) I don't want to risk de-stabilising EWD unecessarily and
c) 32k string handling seems entirely reasonable in this day
Speed is VERY important to caregivers.
On 09/09/2009 09:35 PM, Butch wrote:
[KSB] <...snip...>
> I do agree though that the extra bits for adapting to the underlying
> filesystem is not a good way to have to do things. For the sake of
> curiosity, is this a limitation of other non-cache based M?
[KSB] This is an interesting use of the English language. GT.M lets you
use 32KB block sizes for all your global variables. It also lets you -
optionally - use different block sizes for different global variables.
And this is termed a "limitation"?
Regards
-- Bhaskar
On 09/09/2009 04:50 AM, rtweed wrote:
[KSB] <...snip...>
> Let's be clear: getting EWD to work with GT.M and VistA is not
> difficult or rocket science - either configure a 32k database for its
> specific use, or configure the entire environment to work with 32k
> strings. I'm not sure I understand the resistance to doing this or
> the apparent inability being demonstrated to make this happen.
>
> Can I ask the question: 9 months after having one out of my way to
> make it available as Free Open Source to try to provide this community
> with a state of the art tool for Ajax development, is *anyone*
> actually using EWD with VistA yet? I have to be honest and say that I
> do wonder sometimes why I bothered. All I seem to hear is reasons why
> people haven't used it or don't use it.
[KSB] Rob, I think you underestimate the difficulty of recreating a new
graphical user interface for VistA. I suspect that simply mapping the
breadth of functionality that must be exposed may be a daunting task,
and if you consider CPRS reverse engineering the functionality therein
is a major project. I doubt that even with a corporation behind it,
Medsphere's portable dotNet client took a substantial chunk of work.
It has been said that it takes three times as long to create an
application as it does to create a prototype, and three times as much
yet again to create that application as an integrated part of a complete
system.
Remember that what EWD does is make Javascript toolkits easier to
integrate with MUMPS - it is infrastructure, rather than a design studio
for creating graphical user interface applications.
Incidentally, since there are a number of MUMPS programmers who also
know Python, I wonder if Pyjamas (see http://lwn.net/Articles/348341/0
and http://pyjs.org/) might make it easier for MUMPSters to develop GUIs
and hook them up to MUMPS applications with EWD.
On 09/09/2009 11:46 PM, OldMster wrote:
[KSB] <...snip...>
> However, I still regularly have discussions with 'old' mumpsters who
> still assert that all the code in a 'line' versus vertically arranged
> is more 'efficient', or that comments will slow down and 'bloat' the
> code. If the mumps you are using is still a strictly interpreted
> implementation, that would be the case. In a 'compiled' mumps like
> GT.M or Cache, this is just silly. All it does is make someone who
> has been trained in other languages run screaming for the hills when
> they see the alphabet jungle that most mumps routines look like. I
> don't necessarily agree with their assessment, but first impressions
> do count. This is why in any example I post here, or on the
> comp.lang.mumps group, or even in the Cache group, I don't abbreviate
> the commands/functions, I avoid post conditionals unless absolutely
> required, and I tend to put one operation on a line.
[KSB] I almost agree. After correctness, the goal of good code is
maintainability / readability (depending on business needs, it may be
third after performance). To that end, coding style should fit with the
culture. So, when I post code examples to a VistA forum, where the
culture - and over 20000 existing routines - use abbreviated keywords, I
use them. When my audience is programmers in general, I spell things out.
Post conditionals are an interesting point. I tend to use them even
when my audience is a general programming group because I think that
properly used, they improve readability.
> I didn't read in Rob's post anywhere that he thought the 32k issue was
> a GT.M problem, only an issue with how Vista is currently deployed on
> GT.M. GT.M handles 32k record sizes just fine, as I have found in my
> benchmarking, and other than increased amount of shared memory needed
> for buffers, doesn't have any downsides that I have found yet. I
> would be like to understand the reasons that Bhaskar considers 4k as
> the 'optimum' block size for GT.M. I can understand how for a given
> application a particular block size may be 'optimum', but as a general
> statement I am somewhat skeptical. For my primary application, larger
> block sizes are more efficient, since many of the data structures
> easily exceed 4k in size. With this data, multiple 4k reads would be
> required to retrieve the whole collection of data I need and can
> usually get with a single 32k block read. If I wasn't planning to use
> replication, I would consider the 64k blocks that GT.M also enables.
[KSB] Since GT.M searches linearly within a block (to take advantage of
key compression), there are CPU efficiencies to smaller block sizes.
From an IO perspective, multiples of 4KB are best for Linux (a 4KB
write writes the entire block, a 4095 byte write involves a
read-modify-write cycle). So, in general, my philosophy for optimizing
performance is to minimize block sizes, but keep them a multiple of the
underlying page size.
For VistA, maximum record sizes are on the order of 1KB. So, 4KB, as
the smallest multiple of the natural block size on most Linux file
systems is what I suggest for VistA.
> I also think that 3x the time/effort for an application vs prototype
> is an significant underestimation - prototypes I have thrown together
> in a week have taken up to a year to turn into an application. Of
> course, other prototypes have been deployed as working applications,
> so as usual, general rules prove poor insight into a specific
> occasion.
[KSB] As the saying goes, all sweeping generalizations are worthless! 8-)
On 09/10/2009 08:54 AM, Butch wrote:
>
> Ok to your point I mis spoke on that one. What I was actually asking,
> is what are the upper limits on block sizes for GT.M as well as other
> M implementations?
[KSB2] Block sizes in GT.M are multiples of 512 bytes, from 512 through
65024. As discussed elsewhere, for efficient IO, block sizes should
also be multiples of the natural block size of the underlying IO subsystem.
In GT.M, a MUMPS global node (variable plus subscripts plus value) must
fit in a block. There is a 16-byte overhead, so with a 4096 byte block,
the largest node is 4080 bytes.
Different database files can have different block sizes, so different
global variables can have different maximum record sizes.
On 09/10/2009 10:04 AM, Nancy Anthracite wrote:
>
> BTW, that is M processes alone. That doesn't count whatever else may be
> going
> on.
>
> On Thursday 10 September 2009, Nancy Anthracite wrote:
> > Being no expert on this, I have heard that medium sized VA hospitals have
> > about 5000 processes running at once. Doesn't shared memory usage matter
> > with those sorts of numbers?
[KSB2] 5000 processes per se is no big deal. I have (as a stress test)
started 2000 concurrent GT.M processes on my laptop, and had perfectly
acceptable interactive response time.
In this case, the discussion was about CPU efficiency. I do know that
in high end application benchmarks, we can measure the extra CPU used by
larger than needed block sizes, but I don't think that has ever been
enough to affect overall throughput by more than a small number of
percentage points. We have had deployments that acknowledged the
inefficiency and then accepted it.
I don't see 5000 VistA processes as being a challenge either. However,
I would use 64-bit GT.M and put the object code in shared libraries to
deploy at that scale.
At the high end, what ultimately limits scalability is usually IO
throughput. CPU and memory have scaled with Moore's Law. IO speed has
not (disk capacity has scaled up remarkably well; throughput less so).
Can I ask the question: 9 months after having one out of my way to
make it available as Free Open Source to try to provide this community
with a state of the art tool for Ajax development, is *anyone*
actually using EWD with VistA yet? I have to be honest and say that I
do wonder sometimes why I bothered. All I seem to hear is reasons why
people haven't used it or don't use it.
Can I ask the question: 9 months after having one out of my way to
make it available as Free Open Source to try to provide this community
with a state of the art tool for Ajax development, is *anyone*
actually using EWD with VistA yet? I have to be honest and say that I
do wonder sometimes why I bothered. All I seem to hear is reasons why
people haven't used it or don't use it.
I have tried Java, and frankly don't like it at all. I could get
stuff done with it, but it was time consuming, and difficult to debug,
and didn't offer me anything I need that isn't supplied by the other
languages I use. I have been looking at Python lately, and I do like
what I have seen so far, but have not yet looked closely at the GUI
interface tools/frameworks.
[snip]...
Usually I read the hardhats messages only...
I don't like Java too. I am exploring ColdFusion and it seems fairly
productive.
I export my antique COSTAR mumps to MySQL/ColdFusion and it is worth
exploring IMO.
Regards,
Kin
My laptop has a dual core 64-bit CPU, runs 64-bit Linux and has 4GB of
RAM. However, I have previously run the experiment on a 32-bit 1.8GHz
Pentium M with 1.5GB RAM.
-- Bhaskar
GT.M - Rock solid. Lightning fast.
On 09/10/2009 03:26 PM, Nancy Anthracite wrote:
>
> Same processes or different types ( so they can't share memory if they are
> different types of processes, correct??), 64 bit or not (which I believe
> makes
> better use of memory, correct??), and how much memory do you have on your
> machine?
>
> I am asking because I thought this was mainly supposed to be a memory issue
> for this particular comparison.
_____________
Being no expert on this, I have heard that medium sized VA hospitals have about 5000 processes running at once.
--------------------------------------- Jim Self (http://www.vmth.ucdavis.edu/us/jaself)
-- --------------------------------------- Jim Self (http://www.vmth.ucdavis.edu/us/jaself)
Jim Yes you're right that whatever cut-off point you use for string length handling will never be enough and conversely you could therefore theoretically downsize to accommodate any small string length. The point is that EWD has been designed around the original Cache 32k limit and has been tested to death in real world commercial web application development situations for 6 or more years and is known to cope with anything that's been thrown at it to date. I've made it available to the marketplace as a free open source product knowing that I'm unlikely to see any immediate commercial return for doing so and therefore I have pretty much zero incentive to spend any of my otherwise busy time fixing something that ain't broke and I certainly don't have any motivation to do anything to EWD that would unecessarily risk destabilizing it in the short term. Let's be clear: getting EWD to work with GT.M and VistA is not difficult or rocket science - either configure a 32k database for its specific use, or configure the entire environment to work with 32k strings. I'm not sure I understand the resistance to doing this or the apparent inability being demonstrated to make this happen. Can I ask the question: 9 months after having one out of my way to make it available as Free Open Source to try to provide this community with a state of the art tool for Ajax development, is *anyone* actually using EWD with VistA yet? I have to be honest and say that I do wonder sometimes why I bothered. All I seem to hear is reasons why people haven't used it or don't use it. On 4 Sep, 20:01, Jim Self <jas...@dcn.davis.ca.us> wrote:rtweed wrote:JimYou have to understand that (like most software that I anticipate ending up in GT.M over coming years) EWD was originally developed on Cache where 32k strings are the norm. Much of EWD's compiler functionality has been designed and relies on the fact that 32k strings are available in global storage. I dare say I could mess about and re-code stuff to make do with a lot less, buta) I don't have the time (or rather can't justify it), b) I don't want to risk de-stabilising EWD unecessarily andI was hoping that the 32KB assumption was not scattered all over the EWD code. If not, direct global gets and sets for very long strings might be easily replaced with a pair of function calls.c) 32k string handling seems entirely reasonable in this dayI agree, but even 32KB, or 64KB, or 128KB, etc. is not large enough to handle all the strings one might need to store. GT.M allows 1MB strings in local variables and functions. What happens when a string exceeds the 32KB limit? Do you prohibit that or crash or resort to chunking then? Back in the bad old days following the demise of Datatree, Micronetics, and the MUMPS User Group and before GT.M was Free (Open Source), we implemented M-globals for PERL on the B-tree module of BerkeleyDB. BerkeleyDB offered 8-bit clean associative array keys and data values of unlimited length but its performance was not in the same class as any of the existing MUMPS implementations.
Can I ask the question: 9 months after having one out of my way to
make it available as Free Open Source to try to provide this community
with a state of the art tool for Ajax development, is *anyone*
actually using EWD with VistA yet? I have to be honest and say that I
do wonder sometimes why I bothered. All I seem to hear is reasons why
people haven't used it or don't use it.
Jim,
Without presuming to speak for the rest of the development community here, I personally cannot afford to spend time on time-sink projects. Frankly, until Astronaut arrived -as a shared development environment- VistA as whole fell into this category for me. Once you get EWD working in Astronaut then it will be a different ball-game.
Oops, that was Rob responding to my findings and questions about getting EWD working from an Astronaut install.
I don't know much about Web development, but since I looked at EWD I was convinced that this software is the way to go, escpecially for people who are using MUMPS and like me don't have the time or don't want to learn a lot of other technologies. I don't have the skills or the knowledge to install and configure EWD in a way that it works with Vista or I would make it by myself and share it. So I can at this time only watch Ignacio's efforts to build his Installer and hope he will soon succeed to make it happen. But I know that a lot members of this community have the knowledge to help Ignacio. It would be beneficial for all to help him in this direction to have at least a basic working configuration to experiment with.
The key to start using EWD (for me but maybe for some others too) is I think the possibility to have it "automatically" installed like a lot of other software out there, and Ideally an Intergration with Vista Infrastructure (I mean FileMan at minimum) or at least to have some working examples how to start with it using the FileMan api.
On 10 Sep, 03:08, "K.S. Bhaskar" <ks.bhas...@fnis.com> wrote:[KSB] Rob, I think you underestimate the difficulty of recreating a new graphical user interface for VistA. I suspect that simply mapping the breadth of functionality that must be exposed may be a daunting task, and if you consider CPRS reverse engineering the functionality therein is a major project. I doubt that even with a corporation behind it, Medsphere's portable dotNet client took a substantial chunk of work.
Bhaskar I have specialised in developing web interfaces for legacy applications for the last 15 years for most of InterSystems' largest customers and their largest applications worldwide. I would go so far as to say that there is nobody in the worldwide Cache/Mumps community with more expertise or experience in web/Ajax application development. I think I *might* have an inkling of what's involved.
is anyone even developing prototypes using EWD yet?
-- --------------------------------------- Jim Self (http://www.vmth.ucdavis.edu/us/jaself
) M2Web (url in transition) ---------------------------------------
EWD deserves more than we have given it to date. I watched Rob at RMU last year and assumed that we would be seeing real examples of EWDification of VistA within six months. I expected some tools to emerge that would allow a experienced dilettante such as myself (cf. #1) to start to play with EWD-over-VistA.I would like to see even some of the in-progress stuff. I recall discussing here some of the ideas that had been worked on but I don't recall any links to download anything. I remember that Steve Owen seemed to be making great progress but again, if I remember correctly, no downloads.
This is a huge consideration. It seems that everyone's expertise and time is already stretched to maximum.
So I do understand Rob's frustration, but I don't understand exactly where we've failed. Unless it is that no one on the VistA side has invested the time needed to be the hero in this arena.
I think it may be an indication of just how thin our community is spread. We are trying to get our hooks into this mountain of code that is VistA and it is easier to get lost in some crack or crevice of the legacy code than to dig into something so different.
GT.M - Rock solid. Lightning fast.
On 09/11/2009 10:11 AM, Nancy Anthracite wrote:
>
> If you are Bhaskar ....
[KSB] <...snip...>
Steve --
Give me a list of the global variables in the EWD database, and in about
5 minutes I'll create you a set of commands you can use to edit your EWD
global directory to map the EWD and VistA globals into one logical M
namespace. I can optionally also tell you how to edit your VistA global
directory to map the EWD globals.
This assumes that the EWD and VistA global variable names don't overlap.
One cautionary note: EWD currently runs as root. I have not had the
time to take it apart figure out why it is set up that way and put it
back together. As a matter of policy, I don't run things as root unless
there is a specific requirement to do so. To me, this is the issue, not
mapping global variables - it takes longer to walk to the receptionist's
desk and get a box of paper clips than to modify the global directory
and map the globals.
Regards
-- Bhaskar
GT.M - Rock solid. Lightning fast.
If you are Bhaskar ....
On Friday 11 September 2009, K.S. Bhaskar wrote:
--
Nancy Anthracite
If you post this evening, it will likely be next week before I can
respond. I'm off camping this weekend with boy scouts.
Regards
-- Bhaskar
GT.M - Rock solid. Lightning fast.
On 09/11/2009 10:19 AM, Steve Owen wrote:
>
> Excellent Bhaskar! I will get the details together this evening and post
> back to the list. Contact me off list for the bounty.
_____________
Hi Jim,
I have a link to the DTM CoStar at: http://kin.mscostar.com/ms/mscentry.htm
I don’t know if it would be any good in relation to WorldVistA.
I explored the WorldVista some months back. It is interest, but too big for a single person.
The installation instructions are clear enough to guide a user setup a system.
The stuff that follows is just too much for self exploring, I think. The user access code, the provider keys, institution and ward setup, etc.
Wonder how much time Nancy and the gang have put in for the WorldVista project!
Regards,
Kin
From:
hard...@googlegroups.com [mailto:hard...@googlegroups.com] On Behalf Of Jim
Self
Sent: September-10-09 1:45 PM
To: hard...@googlegroups.com
Subject: [Hardhats] Re: Astronaut WorldVistA 0.7.3 is out, ...
Kin Ho,
Good to hear from you again. If you still have MUMPS based CoStar, I would be
interested in downloading - especially if adapted to GT.M - and exploring
possibilities for accessing it with M2Web and EWD.
I looked for you and CoStar on the web a few years back but the old links were
dead.
Jim
-- --------------------------------------- Jim Self (http://www.vmth.ucdavis.edu/us/jaself
) M2Web (url) ---------------------------------------
Hi Jim! Still here and still developing with EWD in the day job (VA).
Ignacio's Astronaut installer has been a great step to making development as easy on GT.M and Linux. What I don't get is why 4k vs 32k thing is the issue blocking EWD from being implemented with Astronaut.
It is not the only issue, just the first one noted. A simple fix for that might be simply to create a new file /opt/worldvista/EHR/g/ewd.dat configured for 32KB. The Astronaut installed globals directory /opt/worldvista/EHR/g/mumps.dat seems to be expecting it.
So he did, and so did I, as you noted, Sam. I had forgotten all about it. Sorry and thanks. Steve, I'll work with you offline to get VistA and EWD connected. If anyone doesn't know how to do map VistA and EWD to the same M global variable name space after reading the post, please ask on Hardhats. Regards -- Bhaskar GT.M - Rock solid. Lightning fast. On 09/11/2009 12:45 PM, Sam Habiel wrote:Steve, Bhaskar, et al., Rob Tweed posted all the globals in explicit detail: http://groups.google.com/group/ewd-and-vista/msg/449d798afb73f0ca?hl=en For that matter, Bhaskar posted the instructions to map globals to databases in the same thread.
I hope CoStar doesn't become a distraction.
The link to the DTM CoStar Mumps code mentioned in last e-mail doesn't differ much to the public
domain version in the 80's. It was modified for the Multiple Sclerosis clinic in Vancouver.
It has some modification specific to the DTM 'screen addressing.' I tried to turn the 'roll and
Scroll' to GUI and WEB interface using Visual Basic and Weblink at different time.
The project was terminated since 2005 due funding shortage. I got involved again recently
only because the replacement system cannot provided the data/information COSTAR used to
be able to furnish :-).
CoStar actually can handle thousand of patients (one site in Vancouver has over 200,000.)
The global glows automatically from AA to AB and so on. Date can be tricky since it was stored to three characters
at certain algorithm. It behaves well up-to now, but yes it can be problematic soon.
I think CONSTAR is based at the neighbouring province in Canada supporting commercial CoStar.
I do believe Vista is more worthwhile to explore for sure.
Kin
-----Original Message-----
From: hard...@googlegroups.com [mailto:hard...@googlegroups.com] On Behalf Of r...@rcresearch.us
Sent: September-12-09 8:11 AM
To: hard...@googlegroups.com
Subject: [Hardhats] Re: Astronaut WorldVistA 0.7.3 is out, ...
From my exposure to COSTAR, (admittedly decades ago) there was a major
problem with the way that the patients were being stored (10000 per
global) and the way that they have for the storing of time and date was a
major issue (basically, their scheme ran out as the calendar advanced.
Now there was a variant, CONSTAR that might have addressed these issues,
but I have lost contact with them as well.
> Thanks Kin, I will take a look at it. There was a time when I was quite
> familiar with it.
>
> What is the status of CoSTAR now? What sort of updates and upgrades has
> it received since the 80's? What relevance does it have now to the needs
> of clinicians, patients, and medical information systems in general? If
> it is still relevant, what sort of development does it need?
> Jim.
>
---~----~----~------~----~------~--~---
Regards
-- Bhaskar
GT.M - Rock solid. Lightning fast.
On 09/12/2009 05:01 AM, Jim Self wrote:
> It appears that Ignacio was also involved in that discussion and that he
> partially completed the instructions given. File
> /opt/worldvista/EHR/g/ewd.dat does not exist, but globals directory
> /opt/worldvista/EHR/g/mumps.gld seems to be expecting it.
>
> The globals ^zewd and ^%zewd already exist in mumps.dat
>
> Please refresh our memories on the current location of the relevant
> documentation and the commands to review the mappings.
>
> What is the effect of repeating commands in your script that have
> already completed?
_____________