WhiteCoatAcademy / icd10

Dead simple, incredibly fast ICD-10 diagnosis code searching.
https://icd10.clindesk.org/
Other
27 stars 7 forks source link

Query needs to behave in a way that doesn't confuse user #5

Open leoshmu opened 10 years ago

leoshmu commented 10 years ago

For example, search for "coma" Right now the first result is "Acute hepatitis A" This is because "coma" is one of the keywords, since that is one of the children

But that would be quite confusing to a user right? Searching for coma, I expect the top result to be R402 "Coma"

We need to give some thought to what fields are being searched, and what priority the results should be ordered by...

Do we search by keyword, and the search within the results and give priority to the parent description text?

Do we allow search by exact code?

Easy to implement any approach, but what do you think makes sense?

My thinking is 1) add checkboxes to let people be explicit about what they are searching by (default has all things checked, and options are "code, parent description, child description" (named something more sane..)

2)when people search by multiple options, give priority to code, then parent, then child

3) when people search by one option, give priority to that one only

Does that make sense? Any other thoughts?

leoshmu commented 10 years ago

Another possibility is that when we search, the matched word should be highlighted, and in the case where the search matches a child, the child should be automatically opened (with corresponding child matching text highlighted)

Many ways to achieve this, but gives us an excuse to use angular-ui, which has lots of goodies http://angular-ui.github.io/ui-utils/#/highlight

semenko commented 10 years ago

Yeah, I like search word highlighting.

Along those lines, I think we should de-emphasize (grey-out) children who have prefixes similar to their parents.

e.g. E081 Diabetes mellitus due to underlying condition with ketoacidosis E0810 Diabetes mellitus due to underlying condition with ketoacidosis without coma E0811 Diabetes mellitus due to underlying condition with ketoacidosis with coma

From the UI, those two children should have that huge prefix greyed out a bit, and "without coma" and "with coma" emphasized.

semenko commented 10 years ago

Also, it might make sense to search starting on word boundaries only.

e.g. searching for "dia" (for diabetes) matches BalantiDIAsis, GiarDIAsis, otitis meDIA. and other stupid stuff.

We might want to make this just search on word boundaries (word starts with DIA)

leoshmu commented 10 years ago

Both good ideas, will be fun to implementThe big question though is how to prioritize search results. It makes sense to me to allow people to search only by code, or only by description, or only be children, and then to prioritize results in that order too if they are searching by multiple category.

And the searching by word boundary vs internal text could be handled by prioritizing search results with matches at the boundary, while still showing giarDIAsis, but just much lower in the search results..

Do you have any different thoughts about results prioritization and search by different fields? — Sent from Mailbox for iPad

On Mon, Apr 21, 2014 at 9:45 AM, Nick Semenkovich notifications@github.com wrote:

Also, it might make sense to search starting on word boundaries only. e.g. searching for "dia" (for diabetes) matches BalantiDIAsis, GiarDIAsis, otitis meDIA. and other stupid stuff.

We might want to make this just search on word boundaries (word starts with DIA)

Reply to this email directly or view it on GitHub: https://github.com/WhiteCoatAcademy/icd10/issues/5#issuecomment-40940540

leoshmu commented 10 years ago

I'll do the following this weekend: 1) Add ability for user to specify what column of the data is being searched 2) add a custom OrderBy filter that prioritizes results in a standard order (we can always change the priority later, but comingn up with an order should not block writing the code)