/** * @see ConceptService#getConcepts(String, Locale, boolean) */ @Override @Transactional(readOnly = true) public List<ConceptSearchResult> getConcepts(String phrase, Locale locale, boolean includeRetired) throws APIException { List<Locale> locales = new ArrayList<>(); if (locale != null) { locales.add(locale); } return Context.getConceptService().getConcepts(phrase, locales, includeRetired, null, null, null, null, null, null, null); }
searchResults = service.getConcepts(context.getParameter("q"), locales, context.getIncludeAll(), null, null, null, null, answerTo, startIndex, limit);
/** * @see org.openmrs.Attributable#findPossibleValues(java.lang.String) */ @Override public List<Concept> findPossibleValues(String searchText) { List<Concept> concepts = new ArrayList<>(); try { for (ConceptSearchResult searchResult : Context.getConceptService().getConcepts(searchText, Collections.singletonList(Context.getLocale()), false, null, null, null, null, null, null, null)) { concepts.add(searchResult.getConcept()); } } catch (Exception e) { // pass } return concepts; }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldReturnASearchResultWhoseConceptNameContainsAllWordTokensAsFirst() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); List<ConceptSearchResult> searchResults = conceptService.getConcepts("SALBUTAMOL INHALER", Collections .singletonList(new Locale("en", "US")), false, null, null, null, null, null, null, null); assertThat(searchResults.get(0).getWord(), is("SALBUTAMOL INHALER")); }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldReturnConceptSearchResultsThatMatchUniqueConcepts() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); List<ConceptSearchResult> searchResults = conceptService.getConcepts("trust", Collections .singletonList(Locale.ENGLISH), false, null, null, null, null, null, null, null); //trust is included in 2 names for conceptid=3000 and in one name for conceptid=4000. //So we should see 2 results only Assert.assertEquals(2, searchResults.size()); }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldReturnConceptSearchResultsThatContainAllSearchWordsAsFirst() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); List<ConceptSearchResult> searchResults = conceptService.getConcepts("trust now", Collections .singletonList(Locale.ENGLISH), false, null, null, null, null, null, null, null); //"trust now" must be first hit assertThat(searchResults.get(0).getWord(), is("trust now")); }
/** * @see ConceptServiceImpl#getConcepts(String phrase, List<Locale> locales, boolean * includeRetired,List<ConceptClass> requireClasses, List<ConceptClass> excludeClasses, * List<ConceptDatatype> requireDatatypes,List<ConceptDatatype> excludeDatatypes, Concept * answersToConcept, Integer start, Integer size) */ @Test public void getConcepts_shouldNotFailWithNullClassesAndDatatypes() { ConceptService conceptService = Context.getConceptService(); Assert.assertNotNull(conceptService.getConcepts("VOIDED", Collections.singletonList(Locale.ENGLISH), false, null, null, null, null, null, null, null)); }
/** * @see ConceptServiceImpl#getConcepts(String, Locale, boolean) */ @Test public void getConcepts_shouldGiveAListOfConceptSearchResultForTheMatchingConcepts() { Locale locale = new Locale("en", "GB"); String phrase = "CD4 COUNT"; List<ConceptSearchResult> res = conceptService.getConcepts(phrase, locale, true); assertEquals(res.get(0).getConceptName().getName(), phrase); }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldIncludeRetiredConceptsInTheSearchResults() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); List<ConceptClass> classes = new ArrayList<>(); classes.add(Context.getConceptService().getConceptClassByName("Finding")); List<ConceptSearchResult> searchResults = conceptService.getConcepts(null, null, true, classes, null, null, null, null, null, null); Assert.assertEquals(2, searchResults.size()); }
/** * @see ConceptService#getConcepts(String,List<Locale>,null,List<ConceptClass>,List< * ConceptClass>,List<ConceptDatatype>,List<ConceptDatatype>,Concept,Integer,Integer) */ @Test public void getConcepts_shouldNotReturnConceptsWithMatchingNamesThatAreVoided() { Concept concept = conceptService.getConcept(7); List<ConceptSearchResult> results = conceptService.getConcepts("VOIDED", Collections.singletonList(Locale.ENGLISH), false, null, null, null, null, null, null, null); for (ConceptSearchResult result : results) { assertThat(result.getConcept(), not(concept)); } }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldReturnConceptSearchResultsThatMatchUniqueConceptsEvenIfDifferentMatchingWords() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); List<ConceptSearchResult> searchResults = conceptService.getConcepts("now", Collections .singletonList(Locale.ENGLISH), false, null, null, null, null, null, null, null); // "now matches both concept names "TRUST NOW" and "TRUST NOWHERE", but these are for the same concept (4000), so there should only be one item in the result set Assert.assertEquals(1, searchResults.size()); Assert.assertEquals(new Integer(4000), searchResults.get(0).getConcept().getId()); }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldReturnEmptyListIfNoConceptWithinSpecifiedClassesWasFound() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); List<ConceptClass> classes = new ArrayList<>(); classes.add(Context.getConceptService().getConceptClassByName("Finding")); List<ConceptSearchResult> searchResults = conceptService.getConcepts("SALBUTAMOL", null, false, classes, null, null, null, null, null, null); Assert.assertEquals(0, searchResults.size()); }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldPassWithAndOrNotWords() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); //search phrase with AND List<ConceptSearchResult> searchResults = conceptService.getConcepts("AND SALBUTAMOL INHALER", Collections .singletonList(new Locale("en", "US")), false, null, null, null, null, null, null, null); Assert.assertEquals(1, searchResults.size()); assertThat(searchResults.get(0).getWord(), is("AND SALBUTAMOL INHALER")); //search phrase with OR searchResults = conceptService.getConcepts("SALBUTAMOL OR INHALER", Collections .singletonList(new Locale("en", "US")), false, null, null, null, null, null, null, null); Assert.assertEquals(1, searchResults.size()); assertThat(searchResults.get(0).getWord(), is("SALBUTAMOL OR INHALER")); //search phrase with NOT searchResults = conceptService.getConcepts("SALBUTAMOL INHALER NOT", Collections .singletonList(new Locale("en", "US")), false, null, null, null, null, null, null, null); Assert.assertEquals(1, searchResults.size()); assertThat(searchResults.get(0).getWord(), is("SALBUTAMOL INHALER NOT")); } }
/** * @see ConceptService#getConcepts(String,List,boolean,List,List,List,List,Concept,Integer,Integer) */ @Test public void getConcepts_shouldFindConceptByFullCode() { //given String code1 = "CD41003"; String code2 = "7345693"; Concept concept = conceptService.getConceptByMapping(code2, "SNOMED CT"); //when List<ConceptSearchResult> concepts1 = conceptService.getConcepts(code1, Collections.singletonList(Context.getLocale()), false, null, null, null, null, null, null, null); List<ConceptSearchResult> concepts2 = conceptService.getConcepts(code2, Collections.singletonList(Context.getLocale()), false, null, null, null, null, null, null, null); //then assertThat(concepts1, contains(hasConcept(is(concept)))); assertThat(concepts2, contains(hasConcept(is(concept)))); }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldReturnConceptsWithSpecifiedClasses() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); List<ConceptClass> classes = new ArrayList<>(); classes.add(Context.getConceptService().getConceptClassByName("Finding")); classes.add(Context.getConceptService().getConceptClassByName("LabSet")); List<ConceptSearchResult> searchResults = conceptService.getConcepts(null, null, false, classes, null, null, null, null, null, null); Assert.assertEquals(2, searchResults.size()); }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldReturnASearchResultForPhraseWithStopWords() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); conceptService.saveConceptStopWord(new ConceptStopWord("OF", Locale.US)); List<ConceptSearchResult> searchResults = conceptService.getConcepts("tuberculosis of knee", Collections .singletonList(new Locale("en", "US")), false, null, null, null, null, null, null, null); Assert.assertEquals(1, searchResults.size()); Assert.assertEquals("Tuberculosis of Knee", searchResults.get(0).getConceptName().getName()); }
/** * @see ConceptService#getConcepts(String, List, boolean, List, List, List, List, Concept, Integer, Integer) */ @Test public void getConcepts_shouldExcludeSpecifiedClassesFromTheSearchResults() { executeDataSet("org/openmrs/api/include/ConceptServiceTest-names.xml"); List<ConceptClass> classes = new ArrayList<>(); classes.add(Context.getConceptService().getConceptClassByName("Finding")); classes.add(Context.getConceptService().getConceptClassByName("LabSet")); List<ConceptClass> excludeClasses = new ArrayList<>(); excludeClasses.add(Context.getConceptService().getConceptClassByName("Finding")); List<ConceptSearchResult> searchResults = conceptService.getConcepts(null, null, false, classes, excludeClasses, null, null, null, null, null); Assert.assertEquals(1, searchResults.size()); }
/** * @see ConceptService#getConcepts(String,List,boolean,List,List,List,List,Concept,Integer,Integer) */ @Test public void getConcepts_shouldReturnPreferredNamesHigher() { Concept hivProgram = conceptService.getConceptByName("hiv program"); ConceptName synonym = new ConceptName("synonym", Context.getLocale()); hivProgram.addName(synonym); conceptService.saveConcept(hivProgram); Concept mdrTbProgram = conceptService.getConceptByName("mdr-tb program"); synonym = new ConceptName("synonym", Context.getLocale()); synonym.setLocalePreferred(true); mdrTbProgram.addName(synonym); conceptService.saveConcept(mdrTbProgram); updateSearchIndex(); List<ConceptSearchResult> concepts = conceptService.getConcepts("synonym", null, false, null, null, null, null, null, null, null); assertThat(concepts, contains(hasConcept(is(mdrTbProgram)), hasConcept(is(hivProgram)))); }
@Override public SimpleObject search(RequestContext context) throws ResponseException { String query = context.getParameter("q"); List<ConceptClass> conceptClasses = null; String[] classUuids = context.getRequest().getParameterValues("conceptClasses"); if (classUuids != null) { for (String uuid : classUuids) { if (conceptClasses == null) { conceptClasses = new ArrayList<ConceptClass>(); } ConceptClass cc = (ConceptClass) ConversionUtil.convert(uuid, ConceptClass.class); if (cc != null) { conceptClasses.add(cc); } } } List<Locale> locales = new ArrayList<Locale>(); locales.add(Context.getLocale()); return new NeedsPaging<ConceptSearchResult>(Context.getConceptService().getConcepts(query, locales, context.getIncludeAll(), conceptClasses, null, null, null, null, context.getStartIndex(), context.getLimit()), context).toSimpleObject(this); }
locales.add(Context.getLocale()); return new NeedsPaging<ConceptSearchResult>(Context.getConceptService().getConcepts(query, locales, context.getIncludeAll(), conceptClasses, null, null, null, null, context.getStartIndex(), context.getLimit()), context).toSimpleObject(this);