/** * * Builds the root column name for the concept from the conceptID * * @param of * @return */ private static String buildColumnHeader(ObsField of){ StringBuilder sb = new StringBuilder(EMPTY); Locale loc = Context.getLocale(); if (of.getQuestion() != null){ //TODO: add fieldId, fieldPart, Page??? sb.append(of.getQuestion().getShortestName(loc, false)); } else if (of.getAnswers().size() == 1){ sb.append(of.getAnswers().get(0).getConcept().getShortestName(loc, false)); } else { throw new RuntimeException("Obs Field has no conceptId, and multiple answers -- this isn't yet supported."); } return sb.toString().replaceAll("\\s", "_").replaceAll("-", "_").toUpperCase(); }
ObsFieldAnswer ans = new ObsFieldAnswer(); ans.setDisplayName(getValueLabel()); ans.setConcept(answerConcept); field.setAnswers(Arrays.asList(ans));
for (int i = 0; i < strDiscAnswerLabels.length; i ++ ){ discOptions.add(new Option( strDiscAnswerLabels[i], discReasons.get(i).getConceptId().toString(),false)); srf.addDiscontinuedReasonAnswer(new ObsFieldAnswer(strDiscAnswerLabels[i].trim(), discReasons.get(i))); srf.addDiscontinuedReasonAnswer(new ObsFieldAnswer(c.getBestName(Context.getLocale()).getName(), c)); srf.addDiscontinuedReasonAnswer(new ObsFieldAnswer(ca.getAnswerConcept().getBestName(Context.getLocale()).getName(), ca.getAnswerConcept()));
for (int i = 0; i < strDiscAnswerLabels.length; i ++ ){ discOptions.add(new Option( strDiscAnswerLabels[i], discReasons.get(i).getConceptId().toString(),false)); dof.addDiscontinuedReasonAnswer(new ObsFieldAnswer(strDiscAnswerLabels[i].trim(), discReasons.get(i))); dof.addDiscontinuedReasonAnswer(new ObsFieldAnswer(c.getName(Context.getLocale()).getName(), c)); dof.addDiscontinuedReasonAnswer(new ObsFieldAnswer(ca.getAnswerConcept().getName(Context.getLocale()).getName(), ca.getAnswerConcept()));
} else if (concepts != null && concepts.size() > 0) { //for concept selects for (int i = 0; i < concepts.size(); i++) { ObsFieldAnswer ans = new ObsFieldAnswer(); ans.setConcept(concepts.get(i)); if (i < conceptLabels.size()) { ans.setDisplayName(conceptLabels.get(i)); ObsFieldAnswer ans = new ObsFieldAnswer(); ans.setDisplayName(getAnswerLabel()); ans.setConcept(answerConcept); field.setAnswers(Arrays.asList(ans)); } else if (conceptAnswers != null) { for (int i = 0; i < conceptAnswers.size(); i++) { ObsFieldAnswer ans = new ObsFieldAnswer(); ans.setConcept(conceptAnswers.get(i)); if (i < answerLabels.size()) { ans.setDisplayName(answerLabels.get(i));
@Test public void shouldAddConceptAnswersDefinedInConceptSet() throws Exception { String htmlform = "<htmlform><obs id=\"obs-id\" conceptId=\"1000\" answerConceptSetIds=\"1004\" labelText=\"Allergy\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); String htmlToDisplay = session.getHtmlToDisplay(); HtmlFormSchema schema = session.getContext().getSchema(); Assert.assertEquals(1, schema.getFields().size()); ObsField field = (ObsField) schema.getFields().get(0); // Expected Concept set = Context.getConceptService().getConcept(1004); List<Concept> setMembers = Context.getConceptService().getConceptsByConceptSet(set); Assert.assertEquals(setMembers.size(), field.getAnswers().size()); for (ObsFieldAnswer answer : field.getAnswers()) { Assert.assertTrue(setMembers.contains(answer.getConcept())); } }
Assert.assertThat(((ObsField) fields.get(2)).getQuestion().getId(), is(1000)); Assert.assertThat(((ObsField) fields.get(2)).getAnswers().size(), is(2)); Assert.assertThat(((ObsField) fields.get(2)).getAnswers().get(0).getConcept().getId(), is(2474)); Assert.assertThat(((ObsField) fields.get(2)).getAnswers().get(1).getConcept().getId(), is(3017));