package org.openehr.am.template;
import org.openehr.am.archetype.constraintmodel.ArchetypeConstraint;
public class SectionEvaluationTest extends TemplateTestBase {
/**
* Verify flattened section with a single evaluation
*
* @throws Exception
*/
public void testSectionWithSingleEvaluation() throws Exception {
flattenTemplate("test_section_evaluation.oet");
// section level
ac = flattened.node("/");
assertSectionConstraint(ac);
ac = flattened.node("/name/value");
assertCStringWithSingleValue(ac, "section header");
// evaluation level
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']");
assertEvaluationConstraint(ac);
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']/name/value");
assertCStringWithSingleValue(ac, "evaluation header");
// insider newly embedded evaluation
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']/data[at0001]");
assertItemTreeConstraint(ac);
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']/data[at0001]" +
"/items[at0002]");
assertElementConstraint(ac);
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']/data[at0001]" +
"/items[at0005]");
assertElementConstraint(ac);
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']/data[at0001]" +
"/items[at0003]");
assertElementConstraint(ac);
}
/**
* Verify flattened section with two evaluations
*
* @throws Exception
*/
public void testSectionWithTwoEvaluations() throws Exception {
flattenTemplate("test_section_evaluation2.oet");
// section level
ac = flattened.node("/");
assertSectionConstraint(ac);
ac = flattened.node("/name/value");
assertCStringWithSingleValue(ac, "section header");
// first evaluation
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation one']");
assertEvaluationConstraint(ac);
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation one']/name/value");
assertCStringWithSingleValue(ac, "evaluation one");
// second evaluation
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation two']");
assertEvaluationConstraint(ac);
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation two']/name/value");
assertCStringWithSingleValue(ac, "evaluation two");
// insider 1st evaluation
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation one']/data[at0001]");
assertItemTreeConstraint(ac);
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation one']/data[at0001]/items[at0002]");
assertElementConstraint(ac);
// insider 2nd evaluation
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation two']/data[at0001]");
assertItemTreeConstraint(ac);
ac = flattened.node("/items" +
"[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation two']/data[at0001]/items[at0002]");
assertElementConstraint(ac);
}
public void testNestedSectionWithEvaluation() throws Exception {
template = loadTemplate("test_nested_section_evaluation.oet");
flattened = flattener.toFlattenedArchetype(template, archetypeMap);
// section level one
ac = flattened.node("/");
assertSectionConstraint(ac);
ac = flattened.node("/name/value");
assertCStringWithSingleValue(ac, "section level one");
// section level two
ac = flattened.node("/items[openEHR-EHR-SECTION.ad_hoc_heading.v1" +
" and name/value='section level two']");
assertSectionConstraint(ac);
ac = flattened.node("/items[openEHR-EHR-SECTION.ad_hoc_heading.v1" +
" and name/value='section level two']/name/value");
assertCStringWithSingleValue(ac, "section level two");
// evaluation level
ac = flattened.node("/items[openEHR-EHR-SECTION.ad_hoc_heading.v1" +
" and name/value='section level two']" +
"/items[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']");
assertEvaluationConstraint(ac);
ac = flattened.node("/items[openEHR-EHR-SECTION.ad_hoc_heading.v1" +
" and name/value='section level two']" +
"/items[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']/name/value");
assertCStringWithSingleValue(ac, "evaluation header");
// insider newly embedded evaluation
ac = flattened.node("/items[openEHR-EHR-SECTION.ad_hoc_heading.v1" +
" and name/value='section level two']" +
"/items[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']/data[at0001]");
assertItemTreeConstraint(ac);
ac = flattened.node("/items[openEHR-EHR-SECTION.ad_hoc_heading.v1" +
" and name/value='section level two']" +
"/items[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']" +
"/data[at0001]/items[at0002]");
assertElementConstraint(ac);
ac = flattened.node("/items[openEHR-EHR-SECTION.ad_hoc_heading.v1" +
" and name/value='section level two']" +
"/items[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']" +
"/data[at0001]/items[at0005]");
assertElementConstraint(ac);
ac = flattened.node("/items[openEHR-EHR-SECTION.ad_hoc_heading.v1" +
" and name/value='section level two']" +
"/items[openEHR-EHR-EVALUATION.structured_summary.v1" +
" and name/value='evaluation header']" +
"/data[at0001]/items[at0003]");
assertElementConstraint(ac);
}
ArchetypeConstraint ac;
}