3
É4à[T  ã               @   s   d Z ddlZG dd„ dƒZdS )z”
Anthropometry class contains all parameters related to the measurement of the
size and proportions of the human body.

@author: Vertigo BioSystems
é    Nc               @   sà   e Zd Zdd„ Zedd„ ƒZejdd„ ƒZedd„ ƒZejdd„ ƒZed	d
„ ƒZejdd
„ ƒZedd„ ƒZ	e	jdd„ ƒZ	edd„ ƒZ
e
jdd„ ƒZ
edd„ ƒZejdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!S )"ÚAnthropometryc             C   s(   d | _ d | _d | _d | _d | _d | _d S )N)ÚageÚweightÚheightÚsexÚwaistÚhip)Úself© r
   úX/var/www/vitahealth/hygea.vitahealth/riskmap/src/vbs_riskmap/healthinfo/Anthropometry.pyÚ__init__   s    zAnthropometry.__init__c             C   s   | j S )zage in years)Ú_Anthropometry__age)r	   r
   r
   r   r      s    zAnthropometry.agec             C   s
   || _ dS )zage in yearsN)r   )r	   r   r
   r
   r   r      s    c             C   s   | j S )Úkg)Ú_Anthropometry__weight)r	   r
   r
   r   r   "   s    zAnthropometry.weightc             C   s
   || _ dS )r   N)r   )r	   r   r
   r
   r   r   '   s    c             C   s   | j S )Úcm)Ú_Anthropometry__height)r	   r
   r
   r   r   ,   s    zAnthropometry.heightc             C   s
   || _ dS )r   N)r   )r	   r   r
   r
   r   r   1   s    c             C   s   | j S )zF (female), M (male))Ú_Anthropometry__sex)r	   r
   r
   r   r   6   s    zAnthropometry.sexc             C   s"   |dks|dkr|| _ nd| _ dS )zF (female), M (male)ÚFÚMN)r   )r	   r   r
   r
   r   r   ;   s    c             C   s   | j S )r   )Ú_Anthropometry__waist)r	   r
   r
   r   r   C   s    zAnthropometry.waistc             C   s
   || _ dS )r   N)r   )r	   r   r
   r
   r   r   H   s    c             C   s   | j S )r   )Ú_Anthropometry__hip)r	   r
   r
   r   r   M   s    zAnthropometry.hipc             C   s
   || _ dS )r   N)r   )r	   r   r
   r
   r   r   R   s    c             C   sV   |j dƒ| _|j dƒ| _|j dƒ| _|j dƒ| _|j dƒ| _|j dƒ| _tjdƒ dS )	zM
        Sets the input parameters in the anthropometry attributes.

        r   r   r   r   r   r   zANTHROPOMETRY parameters ended.N)	Úgetr   r   r   r   r   r   ÚloggingÚinfo)r	   Úparamsr
   r
   r   Ú
set_paramsW   s    zAnthropometry.set_paramsc             C   sŽ   | j dk	r†| jdk	r†| jdk	r†| jdk	r†| j dkrTdd| j  d| j  d| j  S | j dkr|d| j d	| j  | jd
  S tdƒ‚ndS dS )z¬
        This method calculates the resting energy expenditure.

        Inputs: age (years), weight (kg), height (cm)
        Outputs: resting energy expenditure

        Nr   g      P@gffffff+@é   gffffff@r   g333333#@gš™™™™Ù4@éd   z"Sex must be M (male) or F (female)g33333sL@)r   r   r   r   Ú
ValueError)r	   r
   r
   r   Úresting_energy_expendituree   s    	
"

z(Anthropometry.resting_energy_expenditurec             C   s   dS )z]
        Calculates the total energy expenditure.

        Inputs:
        Outputs:

        Nr
   )r	   r
   r
   r   Útotal_energy_expenditure}   s    	z&Anthropometry.total_energy_expenditurec             C   s0   | j dk	r(| jdk	r(| j | jd d  S dS dS )zo
        Calculates BMI (IMC) index.

        Inputs: weight (kg), height (cm).
        Outputs: BMI.

        Nr   é   )r   r   )r	   r
   r
   r   Úbmiˆ   s    zAnthropometry.bmic             C   s   dS )zU
        Calculates the body composition.

        Inputs:
        Outputs:

        Nr
   )r	   r
   r
   r   Úbody_composition•   s    	zAnthropometry.body_compositionc             C   s(   | j dk	r | jdk	r | j | j S dS dS )zr
        Waist/hip relation.

        Inputs: waist (cm), hip (cm).
        Outputs: waist/hip relation.

        N)r   r   )r	   r
   r
   r   Ú	waist_hip    s    zAnthropometry.waist_hipN)Ú__name__Ú
__module__Ú__qualname__r   Úpropertyr   Úsetterr   r   r   r   r   r   r   r    r"   r#   r$   r
   r
   r
   r   r      s&   
r   )Ú__doc__r   r   r
   r
   r
   r   Ú<module>   s   