Wednesday, November 16, 2005

Smear Clinapp

Another day, another clinapp, or so it seems some days.

Today's interpretive report to be supported with an app is the Smear section, which produces a large number of reports all of which start with a blood slide and end with a clinical comment.

Man, I had no idea when I started this code base that it would turn into a mini-career.

Tuesday, March 29, 2005

Science Project To Clinical Resource (ORU repository)

Today I turned an interesting science project into a treasured clinical resource, and got to take lots of credit in the process. Not a bad day!

A member of the client's computer staff had put together a fascinating science project: a collection of ORUs (HL7 result messages) in a Reiser file system on a standalone Linux box, accessible through a simple TCP/IP protocol.

The science project was fascinating:
  • collecting the ORUs as an archival format because HL7 is flexible and somewhat changing
  • storing the ORUs in a small text file named with the specimen ID
  • adding a simple per-patient text file index to support reporting by patient
  • using the Reiser file system to hold many (20 million+) small files efficiently
  • using the TCP/IP protocol to make access from a web page easy
  • using the interface, all historical results were output from the LIS and therefore input into this respository
  • tapping into the HIS interface, this repository is kept as current as the HIS
The author's goal was to create an LIS downtime solution and a way to monitor the LIS->HIS interface, from which the ORUs come.

My goal was to create a helper app for my clinapp environment, providing supporting lab results far beyond the current set. Since my environment was created to support clinical impressions of conditions which are often observed over years, the users were thrilled with the ability to scroll back in time from current to mid-1974.

Even in its first day, the helper app has become wildly popular and has sparked interest in adding links to the repository from other web applications. Hurray for the original author, on whose shoulders I am happy to stand.

Saturday, February 5, 2005

LabTerm--Proof Is the Product, Not the Programming

Today is the final release of our LabTerm unit.

This release finished a rather unsavoury assignment which yielded a rather good result: a custom lab bench computer or, as we say now, "thin client."

The goal was simple: to create a supportable computer which would do all that a lab tech needs to do:
  • provide a full-screen terminal to their homegrown HP MPE LIS (!)
  • provide rapid access to their on-line Lab Manual
  • provide a web browser for the growing number of web-based UIs
  • provide a full-screen terminal to their homegrown order handler
In order to accomplish all of these goals, we decided on the following implementation:

  1. a Linux image to run on old (discarded!) former Windows 95 boxes
  2. a simple X-windows windows manager, "Rat Poison" (kill the mouse)
  3. a custom app to provide a full-screen UI to their Lab Man data
  4. a customized version of the MiniCom terminal emulator
    1. support for MPE line-handling
    2. split-screen support to share the screen (Lab Man or order handler)
    3. scroll-back buffer
    4. copy-and-paste
    5. screen history for each session
  5.  automatic updating for all these components, including the Lab Man
  6. remote viewing of terminal session history
    1. this turned out to be fantastic for providing LIS support
I may have done the last dumb ASCII terminal mankind will ever know, and God knows we didn't break any new ground here, but we produced a product that met the customer's needs. By keeping our eyes on that prize, we succeeded even without the cool factor. And support old hardware meant that we could take cast-off computers from within the organization, so we actually went live with enough hardware to do the job properly.

Engineering can be beautiful, but life often demands ugly and our motto is "beauty is in the eye of the user--not the engineer."