Thursday, December 30, 2010
This should make it possible to do some interaction between GNUmed and Osirix. Since more and more hospitals hand Dicom CDs to doctors it might make sense to have GNUmed remote control Osirix to open and display the studies.
There even seems to be an XML-RPC test tool available at ClubPacs Western Michigan
Tuesday, December 28, 2010
Expecting a user to run GNUmed from a tarball is not really state of the art. The last Mac bundle we have ships GNUmed 0.5 and does not really reflect the current feature set.
Meanwhile we have packaged GNUmed 0.8.5. Please download and report success or failure.
Another solution would be to work on the MacPorts port of GNUmed. I am not aware of any effort. Given the current state of affairs it would be safe to say that the quickest way to run GNUmed on a Mac would be to use the tarball and run this.
Any reports on success or failure are appreciated. You can use the bug tracker to send feedback.
Sunday, December 19, 2010
The server hardware (not the harddrives) died on us. The server is hosted by Hetzner which has been kind enough to plug the harddrives in a new server and provide a rescue shell. We do have all data so no harm done. Sourcecode is hosted offsite so no loss there. The wiki and some downloads are hosted on the failed server. We are working hard to restore the site on a new server.
Sourcecode is at http://gitorious.org/gnumed
Debian packages can be obtained via Debian servers
Ubuntu packages can be obtained via Ubuntu GNUmed PPA
Windows packages will be back after the server is back up
Monday, November 08, 2010
Imagine my surprise when I was contacted just 4 days ago by someone who was
trying to deploy GNUmed in Yei Sudan.
This work is being done for Matthias Rossow, M.D. and is one of yourThis person was trying to set up a server on openSUSE 11.1 and clients on
(German) countrymen. Matthias has done an unbelievable job putting together a
medical clinic, and is one of 3 physicians in Yei Sudan. He has some
community health works that function nearly as physicians, and your EMR
(GNUmed) will allow him to monitor and communicate with these workers. I
(Greg) can't take credit for the idea, but Matthias has asked me to set things
It would be better for his operation to be able to function via the server so
everyone can have access. All of the Microsoft machines are laptops.
I'm impressed with what you have developed,and am going to install it in our
office when I get back to Texas.
The GNUmed log files have proven very valuable.
E-Mailing back and forth for 4 days led to a working deployment. Just a few
hours before the guy installing it had to head home to Texas we received the
We have it running. Wish you were here, I would give you a cigar. Thank youHere are just a few problems they face down there:
very much for all of your assistance!!!!
Internet speed is 300baud per second. there is just no way to download large
files. There is just no way to connect to a webbased server hosted in some
cloud in Europe or the US.
Electricity is shut show every night and available for a few hours during
I wonder what the climate does to the hardware
Saturday, November 06, 2010
Get it via openSUSE build service or from http://download.opensuse.org/repositories/home:/SebastianHilbert:/GNUmed/
Monday, September 27, 2010
Head over to our wiki at http://wiki.gnumed.de and install it.
Sunday, September 12, 2010
At this point both distributions were frozen to be further stabilized and no updates are allowed during that period to avoid introducing new bugs. However because of the severity of the problem we asked both the Debian people and the Ubuntu people to make and exception and include a fixed version of GNUmed.
Both camps agreed that this was the best option and included an updated version of GNUmed into their software repositories. Well done.
Sebastian Hilbert, MD
Friday, August 27, 2010
Schauen Sie sich Thera-Pi an unter http://www.thera-pi.org
I am pleased to announce the immediate availability of
GNUmed 0.8.0. This release comes with the following new
* Client *
NEW: Add button to lookup drug on www.dosing.de to current substances
NEW: hook: "after_soap_modified"
NEW: placeholder: "current_meds_table::latex"
NEW: placeholder: "current_meds_notes::latex"
NEW: placeholder: "lab_table::latex"
NEW: placeholder: "latest_vaccs_table::latex"
NEW: score: Rome diagnostic criteria on obstipation
NEW: score: Cincinatti Stroke Scale (F.A.S.T.)
NEW: score: bacterial UTI algorithm
NEW: score: coronary artery disease in primary care
NEW: score: ABCDEF & Glasgow-7-points for identifying atypical moles
NEW: report: patients taking drug X
NEW: graphing of ranges of measurements (user-defined gnuplot scripts)
NEW: support emergency contact
NEW: support comment directly on identity
NEW: Add button to report ADR from within current substances plugin.
NEW: list view of database audit trail
NEW: management of vaccinations and vaccines
NEW: templates for writing a plugin [thanks S.Hilbert]
NEW: on Windows try to switch to "DejaVu Sans" font for improved
NEW: demonstrable path to get up and running on Macintosh [thanks
NEW: useful error dialog when database connection lost
NEW: email log file on demand from menu
NEW: support Canadian MSVA format as external patient source
IMPROVED: GNUmed can now import the ARRIBA result as a document
IMPROVED: rename client/locale/ to client/po/ and adjust to that
IMPROVED: when enabling --debug during unhandled exception try harder
to log the exception in question
IMPROVED: more robust acquiring of data from image sources
IMPROVED: more medically-sound interval formatting
IMPROVED: another, more expected, way of calculating patient age
IMPROVED: edit non-name identity parts *directly* in demographics
plugin (no popup needed)
IMPROVED: show date-generated in patient picture tooltip
IMPROVED: much better icon [thanks J.Jaarsveld]
IMPROVED: show comment/emergency contact in patient search control
IMPROVED: re-add encounters to auditing
IMPROVED: show loinc info for test in test results EA
IMPROVED: much smarter result units phrasewheel
IMPROVED: DOB validity check when creating new person
IMPROVED: better layout of configuration listing
IMPROVED: medication formatting
IMPROVED: current medication patient handout [thanks C.Hilbert]
IMPROVED: pre-filter form template selection list based on purpose of
IMPROVED: default config file for running from tarball
IMPROVED: better support FreeDiams (0.4.2 now in Debian)
IMPROVED: EMR tree root note context menu
IMPROVED: generic lists can now have 3 extra buttons
IMPROVED: use substance rather than brand as allergene when creating
allergy from substance intake entry
* Database handling *
FIX: during upgrade nullify empty clin.health_issue.laterality
FIX: properly use pg_dump: no more -d DATABASE [thanks S.Hilbert]
IMPROVED: bootstrapper now better detects utf8 ctype
IMPROVED: boostrap-latest: check for any previous version since all of
them would be dropped [thanks S.Hilbert]
IMPROVED: try to make su compatible with both MacOSX and Linux
Note that you *will* have to upgrade your database from v13
to v14 in order to use this release. This procedure is free
of risks for your existing v13 database and can be
re-attempted until successful as often as needed.
As usual, download your free copy from here:
Please report bugs.
GPG key ID E4071346 @ wwwkeys.pgp.net
E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346
Sunday, July 25, 2010
Both clients are connected to the same database at the same time.
Both clients pull the documents from the document archive for the patient Kirk (primary key 12)
Both clients have identical security measures. The credentials are checked against the PG security configuration.
Both clients were coded in python (one in wxpython and one in pyjamas)
The difference is that pyjamas can compile its widgets into Javasscript. That way the user interface can be displayed in a webbrowser.
Why all this ?
You won't see wxpython on mobile devices anytime soon. If Google has its way (and they will) we will see the browser as the application platform on some sort of netbook or tablet
The current state is a good base for further development.
Monday, July 19, 2010
I have filed a sync request at https://bugs.launchpad.net/ubuntu/+source/gnumed-client/+bug/607246
Hopefully some kind soul will take the according action. GNUmed 0.7.7 is the seventh bugfix release in the 0.7 series and we think it is pretty stable. This version will make it into Debian stable that is expected to go into feature freeze soon.
While we are working on exciting new features for the soon to be released 0.8 series of the electronic medical record we are quite happy that a stable GNUmed release will make it into Debian and Ubuntu.
Long story short. Luke Leighton from pyjamas came to help us and invested a substantial amount of time to get things rolling. A first working version was recently referenced in this article. All of the code that makes it work has recently been merged into the main GNUmed code repository.
If makes use of pyjamas, cjson and multitaskhttpd.
Here is how you can try it out and start improving it. This guide assumes you have GNUmed running already.
1.) Get and install lovely-jsonrpc
* wget http://lkcl.net/lovely-jsonrpc.tgz2.) get and install cjson
* unpack it
* cd lovely-jsonrpc
* python setup.py install
* e.g. python-cjson on Debian3.) get multitaskhttpd
* git clone git://pyjs.org/git/multitaskhttpd.git4.) get pyjamas
* cd multitaskhttpd
* python proxyapp.py &
* git clone git://pyjamas.git.sourceforge.net/gitroot/pyjamas/pyjamas5.) get GNUmed from git master as tgz or a git clone. Go to gitorious for instructions.
* cd pyjamas
* python bootstrap.py
* cd bin
* put pyjsbuild into the PATH or symlink into ProxiedWeb directory of GNUmed
6.) compile the pyjamas application in the GNUmed source tree
* cd ProxiedWeb7.) start GNUmed like this: ./gm-from-vcs.sh --ui=web
* run build.sh (make sure pyjsbuild can be be found on your system)
8.) open a webbrowser and go to http://localhost:8080/ProxiedWeb/jsonrpc/output/JSONRPCExample.html
If you want to hack on it have a look at JSONRPCExample.py. It is a pyjamas application.
FIX: DOB could become today in certain corner cases when creating new person [thanks S.Reus]
FIX: check_drug_interactions() failed with FreeDIAMS [thanks J.Busser]
FIX: be more careful around changing CWD when creating document from LaTeX [thanks S.Hilbert]
FIX: exception when save-all'ing multiple notelets [thanks S.Reus, J.Busser]
FIX: exception when saving medication where is_long_term is true [thanks J.Busser]
13.6 -> 13.7
NEW: improved detection of unicode support in server encoding
NEW: work around os.getcwd() permission problem on Mac
FIX: even more robust gmPsql.py unicode logging [thanks E.Kuznetsov]
This release does NOT require a database upgrade.
Download your copy (it's free !):
This is very close to what will end up in the next stable
Debian so please report bugs !
Thursday, July 15, 2010
was no clear idea of what that meant. I whipped together a few tutorial bits
of cherrpy and connected it to gmPG. This enabled us to log into the GNUmed
database and ran a few queries against the database to show there actually was
a connection. Little did I know that this was a beginning but nowhere near any
of what I wanted.
1.) a web client that could run concurrently to the wxpython client
2.) a web client that ran on top of gmPG2 instead of some framework's ORM
3.) role based security instead of database based security - no credentials in
a database table, period
4.) a web client that could fetch data from a backend
5.) not a web client that was no more then a number of server-side assembled
7.) maybe more but I cannot remember
I checked loads of frameworks. But there was always a catch. The frameworks
wanted to do the work for me and they had a certain idea how to do it. Their
ideas did not neccessarly correlate with my ideas.
developers but none seems overly interested apart from their framework would
do what I wanted. Problems was I did not have enough skills and knowledge so
it was more a matter of trust then a fact based decision.
I always came across pyjamas. It seemed to partly fit the bill as it would let
seeing a message on python-announce mailing list.
That changes quite a few things. First he told me what I did not know about
the web. Most of the stuff was obvious for a web developer. I learned that the
web is stateless and unlike in a desktop application it is quite a bit of work
to make a client and a server process holding a unique persistent database
connection. Luke published quite a bit of code in easy to digest chunks so I
was able to follow along.
In the end here is what he solved for GNUmed.
1.) allows a browser (web client) to hold a persistent database connection to
the GNUmed backend even if the user closes the browser. The client will
reconnect to its unique connection when it is restarted.
2.) talks to the GNUmed database through the GNUmed middleware. No ORM or
3.) demonstrated how two simultaneous connections (clients) talk to the
database without getting in each other's way or stealing each other's data
(which is common if you don't take care of it)
4.) provides a pyjamas application which will let a user log in and run
5.) runs without interfering with other wxpython clients
6.) shows nicely how to use JSON-RPC to talk to client side frameworks. This
without having to do any database stuff.
The problems Luke solved were to do with turning HTTP connections,
which are ordinarily stateless, into permanent stateful connections.
He achieved this by:
* creating a special non-blocking HTTP proxy that does HTTP 1.1 with
"keep-alives", even if the browser does not.
* creating a modified version of python's SimpleHTTPServer that always
responds with "Connection: keep-alive", for GET and POST queries, even
on HTTP errors.
* inserting a session cookie into the HTTP stream, which the
non-blocking HTTP proxy looks out for, and uses to match the incoming
HTTP request with the corresponding outgoing connection.
in this way, browsers appear to be connected to the same persistent
back-end process, which is kept open and alive on behalf of the
browser, by the special proxy. as long as the back-end process
doesn't crash (or deliberately exit after a timeout) and as long as
the user does not clear the browser's cache, the user will always be
connected to the exact same back-end web server process.
What we have now is an excellent starting point to develop a web client for
GNUmed. Users have the option to run the wxpyton client or web client or both
at the same time. The big benefit of all client talking to the backend through
a common server side middleware is that in case of backend changes or
middleware changes all client continue to work without having to port all
changes to all clients.
Buyer beware: This is proof of concept code. It shows the concept works. Not
more. No less.
Wednesday, July 07, 2010
from Gnumed.business import gmPersonThis should be pretty self explainatory. For convenience use patient['dob'].isoformat() for a string representation of the datetime object.
pat = gmPerson.gmCurrentPatient()
text = patient['firstnames']
text = patient['lastnames']
text = patient['dob']
text = patient['gender']
To work with the patient's emr you can access it like this:
emr = pat.get_emr()Let's say you want to get the current episode and if none create one.
if episode is None:
all_epis = emr.get_episodes()
# FIXME: what to do here ? probably create dummy episode
if len(all_epis) == 0:
episode = emr.add_episode(episode_name = _('Cardiac echo exam'), is_open = False)
dlg = gmEMRStructWidgets.cEpisodeListSelectorDlg(parent = parent, id = -1, episodes = all_epis)
dlg.SetTitle(_('Select the episode under which to file the document ...'))
btn_pressed = dlg.ShowModal()
episode = dlg.get_selected_item_data(only_one = True)
if (btn_pressed == wx.ID_CANCEL) or (episode is None):
pat.locked = False
Thursday, July 01, 2010
In one of the last articles it was demonstrated how to display a plugin. While it is nice to see your plugin in GNUmed often you don't want to start up all of GNUmed just to test your plugin.
Python comes with batteries included. Each client plugin can be started standalone through a helper called pywidgettester. This is implemented in the ExamplePlugin aleready.
Just start the plugin like this
cd ./client/wxpython/guiIt will ask for the server it should connect to, the database it should connect to, the username and the password. Once it has connected it lets you search for a patient. Then it will display this:
These lines in a plugin make this possible
if __name__ == '__main__':
from Gnumed.business import gmPerson
from Gnumed.wxpython import gmPatSearchWidgets
_log.info("starting template plugin...")
# obtain patient
patient = gmPerson.ask_for_patient()
if patient is None:
print "None patient. Exiting gracefully..."
# display the plugin standalone
application = wx.wx.PyWidgetTester(size = (800,600))
widgets = gmExamplePluginWidgets.cExamplePluginPnl(application.frame, -1)
Monday, June 28, 2010
The person doing the web interface for GNUmed needs to have good skills in
- object oriented coding
- MVC principles
- singlepage applications vs. multipage applications
- balancing client side workload with client side workload
- coding and running multiple instances of GNUmed web concurrently
Hardware is cheap. Internet tubes are congested and will be even more in the future. This means GNUmed web will need to
- transfer as little data and overhead (!) as possible
- cache heavily on the client side while ensuring data consistency (hard one)
- offload the user interface rendering to the client
- be capable of rendering user interface server side for incapable clients
- seperate data, ui layout (templates)
- have full i18n support
- handle 20 sessions on a off the shelf office server
It does not make sense to try to develop an interface that will fit small touch devices as well. Touch devices need a seperate interface.
When you attempt this please try to avoid code that makes an AJAX call for every keystroke in a phrasewheel or takes 30 seconds to load the login screen. If you think you have the skills it takes we sure would like to know.
there is no such thing as the optimal solution. Frameworks are all the hype nowadays. They have
incompatibilities are a pain in the rear.
came across ZK which is yet another toolkit for JAVA developers.
Then a tiny little bit of information came up that is overlooked and ingnored by media. There is a
difference between client side frameworks and server side frameworks. Often one is tempted to look
only at the graphical user interface of the frameworks. Beauty is all too often associated with quality.
For all non web app wizzards the basics are like this. In a client side framework all the processing
is done in the browser on the client. If the app wants data it has to talk to the server to get it. On
other end there are the server centric frameworks that process all data and user interface on the
server and send html to the browser. The server centric way is often associated with a desktop
like developement. Both approaches have their share of pros and cons.
Some of the conclusions I have drawn so far:
- framework is no well defined entity
- user interface frameworks
a bug in the framework might break the application
- language considerations
professionalism varies widely
will fail badly in case of a bug
- framework intercommunication
- designer applications
available which would allow non-coders to produce pseudo code or mock ups.
Going back to the drawing board (with a little more info on frameworks)
here is what I am looking
- code or a framework that lets me develop the user interface without it messing with the database itself (for now). This is the work of gmPG2 and friends.
- a nice looking set of widgets that makes up a nice looking interface
- a set of widgets that can be accessed through python (e.g. ToscaWidgets)
- a framework that will be there for a few years and not being given up for the next best thing
- solution that lets me seperate design (html, css, JS) and content through e.g templates
future and its set of widgets. I like that one could develop in python. It would mean that
out. I like the idea that extJS and ZK have designers available.
As always feedback is highly appreciated.
Friday, June 25, 2010
and the web client applications.
GNUmed is a fat client application. It uses wxpython and has an interface like many
traditional software applications. That means it needs to be installed on a user's computer.
This has pros and cons. On the positive side developers need to code exactly one interface.
The actual redering is left to the operating system and underlying GUI toolkit. However
providing the underlying toolkit on many operating systems and window managers is no
Then the internet era came along and brought the browser. There was one rendering
application (the browser) and one user interface language (html). It turned out that was
not reality. There are dozens of browsers and because html alone is limited along came
for delivering applications. All you need is a browser. You do not need to install the application
on your computer and you don't need to mess with dependencies such as special libraries.
In the ideal world you make your application run on on computer (the server) and the clients
(the browser) will only display the output and collect input to feed back to the server.
Web clients have their own share of problems. Browsers are not fully standard compliant. For
security reasons you cannot access local peripheral devices such as scanners, printers, files
easily. That severly breaks a input-oriented application like an electronic medical record.
People came up with all sorts of clever solutions. Thin client are fat clients whose output is
displayed at a remote location. This does not sound too bad. However the data that needs
to be transfered is too much for today's internet lines and even broadband. VNC is only usable
when run in a highspeed local network of 100MBit/s or more. And people tried to solve that
problem as well. They came up with the NX protocol. Pretty much a heavily optimized remote
display solution. It works and it works well but the web is so prominent that it does not
penetrate the mass market.
NX solves the problems for the user. Well kind of. You still need to install a NX client on your
computer. Then NX married the solution with the browser. They built the nx browser plugin.
This is one solution to the problem. However the nx client needs to be available for every
platform and every device (ARM, x86, your favorite operating system here). It is not. But the
web is. Virtually every device that looks like an electronic device can run a browser. Even the
washing machine and the microwave oven have Android installed. Anywhere there is a browser
there is chance to deliver the application.
Does GNUmed need a webinterface. I don't think so. However people are made to believe that
the personal computer will go away in 2-5 years. Along with it there is a chance that fat clients
will go away. That would make the GNUmed client we have today go away. The doctor does not
care. She just wants it to work not matter what technology. Lets just say GNUmed needs a web
interface. Apart from the fact that then GNUmed team does not yet have anyone with the skills
needed to make this a success it is always a good idea to look at what others have done so
Web interface definition
There is two types of web interfaces. One is the traditional mix of HMTL pages maybe with a bit
(rich internet application). This is what Gmail and friends think a web application should work
and look like. Because the mix of browsers and OSs is such as PITA frameworks have been created.
Those frameworks try to abstract the pitfalls from the developer and try to offer a cross-browser
and cross-platform user interface developement solution. This has been benefical but developers
tend to push the boundries. This lead to countless approaches and frameworks. Many of those
need to program in JAVA or at least php.
Choosing the right tools
Over the years it became evident that developers seldomly have design skills.
Application design was pushed down on the agenda and a few webpages were created to for
the EMR user interface. Pretty soon everyone noticed that those "applications" are a nightmare
to develop, maintain, translate and debug. Users broke them all the time. Not because users
are stupid but because they are busy and impatient. The result is what openEMR, Oscar and
Freemed (up to 0.8.4) look like today. Design says little about how well an application works
but users tend to associate the quality of an application with its design.
Road to redesign
Nearly all projects I followed over the years have either done a complete user rewrite or plan to
do so. Freemed has been picked up but even the rewrite is under rewrite. They tried Dojo
but that did not work so they switched to GWT. The web application now works as a mix of
pull this off. OpenEMR is currently getting certified in the US. I wonder how long it takes before
the UI will be rewritten.
Back to GNUmed.
While the appearance of openEMR and Freemed might be lacking GNUmed
is not there yet. It has recently been demonstrated that the GNUmed backend and middleware
(connection to the database etc.) can be reused without much effort in a webbrowser. The
only thing missing it the graphical user interface. It is not as easy as it sounds. Careful
planning is indicated to avoid starting over a few months down the road. A python based
web application usually uses a python web framework anlong with some template manager.
For python there is at least pylons, django, turbogears, cherrypy. These frameworks try to
be complete solutions. They bring everything to the table including database access. But we
don't want that. So the question arises do we need a python framework ? Given my little
knowledge I am not sure about that. Next question is on the user interface framework. Do we
we could use one of those although I am not sure how to marry this to our middleware. The
point is unless you have a very experienced web application developer in the team chances are
this gets screwed up and wastes time.
Pyjamas to the rescue.
A group of people thought what GWT is to JAVA GWT can be to Python as well. They came up
is documentation on this and it is supposedly relatively compatible to GWT. I lack the insight
to judge how well this works. The potential benefit is a closer tie to the python middleware.
A potential drawback is that you need a python coder to do the job. This will leave out all
While reading up a lot on web application development I noticed there are a number of ways
to solve the problem. There is no best of practice and depending on what you wanna do
opinions differ. It boils down to where to do the heavy lifting. One end of the rope is creating
all (x)HTML on the server and serving that to the client. The other end is letting the client to all
the HTML,JS,DOM work. Since I know too little on this here is an article which talks about it.
Long story short
Doing a web interface is easy. Just start and learn along the way. The same attitude is inherent in
some of the FOSS EMR both with web clients and fat clients. While it works it certainly is a pain
if you ever want to hand over the code to another developer.
What are the options.
One could look into pyjamas and try to make the most of it. Or one could just learn JS and go for
extJS and friends. I guess no option would be to use pure GWT since there needs to be a bridge
between python and JAVA (Jython maybe?). One could also just do away with the RIA as a whole
and serve a few static or partly dynamic webpages.
I would really welcome some comments here. As I said I am totally new to this. However if this
is not properly planned it is better to leave this out. And who knows how the internet will develop.
Tuesday, June 22, 2010
The GNUmed project use GIT as a way to host the source code and track changes. The GNUmed code can be found at gitorious. This so called repository has been created by Karsten Hilbert (ncq) and will host his changes to the GNUmed code. There is no such thing as the official GNUmed repository.
In order to share your code with the world through git you need to get yourself a gitorious account.
1.) Sign up with gitorious
2.) Start a new project (e.g. gnumed-yourshortname)
3.) Upload you plubic ssh key or create a new one if you have none
Once you have this you need to fill this with code. I assume you have a local git repository on your computer since you most likely created code by now. If you don't then start using GIT today.
Please see my previous article on GIT for GNUmed for information on how
to use git for your code.
Now it is time to upload your code. The repository you have on your local disk
is a full, standalone copy of Karsten's repository on gitorious. Other
than that it 'knows' about its origin there is no connection between the two.
There is an article on that and I will summarize it here.
To upload you code you need to tell git where to. The destination will be you
project on gitorious. For the beginning I have chosen to make a copy of the
git checkout on my computer. The checkout from ncq is in
~/sources/gnumed-head and the copy in ~/sources/gnumed-shilbert to reflect
which is my tree and what is ncq's (read-only) tree.
Now open ~/sources/gnumed-shilbert/.git and edit the file config. Before the
change it looks like this.
[core]Change the line url = foo to let foo reflect your tree at gitorious. You will get the url
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
fetch = +refs/heads/*:refs/remotes/origin/*
url = git://gitorious.org/gnumed/gnumed.git
remote = origin
merge = refs/heads/master
from gitorious once you have created your project and logged in.
After the change mine looks like this.
[core]Now everything is configured to upload your local git tree to gitorious. Do it like
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
fetch = +refs/heads/*:refs/remotes/origin/*
url = email@example.com:gnumed-shilbert/gnumed.git
remote = origin
merge = refs/heads/master
this to upload your newly created branch (template in my case).
git push origin template
The following output can be observed.
The authenticity of host 'gitorious.org (184.108.40.206)' can't be established.Then push your master branch which initially will be identical to the ncq's
RSA key fingerprint is 7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitorious.org,220.127.116.11' (RSA) to the list of known hosts.
Enter passphrase for key '/home/basti/.ssh/id_rsa':
Counting objects: 91837, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (18055/18055), done.
Writing objects: 100% (91837/91837), 37.85 MiB | 71 KiB/s, done.
Total 91837 (delta 63311), reused 89983 (delta 61565)
=> Syncing Gitorious... [OK]
* [new branch] template -> template
master branch until you or ncq change the now individual master branches.
basti@thinkpad:~/Sources/gnumed-shilbert> git push origin master
Enter passphrase for key '/home/basti/.ssh/id_rsa':
Total 0 (delta 0), reused 0 (delta 0)
=> Syncing Gitorious... [OK]
* [new branch] master -> master
You are almost done. You have to announce it to the world :-) You can e.g. send
an e-mail to the mailing-list at gnumed-devel at gnu.org and point people to your
code. They will then look at it and maybe incorporate them into their own trees.
If you however decide that you do not want to use git you can always send files
and patches directly to the mailing-list for review.
Monday, June 21, 2010
Recently we were contacted off list by someone who was attempting to implement
a plugin for GNUmed. Like many before him he had missed almost all information
available at in Wiki. After some pointers like the little series on plugins in
our Wiki it looked like he was on track. However despite initial success he
hit a road block when attempting to create a plugin. He was offered to send us
the problematic files but never did. We don't know if it was too much a
hassle. Initially you would think that documenting stuff in the Wiki, offering
direct help and more should be sufficient.
It is not I believe. Many people are used to solving problems on their own
instead of using the ressources readily available. That stems from the closed
source world where you would reinvent everything over and over.
Not all is lost however. We are missing two ressources I believe to give the
beginner programmer a chance. First is a set of templates. Second is a set of
videos explaining some concepts behind GNUmed. I have tried to solve the first
problem and have come up with a template plugin everyone can start off with.
I have them in my git tree and am currently learning how to share this work
through gitorious. I guess this will be another blog post. I hope Karsten can
chip in some information.
So far I have set up an account on gitorious. What now. Clone gnumed
repository ? Let's establish how merge requests and stuff works. If it works
out there will be a branch called template.
I suggest we ship those files in master as well so people pulling the
developer source tarball will have it as well.
Then the content in the Wiki needs to be updated to reflect how to make use of
the templates. The template files should be heavily documented in the code
itself and maybe will see a plugin or two appear.
Another thing I would like to see is a set of movies showing what one can do
with GNUmed. Those can either be rough demos or if you want to make the most
of it write a little script so everyone can follow the script and submit
Thursday, June 17, 2010
Please install and test GNUmed (its client and its server). The respective packages are gnumed-client and gnumed-server. The Personal Package Archive currently holds version 0.7.4. This is especially important for Ubuntu users since we are trying to get 0.7.5 into Lucid-proposed.
A Russian Ubuntu user (10.04) has reported a segfault when trying to start the client. We are not aware of any problems on the GNUmed side so any testing done by Russian Ubuntu users is very welcome.
We consider 0.7.5 a huge step forward compared to 0.6 which ships with Lucid. So your testing will directly make a difference for all current and future GNUmed users on Ubuntu.
More information is available at http://wiki.gnumed.de
Tuesday, June 15, 2010
In April 2010 arsten first mentioned vaccination handling and posted a screenshot:
Then on Apr 29th a pdf was posted showing of the improved current medication table in the LaTeX
format. This is now much more suitable for patients wondering how they should take their medication.
Beginning of May lab result plotting appeared:
Demographics editing was improved and a screenshot posted.
Still in May a more meaningful tooltip on the patient picture (it will show
the date the picture was generated) was announced.
Before the month was over this was announced :
This is the start of the third tab in the demographics
plugin, dubbed "Social Network", which is poised to become
the hub and spokes of the human network the patient is part
Note that you can link a person within this same database
but you don't have to. You can also just write a comment in
the field below and leave the top line empty.
If there is a link to another patient it can be activated
from there straight away.
Also note how this screenshot nicely shows the tabbing
together of possibly unrelated windows into one "tab group"
-- one could imagine to tab together a few instances of
GNUmed or some such.
After improvement of the tooltip:
Then two days later progress on vaccination handling was reported:
This is GNUmed showing the (only but) latest Tetanus
injection Kirk got, right in the EMR summary. Next to it a
listing of his vaccination history ordered reverse
The "latest shot" logic will work correctly across single-
and combi-indication vaccines.
Note the new icon John provided.
For reasons not fully understood still in May ...
It's the little things that count:
Observe the Sum sign behind the indication in the EMR
summary vaccination list. It shows the total number of
vaccinations for this indication the patient has received.
A poor man's vaccination plan ... ;-)
An then some days ago (June finally) this appeared:
In the attached screenshot observe how the patient search
field tooltip shows the emergency contact for the patient as
well as the comment on this person.
Below the listing of drugs also note the "UAW" (German for
ADR) button which takes you to a (configurable) website for
reporting an adverse drug reaction.
In June the vaccination user interface was discussed again and the latest version was this:
Looks like this will be a feature packed release for the clinician. There now is a solid foundation for vaccination handling, medication lists, emergency contact handling and much more.
From the discussion it seems that a few more interesting goodies are in the pipeline.
* GNUmed client and server have once again be tested and made to work on the Mac OS platform
* GNUmed on Windows now installs and runs without ever installing python, wxpython or friends
* GNUmed bootstraping now works without ever installing python or friends
* Lx-Office/sql-ledger and ledgersmb have been identified as candidates for billing interfaces
* Preliminary survey data suggests that ICD-coding and billing are the most wanted features.
Join us for a discussion. Head over to wiki.gnumed.de or leave your comment here.
Monday, June 14, 2010
Thursday, June 10, 2010
GNUmed public relations manager
It will be your job to handle all kinds of communication with interested parties such as media, users, developers and either respond yourself or forward the issue to one or more people on the team that might handle the issue more profound. Furthermore it will be your job to research document and shape if neccessary the GNUmed project's visibility in media , search engines and user/developer communities. When new releases are made it part of the job to forward information or press releases to interested parties and parties that might have interest.
GNUmed wiki manager
It will be your job to document important information from all kinds of sources (e.g. design discussions on the mailing-list). You will be responsible for updating content as the need arises (e.g. new GNUmed release). It will be part of the job to work with the public relations manager and the IT-system administrator to keep the Wiki running and secure. This includes monitoring security related announcements. Furthermore it will be your job to initiate and work on improvements to the content and usability of the Wiki with regards to GNUmed users and developers.
GNUmed system admin
It will be your job to keep the infrastructure such as webserver, buildserver running. You will be responsible for security related issues and it is expected of you to initiate, plan and execute inprovements to the infrastructure.
GNUmed release manager
It will be your job to communicate with all parties regarding new releases of the GNUmed software. You will working with the PR manager and the system admin. It is your responsibility to ensure the availability of packages for all major platforms. You will be responsible for the creation and availability of demo media such as Live-CD, VMware images.
GNUmed webinterface developer
GNUmed medical user interface designer
It will be your job to design medical user interfaces (web, fat client) that fits physician's workflow. You are expected to communicate with all developers including the webinterface developer and the core developers. You should have at least basic knowledge in python. It is expected of you that you have good skills or are willing to learn interface design and that you keep in mind industry standards.
GNUmed application developers
It will be your job to research , develop and deploy the GNUmed application. You will be responsible for creating , documenting and maintaining a solid database backend based on proved database technology (e.g. PostgreSQL). You will be writing code to abstract the user interface from the backend. It is essential for senior application developers to have excellent python, wxpython, SQL skills and a track record of active communication with all team members.
GNUmed application documentation manager
It will be your job to work with the developers and testing specialists to establish and keep up to date all programming information, guidelines, manuals. You will be working with users to find out what information is missing and you will be responsible for creating missing content. You will be responsible for setting up
GNUmed application testing specialist
It will be your job to establish a toolchain and testbed for continous testing of all aspects of the GNUmed application. You will be responsible for creating test routines and working with developers to turn test results into a better application.
GNUmed application support specialist
It will be your job to take care of the infrastructure to handle incoming support requests. You should furthermore have experience in triaging support requests and working with application developers and all other team members until an issue is resolved. It is part of the job to gather missing information and interact with the inquiring party until a solution has been found.
It will be your job to translate the user interface, the technical and user
manuals and the online content into a number of languages. It is part of the
job to work with users and developers to find the correct translation not only
literally but context-wise and language-specific
by visiting its website or subscribing to a news feed. Even a blog is not hip
anymore. Well folks that is why you can follow GNUmed on twitter and identi.ca.
Be there when a new release is announced. Be there when the GNUmed devs
talk about upcoming features. Can't wait for an announcement to be made ?
Talk to us in the Wiki Live Chat.
All your social networking at your fingertips.
Jim's pointing to a thread from 2006 got me thinking. Here are some questions I
would like to throw at the subscribers of this mailing list or any reader of the blog post.
What is the state of GNUmed ?
What is missing and what is the feature that needs to be added before you will use it in your office ?
How do you view the work since 2006?
How do you see the concepts of GNumed ?
Do you care about the concepts of GNUmed ?
They say listen to the users. Here we are.
Tuesday, June 08, 2010
let GNUmed search for a client in the ledger application
if it exists open a browser and jump to invoice creation page
if it does not exist create it in the datbase and open invoice creation page
if multiple matches for client search term exist open browser and let user select the one
let GNUmed open a browser and jump to the "unpaid invoices page"
All info is at http://wiki.gnumed.de/bin/view/Gnumed/BillingLxOffice
Now it is only a question of implementing this. IOW someone has to code it.
Most of this is pure python. That means apart from creating a few menu entries
in GNUmed there is not too much GNUmed code involved. If you are going to
attempt this and need help with e.g. getting the current patient in GNUmed
just yell and let us know.
While this sounds overly complicated it is not. Even for beginners this is a reasonable effort.
All the nifty details like clean code, documentation etc. can be worked on after a first implementation.
Now it is up to you when GNUmed will have billing features.
it looks like the packages sql-ledger, lx-office and ledgersmb will be evaluated. This is largely
due to the fact that ledgersmb and lx-office are forks from sql-ledger.
All three packages are webbased and written in perl. It seems possible to call functions not only
via the web interface but from the commandline as well.
This makes it suitable for GNUmed which tries to avoid implementing its own invoicing solution
and rather makes use of existing software.
A rough guide on what is planned can be found in the wiki at
We need help with the implemenation. If you feel you could benefit from invoicing for GNUmed
please join the team.
We recommend you subscribe to firstname.lastname@example.org mailing list and introduce youself.
Any help is appreciated.
Thursday, May 27, 2010
that are fixed is an issue that came during installation on Ubuntu Lucid server edition.
GNUmed 0.7.4 replaces the version that ships with Ubuntu Lucid. It is available from
Download and full instructions are available from the GNUmed wiki.
It is nice to see that so many Ubuntu users are reporting bugs which makes it easy
for us to release stable versions.
The next major release (0.8) will tackle handling of vaccinations as well as completing
There has been good progress with translations but we need ever helping hand we can
get. Translations are in launchpad and therefore it is easy to contribute to GNUmed.
Wednesday, May 19, 2010
Who is to blame. Initially I thought python was to blame. I did everything to make the text aware of utf-8 encoding. Turns out it already is and nothing changed. I then thought the Windows codepage is to blame. I managed to set it to Unicode instead of CP850 but it would still show me a box. Then it (not the box) hit me. The font is to blame.
Default font on Windows XP is Arial and Tahona. Both do not have a character mapped to the unicode number for the signing hand. The solution is to change the font to a font that includes the signing hand.
Easier said then done. For a signing hand in the title of a Window you need to change the font via Windows system preferences in the Appearance section. For the signing hand in e.g. a lab measurement cell in GNUmed you need to tell wxpython and therefore GNUmed that you want another font.
Many hours later the real challenge was near. Which font to use ? Not many fonts that have all characters exist. Many look lets say special (ugly) and no user will activate it if the text looks ugly in GNUmed.
It boils down to:
MS Arial Unicode - almost complete, commercial ($99) font, ships with some MS Office versions, cannot be shared
Code 2000 - most complete one, Shareware, looks lets say ok, cannot be shared
DejaVu Sans - almost complete, ships with Windows , looks good.
Apparently the Linux version of DejaVu Sans is more complete then the Windows version. If this holds true and the Linux version runs in Windows I will optionally ship it in the installer.
A couple of changes to the GNUmed code are neccessary before you can finally enjoy GNUmed unboxed.
Sunday, May 16, 2010
Back in the days when GNUmed appeared for Windows. A number of user way smarter then me
managed to break it in unpredictable ways. Installation meant hit or miss. Later frozen binaries
came along. They have been a huge success. I decided that despite my careful cecking of installed
dependencies users would still find ways to break it. So for some time the only thing you can
download for MS Windows is a frozen client.
Gone are the days when someone mailed in that something went wrong during installation
of the dependencies. There simply are none anymore. One file to install. That is it.
Users have been happy so far and I have not heard of any complaints regarding the client
on MS Windows.
But every story has a dark side. Now that we did not have a way to keep users from trying
the client they started looking at local databases. Until now we have been hiding behind a
brick wall of depedencies for the boostraper. Users still managed to install GNUmed server
and bootstrap on Windows. A few releases back we started by catering for the Windows
users by not asking a single question. We would even supply the passwords for Postgresql.
What a horrible thing to do but noone complained. However one or the other smart user
still failed to cross our brick wall of python, mxtools and psycopg2 dependencies.
Those days are now officially over. From version 0.7.4 there is only one single dependency -
PostgreSQL. Thats is all. You want to bootstrap ? Go ahead. No more dependencies. After
installation of GNUmed-server you are ready to boostrap.
This is considered a great day for our users. I am afraid that now that client and server
installation is so dead easy nothing is holding you back from looking at the features of
GNUmed and letting us know what you think.
There are still a few things I would like to see implemented:
- handling of previously installed PostgreSQL during installation
- status icon for PostgreSQL
- a webbased configuration file editor
Friday, May 14, 2010
it was the GNUmed server on Ubuntu server AMD 64bit. He hit a strange problem we had not
seen before. During the post-install step there was an error regarding a missing group called
This led them to believe that the installation failed. That turned out not to be true. While
the root of this is yet to be examined here is the short guide on how to set up GNUmed
on Ubuntu server. There are a number of showstoppers so follow this guide to avoid them.
1.) In the default installation one cannot simply add a PPA to the server. The package
python-software-properties is missing from the default installation. It adds the command
Solve this by running:
sudo apt-get install python-software-properties
2.) Add the GNUmed PPA to your system since the version shiped with Ubuntu 10.04 is outdated.
sudo add-apt-repository ppa:gnumed/ppa
3.) Update your installation sources
sudo apt-get update
4.) there is problem with a missing group called gnumed. This seems to be the case only for Ubuntu server. For now add it with this command.
sudo addgroup gnumed
5.) Install the gnumed-server package
sudo apt-get install gnumed-server
6.) Create a GNUmed database with demo data (username/password: any-doc/any-doc)
This will give you a working GNUmed database. However to be able to connect from other
clients on the network more configuration (for a secure setup) is neccessary.
This will get you started:
If you hit any problems don't hesitate to contact us (e.g. via the chat in the Wiki)
Friday, May 07, 2010
webbased, PostgreSQL (beta)
no interface we know of,
no Debian package,
Amberdms billing system:
webbased, PHP, MySQL
no Debian package,
RPM package avaialble,
project active - run by webhosting company
webbased, MySQL, PostgreSQL, Oracle
no Debian package,
project active - run by a company
i18n capable ?
webbased, MySQL, PostgreSQL ?
no interface we know of,
no Debian package,
fat client, written in C, PostgreSQL , yeah
no API, however python-gnucash
does online banking
not yet considered:
openbill - pre alpha,
Wednesday, May 05, 2010
GNUmed on Ubuntu Lucid.
We hope we have a fix for that.
GNUmed 0.7.2 has been released. It would be great if Ubuntu users could try it. There
are no Ubuntu packages yet. But I wonder if anyone would be willing to test if from the tarball we provide,
For the client there is a script called
Please run this as normal user.
in the subdirectory client. This will start the client 0.7.2. And in the
server tarball in the directory bootstrap there is a script called
which will now hopefully accept the Russian postgresql configuration. Please run this
Ubuntu packages will appear as soon as Debian packages come out. This can take
a couple of days.
Any help is appreciated.
Tuesday, May 04, 2010
The chat feature in the Wiki has been there for a while. I have not been
contacted that often but since Ubuntu released its new version 3 people
have showed up in the last 2 days.
There was a guy from Trinidad and two from Russia. The chat feature
helped to get one guy from Russia and the one from Trinidad on track.
Both had GNUmed running once I told them the secret password
for the public database :-)
The secret password for salaam.homeunix.com is:
The second guy from Russia hit a bug. He was very helpful by providing
log files and we should see a bugfix release soon. He worked we me on
this for over one hour which I appreciate. Turns out part of the problems
is there are virtually unlimited possiblities to get the whole UFT8. UTF-8,
uft8 and utf-8 thing for PostgreSQL wrong.
Judging by various sources I have people from all over the world are looking
at GNUmed. Indonesia, Russia, Argentina, Netherland, Austria, Germany,
Moldavia are just a few that looked at GNUmed during the last 24 hours.
Not all of them seem to be satisfied with what they find. A good number
of them are looking for billing solutions.
This could well be the beginning of a stable GNUmed community.
Sunday, May 02, 2010
Go to wiki.gnumed.de to find out how to get GNUmed installed.
Friday, April 30, 2010
That means GNUmed client and server are now supported on:
Other distributions known to work are:
OpenSUSE 11.2 and Factory
Mandriva One 2010
Sunday, April 25, 2010
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
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 wiki.gnumed.de
for the GNUmed team
Thursday, April 22, 2010
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.
Now I have a copy of the main tree which can be kept up to date by running the following commands.
git clone git://gitorious.org/gnumed/gnumed.git
git checkout masterThis 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-xmlTo list all available branches use:
git branchIt will output:
* add-echo-xmlThe branch with the asterisk is the currently active one. To switch to the master tree (e.g. for updates) use:
git checkout masterTo activate and develop in our own branch use this:
git checkout add-echo-xmlIt 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 wxgCardiacEchoPluginPnl.pyIn the wxg direcotory we run:
git add wxgCardiacEchoPnl.wxgIn the wxpython directory we run:
git add gmEchoWidgets.pyIn the wxpython/gui directory we run:
git add gmCardiacEchoPlugin.pyFinally we commit all this by:
git commitThis 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 pluginWhenever 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.
4 files changed, 1196 insertions(+), 0 deletions(-)
create mode 100755 gnumed/gnumed/client/wxGladeWidgets/wxgCardiacEchoPluginPnl.py
create mode 100644 gnumed/gnumed/client/wxg/wxgCardiacEchoPnl.wxg
create mode 100644 gnumed/gnumed/client/wxpython/gmEchoWidgets.py
create mode 100644 gnumed/gnumed/client/wxpython/gui/gmCardiacEchoPlugin.py
Tuesday, April 20, 2010
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 foo.py 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
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.
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
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
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.
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 (http://wiki.gnumed.de/bin/view/Gnumed/BugReports)
GNUmed needs your help. Get it running now.
For those not wanting to install GNUmed there are some screenshot available at Flickr (http://www.flickr.com/photos/gnumed/sets/72157623196909218/show/)
Monday, April 12, 2010
- 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:
- 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 @ wwwkeys.pgp.net
E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346
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
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:
- 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: gnumed.py 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