The GNU project officially gave
its blessing to GNU Health at the end
of August. The application (which was formerly known only as "Medical") is
a free software environment designed to run a medical clinic or small
hospital — including patient records, administration, and resource
management. It is the flagship application of the Argentina-based GNU Solidario effort.
At the front desk
In terms of scope, GNU Health focuses on two key areas of hospital or clinical practice: electronic medical records (EMR), and hospital information systems (HIS). The site also lists "health information system" as one of its bullet points, although this term does not have as clear of a definition. Generally speaking, GNU Health focuses on what it calls "family and preventative medicine," which includes treatment for ongoing conditions, nutrition and immunizations, basic lab tests and screening, and prenatal and newborn care. Support for advanced functions one might find in a large hospital (such as drug trials or medical imaging) is spottier.
In the early days, Medical was based on OpenERP, a modular GPL-licensed enterprise resource planning (ERP) package. When OpenERP released its 6.0 update, however, the project changed its licensing terms to adopt a custom OpenERP Public License modeled on the Mozilla Public License. At that point, the GNU Health team determined that the new license was not compatible with the GPL, and switched over to the Tryton framework for further development. Tryton is based on an earlier (4.2) release of OpenERP, but the two frameworks have diverged significantly since the fork in 2008.
Tryton is written in Python and uses PostgreSQL as its database layer.
Although for a while both OpenERP and Tryton were supported, the latest
release of GNU Health (1.3.3) runs only on Tryton, and requires Tryton
2.0.x. Tryton (and, thus, GNU Health) provides separate client and server packages; the only client option at the moment is a Python and GTK+ GUI, although a web front end is in development.
Getting and installing the latest GNU Health release is a bit of a
headache, in large part because the project is only halfway finished with
its transition from its previous hosting platform to the Savannah servers
provided by GNU. The documentation is split between the GNU site, the old
"Medical" project at SourceForge, and the GNU Solidario project site (which
includes an ominous-looking banner warning that the underlying hosting
service, Amazee.com, will shut down on December 23).
There are directions on the wiki, however, both for installing the latest Tryton release and adding in the GNU Health modules. The GNU Health package includes a configure script which did not work for me, but manually installing the modules seemed sufficient. Best of all, there is a demo data set in the GNU Health package, which allows you to explore the system even if you do not have an actual medical practice handy.
On the record
GNU Health's EMR side encompasses everything that could be called patient records: personal and family medical history, physical condition, prescription and treatment records, genetic and hereditary records, and test results. It can function as a "paperless chart" for office visits, and the administrators can perform statistical analysis on the population as a whole, for use in tracking historical trends or in epidemiology. The system does not directly incorporate test results from medical imaging scans (X-rays, etc.), although users can attach them as external files.
As far as the format of the records themselves is concerned, there is not an agreed-upon standard for EMRs, which can make exchanging records between institutions difficult. The closest thing to an interchange format is the Health Level 7 message format (HL7), which has been developed in the US since the 1980s and has been adopted in several other countries. GNU Health does not yet produce or consume HL7 messages, although lead developer Luis Falcón said it can export records in several output formats (XML included) which can be transformed into HL7.
GNU Health does take care to conform to existing data standards for
potentially tricky information types such as diagnoses and disease names.
It builds in the International Classification of
Diseases (ICD-10) for coding diseases and symptoms, GeneCards for genetics, World
Health Organization Essential Medicines for medicine, and various other
standardized scales and prediction rules (for example the Glasgow Coma
Scale for assessing a patient's level of consciousness) to normalize
input. Thus, even if GNU Health's data format is not based on an established standard, the hope is that at least its semantic data is.
Taking care of business
The system's HIS functions cover basic office management tasks and connecting to a billing system. For patients, this means scheduling appointments and tests, for doctors it means making schedules and alerting them to test results, and for staff it means scheduling the use of examination rooms or other facilities and managing inventory. GNU Health can track prescriptions, although it does not automatically place orders or send notifications for refills.
On the billing side, GNU Health can create invoices, but it does not yet include a full-fledged accounting program. Likewise (and for those in the US, more importantly), it can associate basic insurance plan information with a patient record, but the claims process must still be navigated manually. Human resources (i.e., managing employees and schedules) is supported, because it is a common enough ERP task to be included in Tryton by default.
In short, GNU Health fills out a solid system for running a small-to-medium-sized clinic or hospital, but might not meet the needs of very high-traffic or long-term care facilities. The insurance and billing systems are probably better suited for regions with less complicated medical/insurance industries, but this is certainly well in line with GNU Solidario's concern with building tools to serve underprivileged communities. The site maintains a list of institutions using GNU Health in the field, including hospitals in the Philippines, Tanzania, Argentina, and Indonesia.
At this point, what the project has the greatest need for is
documentation and translators. Making the project-hosting-transition is
undoubtedly a time-consuming task, but I learned of several key features of
GNU Health only through an email conversation with Falcón. For
example, the system is designed to peer multiple sites together, in a
single database, and he said that remote nodes are able to cope with
unreliable upstream connections. Both are extremely useful features,
particularly in rural or under-served areas of the world where power is
unreliable, but neither feature is documented (at least that I was able to
funds his development work on the code with a GNU Health consulting service
called Thymbra. In addition to Thymbra, there is a Tryton development
company which also offers
support to businesses using GNU Health.
Relationship to other free tools
My initial reaction upon reading the GNU Health announcement was confusion, because I remembered the existence of the similar-sounding GNUmed project, which is also still active, and also built with Python and PostgreSQL.
The two are different, however. GNU Health is designed to serve as a full practice-management suite, rolling the appointment scheduling, tests, prescriptions, and on up through invoicing into a single system. GNUmed is focused entirely on building an EMR system alone. Of course, there are always gray areas — because GNUmed is aware of clinic staff members (primarily for tracking tests and messages), it also has a very basic HR module. But many of the other practice-management tasks that GNU Health builds in directly — such as maintaining an appointment calendar — GNUmed hands off to external calendaring applications. In exchange, you do get a more complex EMR system from GNUmed, with health risk calculators, document sign-off, and direct import of imaging data.
At the other end of the spectrum is a high-end system like the US Department of Veterans Affairs' VistA, which we covered in March. VistA is a complete multi-site hospital-management system that incorporates far more than GNU Health, including inpatient care, electronic prescriptions, and much more. But it comes at the price of significantly higher IT overhead. In contrast, almost anyone who can install a web server can install Tryton and GNU Health.
Although it would be nice to see regular cooperation (or at least communication) between partially-overlapping projects like GNUmed and GNU Health, what is more important is that both are installable today, by people for whom the proprietary software alternatives are far out of reach.
to post comments)