All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ibm.fhir.model.annotation.Binding Maven / Gradle / Ivy

/*
 * (C) Copyright IBM Corp. 2019, 2021
 *
 * SPDX-License-Identifier: Apache-2.0
 */

package com.ibm.fhir.model.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.ibm.fhir.model.type.code.BindingStrength;

/**
 * Used to annotate coded elements that are bound to a value set.
 */
@Target({ ElementType.FIELD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface Binding {
    /**
     * A name that can be used for code generation when generating named enumerations for the binding.
     *
     * @return the binding name
     */
    String bindingName() default "";

    /**
     * Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the
     * provided value set must be adhered to in the instances.
     *
     * @return the binding strength
     */
    BindingStrength.Value strength();

    /**
     * Describes the intended use of this particular set of codes.
     *
     * @return the description
     */
    String description() default "";

    /**
     * Refers to the value set that identifies the set of codes the binding refers to.
     *
     * @return the value set
     */
    String valueSet() default "";

    /**
     * A reference to an extensible value set specified in a parent profile in order to allow a conformance checking tool
     * to validate that a code not in the extensible value set of the profile is not violating rules defined by parent
     * profile bindings.
     *
     * @return the inherited extensible value set
     */
    String inheritedExtensibleValueSet() default "";

    /**
     * The minimum allowable value set, for use when the binding strength is 'required' or 'extensible'. This value set
     * is the minimum value set that any conformant system SHALL support.
     *
     * @return the minimum allowable value set
     */
    String minValueSet() default "";

    /**
     * The maximum allowable value set, for use when the binding strength is 'extensible' or 'preferred'. This value
     * set is the value set from which additional codes can be taken from. This defines a 'required' binding over the
     * top of the extensible binding.
     *
     * @return the maximum allowable value set
     */
    String maxValueSet() default "";
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy