Skip to content

Commit

Permalink
OCLOMRS-1074 - Need to import ConceptComplex where appropriate (#92)
Browse files Browse the repository at this point in the history
  • Loading branch information
mseaton authored Nov 23, 2021
1 parent 63fbca1 commit f84ddbe
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@
*/
package org.openmrs.module.openconceptlab.client;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
Expand All @@ -22,6 +17,11 @@
import org.openmrs.ConceptDescription;
import org.openmrs.ConceptName;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

@JsonIgnoreProperties(ignoreUnknown = true)
public class OclConcept {

Expand Down Expand Up @@ -408,6 +408,9 @@ public static class Extras {
@JsonProperty("allow_decimal")
private Boolean allowDecimal;

@JsonProperty("handler")
private String handler;

public Integer getIsSet() {
return isSet;
}
Expand Down Expand Up @@ -472,6 +475,14 @@ public void setUnits(String units) {
this.units = units;
}

public String getHandler() {
return handler;
}

public void setHandler(String handler) {
this.handler = handler;
}

@Deprecated
public Boolean getPrecise() {
return precise;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.openmrs.Concept;
import org.openmrs.ConceptAnswer;
import org.openmrs.ConceptClass;
import org.openmrs.ConceptComplex;
import org.openmrs.ConceptDatatype;
import org.openmrs.ConceptDescription;
import org.openmrs.ConceptMap;
Expand Down Expand Up @@ -190,6 +191,8 @@ public Concept toConcept(CacheService cacheService, OclConcept oclConcept) throw
if (concept == null) {
if (datatype.getUuid().equals(ConceptDatatype.NUMERIC_UUID)) {
concept = new ConceptNumeric();
} else if (datatype.getUuid().equals(ConceptDatatype.COMPLEX_UUID)) {
concept = new ConceptComplex();
} else {
concept = new Concept();
}
Expand All @@ -212,8 +215,14 @@ public Concept toConcept(CacheService cacheService, OclConcept oclConcept) throw

concept.setDatatype(datatype);

if (concept instanceof ConceptComplex) {
ConceptComplex conceptComplex = (ConceptComplex) concept;
conceptComplex.setHandler(extras.getHandler());
}

if (concept instanceof ConceptNumeric) {
ConceptNumeric numeric = (ConceptNumeric) concept;

numeric.setHiAbsolute(extras.getHiAbsolute());
numeric.setHiCritical(extras.getHiCritical());
numeric.setHiNormal(extras.getHiNormal());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.openmrs.Concept;
import org.openmrs.ConceptAnswer;
import org.openmrs.ConceptClass;
import org.openmrs.ConceptComplex;
import org.openmrs.ConceptDatatype;
import org.openmrs.ConceptDescription;
import org.openmrs.ConceptMap;
Expand All @@ -48,6 +49,7 @@
import org.openmrs.module.openconceptlab.client.OclConcept.Name;
import org.openmrs.module.openconceptlab.client.OclMapping;
import org.openmrs.module.openconceptlab.client.OclMapping.MapType;
import org.openmrs.obs.handler.BinaryDataHandler;
import org.openmrs.test.BaseModuleContextSensitiveTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
Expand Down Expand Up @@ -140,6 +142,19 @@ public void importConcept_shouldSaveNewNumericConcept() throws Exception {
assertImportedConceptNumeric(oclConcept);
}

@Test
public void importConcept_shouldSaveNewComplexConcept() {
OclConcept oclConcept = newOclConcept();
oclConcept.setDatatype("Complex");
oclConcept.setExtras(new OclConcept.Extras());
oclConcept.getExtras().setHandler(BinaryDataHandler.class.getSimpleName());
saver.saveConcept(new CacheService(conceptService, oclConceptService), anImport, oclConcept);
Concept concept = assertImported(oclConcept);
assertTrue(concept instanceof ConceptComplex);
ConceptComplex cc = (ConceptComplex) concept;
assertThat(cc.getHandler(), is(oclConcept.getExtras().getHandler()));
}

/**
* @see Saver#saveConcept(CacheService, Import, OclConcept)
* @verifies add new names to concept
Expand Down

0 comments on commit f84ddbe

Please sign in to comment.