From 8e4d79a70ebed4844f77d86db5395c44b3f37d1e Mon Sep 17 00:00:00 2001 From: reagan-meant Date: Wed, 30 Oct 2019 13:27:27 +0300 Subject: [PATCH] RA-340 Include results from Proficient Locales when adding diagnosis in visit notes --- .../emrapi/concept/EmrConceptServiceImpl.java | 29 ++++++++++++++++--- .../EmrConceptServiceComponentTest.java | 21 ++++++++++---- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/emrapi/concept/EmrConceptServiceImpl.java b/api/src/main/java/org/openmrs/module/emrapi/concept/EmrConceptServiceImpl.java index 598f227dd..39437b376 100644 --- a/api/src/main/java/org/openmrs/module/emrapi/concept/EmrConceptServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/emrapi/concept/EmrConceptServiceImpl.java @@ -22,14 +22,19 @@ import org.openmrs.ConceptSearchResult; import org.openmrs.ConceptSource; import org.openmrs.api.ConceptService; +import org.openmrs.api.context.Context; import org.openmrs.api.impl.BaseOpenmrsService; import org.openmrs.module.emrapi.EmrApiProperties; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -102,10 +107,26 @@ public Concept getConcept(String mappingOrUuid) { @Override public List conceptSearch(String query, Locale locale, Collection classes, Collection inSets, Collection sources, Integer limit) { - if (limit == null) { - limit = 100; - } - return dao.conceptSearch(query, locale, classes, inSets, sources, limit); + List csr=new ArrayList(); + if (limit == null) { + limit = 100; + } + Setlocales=new LinkedHashSet(); + List allLocales=Context.getAdministrationService().getSearchLocales(); + locales.add(locale); + for(Locale l:allLocales) { + locales.add(l); + + } + if(locales!=null) { + for(Locale proficientlocale:locales) { + List profconceptSearchResults=dao.conceptSearch(query, proficientlocale, classes, inSets, sources, limit); + if(profconceptSearchResults!=null) { + csr.addAll(profconceptSearchResults); + } + } + } + return csr; } } diff --git a/api/src/test/java/org/openmrs/module/emrapi/concept/EmrConceptServiceComponentTest.java b/api/src/test/java/org/openmrs/module/emrapi/concept/EmrConceptServiceComponentTest.java index f45c23eb1..8c2f439f4 100644 --- a/api/src/test/java/org/openmrs/module/emrapi/concept/EmrConceptServiceComponentTest.java +++ b/api/src/test/java/org/openmrs/module/emrapi/concept/EmrConceptServiceComponentTest.java @@ -112,11 +112,22 @@ public void testConceptSearchInAnotherLocale() throws Exception { ConceptClass diagnosis = conceptService.getConceptClassByName("Diagnosis"); List searchResults = emrConceptService.conceptSearch("malaria", Locale.FRENCH, Collections.singleton(diagnosis), null, null, null); - ConceptSearchResult firstResult = searchResults.get(0); - - assertThat(searchResults.size(), is(1)); - assertThat(firstResult.getConcept(), is(concepts.get("cerebral malaria"))); - assertThat(firstResult.getConceptName().getName(), is("Malaria célébrale")); + /* Result in proficient_Locale are included which is en in this case + */ + assertThat(searchResults.size(), is(3)); + + ConceptSearchResult firstResult = searchResults.get(0); + ConceptSearchResult secondResult = searchResults.get(1); + ConceptSearchResult thirdResult = searchResults.get(2); + + assertThat(firstResult.getConcept(), is(concepts.get("cerebral malaria"))); + assertThat(firstResult.getConceptName().getName(), is("Malaria célébrale")); + + assertThat(secondResult.getConcept(), is(concepts.get("malaria"))); + assertThat(secondResult.getConceptName().getName(), is("Malaria")); + + assertThat(thirdResult.getConcept(), is(concepts.get("cerebral malaria"))); + assertThat(thirdResult.getConceptName().getName(), is("Cerebral Malaria")); } @Test