[plt-scheme] A crazy idea (fMUMPS)

From: Gregory Woodhouse (gregory.woodhouse at sbcglobal.net)
Date: Tue Dec 27 22:48:59 EST 2005

On Dec 27, 2005, at 5:44 PM, Matthias Felleisen wrote:

> Let me add something to this post.
> Greg and I have corresponded a couple of times last month, and I  
> encouraged him to post here for several reasons:
> 1. Health informatics is an up-and-coming field. MUMPS is one of  
> those standards that has evolved in this area. Neither Python nor  
> Perl nor any of our other friends have made an in-road yet. Perhaps  
> Scheme/FP could be first in some app area.

Certainly,  not as much as you'd think. I've seen examples of Perl  
being used in places that I didn't expect, but the only case of Perl  
being put use in a fundamental way that I can think of is as a  
scripting language for a middleware product. (Middleware, sometimes  
dubbed "interface engines" are surprisingly popular and widely used  
in medical informatics, where various communication standards  
covering everything from admission/discharge/transfer to billing and  
ordinary EDI plays a major role.) The Perl community, to my knowledge  
has targeted bionformatics (something quite different, having to do  
primarily with genetics), but not medical information systems.  
Nevertheless, it does provide a lot of good infrastructure, say, for  
XML and web services.

The system with which I am most familiar is VistA (see http:// 
www.hardhats.org for more information) and is MUMPS based. many  
commercial systems are SQL based, but MUMPS based systems (which  
ultimately store data, and not just indexes, as B-trees) have  
historically proved surprisingly resilient. The big players right now  
are "legacy" MUMPS based systems and newer systems typically based on  
a mixture of J2EE and relational technology.  Interestingly, though,  
the Computerized Patient Record System (CPRS) for which VistA is  
perhaps best known is written in Delphi, which is a visual  
environment  similar to Visual Basic, but developed by Borland using  
an object oriented superset of Pascal. There are a number of open  
source initiatives, and a version of the VA developed VistA is only  
one, but a big one. See http://www.worldvista.org for information  
about a project to bring VistA into the world of open source.

> 2. This is probably not a one person job though some superhacker  
> may get very far on his own, assuming no other directions. So  
> posting here to look for help appeared appropriate. This is not a  
> small job because in the end someone will have to construct a full- 
> flegded fMUMPS app and demonstrate that is better than CobolMUMPS  
> in some systematic fashion. Greg is your way in.

Oh, I certainly agree. I think that if VistA were rewritten today  
using FP it would be much smaller -- but even if it were an order of  
magnitude smaller, it would still be huge. It's not something any one  
person understands in detail.
> 3. I could even see research bits in this area. Greg mentions  
> verification problems, but there are clearly algorithmic problems  
> and many others. (Speed won't come for free here.) You might even  
> be able to raise NIH funding eventually.

Yes, I've ben thinking about verification, but can certainly see  
other possibilities.  Other people are certainly qualified than I  
would be to discuss the user/provider perspective, and what avenues  
for research that are likely to emanate from a medical informatics  
perspective. My particular area of expertise is what we sometimes  
call "infrastructure"  (system interface), though I am currently  
working on things of a much more prosaic nature (accounting and  
> So this is a potential target for someone who thinks Scheme/FP is a  
> good thing (tm) and wants to prove it with someone one day.
> -- Matthias

Gregory Woodhouse
gregory.woodhouse at sbcglobal.net

"Is it not possible that software is not like
anything else, that it is meant to be
discarded: that the whole point is to always
see it as a soap bubble?"
--Alan J. Perlis

Posted on the users mailing list.