I also don't think we really want this service returning a List<ConceptWord>.  Why don't we have it return a Map<Integer, String> which is conceptId -> display string.  If the phrase passed in is a conceptId or a concept mapping, then we probably want these to be contained somewhere in the display string, to make it obvious to the end user that there is a match