Search in sources :

Example 1 with WebTemplateInput

use of org.ehrbase.webtemplate.model.WebTemplateInput in project openEHR_SDK by ehrbase.

the class ClassGenerator method addSimpleField.

private void addSimpleField(ClassGeneratorContext context, TypeSpec.Builder classBuilder, String path, WebTemplateNode endNode) {
    Class<?> clazz = extractClass(endNode);
    if (clazz == null) {
        logger.warn("No class for path {} ", path);
        return;
    }
    ValueSet valueSet = buildValueSet(endNode);
    RmClassGeneratorConfig classGeneratorConfig = configMap.get(clazz);
    if (classGeneratorConfig == null && !clazz.getName().contains("java.lang")) {
        logger.debug("No ClassGenerator for {}", clazz);
    }
    boolean expand = classGeneratorConfig != null && classGeneratorConfig.isExpandField();
    if (endNode.getRmType().equals("DV_CODED_TEXT") && !List.of("transition", "language", "setting", "category", "territory", "math_function", "null_flavour").contains(endNode.getId(false))) {
        expand = expand && endNode.getInputs().stream().filter(i -> i.getType().equals("CODED_TEXT")).map(WebTemplateInput::getList).flatMap(List::stream).findAny().isPresent();
    }
    if (!expand) {
        TypeName className = Optional.ofNullable(clazz).map(ClassName::get).orElse(ClassName.get(Object.class));
        if (endNode.isMulti() && !context.nodeDeque.peek().getRmType().equals("ELEMENT")) {
            className = ParameterizedTypeName.get(ClassName.get(List.class), className);
        }
        addField(context, classBuilder, path, endNode, className, valueSet, false);
    } else {
        Map<String, Field> fieldMap = Arrays.stream(FieldUtils.getAllFields(clazz)).filter(f -> !f.isSynthetic()).collect(Collectors.toMap(Field::getName, f -> f));
        Set<String> expandFields = classGeneratorConfig.getExpandFields();
        expandFields.forEach(fieldName -> addField(context, classBuilder, path + "|" + new SnakeCase(fieldName).camelToSnake(), endNode, ClassName.get(fieldMap.get(fieldName).getType()), valueSet, false));
    }
}
Also used : Arrays(java.util.Arrays) Language(org.ehrbase.client.classgenerator.shareddefinition.Language) Composition(com.nedap.archie.rm.composition.Composition) Modifier(javax.lang.model.element.Modifier) MathFunction(org.ehrbase.client.classgenerator.shareddefinition.MathFunction) VersionUid(org.ehrbase.client.openehrclient.VersionUid) ArchieRMInfoLookup(com.nedap.archie.rminfo.ArchieRMInfoLookup) LoggerFactory(org.slf4j.LoggerFactory) ClassName(com.squareup.javapoet.ClassName) StringUtils(org.apache.commons.lang3.StringUtils) Pair(org.apache.commons.lang3.tuple.Pair) Generated(javax.annotation.processing.Generated) Map(java.util.Map) Category(org.ehrbase.client.classgenerator.shareddefinition.Category) Locatable(com.nedap.archie.rm.archetyped.Locatable) Transition(org.ehrbase.client.classgenerator.shareddefinition.Transition) CodePhrase(com.nedap.archie.rm.datatypes.CodePhrase) RMEntity(org.ehrbase.client.classgenerator.interfaces.RMEntity) Path(org.ehrbase.client.annotations.Path) Entry(com.nedap.archie.rm.composition.Entry) ReflectionHelper(org.ehrbase.util.reflection.ReflectionHelper) IntervalEventEntity(org.ehrbase.client.classgenerator.interfaces.IntervalEventEntity) FilteredWebTemplate(org.ehrbase.webtemplate.model.FilteredWebTemplate) WebTemplateInput(org.ehrbase.webtemplate.model.WebTemplateInput) Set(java.util.Set) Collectors(java.util.stream.Collectors) Template(org.ehrbase.client.annotations.Template) WebTemplateInputValue(org.ehrbase.webtemplate.model.WebTemplateInputValue) List(java.util.List) OffsetDateTime(java.time.OffsetDateTime) Type(java.lang.reflect.Type) TypeName(com.squareup.javapoet.TypeName) Optional(java.util.Optional) WebTemplateNode(org.ehrbase.webtemplate.model.WebTemplateNode) TermDefinition(org.ehrbase.terminology.client.terminology.TermDefinition) Territory(org.ehrbase.client.classgenerator.shareddefinition.Territory) FieldSpec(com.squareup.javapoet.FieldSpec) Id(org.ehrbase.client.annotations.Id) HashMap(java.util.HashMap) Deque(java.util.Deque) CompositionEntity(org.ehrbase.client.classgenerator.interfaces.CompositionEntity) CollectionUtils(org.apache.commons.collections4.CollectionUtils) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) PointEventEntity(org.ehrbase.client.classgenerator.interfaces.PointEventEntity) WebTemplateFilter(org.ehrbase.webtemplate.filter.WebTemplateFilter) SetUtils(org.apache.commons.collections4.SetUtils) FieldUtils(org.apache.commons.lang3.reflect.FieldUtils) OptionFor(org.ehrbase.client.annotations.OptionFor) EntryEntity(org.ehrbase.client.classgenerator.interfaces.EntryEntity) Logger(org.slf4j.Logger) MethodSpec(com.squareup.javapoet.MethodSpec) Walker(org.ehrbase.serialisation.walker.Walker) Archetype(org.ehrbase.client.annotations.Archetype) NullFlavour(org.ehrbase.client.classgenerator.shareddefinition.NullFlavour) ParameterizedTypeName(com.squareup.javapoet.ParameterizedTypeName) TypeSpec(com.squareup.javapoet.TypeSpec) Field(java.lang.reflect.Field) PointEvent(com.nedap.archie.rm.datastructures.PointEvent) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) RmClassGeneratorConfig(org.ehrbase.client.classgenerator.config.RmClassGeneratorConfig) WebTemplate(org.ehrbase.webtemplate.model.WebTemplate) SnakeCase(org.ehrbase.serialisation.util.SnakeCase) FlatPath(org.ehrbase.webtemplate.parser.FlatPath) LocatableEntity(org.ehrbase.client.classgenerator.interfaces.LocatableEntity) AnnotationSpec(com.squareup.javapoet.AnnotationSpec) Entity(org.ehrbase.client.annotations.Entity) Choice(org.ehrbase.client.annotations.Choice) ValueSet(org.ehrbase.terminology.client.terminology.ValueSet) IntervalEvent(com.nedap.archie.rm.datastructures.IntervalEvent) Collections(java.util.Collections) Setting(org.ehrbase.client.classgenerator.shareddefinition.Setting) TypeName(com.squareup.javapoet.TypeName) ParameterizedTypeName(com.squareup.javapoet.ParameterizedTypeName) SnakeCase(org.ehrbase.serialisation.util.SnakeCase) Field(java.lang.reflect.Field) List(java.util.List) ArrayList(java.util.ArrayList) ValueSet(org.ehrbase.terminology.client.terminology.ValueSet) RmClassGeneratorConfig(org.ehrbase.client.classgenerator.config.RmClassGeneratorConfig)

Example 2 with WebTemplateInput

use of org.ehrbase.webtemplate.model.WebTemplateInput in project openEHR_SDK by ehrbase.

the class DvCodedTextRMUnmarshaller method handle.

/**
 * {@inheritDoc}
 */
@Override
public void handle(String currentTerm, DvCodedText rmObject, Map<FlatPathDto, String> currentValues, Context<Map<FlatPathDto, String>> context, Set<String> consumedPaths) {
    setValue(currentTerm, "value", currentValues, rmObject::setValue, String.class, consumedPaths);
    rmObject.setDefiningCode(new CodePhrase());
    setValue(currentTerm, "code", currentValues, c -> rmObject.getDefiningCode().setCodeString(c), String.class, consumedPaths);
    rmObject.getDefiningCode().setTerminologyId(new TerminologyId());
    setValue(currentTerm, "terminology", currentValues, t -> rmObject.getDefiningCode().getTerminologyId().setValue(t), String.class, consumedPaths);
    if (rmObject.getDefiningCode().getCodeString() == null && rmObject.getValue() == null) {
        setValue(currentTerm, null, currentValues, c -> {
            if (c != null) {
                // try to interpret as code
                setFromNode(rmObject, context, v -> Objects.equals(v.getValue(), c));
                if (rmObject.getValue() == null) {
                    // try to interpret as value
                    setFromNode(rmObject, context, v -> Objects.equals(v.getLabel(), c));
                }
            }
        }, String.class, consumedPaths);
    } else if (rmObject.getDefiningCode().getCodeString() == null) {
        setValue(currentTerm, null, currentValues, // It is the code
        c -> rmObject.getDefiningCode().setCodeString(c), String.class, consumedPaths);
    }
    // Set terminology from Node
    Optional.of(context.getNodeDeque().peek().getInputs()).stream().flatMap(List::stream).filter(i -> "code".equals(i.getSuffix())).findAny().map(WebTemplateInput::getTerminology).ifPresent(t -> rmObject.getDefiningCode().getTerminologyId().setValue(t));
    // Set value from Node
    setFromNode(rmObject, context, v -> Objects.equals(v.getValue(), rmObject.getDefiningCode().getCodeString()));
    // set code from value if not set
    if (rmObject.getDefiningCode().getCodeString() == null && rmObject.getValue() != null) {
        setFromNode(rmObject, context, v -> Objects.equals(v.getLabel(), rmObject.getValue()));
    }
    setFromNode(rmObject, context, v -> Objects.equals(v.getValue(), rmObject.getDefiningCode().getCodeString()));
    // consume strange legacy paths
    if (rmObject.getDefiningCode() != null && rmObject.getDefiningCode().getCodeString() != null) {
        currentValues.keySet().stream().map(FlatPathDto::format).filter(k -> StringUtils.substringAfter(k, "|").equals(rmObject.getDefiningCode().getCodeString())).forEach(consumedPaths::add);
    }
    setValue(currentTerm, "formatting", currentValues, rmObject::setFormatting, String.class, consumedPaths);
}
Also used : Context(org.ehrbase.serialisation.walker.Context) WebTemplateInputValue(org.ehrbase.webtemplate.model.WebTemplateInputValue) java.util(java.util) TerminologyId(com.nedap.archie.rm.support.identification.TerminologyId) Predicate(java.util.function.Predicate) WebTemplateInput(org.ehrbase.webtemplate.model.WebTemplateInput) FlatPathDto(org.ehrbase.webtemplate.path.flat.FlatPathDto) DvCodedText(com.nedap.archie.rm.datavalues.DvCodedText) CodePhrase(com.nedap.archie.rm.datatypes.CodePhrase) StringUtils(org.apache.commons.lang3.StringUtils) TerminologyId(com.nedap.archie.rm.support.identification.TerminologyId) CodePhrase(com.nedap.archie.rm.datatypes.CodePhrase) FlatPathDto(org.ehrbase.webtemplate.path.flat.FlatPathDto)

Example 3 with WebTemplateInput

use of org.ehrbase.webtemplate.model.WebTemplateInput in project openEHR_SDK by ehrbase.

the class OPTParserTest method parseAllTypes.

@Test
public void parseAllTypes() throws IOException, XmlException {
    OPERATIONALTEMPLATE template = TemplateDocument.Factory.parse(OperationalTemplateTestData.ALL_TYPES.getStream()).getTemplate();
    OPTParser cut = new OPTParser(template);
    WebTemplate actual = cut.parse();
    actual = new Filter().filter(actual);
    assertThat(actual).isNotNull();
    ObjectMapper objectMapper = new ObjectMapper();
    WebTemplate expected = objectMapper.readValue(IOUtils.toString(WebTemplateTestData.ALL_TYPES.getStream(), StandardCharsets.UTF_8), WebTemplate.class);
    List<WebTemplateNode> dvOrdinalList = actual.getTree().findMatching(n -> n.getRmType().equals("DV_ORDINAL"));
    assertThat(dvOrdinalList).size().isEqualTo(1);
    assertThat(dvOrdinalList.get(0).getInputs()).flatExtracting(WebTemplateInput::getList).extracting(WebTemplateInputValue::getLabel, WebTemplateInputValue::getValue, WebTemplateInputValue::getOrdinal).containsExactlyInAnyOrder(new Tuple("ord1", "at0014", 0), new Tuple("ord1", "at0015", 1), new Tuple("ord3", "at0016", 2));
    List<WebTemplateNode> dvQuantityList = actual.getTree().findMatching(n -> n.getRmType().equals("DV_QUANTITY"));
    assertThat(dvQuantityList).flatExtracting(WebTemplateNode::getInputs).flatExtracting(WebTemplateInput::getList).extracting(WebTemplateInputValue::getLabel, WebTemplateInputValue::getValue).containsExactlyInAnyOrder(new Tuple("mg", "mg"), new Tuple("kg", "kg"), new Tuple("mm[H20]", "mm[H20]"), new Tuple("mm[Hg]", "mm[Hg]"));
    List<WebTemplateNode> dvCodedTextList = actual.getTree().findMatching(n -> n.getRmType().equals("DV_CODED_TEXT"));
    assertThat(dvCodedTextList).flatExtracting(WebTemplateNode::getInputs).extracting(WebTemplateInput::getTerminology, i -> i.getList().stream().map(v -> v.getValue() + ":" + v.getLabel()).collect(Collectors.joining(";"))).containsExactlyInAnyOrder(new Tuple("openehr", "433:event"), new Tuple("local", "at0006:value1;at0007:value2;at0008:value3"), new Tuple("local", ""), new Tuple("local", ""), new Tuple("SNOMED-CT", ""), new Tuple("SNOMED-CT", ""), new Tuple("local", "at0003:Planned;at0004:Active;at0005:Completed"), new Tuple("openehr", "526:planned;245:active;532:completed"), new Tuple(null, ""), new Tuple(null, ""), new Tuple(null, ""), new Tuple(null, ""));
    List<String> errors = compareWebTemplate(actual, expected);
    checkErrors(errors, new String[] { "LocalizedNames not equal [en=active] != [] in inputValue.code:245 id=current_state aql=/content[openEHR-EHR-SECTION.test_all_types.v1]/items[at0001]/items[at0002]/items[openEHR-EHR-ACTION.test_all_types.v1]/ism_transition/current_state", "LocalizedNames not equal [en=completed] != [] in inputValue.code:532 id=current_state aql=/content[openEHR-EHR-SECTION.test_all_types.v1]/items[at0001]/items[at0002]/items[openEHR-EHR-ACTION.test_all_types.v1]/ism_transition/current_state", "LocalizedNames not equal [en=planned] != [] in inputValue.code:526 id=current_state aql=/content[openEHR-EHR-SECTION.test_all_types.v1]/items[at0001]/items[at0002]/items[openEHR-EHR-ACTION.test_all_types.v1]/ism_transition/current_state", "LocalizedDescriptions not equal {en=*} != {} in inputValue.code:at0005 id=careflow_step aql=/content[openEHR-EHR-SECTION.test_all_types.v1]/items[at0001]/items[at0002]/items[openEHR-EHR-ACTION.test_all_types.v1]/ism_transition/careflow_step", "LocalizedDescriptions not equal {en=*} != {} in inputValue.code:at0004 id=careflow_step aql=/content[openEHR-EHR-SECTION.test_all_types.v1]/items[at0001]/items[at0002]/items[openEHR-EHR-ACTION.test_all_types.v1]/ism_transition/careflow_step", "LocalizedDescriptions not equal {en=*} != {} in inputValue.code:at0003 id=careflow_step aql=/content[openEHR-EHR-SECTION.test_all_types.v1]/items[at0001]/items[at0002]/items[openEHR-EHR-ACTION.test_all_types.v1]/ism_transition/careflow_step", "InContext not equal true != null in  id=action_archetype_id aql=/content[openEHR-EHR-SECTION.test_all_types.v1]/items[at0001]/items[at0002]/items[openEHR-EHR-INSTRUCTION.test_all_types.v1]/activities[at0001]/action_archetype_id" });
}
Also used : OPERATIONALTEMPLATE(org.openehr.schemas.v1.OPERATIONALTEMPLATE) Tuple(org.assertj.core.groups.Tuple) java.util(java.util) SoftAssertions(org.assertj.core.api.SoftAssertions) TemplateDocument(org.openehr.schemas.v1.TemplateDocument) OperationalTemplateTestData(org.ehrbase.test_data.operationaltemplate.OperationalTemplateTestData) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) WebTemplateInput(org.ehrbase.webtemplate.model.WebTemplateInput) Test(org.junit.Test) IOException(java.io.IOException) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) CollectionUtils(org.apache.commons.collections4.CollectionUtils) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) StandardCharsets(java.nio.charset.StandardCharsets) WebTemplate(org.ehrbase.webtemplate.model.WebTemplate) IOUtils(org.apache.commons.io.IOUtils) WebTemplateInputValue(org.ehrbase.webtemplate.model.WebTemplateInputValue) XmlException(org.apache.xmlbeans.XmlException) WebTemplateTestData(org.ehrbase.test_data.webtemplate.WebTemplateTestData) WebTemplateNode(org.ehrbase.webtemplate.model.WebTemplateNode) Filter(org.ehrbase.webtemplate.filter.Filter) OPERATIONALTEMPLATE(org.openehr.schemas.v1.OPERATIONALTEMPLATE) WebTemplate(org.ehrbase.webtemplate.model.WebTemplate) Filter(org.ehrbase.webtemplate.filter.Filter) WebTemplateNode(org.ehrbase.webtemplate.model.WebTemplateNode) WebTemplateInput(org.ehrbase.webtemplate.model.WebTemplateInput) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Tuple(org.assertj.core.groups.Tuple) Test(org.junit.Test)

Example 4 with WebTemplateInput

use of org.ehrbase.webtemplate.model.WebTemplateInput in project openEHR_SDK by ehrbase.

the class Filter method mergeDVText.

public static WebTemplateNode mergeDVText(WebTemplateNode node) {
    WebTemplateNode merged = new WebTemplateNode();
    merged.setId("value");
    merged.setName(node.getName());
    merged.setMax(node.getMax());
    merged.setMin(node.getMin());
    merged.setRmType(DV_CODED_TEXT);
    WebTemplateNode codedTextValue = node.findChildById("coded_text_value").orElseThrow();
    merged.getInputs().addAll(codedTextValue.getInputs());
    merged.setAqlPath(codedTextValue.getAqlPath());
    merged.getLocalizedDescriptions().putAll(node.getLocalizedDescriptions());
    merged.getLocalizedNames().putAll(node.getLocalizedNames());
    merged.setLocalizedName(node.getLocalizedName());
    merged.setAnnotations(node.getAnnotations());
    WebTemplateInput other = InputHandler.buildWebTemplateInput("other", "TEXT");
    merged.getInputs().add(other);
    merged.getInputs().stream().filter(i -> Objects.equals(i.getSuffix(), "code")).findAny().ifPresent(i -> i.setListOpen(true));
    return merged;
}
Also used : WebTemplateNode(org.ehrbase.webtemplate.model.WebTemplateNode) WebTemplateInput(org.ehrbase.webtemplate.model.WebTemplateInput)

Example 5 with WebTemplateInput

use of org.ehrbase.webtemplate.model.WebTemplateInput in project openEHR_SDK by ehrbase.

the class StdToCompositionWalker method postHandle.

@Override
protected void postHandle(Context<Map<FlatPathDto, String>> context) {
    super.postHandle(context);
    if (isRaw(context)) {
        handleRaw(context);
    }
    WebTemplateNode currentNode = context.getNodeDeque().peek();
    currentNode.getChildren().forEach(childNode -> {
        // Check for Raw in optional (skipped Nodes)
        if (context.getFlatHelper().skip(childNode, currentNode)) {
            context.getNodeDeque().push(childNode);
            context.getRmObjectDeque().push(new RMObject() {
            });
            String path = context.getFlatHelper().buildNamePath(context, true);
            Map<FlatPathDto, String> subValues = context.getObjectDeque().peek().entrySet().stream().filter(e -> e.getKey().startsWith(path + "/_" + childNode.getId())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
            context.getObjectDeque().push(subValues);
            if (isRaw(context)) {
                handleRaw(context);
            }
            context.getNodeDeque().poll();
            context.getRmObjectDeque().poll();
            context.getObjectDeque().poll();
        }
    });
    List<? extends UnmarshalPostprocessor<? extends RMObject>> postprocessor = findUnmarshalPostprocessors(context.getRmObjectDeque().peek().getClass());
    String namePath = buildNamePathWithElementHandling(context);
    if (Entry.class.isAssignableFrom(context.getRmObjectDeque().peek().getClass())) {
        if (((Entry) context.getRmObjectDeque().peek()).getSubject() instanceof PartyRelated) {
            Optional.ofNullable(context.getNodeDeque().peek()).flatMap(c -> c.findChildById("subject")).flatMap(c -> c.findChildById("relationship")).stream().map(WebTemplateNode::getInputs).flatMap(List::stream).filter(i -> "code".equals(i.getSuffix())).map(WebTemplateInput::getList).map(l -> l.size() == 1 ? l.get(0) : null).filter(Objects::nonNull).findAny().ifPresent(v -> ((PartyRelated) ((Entry) context.getRmObjectDeque().peek()).getSubject()).setRelationship(new DvCodedText(v.getLabel(), new CodePhrase(new TerminologyId("openehr"), v.getValue()))));
        }
    }
    postprocessor.forEach(p -> ((UnmarshalPostprocessor) p).process(namePath, context.getRmObjectDeque().peek(), context.getObjectDeque().peek(), consumedPaths, context));
}
Also used : Composition(com.nedap.archie.rm.composition.Composition) TerminologyId(com.nedap.archie.rm.support.identification.TerminologyId) ToCompositionWalker(org.ehrbase.serialisation.walker.ToCompositionWalker) DefaultRMUnmarshaller(org.ehrbase.serialisation.flatencoding.std.umarshal.rmunmarshaller.DefaultRMUnmarshaller) Element(com.nedap.archie.rm.datastructures.Element) StringUtils(org.apache.commons.lang3.StringUtils) CollectionUtils(org.apache.commons.collections4.CollectionUtils) ArrayList(java.util.ArrayList) WebTemplateSkeletonBuilder(org.ehrbase.building.webtemplateskeletnbuilder.WebTemplateSkeletonBuilder) HashSet(java.util.HashSet) Map(java.util.Map) DvCodedText(com.nedap.archie.rm.datavalues.DvCodedText) CodePhrase(com.nedap.archie.rm.datatypes.CodePhrase) Entry(com.nedap.archie.rm.composition.Entry) UnmarshalPostprocessor(org.ehrbase.serialisation.flatencoding.std.umarshal.postprocessor.UnmarshalPostprocessor) DV_TEXT(org.ehrbase.util.rmconstants.RmConstants.DV_TEXT) Context(org.ehrbase.serialisation.walker.Context) ReflectionHelper(org.ehrbase.util.reflection.ReflectionHelper) ELEMENT(org.ehrbase.util.rmconstants.RmConstants.ELEMENT) CanonicalJson(org.ehrbase.serialisation.jsonencoding.CanonicalJson) DvText(com.nedap.archie.rm.datavalues.DvText) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) WebTemplateInput(org.ehrbase.webtemplate.model.WebTemplateInput) FlatPathDto(org.ehrbase.webtemplate.path.flat.FlatPathDto) Set(java.util.Set) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) DefaultValues(org.ehrbase.serialisation.walker.defaultvalues.DefaultValues) DV_CODED_TEXT(org.ehrbase.util.rmconstants.RmConstants.DV_CODED_TEXT) Collectors(java.util.stream.Collectors) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) UnmarshalException(org.ehrbase.serialisation.exception.UnmarshalException) JacksonUtil(org.ehrbase.serialisation.jsonencoding.JacksonUtil) Objects(java.util.Objects) WebTemplate(org.ehrbase.webtemplate.model.WebTemplate) List(java.util.List) WebTemplateUtils(org.ehrbase.webtemplate.util.WebTemplateUtils) RMObject(com.nedap.archie.rm.RMObject) Optional(java.util.Optional) RMUnmarshaller(org.ehrbase.serialisation.flatencoding.std.umarshal.rmunmarshaller.RMUnmarshaller) NodeId(org.ehrbase.serialisation.walker.NodeId) WebTemplateNode(org.ehrbase.webtemplate.model.WebTemplateNode) PartyRelated(com.nedap.archie.rm.generic.PartyRelated) Collections(java.util.Collections) Filter(org.ehrbase.webtemplate.filter.Filter) TerminologyId(com.nedap.archie.rm.support.identification.TerminologyId) DvCodedText(com.nedap.archie.rm.datavalues.DvCodedText) CodePhrase(com.nedap.archie.rm.datatypes.CodePhrase) WebTemplateNode(org.ehrbase.webtemplate.model.WebTemplateNode) FlatPathDto(org.ehrbase.webtemplate.path.flat.FlatPathDto) WebTemplateInput(org.ehrbase.webtemplate.model.WebTemplateInput) PartyRelated(com.nedap.archie.rm.generic.PartyRelated) Entry(com.nedap.archie.rm.composition.Entry) Objects(java.util.Objects) ArrayList(java.util.ArrayList) List(java.util.List) Map(java.util.Map) RMObject(com.nedap.archie.rm.RMObject)

Aggregations

WebTemplateInput (org.ehrbase.webtemplate.model.WebTemplateInput)8 WebTemplateNode (org.ehrbase.webtemplate.model.WebTemplateNode)7 WebTemplate (org.ehrbase.webtemplate.model.WebTemplate)5 Composition (com.nedap.archie.rm.composition.Composition)4 CodePhrase (com.nedap.archie.rm.datatypes.CodePhrase)4 DvCodedText (com.nedap.archie.rm.datavalues.DvCodedText)4 java.util (java.util)4 Collectors (java.util.stream.Collectors)4 ImmutablePair (org.apache.commons.lang3.tuple.ImmutablePair)4 RMObject (com.nedap.archie.rm.RMObject)3 Locatable (com.nedap.archie.rm.archetyped.Locatable)3 Entry (com.nedap.archie.rm.composition.Entry)3 TerminologyId (com.nedap.archie.rm.support.identification.TerminologyId)3 ArchieRMInfoLookup (com.nedap.archie.rminfo.ArchieRMInfoLookup)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 WebTemplateInputValue (org.ehrbase.webtemplate.model.WebTemplateInputValue)3 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 DvText (com.nedap.archie.rm.datavalues.DvText)2 DvInterval (com.nedap.archie.rm.datavalues.quantity.DvInterval)2