Archive for the ‘scheduling’ Category

Screenshot: Daily notes, treatment status

February 9, 2010

**UPDATE  06/05/2012** Contains old screenshots!


I’ve been busy at work and not posting as much, but I thought I would post a screenshot of how we are handling the status of treatments.  There are many more features in this screenshot than I can talk about in one post, so those will be for later. I do want to point out a few features, though.


The purple paper problem

January 20, 2010

The current patient flow at COS involves a paper chart and paper encounter form. It is on this form that the M.D. writes his or her orders for the next visit, as well as when that visit should be. On the way out, the patient hands the scheduler the piece of paper and makes their next appointment.

A piece of paper in hand is a strong reminder that the patient’s visit is not yet complete; they still have an obligation to the office.

What will happen then, when we have a totally electronic system? When there is no purple paper to prompt proper procedure?  I’m sure some patients will be sure to check out when their visit is complete, but what about those whose memory is not the sharpest? They will fail to check out.

This means that there will have to be a phone call to the patient from the scheduling office in the next few days (or that day) in order to schedule the next appointment. How do we value the tradeoff of electronic patient tracking and scheduling against the (theoretical) increase in scheduling phone calls?

Maybe we can keep the purple sheet, but just put a smiley face on it.

Fuzzy matching for dummies

January 19, 2010

One really simple, yet really powerful feature we have implemented is a pseudo fuzzy matching for patient names.  Fuzzy matching allows you to return names that are ‘like’  another name. For example, if you don’t remember the spelling of a patient’s name, Orlowski, you would be able to guess Orlawski. By using published algorithms Nysiis, Soundex, Metaphone, etc., you can match names that are close in sound.

For example:

soundex(‘Orlowski’) == ‘o642’  == soundex(‘Orlawski’)


nysiis(‘Orlowski’) == ORLASC == nysiis(‘Orlawski’).

Keep in mind, full  ‘fuzzy matching’ often involves much more complicated algorithms and might be able to match patients based on combinations of factors like address or  birth date. But this fuzzy matching ‘for dummies’ is a good first step in solving the problem of minor typos.

When a chart is created (or last name updated), we pass the name through these algorithms and save the results with the chart. When we want to do fuzzy searching, all we have to do is pass the search term through the algorithms and search with the results.  Of course, these results are presented as approximate matches, and no guesses to the definite identity are made by this matching scheme.

Other fuzzy matching algorithms involve things like ‘edit distance’, where you measure how many changes to a word are required to get to another word. ‘Orlowski’ and ‘Orlawski’ have an edit distance of one. This algorithm requires much more processing time and storage space so we are happy with the solution we have now.

Screenshot: Calendar and dose manipulation

January 8, 2010

**UPDATE  06/05/2012** Contains old screenshots!


What would Google do? I ask this question a lot, and for good reason. Google is one of the most successful companies in human history. I use apps like Google mail calendar and chat every day. For me, it is logical to seek out and learn from such a great company. So, I ask myself,  what has Google done that can help me write this software?