Archive for February, 2009

The lightbulb

Tuesday, February 24th, 2009

Cerner markets their Millenium software as an encompassing, integrated solution for all of health care. In reality, there is no such thing. No general purpose database front-end can possibly support the specialized needs of each and every hospital department. Such claims are marketing ad-speak.

PharmNet does not support any clinical pharmacy functions. Apparently Cerner’s idea of clinical pharmacy is an endless series of irrelevent drug interaction alerts.  Example: Morphine & Demerol cross-allergy alerts. ORLY?  There is no cross sensitivity between these drugs, they are not chemically related in any way. But Cerner Multum seems to think so.

Pharmacists use other applications to perform the clinical functions that Cerner lacks, such as pharmacokinetic dosing. Currently we call up the patient record in Cerner, then hand-write out all the information onto a form, next we enter all this same patient info into another program for dosage calculations, then we fill out a hand-written consult form and finally write an order. So, something that should take 5 minutes, instead sucks 20-30 minutes from your busy day.

After a night from hell, hand-writing countless superfluous forms, a couple of synapses connected, and a little light bulb went off in my tired old brain…

Although Cerner has the patient data locked up in their database, you can extract text from a Windows dialog. There is a simple Windows API for extracting text from a “window”. So, I made a little demo and tried it out on PharmNet, nothing. Cerner/Citrix windows apparently have no text, which left me completely stumped. Then I started reading more about the Citrix client and discovered that, yes, there is no text, these windows are drawn strictly as bitmaps, using the Windows GDI. Shot down in flames yet again, thanks Cerner/Citrix.

But not one to give up, knowing there is more than one way to skin a cat…  Microsoft Office comes with a tool called Document Imaging which has Optical Character Recognition. OCR is the ability to translate an image into text. So, I wrote a little demo to capture the active window as a bitmap, then fed the image through MODI in order to recognize the text.

Voilà, it worked… Well, sort of, about 95%. MODI sometimes interprets a “5″ as an “S”, and a number 1 as the lowercase L. I’m still debating whether this is worth taking to the next step, making a one-click import function by feeding the text to a string list and looping through it to pull out the relevant data. Is 95% accuracy good enough?