<reponame>imranq2/SparkAutoMapper.FHIR
from __future__ import annotations
from typing import Optional, TYPE_CHECKING

from spark_auto_mapper_fhir.fhir_types.list import FhirList
from spark_auto_mapper_fhir.fhir_types.integer import FhirInteger
from spark_auto_mapper_fhir.fhir_types.string import FhirString
from spark_auto_mapper_fhir.extensions.extension_base import ExtensionBase

from spark_auto_mapper_fhir.base_types.fhir_backbone_element_base import (
    FhirBackboneElementBase,
)

if TYPE_CHECKING:
    pass
    # id_ (string)
    # extension (Extension)
    # modifierExtension (Extension)
    # customaryUnit (CodeableConcept)
    from spark_auto_mapper_fhir.complex_types.codeable_concept import CodeableConcept

    # End Import for References for customaryUnit
    # Import for CodeableConcept for customaryUnit
    from spark_auto_mapper_fhir.value_sets.ucum_codes import UCUMCodesCode

    # End Import for CodeableConcept for customaryUnit
    # unit (CodeableConcept)
    # End Import for References for unit
    # Import for CodeableConcept for unit
    # End Import for CodeableConcept for unit
    # conversionFactor (decimal)
    from spark_auto_mapper_fhir.fhir_types.decimal import FhirDecimal

    # decimalPrecision (integer)


# This file is auto-generated by generate_classes so do not edit manually
# noinspection PyPep8Naming
class ObservationDefinitionQuantitativeDetails(FhirBackboneElementBase):
    """
    ObservationDefinition.QuantitativeDetails
        Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.
    """

    # noinspection PyPep8Naming
    def __init__(
        self,
        *,
        id_: Optional[FhirString] = None,
        extension: Optional[FhirList[ExtensionBase]] = None,
        modifierExtension: Optional[FhirList[ExtensionBase]] = None,
        customaryUnit: Optional[CodeableConcept[UCUMCodesCode]] = None,
        unit: Optional[CodeableConcept[UCUMCodesCode]] = None,
        conversionFactor: Optional[FhirDecimal] = None,
        decimalPrecision: Optional[FhirInteger] = None,
    ) -> None:
        """
            Set of definitional characteristics for a kind of observation or measurement
        produced or consumed by an orderable health care service.

            :param id_: None
            :param extension: May be used to represent additional information that is not part of the basic
        definition of the element. To make the use of extensions safe and manageable,
        there is a strict set of governance  applied to the definition and use of
        extensions. Though any implementer can define an extension, there is a set of
        requirements that SHALL be met as part of the definition of the extension.
            :param modifierExtension: May be used to represent additional information that is not part of the basic
        definition of the element and that modifies the understanding of the element
        in which it is contained and/or the understanding of the containing element's
        descendants. Usually modifier elements provide negation or qualification. To
        make the use of extensions safe and manageable, there is a strict set of
        governance applied to the definition and use of extensions. Though any
        implementer can define an extension, there is a set of requirements that SHALL
        be met as part of the definition of the extension. Applications processing a
        resource are required to check for modifier extensions.

        Modifier extensions SHALL NOT change the meaning of any elements on Resource
        or DomainResource (including cannot change the meaning of modifierExtension
        itself).
            :param customaryUnit: Customary unit used to report quantitative results of observations conforming
        to this ObservationDefinition.
            :param unit: SI unit used to report quantitative results of observations conforming to this
        ObservationDefinition.
            :param conversionFactor: Factor for converting value expressed with SI unit to value expressed with
        customary unit.
            :param decimalPrecision: Number of digits after decimal separator when the results of such observations
        are of type Quantity.
        """
        super().__init__(
            id_=id_,
            extension=extension,
            modifierExtension=modifierExtension,
            customaryUnit=customaryUnit,
            unit=unit,
            conversionFactor=conversionFactor,
            decimalPrecision=decimalPrecision,
        )

from __future__ import annotations
from typing import Optional, TYPE_CHECKING

from spark_auto_mapper_fhir.fhir_types.list import FhirList
from spark_auto_mapper_fhir.fhir_types.integer import FhirInteger
from spark_auto_mapper_fhir.fhir_types.string import FhirString
from spark_auto_mapper_fhir.extensions.extension_base import ExtensionBase

from spark_auto_mapper_fhir.base_types.fhir_backbone_element_base import (
    FhirBackboneElementBase,
)

if TYPE_CHECKING:
    pass
    # id_ (string)
    # extension (Extension)
    # modifierExtension (Extension)
    # customaryUnit (CodeableConcept)
    from spark_auto_mapper_fhir.complex_types.codeable_concept import CodeableConcept

    # End Import for References for customaryUnit
    # Import for CodeableConcept for customaryUnit
    from spark_auto_mapper_fhir.value_sets.ucum_codes import UCUMCodesCode

    # End Import for CodeableConcept for customaryUnit
    # unit (CodeableConcept)
    # End Import for References for unit
    # Import for CodeableConcept for unit
    # End Import for CodeableConcept for unit
    # conversionFactor (decimal)
    from spark_auto_mapper_fhir.fhir_types.decimal import FhirDecimal

    # decimalPrecision (integer)


# This file is auto-generated by generate_classes so do not edit manually
# noinspection PyPep8Naming
class ObservationDefinitionQuantitativeDetails(FhirBackboneElementBase):
    """
    ObservationDefinition.QuantitativeDetails
        Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.
    """

    # noinspection PyPep8Naming
    def __init__(
        self,
        *,
        id_: Optional[FhirString] = None,
        extension: Optional[FhirList[ExtensionBase]] = None,
        modifierExtension: Optional[FhirList[ExtensionBase]] = None,
        customaryUnit: Optional[CodeableConcept[UCUMCodesCode]] = None,
        unit: Optional[CodeableConcept[UCUMCodesCode]] = None,
        conversionFactor: Optional[FhirDecimal] = None,
        decimalPrecision: Optional[FhirInteger] = None,
    ) -> None:
        """
            Set of definitional characteristics for a kind of observation or measurement
        produced or consumed by an orderable health care service.

            :param id_: None
            :param extension: May be used to represent additional information that is not part of the basic
        definition of the element. To make the use of extensions safe and manageable,
        there is a strict set of governance  applied to the definition and use of
        extensions. Though any implementer can define an extension, there is a set of
        requirements that SHALL be met as part of the definition of the extension.
            :param modifierExtension: May be used to represent additional information that is not part of the basic
        definition of the element and that modifies the understanding of the element
        in which it is contained and/or the understanding of the containing element's
        descendants. Usually modifier elements provide negation or qualification. To
        make the use of extensions safe and manageable, there is a strict set of
        governance applied to the definition and use of extensions. Though any
        implementer can define an extension, there is a set of requirements that SHALL
        be met as part of the definition of the extension. Applications processing a
        resource are required to check for modifier extensions.

        Modifier extensions SHALL NOT change the meaning of any elements on Resource
        or DomainResource (including cannot change the meaning of modifierExtension
        itself).
            :param customaryUnit: Customary unit used to report quantitative results of observations conforming
        to this ObservationDefinition.
            :param unit: SI unit used to report quantitative results of observations conforming to this
        ObservationDefinition.
            :param conversionFactor: Factor for converting value expressed with SI unit to value expressed with
        customary unit.
            :param decimalPrecision: Number of digits after decimal separator when the results of such observations
        are of type Quantity.
        """
        super().__init__(
            id_=id_,
            extension=extension,
            modifierExtension=modifierExtension,
            customaryUnit=customaryUnit,
            unit=unit,
            conversionFactor=conversionFactor,
            decimalPrecision=decimalPrecision,
        )
# id_ (string) # extension (Extension) # modifierExtension (Extension) # customaryUnit (CodeableConcept) # End Import for References for customaryUnit # Import for CodeableConcept for customaryUnit # End Import for CodeableConcept for customaryUnit # unit (CodeableConcept) # End Import for References for unit # Import for CodeableConcept for unit # End Import for CodeableConcept for unit # conversionFactor (decimal) # decimalPrecision (integer) # This file is auto-generated by generate_classes so do not edit manually # noinspection PyPep8Naming ObservationDefinition.QuantitativeDetails         Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service. # noinspection PyPep8Naming Set of definitional characteristics for a kind of observation or measurement         produced or consumed by an orderable health care service.              :param id_: None             :param extension: May be used to represent additional information that is not part of the basic         definition of the element. To make the use of extensions safe and manageable,         there is a strict set of governance  applied to the definition and use of         extensions. Though any implementer can define an extension, there is a set of         requirements that SHALL be met as part of the definition of the extension.             :param modifierExtension: May be used to represent additional information that is not part of the basic         definition of the element and that modifies the understanding of the element         in which it is contained and/or the understanding of the containing element's         descendants. Usually modifier elements provide negation or qualification. To         make the use of extensions safe and manageable, there is a strict set of         governance applied to the definition and use of extensions. Though any         implementer can define an extension, there is a set of requirements that SHALL         be met as part of the definition of the extension. Applications processing a         resource are required to check for modifier extensions.          Modifier extensions SHALL NOT change the meaning of any elements on Resource         or DomainResource (including cannot change the meaning of modifierExtension         itself).             :param customaryUnit: Customary unit used to report quantitative results of observations conforming         to this ObservationDefinition.             :param unit: SI unit used to report quantitative results of observations conforming to this         ObservationDefinition.             :param conversionFactor: Factor for converting value expressed with SI unit to value expressed with         customary unit.             :param decimalPrecision: Number of digits after decimal separator when the results of such observations         are of type Quantity.