Saturday, April 07, 2007

GNUmed jabber client in the works

We are working on data exchange with different software vendors and try to avoid costly and questionably secure solutions. In short we are looking into using trusted and proven open source solutions such as SSL, XMPP (jabber) , GPG and more to make data exchange happen. Since we are implementing open standards and generic interfaces (GNUmed framework) this solution should be easy to implement by open and closed source vendors.

This solution must pass and even surpass security evaluations by Germany's TÜV since there is another vendor who supposedly has passed the test. By the way the exact specification is only available under a non disclosure agreement. From what we have seen it does not ask for a password or passphrase and there certainly is no way of knowing who you send the data to. Traffic seems to run over the company's server and little is known if the information is stored on the server or not.

We can do better. We use ejabberd. This is an open source jabber (xmpp) server. Communication happens exclusively over SSL. We have to decide if we will allow storage and forwarding messages for offline users. Traffic can be encrypted by OpenPGP but this has not yet been implemented. Code has been checked into the GNUmed repository.

Karsten is working on the export framework. Ideally the transporting code is content agnostic. We will most likely implement export of xDT format (German exchange format), raw sql. Maybe someone with HL7 experience chips in. We will be able to transport anything from lab data to patient information and patient documents.

GNUmed will store this information in the inbox. We will then implement a handler part that knows how to import the different data formats into GNUmed or another EMR.

One issue related to datae exchange in general is the question of how to tell the true identity of the receiver. We will be able to solve this by using GPG and encrypting the messages. Authentification will most likely happen against a trusted third party in cases when you don't know the receiver personally (key signing).

Dank Open Source war es schneller als gedacht möglich, eine Testumgebung für den Datenaustausch zwischen verschiedenen Praxisprogrammen aufzubauen. Anders als bei dem mir bekannten TÜV geprüften aber sonst weitgehend unbekannten Datenaustauch setzen wir ausschließlich auf offene, bekannte Standards. Wir setzen Jabber (XMPP) auch bekannt als Google Talk ein. Der Server ist ejabberd. Die Kommunikation erfolgt ausschließlich SSL verschlüsselt und kann so zwar mitgelesen aber nicht entschlüsselt werden.

Ein konzeptionelles Problem besteht darin, dass man nicht sicher sein kann, dass der Empfänger auch der gewünschte Empfänger ist. Das liegt daran, dass er sich als Arzt ausgeben kann. Anders als unsere Kollegen, die das Problem durch Restriktion auf eigene Server und weitgehend unbekannte Übertragungsmechanismen zu lösen versuchen streben wir die End zu End Verschlüsselung an.

Dabei unterscheiden wir zwischen persönlich bekannten Empfängern. Mit diesen findet ein Schlüsselaustauch statt. Dann wird GPG verschlüsselt. Bei persönlich unbekannten Partner muss ein gewisses Vertrauen in vertrauenswürdie Dritte genutzt werden. Die Bundesärztekammer betreibt einen Adressserver. Es muss sich zeigen ob dieser Datenstand als vertrauenswürdig angesehen werden kann.

Weiter wird geschaut ob sich innerhalb eines Jabberservers Benutztgruppen untereinander als vertrauenswürdig ansehen. Das könnten z.B. alle Mitglieder oder Apobank-Kunden sein.

Diese Lösung ist unabhängig von den zu übertragenden Daten. Initial werden das sicher xDT-Dateien (Labor) oder auch Patientendatensätze sein. Ob es sinnvoll ist Bilder oder Videos damit zu übertragen wird sich zeigen.

GNUmed erhält die Daten in der Inbox und muss lernen die speziellen Datenformate zu erkennen und sinnvoll in die Datenbank zu schreiben.

Sunday, April 01, 2007

PostgreSQL Live CD

Just found that site about PostgreSQL on a live CD

Wouldn't it be nice to just add gnumed-client to it and have a fully working GNUmed installation available on a live CD.I suppose it is even possible to use a USB drive instead of a CD.

What seems to make it easier for us is the fact that pgadmin3 is included. That means wxpython is on that CD by default. And since it is based on Xubuntu it should be as easy as 'apt-get install gnumed-client'