Skip to content

Commit

Permalink
Merge eea468e into ec0a7fa
Browse files Browse the repository at this point in the history
  • Loading branch information
Arthur236 committed Mar 29, 2018
2 parents ec0a7fa + eea468e commit 286534a
Show file tree
Hide file tree
Showing 5 changed files with 137 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,13 @@ public DelegatingResourceDescription getRepresentationDescription(Representation
DelegatingResourceDescription description = new DelegatingResourceDescription();
description.addProperty("uuid");
description.addProperty("display");
description.addProperty("condition");
description.addProperty("condition", Representation.REF);
description.addProperty("patient", Representation.REF);
description.addProperty("clinicalStatus");
description.addProperty("verificationStatus");
description.addProperty("previousVersion");
description.addProperty("previousVersion", Representation.REF);
description.addProperty("onsetDate");
description.addProperty("endDate");
description.addProperty("voided");
description.addSelfLink();
description.addLink("full", ".?v=" + RestConstants.REPRESENTATION_FULL);
Expand All @@ -65,6 +66,7 @@ public DelegatingResourceDescription getRepresentationDescription(Representation
description.addProperty("verificationStatus");
description.addProperty("previousVersion");
description.addProperty("onsetDate");
description.addProperty("endDate");
description.addProperty("additionalDetail");
description.addProperty("voided");
description.addProperty("auditInfo");
Expand All @@ -89,6 +91,8 @@ public Model getGETModel(Representation rep) {
.property("verificationStatus", new StringProperty())
.property("previousVersion", new StringProperty())
.property("onsetDate", new StringProperty())
.property("endDate", new StringProperty())
.property("additionalDetail", new StringProperty())
.property("voided", new StringProperty());
}
return model;
Expand All @@ -105,7 +109,9 @@ public Model getCREATEModel(Representation rep) {
.property("clinicalStatus", new StringProperty())
.property("verificationStatus", new StringProperty())
.property("previousVersion", new StringProperty())
.property("onsetDate", new StringProperty());
.property("onsetDate", new StringProperty())
.property("endDate", new StringProperty())
.property("additionalDetail", new StringProperty());
}

/**
Expand All @@ -119,6 +125,8 @@ public Model getUPDATEModel(Representation representation) {
.property("verificationStatus", new StringProperty())
.property("previousVersion", new StringProperty())
.property("onsetDate", new StringProperty())
.property("endDate", new StringProperty())
.property("additionalDetail", new StringProperty())
.property("voided", new StringProperty());
}

Expand All @@ -134,6 +142,8 @@ public DelegatingResourceDescription getCreatableProperties() {
description.addProperty("clinicalStatus");
description.addProperty("verificationStatus");
description.addProperty("onsetDate");
description.addProperty("endDate");
description.addProperty("additionalDetail");

return description;
}
Expand All @@ -150,6 +160,8 @@ public DelegatingResourceDescription getUpdatableProperties() {
description.addProperty("clinicalStatus");
description.addProperty("verificationStatus");
description.addProperty("onsetDate");
description.addProperty("endDate");
description.addProperty("additionalDetail");
description.addProperty("voided");

return description;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ public class RestTestConstants2_2 {

public final static String PATIENT_PROGRAM_UUID = "9119b9f8-af3d-4ad8-9e2e-2317c3de91c6";

public final static String CONDITION_UUID = "c804ee60-ecbc-4d70-abda-1e4f6f64e5b5";
public final static String CODED_CONDITION_UUID = "c1d4185b-0364-4978-a635-3165a82a3178";

public final static String NON_CODED_CONDITION_UUID = "d5361660-c917-4aef-adfc-fb2e6138dc07";

public final static String VOIDED_CONDITION_UUID = "2e7563eb-0dca-46c9-8ba3-7c5945f673fc";

public static final String CONDITION_TEST_DATA_XML = "conditionTestDataset.xml";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.web.bind.annotation.RequestMethod;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;

Expand All @@ -42,18 +45,22 @@ public class ConditionController2_2Test extends MainResourceControllerTest {

private Patient patient;

private Concept concept;
private Concept concept1, concept2;

private ConceptName conceptName;
private ConceptName conceptName1, conceptName2;

private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");

@Before
public void before() throws Exception {
executeDataSet(RestTestConstants2_2.CONDITION_TEST_DATA_XML);

this.conditionService = Context.getConditionService();
this.patient = Context.getPatientService().getPatient(2);
this.concept = Context.getConceptService().getConcept(111);
this.conceptName = Context.getConceptService().getConceptName(1111);
this.concept1 = Context.getConceptService().getConcept(111);
this.concept2 = Context.getConceptService().getConcept(112);
this.conceptName1 = Context.getConceptService().getConceptName(1111);
this.conceptName2 = Context.getConceptService().getConceptName(1112);
}

/**
Expand All @@ -69,7 +76,7 @@ public String getURI() {
*/
@Override
public String getUuid() {
return RestTestConstants2_2.CONDITION_UUID;
return RestTestConstants2_2.CODED_CONDITION_UUID;
}

/**
Expand Down Expand Up @@ -125,8 +132,8 @@ public void shouldCreateANonCodedCondition() throws Exception {
@Test
public void shouldCreateACodedCondition() throws Exception {
SimpleObject codedOrFreeText = new SimpleObject();
codedOrFreeText.add("coded", concept.getUuid());
codedOrFreeText.add("specificName", conceptName.getUuid());
codedOrFreeText.add("coded", concept1.getUuid());
codedOrFreeText.add("specificName", conceptName1.getUuid());

SimpleObject conditionSource = new SimpleObject();
conditionSource.add("condition", codedOrFreeText);
Expand Down Expand Up @@ -161,6 +168,87 @@ public void shouldCreateACodedCondition() throws Exception {
Assert.assertNotNull(newConditionSource.get("onsetDate"));
}

@Test
public void shouldUpdateANonCodedCondition() throws Exception {
final String newNonCoded = "Updated non coded condition";
final ConditionClinicalStatus newClinicalStatus = ConditionClinicalStatus.INACTIVE;
final ConditionVerificationStatus newVerificationStatus = ConditionVerificationStatus.PROVISIONAL;
final Date newOnsetDate = new Date();
final Date newEndDate = new Date();
final String newAdditionalDetail = "Some extra details.";

Condition condition = conditionService.getConditionByUuid(RestTestConstants2_2.NON_CODED_CONDITION_UUID);

Assert.assertNotNull(condition);
//sanity checks
Assert.assertFalse(newNonCoded.equalsIgnoreCase(condition.getCondition().getNonCoded()));
Assert.assertFalse(newClinicalStatus.equals(condition.getClinicalStatus()));
Assert.assertFalse(newVerificationStatus.equals(condition.getVerificationStatus()));
Assert.assertFalse(newOnsetDate.equals(condition.getOnsetDate()));
Assert.assertFalse(newEndDate.equals(condition.getEndDate()));
Assert.assertFalse(newAdditionalDetail.equalsIgnoreCase(condition.getAdditionalDetail()));

String json = "{ \"condition\":{\"coded\":null,\"specificName\":null,\"nonCoded\":\"" + newNonCoded
+ "\"},\"clinicalStatus\":\"" + newClinicalStatus
+ "\",\"verificationStatus\":\"" + newVerificationStatus + "\",\"onsetDate\":\""
+ DATE_FORMAT.format(newOnsetDate) + "\",\"endDate\":\"" + DATE_FORMAT.format(newEndDate)
+ "\",\"additionalDetail\":\"" + newAdditionalDetail + "\"}";

handle(newPostRequest(getURI() + "/" + RestTestConstants2_2.NON_CODED_CONDITION_UUID, json));

Condition updatedCondition = conditionService.getConditionByUuid(RestTestConstants2_2.NON_CODED_CONDITION_UUID);

Assert.assertNotNull(updatedCondition);
Assert.assertEquals(newNonCoded, updatedCondition.getCondition().getNonCoded());
Assert.assertEquals(newClinicalStatus, updatedCondition.getClinicalStatus());
Assert.assertEquals(newVerificationStatus, updatedCondition.getVerificationStatus());
Assert.assertEquals(newOnsetDate.toString(), updatedCondition.getOnsetDate().toString());
Assert.assertEquals(newEndDate.toString(), updatedCondition.getEndDate().toString());
Assert.assertEquals(newAdditionalDetail, updatedCondition.getAdditionalDetail());
}

@Test
public void shouldUpdateACodedCondition() throws Exception {
final String newCoded = concept2.getUuid();
final String newSpecificName = conceptName2.getUuid();
final ConditionClinicalStatus newClinicalStatus = ConditionClinicalStatus.INACTIVE;
final ConditionVerificationStatus newVerificationStatus = ConditionVerificationStatus.PROVISIONAL;
final Date newOnsetDate = new Date();
final Date newEndDate = new Date();
final String newAdditionalDetail = "Some extra details.";

Condition condition = conditionService.getConditionByUuid(RestTestConstants2_2.CODED_CONDITION_UUID);

Assert.assertNotNull(condition);
//sanity checks
Assert.assertFalse(newCoded.equalsIgnoreCase(condition.getCondition().getCoded().getUuid()));
Assert.assertFalse(newSpecificName.equalsIgnoreCase(condition.getCondition().getSpecificName().getUuid()));
Assert.assertFalse(newClinicalStatus.equals(condition.getClinicalStatus()));
Assert.assertFalse(newVerificationStatus.equals(condition.getVerificationStatus()));
Assert.assertFalse(newOnsetDate.equals(condition.getOnsetDate()));
Assert.assertFalse(newEndDate.equals(condition.getEndDate()));
Assert.assertFalse(newAdditionalDetail.equalsIgnoreCase(condition.getAdditionalDetail()));

String json = "{\"condition\":{\"coded\":\"" + newCoded + "\",\"specificName\":\"" + newSpecificName
+ "\"},\"clinicalStatus\":\"" + newClinicalStatus
+ "\",\"verificationStatus\":\"" + newVerificationStatus + "\",\"onsetDate\":\""
+ DATE_FORMAT.format(newOnsetDate) + "\",\"endDate\":\"" + DATE_FORMAT.format(newEndDate)
+ "\",\"additionalDetail\":\"" + newAdditionalDetail + "\"}";

handle(newPostRequest(getURI() + "/" + RestTestConstants2_2.CODED_CONDITION_UUID, json));

Condition updatedCondition = conditionService.getConditionByUuid(RestTestConstants2_2.CODED_CONDITION_UUID);

Assert.assertNotNull(updatedCondition);
Assert.assertEquals(newCoded, updatedCondition.getCondition().getCoded().getUuid());
Assert.assertEquals(newSpecificName, updatedCondition.getCondition().getSpecificName().getUuid());
Assert.assertEquals(newClinicalStatus, updatedCondition.getClinicalStatus());
Assert.assertEquals(newVerificationStatus, updatedCondition.getVerificationStatus());
Assert.assertEquals(newOnsetDate.toString(), updatedCondition.getOnsetDate().toString());
Assert.assertEquals(newEndDate.toString(), updatedCondition.getEndDate().toString());
Assert.assertEquals(newAdditionalDetail, updatedCondition.getAdditionalDetail());
}

@Test
public void shouldVoidACondition() throws Exception {
Condition condition = conditionService.getConditionByUuid(getUuid());
Expand All @@ -180,7 +268,7 @@ public void shouldVoidACondition() throws Exception {
@Test
public void shouldUnvoidACondition() throws Exception {

String voidedUuid = "k4n6w9h3-zn9t-9ud4-9d3j-r398ds0ge2f9";
String voidedUuid = RestTestConstants2_2.VOIDED_CONDITION_UUID;

Condition condition = conditionService.getConditionByUuid(voidedUuid);
Assert.assertEquals(true, condition.getVoided());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,33 +41,35 @@ public Condition newObject() {

@Override
public String getDisplayProperty() {
return "";
return "Concept 1";
}

@Override
public String getUuidProperty() {
return RestTestConstants2_2.CONDITION_UUID;
return RestTestConstants2_2.CODED_CONDITION_UUID;
}

@Override
public void validateDefaultRepresentation() throws Exception {
super.validateDefaultRepresentation();
assertPropEquals("condition", getObject().getCondition());
assertPropPresent("condition");
assertPropEquals("clinicalStatus", getObject().getClinicalStatus());
assertPropEquals("verificationStatus", getObject().getVerificationStatus());
assertPropEquals("previousVersion", getObject().getPreviousVersion());
assertPropEquals("onsetDate", getObject().getOnsetDate());
assertPropEquals("endDate", getObject().getEndDate());
assertPropEquals("voided", getObject().getVoided());
}

@Override
public void validateFullRepresentation() throws Exception {
super.validateFullRepresentation();
assertPropEquals("condition", getObject().getCondition());
assertPropPresent("condition");
assertPropEquals("clinicalStatus", getObject().getClinicalStatus());
assertPropEquals("verificationStatus", getObject().getVerificationStatus());
assertPropEquals("previousVersion", getObject().getPreviousVersion());
assertPropEquals("onsetDate", getObject().getOnsetDate());
assertPropEquals("endDate", getObject().getEndDate());
assertPropEquals("additionalDetail", getObject().getAdditionalDetail());
assertPropEquals("voided", getObject().getVoided());
}
Expand Down
22 changes: 15 additions & 7 deletions omod-2.2/src/test/resources/conditionTestDataset.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,24 @@

<dataset>
<concept concept_id="111" retired="true" datatype_id="1" class_id="1" is_set="false" creator="1"
date_created="2004-08-12 00:00:00.0" version="" uuid="c59ddec0-7863-11e3-981f-0800200c9a66"/>
<concept_name concept_id="111" name="mg" concept_name_id="1111" locale="en" creator="1"
date_created="2004-08-12 00:00:00.0" version="" uuid="62a26128-006f-4e77-859b-4aa502e3dd62"/>
<concept concept_id="112" retired="true" datatype_id="1" class_id="1" is_set="false" creator="1"
date_created="2004-08-12 00:00:00.0" version="" uuid="dbe22178-3c4e-446d-9f6e-8b374c40b5e5"/>
<concept_name concept_id="111" name="Concept 1" concept_name_id="1111" locale="en" creator="1"
date_created="2008-08-15 13:52:53.0" concept_name_type="FULLY_SPECIFIED" locale_preferred="1"
voided="false" uuid="cf215350-7863-11e3-981f-0800200c9a66"/>
voided="false" uuid="acdd935c-36bd-4a24-8078-f3a63fbae886"/>
<concept_name concept_id="112" name="Concept 2" concept_name_id="1112" locale="en" creator="1"
date_created="2008-08-15 13:52:53.0" concept_name_type="FULLY_SPECIFIED" locale_preferred="1"
voided="false" uuid="b4129154-cd40-4fd1-ac13-dd9d7cd2cc80"/>
<patient patient_id="2" creator="1" date_created="2005-01-01 00:00:00.0" voided="false" />
<condition condition_id="1" patient_id="2" creator="1"
<condition condition_id="1" patient_id="2" creator="1" condition_coded="111" condition_coded_name="1111"
date_created="2015-01-12 00:00:00" clinical_status="ACTIVE" verification_status="CONFIRMED"
onset_date="2017-01-12 00:00:00" voided="false" uuid="c1d4185b-0364-4978-a635-3165a82a3178"/>
<condition condition_id="2" patient_id="2" creator="1" condition_non_coded="Non coded condition"
date_created="2015-01-12 00:00:00" clinical_status="ACTIVE" verification_status="CONFIRMED"
onset_date="2017-01-12 00:00:00" voided="false" uuid="c804ee60-ecbc-4d70-abda-1e4f6f64e5b5"/>
<condition condition_id="2" patient_id="2" creator="1"
onset_date="2017-01-12 00:00:00" voided="false" uuid="d5361660-c917-4aef-adfc-fb2e6138dc07"/>
<condition condition_id="3" patient_id="2" creator="1" condition_non_coded="Non coded condition 2"
date_created="2015-01-12 00:00:00" clinical_status="ACTIVE" verification_status="CONFIRMED"
onset_date="2017-01-12 00:00:00" voided="true" date_voided="2018-02-23 00:00:00.0" void_reason="Testing void"
uuid="k4n6w9h3-zn9t-9ud4-9d3j-r398ds0ge2f9"/>
uuid="2e7563eb-0dca-46c9-8ba3-7c5945f673fc"/>
</dataset>

0 comments on commit 286534a

Please sign in to comment.