use of org.openmrs.ConceptClass in project openmrs-core by openmrs.
the class ConceptServiceImpl method getConceptClassesOfOrderTypes.
private List<ConceptClass> getConceptClassesOfOrderTypes() {
List<ConceptClass> mappedClasses = new ArrayList<>();
AdministrationService administrationService = Context.getAdministrationService();
List<List<Object>> result = administrationService.executeSQL("SELECT DISTINCT concept_class_id FROM order_type_class_map", true);
for (List<Object> temp : result) {
for (Object value : temp) {
if (value != null) {
mappedClasses.add(this.getConceptClass((Integer) value));
}
}
}
return mappedClasses;
}
use of org.openmrs.ConceptClass in project openmrs-core by openmrs.
the class ConceptServiceTest method saveConcept_shouldSaveAConceptNumericAsAConcept.
/**
* @see ConceptService#saveConcept(Concept)
*/
@Test
public void saveConcept_shouldSaveAConceptNumericAsAConcept() {
executeDataSet(INITIAL_CONCEPTS_XML);
// This will automatically add the given locale to the list of allowed locales
Context.setLocale(Locale.US);
// this tests saving a previously conceptnumeric as just a concept
Concept c2 = new Concept(2);
ConceptName cn = new ConceptName("not a numeric anymore", Locale.US);
c2.addName(cn);
c2.addDescription(new ConceptDescription("some description", null));
c2.setDatatype(new ConceptDatatype(3));
c2.setConceptClass(new ConceptClass(1));
conceptService.saveConcept(c2);
Concept secondConcept = conceptService.getConcept(2);
// this will probably still be a ConceptNumeric object. what to do about that?
// revisit this problem when discriminators are in place
// assertFalse(secondConcept instanceof ConceptNumeric);
// this shouldn't think its a conceptnumeric object though
assertFalse(secondConcept.isNumeric());
assertEquals("not a numeric anymore", secondConcept.getName(Locale.US).getName());
}
use of org.openmrs.ConceptClass in project openmrs-core by openmrs.
the class ConceptServiceTest method saveConcept_shouldSaveNonConceptNumericObjectAsConceptNumeric.
/**
* @see ConceptService#saveConcept(Concept)
*/
@Test
public void saveConcept_shouldSaveNonConceptNumericObjectAsConceptNumeric() {
executeDataSet(INITIAL_CONCEPTS_XML);
// this tests saving a current concept as a newly changed conceptnumeric
// assumes there is already a concept in the database
// with a concept id of #1
ConceptNumeric cn = new ConceptNumeric(1);
cn.setDatatype(new ConceptDatatype(1));
cn.setConceptClass(new ConceptClass(1));
cn.addName(new ConceptName("a new conceptnumeric", Locale.US));
cn.addDescription(new ConceptDescription("some description", null));
cn.setHiAbsolute(20.0);
conceptService.saveConcept(cn);
Concept firstConcept = conceptService.getConceptNumeric(1);
firstConcept.addDescription(new ConceptDescription("some description", null));
assertEquals("a new conceptnumeric", firstConcept.getName(Locale.US).getName());
assertTrue(firstConcept instanceof ConceptNumeric);
ConceptNumeric firstConceptNumeric = (ConceptNumeric) firstConcept;
assertEquals(20.0, firstConceptNumeric.getHiAbsolute(), 0);
}
use of org.openmrs.ConceptClass in project openmrs-core by openmrs.
the class ConceptServiceImplTest method saveConcept_shouldSetDefaultPreferredNameToASynonymSecond.
/**
* @see ConceptServiceImpl#saveConcept(Concept)
* returns null, saveConcept chooses one. The default first choice is the fully
* specified name in the locale. The default second choice is a synonym in the locale.
*/
@Test
public void saveConcept_shouldSetDefaultPreferredNameToASynonymSecond() {
Locale loc = new Locale("fr", "CA");
Locale otherLocale = new Locale("en", "US");
// Create a fully specified name, but for another locale
// so the Concept passes validation
ConceptName fullySpecifiedName = new ConceptName("fully specified", otherLocale);
// be explicit for test case
fullySpecifiedName.setConceptNameType(ConceptNameType.FULLY_SPECIFIED);
ConceptName shortName = new ConceptName("short name", loc);
// be explicit for test case
shortName.setConceptNameType(ConceptNameType.SHORT);
ConceptName synonym = new ConceptName("synonym", loc);
// synonyms are id'd by a null type
synonym.setConceptNameType(null);
ConceptName indexTerm = new ConceptName("indexTerm", loc);
// synonyms are id'd by a null type
indexTerm.setConceptNameType(ConceptNameType.INDEX_TERM);
Concept c = new Concept();
HashSet<ConceptName> allNames = new HashSet<>(4);
allNames.add(indexTerm);
allNames.add(fullySpecifiedName);
allNames.add(synonym);
c.setNames(allNames);
c.addDescription(new ConceptDescription("some description", null));
c.setDatatype(new ConceptDatatype(1));
c.setConceptClass(new ConceptClass(1));
assertNull("check test assumption - the API hasn't promoted a name to a fully specified name", c.getFullySpecifiedName(loc));
Context.getConceptService().saveConcept(c);
assertNotNull("there's a preferred name", c.getPreferredName(loc));
assertTrue("name was explicitly marked preferred", c.getPreferredName(loc).isPreferred());
assertEquals("name matches", c.getPreferredName(loc).getName(), synonym.getName());
assertEquals("fully specified name unchanged", c.getPreferredName(otherLocale).getName(), fullySpecifiedName.getName());
}
use of org.openmrs.ConceptClass in project openmrs-core by openmrs.
the class ConceptServiceImplTest method saveConcept_shouldReturnTheConceptWithSameConceptIDIfUpdatingExistingConcept.
/**
* @see ConceptServiceImpl#saveConcept(Concept)
*/
@Test
public void saveConcept_shouldReturnTheConceptWithSameConceptIDIfUpdatingExistingConcept() {
Concept c = new Concept();
ConceptName fullySpecifiedName = new ConceptName("requires one name min", new Locale("fr", "CA"));
c.addName(fullySpecifiedName);
c.addDescription(new ConceptDescription("some description", null));
c.setDatatype(new ConceptDatatype(1));
c.setConceptClass(new ConceptClass(1));
Concept savedC = Context.getConceptService().saveConcept(c);
assertNotNull(savedC);
Concept updatedC = Context.getConceptService().saveConcept(c);
assertNotNull(updatedC);
assertEquals(updatedC.getConceptId(), savedC.getConceptId());
}
Aggregations