package tr.com.srdc.mdr.core.model.iso11179; import java.util.List; import tr.com.srdc.mdr.core.api.ai.DataElementConcept; import tr.com.srdc.mdr.core.model.MDRException; import tr.com.srdc.mdr.core.model.Vocabulary; import tr.com.srdc.mdr.core.model.iso11179.composite.AdministrationRecordResource; import tr.com.srdc.mdr.core.model.iso11179.composite.DataElementConceptRelationshipAssociationResource; /** * A Data Element Concept is a concept that can be represented in the form of a * data element, described independently of any particular representation. * * @author pacaci * @author mert * @author serike * @author alp * @author anil * */ public interface DataElementConceptResource extends AdministeredItemResource, DataElementConcept { /** * Set the {@link AdministrationRecordResource} of this * {@link DataElementConceptResource}. * * @param propertyAdministrationRecord * <br> * An {@link AdministrationRecordResource} of a * {@link DataElementConceptResource}. */ void setAdministrationRecord( AdministrationRecordResource dataElementConceptAdministrationRecord); /** * @return the {@link AdministrationRecordResource} of a * {@link DataElementConceptResource}. * */ AdministrationRecordResource getAdministrationRecord(); /** * Set the {@link Vocabulary#dataElementConceptObjectClass} of this * {@link DataElementConceptResource}. * * @param dataElementConceptObjectClass * <br> * An {@link ObjectClassResource} of a {@link DataElementConceptResource} . */ void setDataElementConceptObjectClass( ObjectClassResource dataElementConceptObjectClass); /** * @return the {@link ObjectClassResource} of a {@link DataElementConceptResource}. * @throws MDRException * */ ObjectClassResource getDataElementConceptObjectClass(); /** * Set the {@link Vocabulary#dataElementConceptProperty} of this * {@link DataElementConceptResource}. * * @param dataElementConceptProperty * <br> * An {@link PropertyResource} of a {@link DataElementConceptResource}. */ void setDataElementConceptProperty(PropertyResource dataElementConceptProperty); /** * @return the {@link PropertyResource} of a {@link DataElementConceptResource}. * */ PropertyResource getDataElementConceptProperty(); /** * Set the {@link Vocabulary#objectClassQualifier} of this * {@link DataElementConceptResource}. * * @param objectClassQualifier */ void setObjectClassQualifier(String objectClassQualifier); /** * @return the {@link Vocabulary#objectClassQualifier} of a * {@link DataElementConceptResource}. * */ String getObjectClassQualifier(); /** * Set the {@link Vocabulary#propertyQualifier} of this * {@link DataElementConceptResource}. * * @param qualifier */ void setPropertyQualifier(String qualifier); /** * @return the {@link Vocabulary#propertyQualifier} of a * {@link DataElementConceptResource}. * */ String getPropertyQualifier(); /** * Set the * {@link Vocabulary#havingDataElementConceptConceptualDomainRelationship} * of this {@link DataElementConceptResource}. * * @param havingDataElementConceptConceptualDomainRelationship */ void setHavingDataElementConceptConceptualDomainRelationship( ConceptualDomainResource havingDataElementConceptConceptualDomainRelationship); /** * @return the * {@link Vocabulary#havingDataElementConceptConceptualDomainRelationship} * of a {@link DataElementConceptResource}. * */ ConceptualDomainResource getHavingDataElementConceptConceptualDomainRelationship(); /** * Adds {@link Vocabulary#expressedByDataElementConceptExpression} property * with given value * * @param submitting * value of * {@link Vocabulary#expressedByDataElementConceptExpression} * property */ void addExpressedByDataElementConceptExpression( DataElementResource expressedByDataElementConceptExpression); /** * * @return {@link List} of * {@link Vocabulary#expressedByDataElementConceptExpression} * property values */ List<DataElementResource> getExpressedByDataElementConceptExpressions() throws MDRException; /** * Removes the {@link Vocabulary#expressedByDataElementConceptExpression} * property with given value * * @param providing * value of * {@link Vocabulary#expressedByDataElementConceptExpression} * property to be removed. */ void removeExpressedByDataElementConceptExpression( DataElementResource expressedByDataElementConceptExpression); /** * Adds {@link Vocabulary#relatedToDataElementConceptRelationship} property * with given value * * @param relatedToDataElementConceptRelationship */ void addRelatedToDataElementConceptRelationship( DataElementConceptRelationshipAssociationResource relatedToDataElementConceptRelationship); /** * Removes {@link Vocabulary#relatedToDataElementConceptRelationship} * property with given value * * @param relatedToDataElementConceptRelationship */ void removeRelatedToDataElementConceptRelationship( DataElementConceptRelationshipAssociationResource relatedToDataElementConceptRelationship); /** * * @return {@link List} of all * {@link Vocabulary#relatedToDataElementConceptRelationship} * property values * @throws MDRException */ List<DataElementConceptRelationshipAssociationResource> getRelatedToDataElementConceptRelationships() throws MDRException; }