package tr.com.srdc.mdr.core.api.ai; import java.util.List; import tr.com.srdc.mdr.core.model.iso11179.DataElementConceptResource; /** * * A Data Element Concept is a concept that can be represented in the form of a * data element, described independently of any particular representation. A * Data Element Concept may have zero or one Object Class and zero or one * Property. The union of a Property and an Object Class provides significance * beyond either that of the Property or the Object Class. A Data Element * Concept thus has a Definition independent from the Definition of the Object * Class or the Property. * <p> * As an Administered Item, a Data Element Concept carries its own * Administration Record information, allowing it to be identified, named, * defined and optionally classified within a Classification Scheme. A Data * Element Concept may be associated with other Data Element Concepts, via the * Data Element Concept Relationship. The nature of the relationship is * described using the data element concept relationship type description. * <p> * A Data Element Concept may be registered as an Administered Item without * necessarily being associated with any Data Element, but a Data Element * Concept shall be associated with exactly one Conceptual Domain. The * Conceptual Domain specifies all valid Value Meanings of a Data Element * Concept. * * @author anil * */ public interface DataElementConcept extends AdministeredItem { @Override /** * @return the {@link DataElementConceptResource} version this instance. */ DataElementConceptResource asMDRResource(); Property getProperty(); ObjectClass getObjectClass(); String getPropertyQualifier(); String getObjectClassQualifier(); /** * Updates the DataElementConcept's Property with an existing one * * @param property */ void setProperty(Property property); /** * Updates the DataElementConcept's Property with one which will be created * with given parameters * * @param name * @param definition */ void setProperty(String name, String definition); void setObjectClass(ObjectClass objectClass); void setPropertyQualifier(String qualifier); void setObjectClassQualifier(String qualifier); /** * Given a {@link ValueDomain}, create a {@link DataElement} with this * {@link DataElementConcept}. * * @param valueDomain * @return */ DataElement createDataElement(String name, String definition, ValueDomain valueDomain); /** * @return List of all {@link DataElement}s of this Data Element Concept */ List<DataElement> getDataElements(); /** * @return ConceptualDomain of this DataElementConcept */ ConceptualDomain getConceptualDomain(); }