diff --git a/reference-data/api/src/main/java/org/bahmni/module/referencedata/labconcepts/mapper/ConceptExtension.java b/reference-data/api/src/main/java/org/bahmni/module/referencedata/labconcepts/mapper/ConceptExtension.java index 9d92ec5ef..657d7f4a1 100644 --- a/reference-data/api/src/main/java/org/bahmni/module/referencedata/labconcepts/mapper/ConceptExtension.java +++ b/reference-data/api/src/main/java/org/bahmni/module/referencedata/labconcepts/mapper/ConceptExtension.java @@ -102,13 +102,21 @@ private static boolean isFullySpecifiedName(ConceptName conceptName) { return ObjectUtils.equals(conceptName.getConceptNameType(), ConceptNameType.FULLY_SPECIFIED); } + private static boolean containsClassName(String conceptClassName, List classNames){ + for (String className : classNames) { + if (className.equalsIgnoreCase(conceptClassName)) { + return true; + } + } + return false; + } public static boolean isOfConceptClass(Concept concept, String conceptClassName) { return concept.getConceptClass() != null && concept.getConceptClass().getName() != null && concept.getConceptClass().getName().equals(conceptClassName); } public static boolean isOfAnyConceptClass(Concept concept, List conceptClassNames) { - return concept.getConceptClass() != null && concept.getConceptClass().getName() != null && conceptClassNames.contains(concept.getConceptClass().getName()); + return concept.getConceptClass() != null && concept.getConceptClass().getName() != null && containsClassName(concept.getConceptClass().getName(),conceptClassNames); } public static boolean isOfConceptClassByUUID(Concept concept, String conceptClassUUID) { diff --git a/reference-data/omod/src/test/java/org/bahmni/module/referencedata/labconcepts/model/event/LabTestEventTest.java b/reference-data/omod/src/test/java/org/bahmni/module/referencedata/labconcepts/model/event/LabTestEventTest.java index 4b61d6e9f..bd489ac4b 100644 --- a/reference-data/omod/src/test/java/org/bahmni/module/referencedata/labconcepts/model/event/LabTestEventTest.java +++ b/reference-data/omod/src/test/java/org/bahmni/module/referencedata/labconcepts/model/event/LabTestEventTest.java @@ -80,6 +80,17 @@ public void createEventForTestEventIfConceptClassIsLabTestOrTest() throws Except assertEquals(eventForTestConceptClass.getCategory(), ConceptServiceEventFactory.LAB); } + @Test + public void shouldCreateEventForCaseInsensitiveConceptClassMatches() throws Exception { + Concept conceptWithClassLabTest = new ConceptBuilder().withClass("LabTest").withUUID(LAB_TEST_CONCEPT_UUID).build(); + Concept conceptWithClasslabtest = new ConceptBuilder().withClass("labtest").withUUID("9b11d2d1-c7ea-40f7-8616-be9bec4c6b98").build(); + Event eventForLabTestConceptClass = new Operation(ConceptService.class.getMethod("saveConcept", Concept.class)).apply(new Object[]{conceptWithClassLabTest}).get(0); + Event eventForlabtestConceptClass = new Operation(ConceptService.class.getMethod("saveConcept", Concept.class)).apply(new Object[]{conceptWithClasslabtest}).get(0); + assertNotNull(eventForLabTestConceptClass); + assertNotNull(eventForlabtestConceptClass); + + } + @Test public void shouldNotCreateEventForTestEventIfThereIsDifferentConceptClass() throws Exception { conceptWithLabTestClass = new ConceptBuilder().withClassUUID("some").withClass("some").withUUID(TEST_CONCEPT_UUID).build();