Type: New Feature
Status: Ready for Work
Affects Version/s: None
Fix Version/s: None
Component/s: Concept Dictionary
Terms are comprised of one to n words, and many of these words have equivalent synonyms that are interchangable with one another. For example, given the concept "Myocardial Infarction", you might swap the word "Cardiac" with "Myocardial" and they mean equivalent things. Thus if you have a concept named "Myocardial Infarction" you want a user to see this concept when they search the dictionary for "Cardiac".
We need to standardize the indexing process that takes these word equivalencies into account, before indexing occurs. This implies modifying the relevant methods in ConceptService.
This also will require a new table:
- word ... (any instance of this word)
- index_word ... (is replaced with this word in index)
(The implication is that if this table says that "word=cardiac -> index_word=myocardial" then "cardiac" should never be stored in our concept_word index, and any time you search for "cardiac" it should be silently switched to "myocardial" in the index query.)
We will also need a new "Manage Indexes" page (underneath Admin/Concept) that will contain both Manage Word Equivalencies and Manage Stop Words (see #).
- Whenever someone edits the word equivalencies, index is dirty and needs to be rebuilt
- There can be 0 to n equivalencies for each word