Thanks Cosmin.  This is very helpful.

We came up with something very similar when creating a registration module
for AMPATH – i.e., providing possible matches "inline" during data entry
instead of as a separate step.  Part of the trick was deciding the level of
sensitivity & specificity as well as when it's helpful (or not helpful) to
alert users.  For example, telling someone that there are 100 matches to a
common names doesn't help, but saying there are 3 likely matches can be
very helpful.  Should gender match be required (probably not true when
every other demographic matches); so, we ended up with some considerations
like "gender must match unless name(s) & birthdate are exact matches."  We
also avoid alerting of potential matches if there are too many (something
like 5-10, I believe).

Thanks again for sharing your approach.

Cheers,

-Burke

On Thu, Nov 17, 2011 at 1:38 PM, Cosmin Ioan <[email protected]> wrote:

> Hi all,****
>
> ** **
>
> Thank you for your interest and we appreciate the great feedback. The only
> patient search algorithm we are leveraging at this point is a search based
> on the patient full name. The system combines the results returned by
> OpenMRS PatientService.getPatients(String query) with the results returned
> by NamePhonetics module findPatient()  method.  Our plan is to build a bit
> more complex algorithm. As the registration process advances from one
> screen to another the potential patient matches would filter even more
> based on the additional information captured. Please see the attached pdf
> which represents the UI screens designed by Evan.  e.g.  As soon as the
> patient name and gender are captured the system retrieves a list of all
> possible matches, once the patient age is captured the system would filter
> out the previous list based on the patient age(+/- n(configurable setting)
> years), once the patient address is captured the list would be filtered
> even more presenting maybe only the possible matches from the same
> geographical area (department or commune). Those are just some initial
> thoughts, we would probably have a better idea on how to prevent duplicates
> after we deploy the pilot and analyze the data entered by real users. Based
> on those results we will refine and tune the patient search algorithm. Any
> other ideas or suggestions on how to build a flexible and a pretty generic
> search algorithm would be appreciated.****
>
> ** **
>
> Thanks,****
>
> Cosmin****
>
> ** **
>
> ** **
>
> *From:* [email protected] [mailto:[email protected]] *On Behalf Of *Burke
> Mamlin
> *Sent:* Thursday, November 17, 2011 10:55 AM
> *To:* [email protected]
> *Subject:* [OPENMRS-DEV] Algorithm for detecting possible duplicate
> patients during registration****
>
> ** **
>
> Cosmin & PIH folks,****
>
> ** **
>
> We really appreciated the demo on today's dev forum.  Could you give a
> quick summary for or a link to the algorithm you're using to find potential
> duplicate.  I realize that these algorithms could easily be regional, but
> there could be good shareable lessons in finding the balance between
> sensitivity & specificity too – e.g., only show when possible matches are
> less than n, which parts of demographics must match (gender?) & which have
> fuzzy matches (birthdate?), etc.****
>
> ** **
>
> Thanks!****
>
> ** **
>
> Cheers,****
>
> ** **
>
> -Burke****
> ------------------------------
>
> Click here to 
> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from 
> OpenMRS Developers' mailing list
> ****
>

_________________________________________

To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to 
[email protected] with "SIGNOFF openmrs-devel-l" in the  body (not 
the subject) of your e-mail.

[mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]

Reply via email to