Project Review 2011

I’ve been a bit lax in posting about my work here, mainly because Twitter makes you lazy. (Why write complete sentences when you can summarize in 140 characters or less?) Here are some of the projects I’ve been working on over 2011, with some links. I’m sure I have left some out. FreeMED – opensource electronic medical record/practice management system. Did a fair amount of retooling, including i18n, for the installation in Xela.

Written By
Jeff

Xela Redux 2011

Better late than never, these are the blog entries I had put together from the Xela trip this year, which I had never gotten around to posting. Day One: Sunday November 6, 2011 I’m going to try to chronicle my time this year working with the POP-WUJ Clinic in Xela (Quetzeltenanga), Guatemala, as I did last year. Work circumstances, over-zealous customs officials, and simple bad luck contributed to some of the issues we experienced with the installation last year, so I have traveled back down to attempt to make this work better.

Written By
Jeff

Xela Day Seven: Huevos revuelto con queso sin carne y adios

It was my last day in Xela, with all of the basic setup, wiring, and other on-site work having been completed on Friday. As I’m lousy at negotiating prices even in English, Jorge was kind enough to go from shop to shop with me looking for some gifts for my wife and keepsakes to take home with me, after I went out with Irv to find a whiteboard for the clinic.

Written By
Jeff

Xela Day Six: Implementation

More than half our our crew parted ways to do a mobile clinic today, whereas Irv, Shelley and I stayed behind with Dr Christian and a few med students to attempt to get the EMR functional in a way which would jive with the clinic’s workflow. I hit quite a few snags in some of the UI implementation, since I have been pretty hands-off in the development of the UI over the last few months.

Written By
Jeff

Xela Day Five: FreeMED, Finally

It’s day five of our trip to Xela, and we’ve come to the realization that the damn server isn’t going to clear Customs before I leave the country. That being understood, I got FreeMED up and running on the machine which was originally designated to be the secondary / failover server. The guy who set up the router which is being used by POP-WUJ is unfortunately in Spain, and has left no information on access, so I’m unable to appropriately set up port forwards for the server.

Written By
Jeff

Xela Day Four: Aldea Pujujil

Today we left early in the morning, around 7am, to head out to the village of “Aldea Pujujil” in Solola, Guatemala to do a travelling clinic. We took two “micro buses” with ten to thirteen people in each with equipment tied down to the top, and left Xela heading back towards Guatemala City on the Pan American Highway. The local town had set up their central meeting building, which was a stone edifice with a grooved tin roof, as a sort of makeshift clinic.

Written By
Jeff

Xela Day Three: Clinic

The clinic was open for the first of the two days it will be open during my stay in Xela. It was a pretty crazy scene — a line going to the end, if not around the end, of the block. We had Isabel, the local intake/registration person, working with my sister Shelley to do registrations, after which the patients were sent to Jorge, who war running triage. Dr Meg Sullivan treated the pediatric patients, while Irv and one of the local doctors handled the adult patients.

Written By
Jeff

Xela Day Two: A Tale of Two Servers

I ended up passing out on top of the sheets in the hotel due to the tired state in which I arrived, but today was full of plenty of excitement and activity. We walked down to the clinic after breakfast from the nice people at Casa Mañen. The clinic is, to my knowledge, the only permanent free clinic in Xela, and has a few permanent staff members in addition to the volunteers who come down with the “medical brigades” (as Jonathan calls them).

Written By
Jeff

Xela Day One: Planes, Trains and Automobiles

As part of setting up the POP-WUJ Clinic in Xela, Guatemala with an electronic medical record, I have headed down with a team of ten other volunteers to the city of Xela in western Guatemala. I’m going to document the trip and the work we’re doing down here by a series of daily blog entries chronicling our trials and tribulations setting up and installing FreeMED there. I’ll post pictures as soon as I get the chance to upload them to Flickr.

Written By
Jeff

Designing applications for clustering

I have been recently been trying to redesign FreeMED (my opensource GPL’d EMR/PM system) in order to work in a “clustered” environment, so that I could support scenarios where multiple application servers were load-balanced to handle larger quantities of traffic. The latest piece of this has been to move filesystem-based storage into the database layer so that I don’t have to mess around with clustered file storage and replication. Some of the highlights of this have been:

Written By
Jeff

Slowly but surely

I’m still hard at work on FreeMED 0.9.0 ; it is turning out to be a very long and involved process. A ton of new functionality is making its way in, along with architectural improvements and porting old functionality. The majority of the codebase has been torn out and rewritten, mostly to allow for complete separation between UI and the data model. This entire process has been very educational, and I think I have learned more than I ever *wanted* to learn about UI programming.

Written By
Jeff

Trending and Graphing

Latest FreeMED project has been trying to get graphing and trending working. Unfortunately I haven’t seen any GPL licensed graphing libraries that really fit the bill for doing this sort of work, so I started working on my own; pretty much all hand-rolled, with some tricks pulled from the PHP function guide.

Written By
Jeff

New Year, Caching, etc

Happy New Year, as well as happy whatever solstice holiday you choose to celebrate! Once again, I’m slacking in the “blogging” department. I recently made a few changes to the server, the most important of which will speed this up by fixing the memory map cache used to render pages, thereby removing the molasses from the page loading process. There are also a few new tracks under Artists and Projects on the site, so please feel free to take a listen.

Written By
Jeff

Forms – Too Many Forms

I’m working on a new concept/feature in FreeMED to try to alleviate the persistent problem of providers not being able to create their own forms with custom data, without having an advanced degree in advanced something (besides being a provider, of course). This, coupled with the new packaging format for FreeMED modules that I’m working on, will probably be the next big features in the next non-bug release, which is currently scheduled to be version 0.

Written By
Jeff

Slack

I’m slacking in keeping up this weblog-thing, but in my defense, I have been a bit busy. FreeMED released version 0.8.1 to the world, and I have been working in the studio a lot lately as well, working on both the Heirs of Centack audiobook and musical projects. Hopefully the BCF-2000 that has been ordered will get here soon, to make mixing less of a pain. I’m also halfway through a platform change to use PlanetCCRMA as the new studio platform, since the latencies appear good with the 2.

Written By
Jeff

Pluggable Authentication for FreeMED

I finally mustered up the spare time to move from the old system of FreeMED authentication to a pluggable system. I have only coded up two plugins for now: a “Password” plugin, which uses the old system of authentication and password checking, and a “Basic” plugin, supporting HTTP Basic Authentication. I’m also currently considering writing an LDAP plugin to allow FreeMED credentials and basic ACL information to be stored on an LDAP server, to really allow for enterprise deployments.

Written By
Jeff

Secure Data Warehousing

My newest project with FreeMED has been to implement a way to securely warehouse medical data offsite. This relates to Dr Gnu’s article about disaster recovery. I have been using SSL WebDAV with a slim C client built on neon to push gnupg-encrypted SQL dumps (both incremental and full) to the archive server, which is perhaps temporarily residing at https://archive.freemedsoftare.net/. In this way, whoever is hosting the archive cannot read the medical data without the gnupg keys held only by the provider who “owns” the medical records.

Written By
Jeff

Lab HL7 Interface

I have been working on an interface with Quest Diagnostics to be able to automagically import HL7 v2.3 messages into FreeMED. They were nice enough to furnish me with some documentation, and I have an alpha-quality implementation ready for some beating in one of our alpha sites. Now that 0.8.0 is out, I’m working steadily on a 0.8.1 release, with mostly bugfixes, some rearchitecturing, and a few nice features like this one (hopefully).

Written By
Jeff

FreeMED and REMITT released

I have released the FreeMED 0.8.0 and REMITT 0.3 combination, along with phpwebtools 0.4.5. I’ve found that Subversion rapidly decreases my development time, as it allows me to focus more on the programming and less on annoying problems. I have also been working on some of Irv’s ideas regarding secure data warehousing, and the next version of FreeMED should support that “out of the box”, without the need to configure anything complicated.

Written By
Jeff

FreeMED Live CD

I’m currently finishing up the final touches on the FreeMED 0.8.0 release right now, as REMITT 0.3 and phpwebtools 0.4.5 are already “ready to ship”. I’m also touching up a nice FreeMED Live CD, based on the kubuntu “Hoary Hedgehog” live CD, so everyone will be able to try out FreeMED REMITT without having to make the commitment of formatting a machine. Thanks to B-MAS, Inc for funding (and helping out with) the development of this live CD.

Written By
Jeff

Subversion

It’s final; I have moved FreeMED, a six-year old project with a CVS tree that old, to a new replicated subversion repository system. This should let me spend far less time fighting with sourceforge’s CVS servers, as well as provide an easier way to maintain the large number of files and directories in FreeMED. We’re less than a week from the launch of FreeMED 0.8.0, REMITT 0.3 and phpwebtools 0.4.5, which will be released together, and everything is in deep freeze, so I will be only committing packaging changes and extreme paper bag bug fixes over the next week.

Written By
Jeff

REMITT and Statements

I have been hard at work, getting our favorite medical billing engine to support generating patient statements, in addition to its current payer billing capabilities. In addition, I have been adding some rich font support for PDFs, while all font attributes are stripped out or ignored when generating plain text or other formats which do not support it. In addition, I was reading an article on building an extremely low-latency box for professional audio, when I was appalled to see a comment that “the most obvious choice of operating system for musicians is still Windows XP Professional”.

Written By
Jeff