# Linux Medicine-HOWTO

### Walt Pennington

tldp at pennfirm dot net

### Gerardo Arnaez

`<dude@mung.net>`

Raintree I.T.™
Department of Advanced Skunk Works

### Werner Heuser

`<wehe [a[t]ta] tuxmobil.org>`

Revision History
Revision 2.3 | 2004-03-24 | Revised by: gea
Slight updates
Revision 2.2 | 2003-07-11 | Revised by: gea
Slight updates
Revision 2.1.2 | 2003-04-06 | Revised by: gea
Update Slicer information thanks to Matej Pivoluska. updated Werner Heuser information
Revision 2.1.1.2 | 2003-02-02 | Revised by: gea
Corrected typo of 'important' in article description. Thanks to Morgon Kanter.
Revision 2.1.1.1 | 2003-01-05 | Revised by: gea
slight update. spam-proofed emails. Note anyone that wants to help with the vet section should 'come on down'.
Revision 2.1.1 | 2002-12-22 | Revised by: gea
Update to re-include vet applications, but again, will mostly serve as pointer to better information.
Revision 2.1 | 2002-8-24 | Revised by: gea
There are too many projects. There are much better sites for information. This document will change its focus and be more of a stable document and pointing to active sites with better and more up-to-date information. This document is not intended to be complete, and parts of it will seem out of place in its new function.
Revision 2.0.5 | 2002-07-26 | Revised by: gea
Added in OpenEMR. I also need to add back in the german sections, but will need help on it.
Revision 2.0.4 | 2002-04-06 | Revised by: gea
Added Kpumpe and OIO library info
Revision 2.0.3 | 2002-03-02 | Revised by: gea
Added to install OIO on Debian system. Have started on OIO how to install
Revision 2.0.2 | 2002-03-02 | Revised by: gea
Starting to add more to the How-To section of FreePM. The installation section will need testing by others. Added Slicer info under a new section
Revision 2.0.1 | 2002-02-19 | Revised by: gea
Minor changes, Changed license to GPL. Some more reorganization. Which to say I have deleted out a ton of comments that I put that were useless. More pimping of Debian-med.
Revision 2.0 | 2002-02-05 | Revised by: gea
Major changes. Conversion from linux-doc to Doc-Book format. Have basically edited out nutrition sections and most of the German section for now until I can get help again the German section. Have switched focus of the article to Medical informatics and applications, less to research applications which should probably be a different article. Will most likely put these things I will not maintain at the end, so someone else has some where to begin. Whew. Tired from Doc-Book Conversion.
Revision 1.4.3 | 2002-02-5 | Revised by: gea
Doing minor checks of links. no big change yet
Revision 1.4.2 | 2002-02-05 | Revised by: gea
I have started to make structural changes to the documents. Changes Community to the fore-front. renamed Medical Application to Medical Record Application to make it more usable. I have not decide to change the version number as i have just moved links around and I am trying to structure the document a little bit better.
Revision 1.4.1 | 2002-02-05 | Revised by: gea
Gerardo Arnaez took over maintaining this document. Some new additions, some info on when last update. Links to sqlclinic.net and eors.org added.
Revision 1.4 | Unknown | Revised by: wh
XXX, minor changes
Revision 1.3 | 2001-03-01 | Revised by: wh
added links to gnutrition, Java SmokingMeter and HL7lib - Health Level 7 Library, some other links updated, Japanese translation proposed
Revision 1.2 | 2000-11-04 | Revised by: wh
Links to Nut, Free Practice Management, LittleFish, GNUMed, REALTIQ, VISIdent, weight, OIO, CTSim, myPACS, BlazeLIMS, XNBC and PhysioNet added, new document URL, minor changes
Revision 1.1 | 2000-04-20 | Revised by: wh
links to Res Medicinae, QDS, sixpack and LinuxMedNews added, minor changes
Revision 1.0 | 2000-01-27 | Revised by: wh
LinuDent added, preface and disclaimer added, minor changes, first official release
Revision 0.2 | 2000-01-26 | Revised by: wh
URLs checked, minor changes, second draft
Revision 0.1 | 1999-11-17 | Revised by: wh
first draft

The Linux Medical How-To will serve as a nice and convenient meta resource directing interested parties to important sites, a few well-established/meta mailing lists.

# 1. Preface

Life is the first gift, love is the second, and understanding is the third. -- Marge Piercy

## 1.1. About the Document

This document is part of the LINUX DOCUMENTATION PROJECT - LDP.

A Japanese translation is proposed by Shouhei Nagaoka, see the Linux JF (Japanese FAQ) Project.

Note: Werner Heuser, no longer maintains this LDP.

## 1.2. Update

The most up-to-date version of this document will be at the mung.net

## 1.3. About the Author(s)

Gerardo Arnaez: I am an internal medicine doctor. I am extremely concerned with the state of medical informatics.

Werner Heuser: Working as a system administrator in the computer departments of two German hospitals I get inspired to search for medical applications created with Linux software. Besides this HOWTO I have written the Linux-Mobile-Guide, Linux-Infrared-HOWTO and the Linux-Ecology-HOWTO.

## 1.4. Copyright, Disclaimer and Trademarks

NOTE: This license has changed to GPL license.

Copyright © 2002 by Gerardo Arnaez. This document may be distributed under the terms set forth in the GPL license.

Copyright © 2000 by Werner Heuser. This document may be distributed under the terms set forth in the LDP license.

This is free documentation. It is distributed in the hope that it will be useful, but without any warranty. The information in this document is correct to the best of my knowledge, but there's a always a chance I've made some mistakes, so don't follow everything too blindly, especially if it seems wrong. Nothing here should have a detrimental effect on your computer, but just in case I take no responsibility for any damages incurred from the use of the information contained herein.

Though I hope trademarks will be superfluous sometimes (you may see what I mean at Open Source Definition : If certain words are trademarks, the context should make it clear to whom they belong. For example MS Windows NT implies that Windows NT belongs to Microsoft (MS). Mac is a trademark by Apple Computer. All trademarks belong to their respective owners.

## 1.5. Request For Comments

If you have any comments, suggestions, new information, please tell me: <garnaez_((AT))_yahoo.com>

# 2. Debian-Med

## 2.1. DEBIAN-MED HOMEPAGE

One location to find information on medical projects is Debian-Med. Debian-Med has a very nice listing of projects.

# 3. Community

## 3.1. News

### 3.1.1. LinuxMedNews

LinuxMedNews is the unofficial news site for Linux and medical projects. LinuxMedNews.org is designed to facilitate announcements and sharing, of information related to open source applications and how they are advancing the efforts of medicine worldwide. LinuxMedNews is published using Squishdot and Zope for its news and project collection. LinuxMedNews is intended to be an interesting and fun resource for anyone with an interest in health care and open source.

### 3.1.2. The Spirit Project

The Spirit Project is a multilingual source of open-source software that makes this document just pale in comparison. Well designed, too big for me go over in detail, but seems to be another good source for software development and group news.

## 3.2. Organizations

### 3.2.1. American Medical Informatics Association

AMIA is an association supporting the technology and informatics for the medical community. AMIA sponsors an Open Source Working Group. The OS-WG has providers, clinics, hospitals, hardware manufacturers and researchers worldwide giving a broad perspective for the technology needs and uses within medicine. AMIA does require a subscription, however AMIA offers an associate membership for $30 for one year. At this membership level, you can join one working group and its mailing list.

## 3.3. Mailing Lists

### 3.3.1. OpenHealth

OpenHealth is a company owned mailing list for community discussion of issues related to open source software development for medical projects. This is one of the largest and most popular lists for discussion of topics related to science and medicine and has an international population. In late 2003 and early 2004 there were problems with users trying to joing the list. Minoru Development, the owner of the OpenHealth List, is working with Bud Bruegger to improve administrative issues, and since Bud has assumed the administrative role, joining the list or resolving list issues is typically resolved in one to two days. Join the mailing list by going Here. Minoru Development also has a Link to a list of other open-source application projects.

### 3.3.2. Open Source Health Care Alliance

Open Source Health Care Alliance (OSHCA) is a collaborative forum to promote and facilitate open source software in human and veterinary health care. At the OSCHA web site most of the information is stale, and there is a direction to the OpenHealth mailing list.

## 3.4. IRC

### 3.4.1. IRC #openmed

An IRC channel, #openmed, has been set up on irc.openprojects.net. To learn more about IRC, click Here. To learn more about Openprojects.net, click Here.

# 4. Medical Record Applications

## 4.1. Debian Med

Debian-Med is a Debian meta-project allows for installation of medical themed appliations. Debian-Med is not a separate distribution, but is an extended functionality for Debian users. Below you will see many applications for the medical community. Typically, you would download and install a single application, and resolve any issues that arise during an installation. Debian-Med solves that installation issue. The Debian-Med project leaders will note that an application is a medical or biosciences related application.

After you have installed Debian, you can choose to load either a single application, or you can choose to load Debian-Med. Loading Debian-Med will install all of the applications that have been designated as medical or biosciences related. The Debian-Med project can be found in the Apt-get repositories. Click here to access the Debian-Med home page

## 4.2. OpenEMR

OpenEMR is a modular, HIPAA compliant, open source, practice management, electronic medical record and prescription writing application. OpenEMR should have billing capability using FreeB by late April 2004. The planned billing functionality for OpenEMR will include the ability to generate ANSI X12 or HCFA 1500 forms, or submit bills directly to Medicaid, Medicare or private insurers. The developers on the project are actively working on completing the billing functionality. 2.5.2 is the latest version of OpenEMR and includes the ability to find the first available appointment on the calendar for a provider, direct links to encounters from the calendar, different calendar views for a provider or office staff, reporting using phpMyAdmin and prescription writing.

OpenEMR uses Linux, Apache, MySQL and PHP. OpenEMR incorporates the work of several open source projects such as PostCalendar from PostNuke for calendaring, and phpMyAdmin for database reporting and manipulation. OpenEMR is also integrating the work of FreeB for billing.

At the OpenEMR.net User forum you will find several user testimonials about installing, migrating data and customizing OpenEMR in actual medical office environments.

### 4.2.1. Last Update:

March 25, 2004

## 4.3. VISTA (DHCP)

VISTA is a largest and most comprehensive of open source medical projects. VISTA is an open source application that is funded by the federal government for use by the Veterans Administration at its hospitals and clinics. I used this system, when I was a resident, in the VA hospital, and it was the best system that I had used. This is a wonderful project that I can recommend. I am not sure about the software license, but the software and documentation are available from the U.S. Federal Government. To obtain the software you must file a Freedom of Information Act ("FOIA") request. The current fees to obtain VISTA on CD are $53US for the main VISTA packages and $13 for imageing. REQUESTS to get access to the software on CD. Some of the cost may be on-line, so please email the team at hardhats.org.

### 4.3.1. Last Update:

Constantly

## 4.4. WorldVista and OpenVista

WorldVista and OpenVista are open source variants of VISTA.

WorldVista helps make healthcare information technology more affordable and more widely available both within the United States and internationally. WorldVistA extends and improves VistA for use outside its original setting through such activities as developing packages for pediatrics, obstetrics, and other hospital services not used in veterans' hospitals. WorldVistA also helps those who choose to adopt VistA successfully master, install, and maintain the software. As the group of VistA adopters and programmers grows, we work to develop it into a collaborative, consensus-based, open-source community.

The OpenVistA project will help its adopters eliminate these fees by allowing VistA to run on the GT.M programming environment and the Linux operating system, both of which are open source and free. Historically, VISTA required adopters to pay licensing fees for the systems on which it runs: the programming environment (MUMPS) and the operating system underneath (such as Microsoft Windows or VMS). By reducing licensing costs, OpenVistA frees up money to be spent on medicine, medical professionals, and other resources more likely to directly improve patient care. Like all WorldVistA projects, the OpenVistA project not only provides adopters with the software itself but also transfers knowledge and expertise and builds long-term mutual support relationships between adopters and the rest of the worldwide VistA community. This software is for medical clinics, FQHC, hospitals, medicine training facilities, and community medical clinics.

### 4.4.1. Last Update:

12/20/2003

## 4.5. SQL Clinic

SQL clinic is an impressive application that was developed for mental health workers, sponsored by their local hospital. What is most impressive is the amount of documentation. SQL Clinic in its current format may require additional customization for use outside of mental-health projects.

SQL Clinic is designed to be reverse engineered and used for medical or other purposes. SQL CLinic is based on Lincoln Stein's CGI.pm module and the incredible horsepower of PostgreSQL. The developer's goal for SQL Clinic is for the project to have utility as an example of how to access postgres via Perl than as a mere clinical application.

### 4.5.1. Last Update:

Feb 21, 2004

## 4.6. FreeB

FreeB is a medical billing engine. It is a collection of formats, as well as an engine capable of connecting with any Practice Management System that implements the FreeB API (XML-RPC). It supports HIPAA-compliant ANSI X12 837 electronic billing and HCFA 1500 paper formats.

### 4.6.1. Last Update

March 25, 2004

## 4.7. FreeMED

Freemed is a web based medical practice management and electronic medical record application. FreeMED runs on Apache, a SQL back-end (usually MySQL, but there's an SQL Abstraction for this), and PHP. FreeMED aims to duplicate functionality of proprietary applications such as Medical Manager, while remaining open source.

FreeMED is working on two functional additions: billing with FreeB and reporting using Agata. FreeB will allow FreeMED users to send ANSI X12 or HCFA 1500 forms directly to a payer. Agata, an open source replacement for Crystal Reports, will allow a practice to create custom reports for FQHC UDS reporting or other reporting needs.

### 4.7.1. Last Update

March 25, 2004

## 4.8. Freemed-YiRC

Freemed-YiRC is based on FreeMED for use with Youth in Residential Care (YiRC) agencies. Its aim is to be a complete package to replace legacy non-free apps which aren't customizable. As a PHP-based application, all that is needed is a web browser with extensive table support. It uses either Postgres or MySQL databases.

### 4.8.1. Last Update:

11/23/2003

## 4.9. Care2x

Care2x is for hospitals and health care organizations. It is designed to integrate the different information systems existing in these organizations into a single efficient system. Care2x solves the problems inherent in a network of multiple programs that are incompatible with each other. It can integrate almost any type of services, systems, departments, clinics, processes, data, or communication that exist in a hospital. Care2x's design can even handle non-medical services or functions like security or maintenance. All of its functions can be accessed with a Web browser, and all program modules are processed on the server side.

### 4.9.1. Last Update:

01/10/2004

## 4.10. Medical DataServer

Medical DataServer is an XML gateway, specially tailored for the medical domain. It provides an enterprise-quality platform for aggregating XML-based patient medical records, in both clinical and research applications. It is middleware, situated between clients and traditional Health Information Systems (HIS), Radiology Information Systems (RIS), and Picture Archive and Communication Systems (PACS). It supports relational (SQL), SOAP, and HTTP data sources out of the box, but is highly extensible for custom types. A suite of Web-based tools allows for the centralized management of distributed data sources, and the rapid deployment of new services. It addresses HIPAA concerns with query auditing, tight integration with security mechanisms, and patient record de-identification.

### 4.10.1. Last Update:

03/25/2004

## 4.11. OpenClinic

OpenClinic OpenClinic is an easy to use, open source medical records system. It has been mainly developed for private clinics, surgeries, and private doctors. It is platform independent and has a multi-language architecture.

### 4.11.1. Last Update:

12/20/2003

## 4.12. GNUMed

GNUMed is suited to doctors in community practice, but may suit others who provide a degree of comprehensive care (general internists, pediatricians, others). GNUMed will support a few or many networked users with secure local or remote access. GNUMed will also operate on a single computer. The GNUMed project recommends testing GNUMed on a single computer to examine the software's features for a particular practice. GNUMed is comprised of a group of practicing physicians, programmers and open source software enthusiasts from around the world. GNUMed's data is accessed via business objects implemented in Python directly accessing the PostgreSQL RDBMS. GNUMed will also access various types of data stores such as other RDBMS or LDAP.

### 4.12.1. Last update:

12/30/2003

## 4.13. GNotary

GNOTARY is a part of the GNUMed Utility Collection and is designed to provide the ability to notarize digital documents using a server. The purpose of the notary for medical records is to prove that digital documents have not been tampered with after their initial creation date.

### 4.13.1. Last Update:

11/26/2001

## 4.14. Res Medicinae

Res Medicinae is to become a comprising software solution for use in medicine which combines intuitive ease of use with the advantages of the CYBOL programming language. It uses latest technology adhering to common standards for medical software and will such be open to many other medical systems.

Res Medicinae is the attempt to overcome high pricing in the realm of medical information systems and to provide users with a free, stable, secure, platform-independent, extensive system.

### 4.14.1. Last Update:

10/4/2002

## 4.15. Open Infrastructure for Outcomes

OIO is a Web-based information system for treatment outcome management. It is in production at the Harbor/UCLA Medical Center for clinical outcomes management and research data. Forms created with OIO and hosted on any OIO server can be downloaded as XML files. Once downloaded from the "Forms library" and imported into an OIO server, the necessary database tables are automatically recreated and the imported forms become immediately available to the users of that OIO server.

Note: This application is already in quite useful, but lacks 'already-made' forms for use. But these can be quickly designed within the application's interface quickly. Another to really try!

### 4.15.1. OIO Library

One of the interesting things about OIO project, one that makes it one of my favorites, is the ability to share forms that others have created. However, at this moment there are no forms present, but in the future they will be Here

### 4.15.2. Update

I have successfully installed this and believe that this is an excellent application. In the HOW-TO Install section, I may try to replicate all documents or use the fine documentation and just comment on it, making special note of problems encountered during installation and use

## 4.16. LIMS - Laboratory Information Management Systems

The LIMS ASTM Standard (E1578 Standard Guide for Laboratory Information Management Systems) can be found in ASTM`s Annual Book of Standards Volume 14.01 Healthcare Informatics; Computerized Systems and Chemical and Material Information. There is a small terminology section in this standard that covers 25 terms that relate to LIMS. The purpose of the standard guide is to educate new LIMS users on the purpose and functions and the process of procuring a LIMS.

There is one other additional LIMS related standard in this book. This E2066 Standard Guide for Validation of Laboratory Information Management Systems. The BlazeLIMS Server by Blaze Systems Corporation LIMS is now supported on Linux.

## 4.17. Meditux

Meditux is Java-servlet based software that provides a Web interface to MySQL or potentially any relational database engine which is JDBC capable. It was developed to support an Intranet site in a medical intensive care unit where it was used to collect clinical and research data.

## 4.18. MEGA and Mumps Compiler

Mumps Compiler is a compiler for a subset of the Mumps language, a language used mainly in health care. It is compatible with most operating systems with a standard C compiler. License: GPL OMEGA is an Open Source implementation of the M-Technology (MUMPS) programming language. It is extend-able, and currently embedded with MySQL; it is ideal as a trigger/validation front-end to SQL. License: free for non-commercial use.

# 5. Medical informatics

## 5.1. What is it?

My extremely brief answer would be it is the study of how medical data is recorded, stored, retrieved, displayed and exchanged. One of the big problems facing medicine is how to transfer medical data from one system to another.

Another answer comes from the AMIA.ORG site:

| Medical informatics has to do with all aspects of understanding and promoting the effective organization, analysis, management, and use of information in health care. While the field of medical informatics shares the general scope of these interests with some other health care specialties and disciplines, medical informatics has developed its own areas of emphasis and approaches that have set it apart from other disciplines and specialties. For one, a common thread through medical informatics has been the emphasis on technology as an integral tool to help organize, analyze, manage, and use information. In addition, as professionals involved at the intersection of information and technology and health care, those in medical informatics have historically tended to be engaged in the research, development, and evaluation side of things, and in studying and teaching the theoretical and methodological underpinnings of data applications in health care. However, today medical informatics also counts among its profession many whose activities are focused on dimensions that include the administration and everyday collection and use of information in health care. For an account of some of the definitions that describe the field in more formal and scientific terms, click here. |
--AMIA.ORG |

## 5.2. Good Electronic Health Record - GEHR

The Good Electronic Health Record (GEHR) , a major part of the work of the openEHR Foundation, is an evolving electronic health record architecture designed to be comprehensive, portable and medico-legally robust. It has been developed from the Good European Health Record project requirements statement and object model- the most comprehensive requirements documents ever developed for the electronic health record. This website is a public resource for documents and resources that have been used to build implementations of this record.

## 5.3. HL7lib - Health Level 7 Library

HL7lib Health Level 7 Library is a project that will provide a free, correct implementation of Health Level 7 functions. Health Level 7 is commonly used in large hospitals to send patient information among computer systems from different vendors. Since there is no reference implementation of HL7 many of these vendor systems vary widely in their interpretation of HL7.

# 6. PDA

## 6.1. Tuxmobil PDA Information Site

The indefatigable Werner Heuser has an extremely informative and updated information site for Linux Based PDA's. It is at Tuxmobil.org

## 6.2. Palm Pilots

An increasing role in data collection for instance in hospitals, will be played by hand-held computers (HPCs) or Personal Digital Assistants (PDAs). More commonly known as PALMs. Linux offers way to exchange these data to servers, for instance via the IrDA port. See Infrared-HOWTO for details. A survey of non-Linux applications for the Palm device you may find at PalmPilot Medical - Palmtops PDAs HPCs Palm - Net Links.

## 6.3. Linux Devices

For more info, on say Sharp Zaurus SL-5000D, look Here.

This section will grow as I am getting touch with a doctor who is actively developing OB-GYNE applications to use on it

# 7. Veterinary applications

If you have questions about this section, I urge you to email Gabriel M. Elder (gmelder (AT/@/AT) centurytel.net)

## 7.1. FreeVET

He writes

> Earlier versions of the Medicine HOWTO included a reference to a project known as FreeVet, a FOSS package available via QPL, aimed at being such a solution. The project appears to have died after reaching a relatively high level of development and maturity. The only currently accessible information and code that I've been able to find is here: FreeVet

# 8. Installing a Medical Record Application (not ready yet)

## 8.1. CLARIFICATION

I will no longer aim this HOW-TO as an actual how-to. This section is deprecated and will no longer be maintained, but will not be removed.

## 8.2. Point of this section

This section is actually going to be the HOW-TO of this HOW-TO document. I intend to include instructions or refer to instruction on installing what available systems that are readily usable at this point.

## 8.3. My Assumptions About You

I will try to be pretty cook book about how to install these applications, which means that if I can, i will always tell you what to type (at least what to type that works for me). The problem is that this assumes that you know what a shell window is and can switch directories with-in, which actually assumes a fair level of technical sophistication since most of us have gotten used to Microsoft based Windows systems. Which is to say that a lot of us only have interacted with a computer using a Graphics User Interface (Gui's), and that these installation require that you be familiar with Command Line Interfaces (CLI) like a terminal window or a shell.

If you don't know what I am talking about then I recommend you ask someone (me possibly) about what shell windows are, and probably what a UNIX-based Operating system looks like, especially without a GUI.

## 8.4. OIO

### 8.4.1. What is it?

The OIO system starts a higher level of abstraction - starting with modeling "forms". The forms are then used to model/build progress notes etc. The OIO system makes use of a relational database back-end (PostgreSQL) - 1) making the data/metadata/presentation separation more distinct, 2) making integration with other system (e.g. legacy systems, GNUMed, SQL Clinic etc) easier, 3) making query construction/extension easier (via SQL).

If you search the OpenHealth mailing list archives, you will see extensive discussion regarding this in the context of GEHR and OIO. GEHR uses the same approach but calls this intermediate level of abstraction "archetypes". The advantage of the OIO/GEHR approach is that the metadata components can be plug-and-play - meaning that the system can be easily extended/customized AND portable medical records become easier to implement.

### 8.4.2. HOW TO INSTALL OIO

#### 8.4.2.1. A word on documentation

I can not stress how really good and how much documentation the developers of OIO have written. There are some confusing parts, especially if you are in a hurry. :) However, please read the install documentation at OIO then come back. Hopefully, I will import or streamline the documentation since, the developers want to support OIO on all distribution, whereas my slant is becoming more and more based on the Debian distribution.

#### 8.4.2.2. Initial Notes on Debian Installation

##### 8.4.2.2.1. Changes to PostgreSQL

One of the more aggravating things was find that Zope could not interact (connect) to the PostgreSQL database. What was happening (I will give greater detail later) is that the 'postgres' user could not be authenticated. I think this is a problem in that Krebs authentication is not installed by default. To fix this you need to `cd /etc/PostgreSQL/` and find the pg_hba.conf file. Using what ever editor you like, find the bit of code that tells who can and can not access to the database. Unfortunately, the only way I could get it to work for now is to change:

> local all peer sameuser

> host all 127.0.0.1 255.0.0.0 ident sameuser

> host all 0.0.0.0 0.0.0.0 reject

> And change it to

> local all trust

> host all 127.0.0.1 255.0.0.0 trust

> host all 0.0.0.0 0.0.0.0 reject

##### 8.4.2.2.2. TimeStamp Error

I ran into this problem because apparently PostgreSQL does not like the

> On Sat, 2 Mar 2002 dude@deletia.com wrote:
> ...
> > I have reached the section that asks me to archive a form.
> >
> > I hit the 'now' button, then hit 'Create a new version' and i get the
> > follow error:
> > This is the source of it the html page:
> > <strong>Error Value: ERROR: Bad timestamp external representation
> > '2002/02/03 17:22:58 US/Pacific'
> I ran into this same problem after the end of day light savings time. :-)
> The reason for this is that PostgreSQL does not like US/Pacific for time
> zone. The fix is to provide the time stamp in GMT time.
> The fix is to add the following to the OIO/forms/archive_form/archive_b
> method:
> ++++++++++++++++++++++++++++++++
> <dtml-if time>
> <dtml-call "REQUEST.set('time_string', _.str(time.toZone('GMT')))">
> </dtml-if>
> ++++++++++++++++++++++++++++++++
> (it goes right before the following, make sure time=time_string in the
> parameter list)
> ==========================================
> <!--#in "putin_archived_forms_c(
> form=name,
> archivedname=newname,
> version=newversion_value,
> time=time_string,
> creator=creator,
> description=description
> )"-->
> ==========================================
> So, basically the new routine converts the time stamp into GMT time - I
> think GMT-7 or GMT-8 for US/Pacific, depending on daylight saving time
> status.
> Best regards,
> Andrew
> ---
> Andrew P. Ho, M.D.
> OIO: Open Infrastructure for Outcomes
> www.TxOutcome.Org

| Note that in the originally distribution of OIO you only see 'time=time', when you are change the source code on this page, so make sure to make it `time=time_string`. I am told that this will be fixed in the next release 1.0

##### 8.4.2.2.3. Port Problems

Note that Zope has changed its default port from 8080 to 9673 to avoid conflicts with the proxy server. You will not be able to get OIO to run correctly if you don't specify the correct ports that Zope is using. You can correct these by clicking on the main OIO folder, and selecting the Properties. Or you add `/manage` to the end of you OIO URL. For instance `http://localhost:8673/OIO` becomes `http://localhost:9673/OIO/manage`

You are looking for field base_URL and form_URL and you will see that OIO has port 8080 set up as the default. You need to change this number to 9673.

## 8.5. FreePM

### 8.5.1. Introduction to FreePM

This is the second application that I see that I think is actually useful for the medical office. (One of my main concerns, as I will be using it exactly for that.)

### 8.5.2. Where to to get it

You can get the entire package which include everything you need like Zope products and even python from Here and choosing FreePM-1.0b6-FULL-linux2-x86.tar.gz. This will include all the documentation.

### 8.5.3. Basic Installation of FreePM

Given that Tim Cook has put together everything you need to get a fully running FreePM application, I will first deal with installing the application as if you downloaded the full 14MB gzipped file. However, since Zope can be installed separately, and you may have other Zope applications going on, I will also discuss how to install the FreePM Zope product separately from installing Zope.

#### 8.5.3.1. Using the 14MB FreePM download

Once you have downloaded the 14 MB package, be sure to also download the extensions_for_1.0b6.tar.gz. At this point, it really doesn't matter what directory you have download the gzipped tar files into, but to play it clean and safe, I would download them or move them into their own directory. Then go ahead and `gunzip FreePM-1.0b6-FULL-linux2-x86.tar.gz` to unzip the file and then `tar xvf FreePM-1.0b6-FULL-linux2-x86.tar.gz`

Once the tar file has finished unpacking, you should see a new directory called FreePM-1.0b6-FULL-linux2-x86. To make things easier I would change the name of this directory to 'FreePM' like so `mv FreePM-1.0b6-FULL-linux2-x86 FreePM`

Move the extensions_for_1.0b6.tar.gz to the newly created FreePM directory and look for the 'Extension' directory and go ahead and move it there and unpack using the `tar xvf`

#### 8.5.3.2. Installing the Zope server

Tim Cook was smart and kind of enough to write an install script to install the Zope. Once you are in the FreePM directory (remember, the one that you created when you untar-ed the 14MB file), you run the script by tying `./install`

| DON'T FORGET TO WRITE YOUR ADMIN and PASSWORD that you will at this point otherwise you will need to re-install the Zope server and determine you new password for admin

#### 8.5.3.3. Running the Zope Server

Tim Cook also wrote two scripts to start the server and stop the server. Be sure you our in the FreePM directory. You will know this if you see the files 'start' and 'stop' in there. It is also the same directory where you ran the `./install`. To start the Zope server, type `./start`. However you might want to type `./start&` to make it a background process which will free up your terminal window. This will also allow you to stop the Zope Server by typing `./stop` instead of hitting the CRTL-C key combination, a rather blunt way of stopping the Zope server and not an aesthetically pleasing way of stopping the zope process.

#### 8.5.3.4. Installing the FreePM zope products

The key thing before I talk about installing the zope products is that, the first user, Admin, can only add other users and can not by itself actually manage any products. You first need to add a new user and make the user a manager before you can do anything else.

To log into the running Zope server, you need to open a browser, type in http://127.0.0.1:8080 or depending on how new the Zope server is http://127.0.0.1:9673. If you look at the output during the install it will tell you what to what port to connect.

| Note: Using the old port 8080 would conflict, which is why Zope changed the port connection.

At this point you should the zope introductory page, if not, make sure you have the correct port.

Go ahead and click on the link that says Zope management interface or enter http:127.0.0.1:8080/manage and you should the zope management screen. You know you are in the correct section if you see a root folder at the top of the Left Frame. To make sure we are on the same page, go ahead and click on the Root Folder icon in the right Frame.

You then should see the list of contents of the Root Folder on the Right Frame.

Look for and click on the acl_users folder. select add new user, fill in the required fields. You leave the domain field blank. And then be sure sure to select role. In this case, click on manager for this user.

I am having problems successfully logging out completely using zope, so when you intend to switch users, be sure to completely close all browser windows.

Once you added a new user that has the role of manager, log back in. That is to say, Close all browsers and open up a new browsers and go the the zope management screen. You should be asked for a login at this point. Go ahead and enter in you new user login and password.

Once you are logged in as an user (not the admin user), go ahead and click on the Root Folder on the top of the left frame. Scroll to the bottom of the Right Frame and you should see the Import/Export button. You see a new screen. In the Field Import File Name, enter FreePM Product.zexp and then hit the import button. You should see a new scree indicating success

The next step, is to again hit on the Root Folder Icon at the TOP LEFT FRAME. Again hit the Import/Export button, but this time, you want to import FreePM.zexp. Then hit the Import button.

| Note that it will take some time to import the FreePM.zexp Zope product as it is quite large and you may get a browser error. I almost lost hair doing this stage because I could not figure out what was going wrong. In fact nothing was going wrong, it just took some time to import this large (32MB) zope product. If you want to make sure something is actually going on, I recommend using the `top` unix command, which will show you that python is actively still working to import FreePM.zexp.

#### 8.5.3.5. Running FreePM

To actually get to the FreePM, you need to open a browser and go to http://127.0.0.1:8080/FreePM

You should see the introductory screen of FreePM. However, so far I can only add patients but can not edit any sensitive information. This section will need a lot of work

# 9. Imaging Applications

## 9.1. Slicer

The 3D Slicer uniquely integrates several facets of image-guided medicine into a single environment. It provides capabilities for automatic registration (aligning data sets), semi-automatic segmentation (extracting structures such as vessels and tumors from the data), generation of 3D surface models (for viewing the segmented structures), 3D visualization, and quantitative analysis (measuring distances, angles, surface areas, and volumes) of various medical scans.

The 3D Slicer is freely available and provided as open source software. Its design is fully modular to encourage researchers to extend its functionality. It's new home is at www.slicer.org

# 10. Useful Applications

## 10.1. KPumpe

By David Weisgerber (http://freshmeat.net/users/david84/)

About: KPumpe is a diabetes diary application with support for reading records from your glucometer. It supports the Onetouch Ultra and other glucometers where glucomodule plugins are available.

I haven't used this one yet, but I plan on installing it at work, and getting my patients to start using their glucose monitoring machines more.

License: GNU General Public License (GPL)

You can find out more about it Here

# 11. My thoughts

## 11.1. Too Many Projects

Having spend some time on looking at the available software, I can only say that currently, we simply have an abundance of development, but little progress. I keep seeing multiple projects trying to achieve the same thing, but the resources are spread too think and so they fail. I wonder if there were some way to concentrate the various developers onto one project. The questions remain as to what main ideas should be focused on. Obviously the first one should be a Medical records application. That is a coherent, portable, way to contain, process, and use all the medical data that is generate by a patient.

The second focus should be on software for a working clinic. This seems to be much harder since it would involve the billing section. However this would also include things like scheduling and multitude of forms that a clinic uses in day to day use.

The third focus (one I know little about) would be in the more specialized applications like Imageing, which seems to already have quite a bit of working software, but is inherently hard to make because not everyone has access to CT scanners and such.

## 11.2. I am biased

The other thing I want to point out is that this is not an un-biased LDP, I may stress something more than others because I think the foundation is better or that I have seen it actually work, so if you feel something is not right, please feel free to let me know.

### 11.2.1. Debian as Standard linux distribution

I realize that urging people to consider Debian as the standard linux system when it comes to medical applications is probably like arguing about religions. But.. :) The point is that our audience is not Linux gurus who only use slack or can configure applications from source tar balls. Debian provides an extremely sophisticated and easy to use installation process that is ideal for people who want to get a system running.

## 11.3. I work and what is needed.

Now that I have been working for almost two weeks, here are a few things I have learned. While a resident, I did part of my training at the VA hospitals which had a superb information system, but it required that we type out everything from the smallest order to the emergency stat orders. This seemed to work well for the VA since most of the Doctors had residents do their notes or they tended to dictate very little, writing very brief, sometimes cryptic, notes about the status of their patient. Now that I am in the private world, the only thing that seems to be saving medicine are the transciptionists who take the garbled speed talk that doctors do and type out coherent statements. The problem that I see with many of these data systems is that seem to assume that doctors have the time which they don't (there is barely enough time to see a patient properly let alone do all the coding and then write out a clear note.

Several idea come out that doctors will merely have to tick off boxes on a palm device to indicate what they did, but this is fine for billing but not so for the actually medical record, which even though is brief contains much more subtly then any billing coding system could have. Perhaps what we need is to maintain the medical record in its narrative form and have a parser go through it and pull the important bits and then it would enter this stuff into database. It is an idea, but surely a worthwhile one since Doctors simply can not sit around computer terminals (as I am doing, but it is a Sunday)

# 12. Credits

- Gref Fergusion. For putting up with my constant questions.

- AIRION Asssociates <airion@charter.net>

- K. Szabo Botond <kszabo@sol.cc.u-szeged.hu> MyPACS

- Patrick Goltzsch <Patrick.Goltzsch@Hanse.de>

- Chason Hayes MD <Chasonh (AT) hotmail.com>

- Christian Heller <christian.heller ()() tuxtax.de>

- Karsten Hilbert <Karsten.Hilbert A(T)T gmx.net>

- George B. Moody <george (AATT) mit.edu> Harvard-MIT Division of Health Sciences and Technology

- Shouhei Nagaoka <nagaoka {ATAT} jttk.zaq.ne.jp>, Japanese translation

- Kevin Rosenberg, M.D. <kevin *** rosenberg.net>

- Andrew Sutton <ansutton [ot] sep.com>

- Ralf Stephan <ralf@ark.in-berlin.de>

- Martin Wawro LS7, Department of Computer Science, UniDO <wawro (A(T)) ls7.cs.uni-dortmund.de>