Friday, April 30, 2010

GNUmed on Ubuntu Intrepid no longer supported

Ubuntu Lucid (2010.04) has been released. This is a long term support edition and replaces Hardy Heron (2008.04). Regarding GNUmed we have no reports that anyone is using GNUmed actively on Intrepid Ibex (2008.10). Given their 6 months release cycle we are officially dopping support for Ubuntu Intrepid (2008.10). We will still fix security issues but as packaging gets harder and harder and not all features of GNUmed are supported on Intrepid it would eat up all our ressources to support Intrepid. There are some users which run GNUmed on Jaunty (2009.04) so we will do our best to support as many features as possible on that platform.

That means GNUmed client and server are now supported on:

Ubuntu Jaunty

Ubuntu Karmic

Ubuntu Lucid

Other distributions known to work are:

OpenSUSE 11.2 and Factory

Mandriva One 2010

Fedora 12

Sunday, April 25, 2010

GNUmed medical record software 0.7.1 for Ubuntu released

I am m pleased to announce Ubuntu packages for the release of version 0.7.1 of the GNUmed electronic medical client
and version 13.1 of the GNUmed EMR server.

The GNUmed project builds free, liberated open source Electronic Medical
Record software to assist and improve longitudinal care. It is made available
at no charge and is capable of running on GNU/Linux, Windows and Mac OS X. It
is developed by a handful of medical doctors and programmers from all over the
world. It can be useful to anyone documenting the health of patients
including, but not limited to, doctors, physical therapists, occupational
therapists ...

Ubuntu packages for Intrepid, Jaunty, Karmic and Lucid will appear shortly in the GNUmed PPA. The latest version that made it into Karmic (10.04) is version 0.6.2. We love feedback so give it a spin.

Stay tuned and be sure to check out

Sebastian Hilbert
for the GNUmed team

Thursday, April 22, 2010

GNUmed plugin development - how to share your work

In the last article I shared my work by posting a few screenshots and a tarball for everyone to grab. However the ultimate goal is to get this included onto GNUmed's main code repository.

A while back the GNUmed project announced it made the switch from CVS to GIT. That means that it moved from a centralized repository (CVS head) to a distributed repository architecture. In short. There is no longer an 'officical' or 'central' code repository to submit our plugin to.

However not all is lost. The most active coders share their so called GIT trees with the world so that is now the de facto standard. This is not carved into stone but since Karsten Hilbert has been making released based on his GIT tree this tree is the main tree for the time being.

What we need to do is ask him to merge our code into his tree so it will be part of the next releases. Same procedure is implemented for the Linux kernel where Linus Torvalds merges code from other developers and finally releases a new kernel.

There is one problem. I did not consider this when working on the plugin so I need to get my stuff straight and my hands dirty with GIT.

First I get a local copy of the 'main tree'. It is hosted at gitorious for everyone to grab. I grab a copy by cloning it. For that I create a subdirectory 'Sources' in my home directory and run the following command.
git clone git://
Now I have a copy of the main tree which can be kept up to date by running the following commands.
git checkout master
git fetch
This gives us the latest code in the master branch. For our plugin it makes sense to create our own branch. This is done by the following command.
git branch add-echo-xml
To list all available branches use:
git branch
It will output:
*  add-echo-xml                                                                                                                                                             
The branch with the asterisk is the currently active one.  To switch to the master tree (e.g. for updates) use:
git checkout master
To activate and develop in our own branch use this:
git checkout add-echo-xml
It will do some magic and track all change we make to the existing and new files. It will find out that we change existing files, delete files or add files. Now is the time to add our previously created files from the tarball I talked about in the last article. Just copy them into the corresponding directories. We have to tell git about them so it can track the changes to them. This is done by adding the file once and commiting after a change. In the wxGladeWidgets directory we run:
git add
In the wxg direcotory we run:
git add wxgCardiacEchoPnl.wxg
In the wxpython directory we run:
git add
In the wxpython/gui directory we run:
git add
Finally we commit all this by:
git commit
This will ask for a commit message which is a short message to keep track of your changes. Once done it will output:                                                                                                                                                                           
[add-echo-xml f0b2d35] - added new files for echo plugin                                                                                                                   
 4 files changed, 1196 insertions(+), 0 deletions(-)                                                                                                                       
 create mode 100755 gnumed/gnumed/client/wxGladeWidgets/                                                                                         
 create mode 100644 gnumed/gnumed/client/wxg/wxgCardiacEchoPnl.wxg
 create mode 100644 gnumed/gnumed/client/wxpython/
 create mode 100644 gnumed/gnumed/client/wxpython/gui/
Whenever we change files during developement we need to go through this (git branch add-echo-xml, git add, git commit) again. Next step will be to figure out how to offer these local changes for merging by the person doing releases.

Tuesday, April 20, 2010

GNUmed plugin development - part 1 reloaded

If you are just getting started with GNUmed, python and plugins I recommend you read over the series GNUmed plugin development for the basics.

GNUmed plugin develeopment reloaded

Back in the days I was about to develop a GNUmed plugin for pacemaker clinics. While doing this I came across a publication describing a dataset for cardiac echos so I started to develop a plugin for cardiac echocardiography.

A GNUmed plugin consists of three files. When all files are present it is picked up by GNUmed and can be activated/added for a specific workplace in the GNUmed database so it is loaded at startup. Part 4, 5 and 6 of my older series covered that aspect. This time around I am going to create the files from scratch.

Those three files are a foo.wxg file, a file that is generated from the wxg file and a wrapper file to tell GNUmed about the plugin. Optionally a fourth file can be used to seperate the widget from the rest of the code. This not neccessary however.

The four files can be downloaded here as one zip file. The directory layout of the zipped content is identical to where the files should go (e.g. 'client\wxg', 'client\wxpython').

To activate the plugin open GNUmed and go to 'GNUmed'>'Master data'>'Workplace profiles'. Select 'GNUmed Default' or whatever workplace you want to configure and press 'edit' Select 'all plugins you want' and save your selection.

Restart GNUmed and go to the 'Cardiac echo plugin'. Up to now it is little more then a user interface. It does not do much. Next step is to read all the input fields and write it to an XML file. This XML file will then be stored in the database.

Wednesday, April 14, 2010

GNUmed on Mac - maybe ; on the IPAD - never

Hi all,

What is the situation on the Mac ?
There is no reason why GNUmed would not run. We have not tested it for some time. I guess MacOSX is very much like Windows with regards to software management. Apple seems to care liitle if you have trouble managing software. So the best approach would be to go for frozen binaries just as we do on Windows and throw it all in a big fat dmg. For the server I guess macports can be used and gm-boostrap_server should work as well.

People seem to go crazy over the iPad despite its obvious limitations. Everyone is telling this fairy tale story that Apple is after the healthcare industry. The Oscar folks have been dreaming about it for some time.

So is GNUmed ever going to appear on the iPad ? I guess not anytime soon (TM). Apple has decided that python is not a first class citizen on their devices. The upcoming version 4 of their OS simply forbids anything but Objective-C, C and Javascript.

Primarly designed to keep out Adobe Flash it hits FOSS hard. Guess he will still manage to sell a good number of device. People simply love looking at it :-)

Unless proven to be vaporware the Wepad could turn out to be the alternative. Hardware specs are better (it is not as shiny and heavier) and runs a full fledged Linux. Ok, they managed to screw up by producing a Windows error during the press conference showing that it was a video in an endless loop :-)

If anyone wants to have a go at producing binaries for the Mac with e.g. pyinstaller let me no so I can can give you the pyinstaller setup script I use on MS Windows.

BTW I was looking for the prices of a used Mac but let me tell you unless they change their insane price/hardware ratio I am not going to get one myself anytome soon.


Tuesday, April 13, 2010

Spendenaufruf für ein KBV-Abrechnungsmodul

Sehr geehrter Kollegen,

Praxissoftware verursacht einen beträchlichen Teil der
laufenden Kosten einer Arztpraxis. Grund dafür ist neben
Wartungsgebühren für die Hardware vor allem die Gebühr für die
Aktualisierung der KV-Abrechungsfunktionalität.

Mit dem hier gesammelten Geld soll ein herstellerübergreifendes
Abrechnungsmodul neu geschaffen werden, dass allen Herstellern über eine
definierte Datenaustauschfunktion die Abrechnungsfunktionalität

Dadurch entsteht für die Hersteller ein geringerer
Softwarepflegeaufwand der entweder in geringere Wartungsgebühren mündet
oder in bessere medizinische Funktionalität. Wir als Ärzte profitieren
davon, dass wir freier in der Wahl des Praxisprogramms werden und damit
die Software nach medizinischer Funktionalität aussuchen können. Weiter
werden wir unabhängiger von der wirtschaftlichen Zukunft des
individuellen Praxisprogrammherstellers.

Die Entwicklung ist transparent für alle beteiligten Parteien (Ärzte,
Hersteller, Vertriebspartner, KBV) und wird in ein von der KBV
zertifiziertes Programm münden.

Alle Informationen finden sich zentral im Wiki zum Thema KBV-Abrechnungsmodul

Lassen Sie es uns gemeinsam anpacken damit Praxissoftware nur
Werkzeug bei und nicht Inhalt unserer ärztlichen Tätigkeit wird.

Click here to lend your support to: KBV-Abrechnungsmodul and make a donation at !

GNUmed - not ugly but not pretty either

Hi all,

Yet another non-programmer task for the good of GNUmed. Recently it was reported that GNUmed as it stands looks neither ugly nor pretty. Recent comments on other software packages makes me believe that users do care about the looks of a software. While there are countless opinions on this this warrants a proper analysis.

Please help us by starting GNUmed now. Have a good look at it and report the worst cases of design problems.

GNUmed has a built in screenshot feature. Please use that or install a software like shutter. It will allow you to annotate the screenshots.

If you have a problem report for us either send it here of file a wishlist bug with launchpad (

GNUmed needs your help. Get it running now.

For those not wanting to install GNUmed there are some screenshot available at Flickr (


Monday, April 12, 2010

Features for 0.8 - have your say

Just FYI, my tentative TODO for 0.8 is:

- allow nullifying street comment in demographics plugin

- FIX OOo access
- send msg to self (reminder-type)
- visual progress notes:
        - improved template/file selection
        - add popup menu to visual notes list double click:
                - edit
                - display
        - display per encounter in tree
- freediams 0.4.0
- labs/meds: tabular formatting / placeholder

- vaccination handling
- visualize lab results
        templates, type "gnuplot"
- patient tags

Not sure whether all of it will make it or not. We'll see.

People should feel free to speak up as to what they'd like
to help me with getting done (including items not on my
above list). For the record: the visual progress notes
feature made it for 0.7 because the user who asked for it
actively helped in getting it down into code ! (no
programming needed ...)

The major feature I am really interested in getting into 0.8
would be vaccination handling. It'll come with a somewhat
simplified functionality (but still clean implementation)
compared to what we already have (but not yet released).

GPG key ID E4071346 @
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346

GNUmed 0.7 erschienen

Sehr geehrte Damen und Herren,

Hiermit kündigen wir die sofortige Verfügbarkeit von GNUmed 0.7.0 (Server v13) an.

Die Datenbank muss wie bei einem Update üblich auf die
Version v13 erneuert werden. Die vorhergende v12 bleibt dabei
unangetastet sodass im Falle eines Problems mit dem Update
die Vorversion weiterverwendet .

Die aktuelle Version bringt überaschend eine neue Funktion - graphische Verlaufsnotizen.
Das sind Vorlagen, die mit klinischen Informationen überlagert werden können und direkt
neben Texteinträgen in die Karteikarte eingegeben werden.

Übersetzungen der GNUmed-Oberfläche sind gut vorangekommen, besonders die
niederländische Version.

Mehere größere Unstimmigkeiten wurden beseitigt. Dazu gehören Probleme beim Wechsel
zwischen Patientenkontakten und ein schwer zu findendes Problem mit dem Layout.

Es folgt eine Liste der Änderungen:


- neu: Verwalten von Laboren
- neu: Verwalten des Sterbedatums eines Patienten
- neu: Verwalten abgesetzter Medikamente
- neu: Umwandeln einer Medikamenteneinnahme in einen Allergieeintrag
- neu: sogenannte Haken/Makros zur Programmoptimierung
- Aufhänger after_substance_intake_modified
- Aufhänger after_test_result_modified
- neu: graphische Verlaufsnotizen
- neu: Unterstützung für die Medikamentendatenbankoberfläche FreeDiams inklusive Installationsskript
- neu: Kommandozeilenparameter --ui=<web/wxp> mit Prototyp einer Weboberfläche
- neu: Übersicht über alle Konfigurationsparameter
- neu: konfigurierbare Internetverknüpfung für Labortests
- neu: Linux: optionale Shutdownskripte, die aus /usr/bin/gnumed aufgerufen werden können.
- neu: Centor/McIsaac-Score als Schlüsselwörter
- neu: Hilfeseiten für Backupskripte
- neu: partielle Übersetzung für Catalan

- verbessert: Login-Dialog:
- Info zur lokalen Datenbank bei Fehlern
- zeige das Passwort nicht ;-)
- verbessert: zeige Allergien im Medikamentenbereich
- verbessert: warne beim Anlegen leerer Passwörter für neue Nutzer
- verbessert: Standardeinstellung für die Region/Land beim Anlegen neuer Personen
- verbessert: zeige Laborname und Kontaktdetails als Tooltips bei den Laborwerten
- verbessert: neuer Dialog zum Anlegen neuer Personen
- verbessert: Platzhalter:
- name::*::*
- verbessert: eine Reihe von Tippfehlern
- verbessert: stürze nicht ab beim Hinzufügen von Dokumenten für die es keinen Betrachter gibt
- verbessert: schnellere Darstellung im Dokumentenarchiv
- verbessert: ARRIBA ist nun bei Version 2.0.4
- verbessert: nutze Git als Quellcodeverwaltungssystem
- verbessert: nun direkt im Verzeichnis client/
- vebesssert: Fenstergröße beim Start nun nie größer als der Desktop/nie kleiner als 100x100 pixel
- verbessert: Niederländische Übersetzung
- verbessert: filtere Dateitypen bei der Auswahl einer Vorlage

Sunday, April 11, 2010

GNUmed 0.7 client released

Dear friends,

I am pleased to announce the immediate availability of
GNUmed 0.7.0 (server v13).

The database, as usual, needs to be upgraded to v13. The
previous v12 version will remain untouched so in case of
problems one can just go back until fixed.

This release features a rather unexpected new functionality:
visual progress notes. Those are sketches/images (such as
visual markers onto templates or clinical photographs)
standing side by side with the clinical narrative of any
given encounter.

Translations have seen a big improvement, particularly Dutch.

Several major inconsistencies have been solved, particularly
around switching encounters on a patient and the dreaded
Edit Area layout issue.

Here is the Changelog:


        - new: manage diagnostic orgs
        - new: manage date of death per patient
        - new: manage discontinuation of substance intake
        - new: turn substance intake entry into allergy
        - new: hooks
                - after_substance_intake_modified
                - hook after_test_result_modified
        - new: visual progress notes
        - new: initial support for FreeDiams drug database frontend including install helper
        - new: commandline option --ui=<web/wxp> with rudimentary CherryPy frontend
        - new: show list of all configuration settings
        - new: configurable web search for test type from test result edit area
        - new: systemwide/user-level optional shutdown scripts invoked from /usr/bin/gnumed
        - new: Centor/McIsaac-Score as keyword expansions
        - new: man pages for backup scripts
        - new: partial Catalan translation

        - improved: login dialag:
                - hint about local DB on failure
                - do not show password ;-)
        - improved: show allergies in substance intake edit area
        - improved: warn on creating database users with empty passwords
        - improved: default region/country for new-person creation
        - improved: show lab name/contact details in measurement tooltip
        - improved: always use new person creation rather than old
        - improved: placeholders:
                - name::*::*
        - improved: various typos
        - improved: do not fail if unable to show part when adding documents
        - improved: cleaner/faster display of documents in tree, and sorted, eventually !
        - improved: ARRIBA is now v2.0.4
        - improved: using Git for SCM now
        - improved: now directly under client/
        - improved: startup size will never go beyond screen size/below 100x100 pixel
        - improved: Dutch translation
        - improved: use per-engine wildcards on form template selection

Tuesday, April 06, 2010

Getting started with GNUmed - feedback plugin

Hi all,

If you have always wanted to start with GNUmed coding but did not know how here is another chance.

Build a feedback plugin.

Build a simple plugin which will be loaded when someone connects to the public database.

Give it a field to put in some text. Sound complicated but it is not. You can reuse the code from the error reporter built into GNUmed.

Once you have accomplished that very useful task a number of features come to mind.

Aks the user about their platform, language, missing features and whatnot.

Go for it. This is your chance to help out GNUmed by starting with a beginner job.

If you need help just let us know.