@Test public void testController_createdProperPriorDiagnoses() throws Exception { EncounterDiagnosesFragmentController controller = new EncounterDiagnosesFragmentController(); ConceptName specificName = new ConceptName("Specific Name", Context.getLocale()); specificName.setId(1); specificName.setLocalePreferred(true); Concept conceptForSpecificName = new Concept(); conceptForSpecificName.setId(2); conceptForSpecificName.addName(specificName); Concept nonSpecificConcept = new Concept(); nonSpecificConcept.setId(3); ConceptName nonSpecificConceptName = new ConceptName("Non-specific concept", Context.getLocale()); nonSpecificConceptName.setId(4); nonSpecificConceptName.setLocalePreferred(true); nonSpecificConcept.addName(nonSpecificConceptName); List<Diagnosis> diagnoses = new ArrayList<Diagnosis>(); diagnoses.add(new Diagnosis(new CodedOrFreeTextAnswer(specificName), Diagnosis.Order.PRIMARY)); diagnoses.add( new Diagnosis(new CodedOrFreeTextAnswer(nonSpecificConcept), Diagnosis.Order.SECONDARY)); diagnoses.add( new Diagnosis(new CodedOrFreeTextAnswer("Unknown Disease"), Diagnosis.Order.SECONDARY)); for (Diagnosis d : diagnoses) { d.setExistingObs(new Obs()); } FragmentModel model = new FragmentModel(); controller.controller(new TestUiUtils(), null, diagnoses, model); assertThat(((List<String>) model.getAttribute("jsForExisting")).size(), is(0)); List<String> jsForPrior = (List<String>) model.getAttribute("jsForPrior"); assertThat( jsForPrior.get(0), is( "{ diagnosis: diagnoses.CodedOrFreeTextConceptAnswer({\"word\":null,\"conceptName\":{\"id\":1,\"uuid\":\"" + specificName.getUuid() + "\",\"conceptNameType\":\"FULLY_SPECIFIED\",\"name\":\"Specific Name\"},\"concept\":{\"id\":2,\"uuid\":\"" + conceptForSpecificName.getUuid() + "\",\"conceptMappings\":[],\"preferredName\":\"Specific Name\"}}), confirmed: false, primary: true, existingObs: null }")); assertThat( jsForPrior.get(1), is( "{ diagnosis: diagnoses.CodedOrFreeTextConceptAnswer({\"word\":null,\"conceptName\":null,\"concept\":{\"id\":3,\"uuid\":\"" + nonSpecificConcept.getUuid() + "\",\"conceptMappings\":[],\"preferredName\":\"Non-specific concept\"}}), confirmed: false, primary: false, existingObs: null }")); assertThat( jsForPrior.get(2), is( "{ diagnosis: diagnoses.CodedOrFreeTextConceptAnswer('Unknown Disease'), confirmed: false, primary: false, existingObs: null }")); }
@Override public boolean equals(Object o) { if (o == null || !(o instanceof Diagnosis)) { return false; } Diagnosis other = (Diagnosis) o; return OpenmrsUtil.nullSafeEquals(diagnosis, other.getDiagnosis()) && OpenmrsUtil.nullSafeEquals(order, other.getOrder()) && OpenmrsUtil.nullSafeEquals(certainty, other.getCertainty()); }