3
4[hA                 @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ G dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZdS )    N)models)User)settings)HttpResponse)get_template)python_2_unicode_compatible)HTMLCSS)RiskMap)utilsc               @   sx   e Zd ZdZejdddZejdddZejdddZ	ejdddZ
ejdddZejddZd	d
 ZG dd dZdS )
SuplementozI
    Representa a cada uno de los productos que se pueden recomendar
       Nombre)
max_lengthverbose_nameT)nullblankz
productos/)	upload_toc             C   s   | j S )N)nombre)self r   H/var/www/vitahealth/hygea.vitahealth/healthbackend/models/suplementos.py__str__#   s    zSuplemento.__str__c               @   s   e Zd ZdgZdS )zSuplemento.Metar   N)__name__
__module____qualname__orderingr   r   r   r   Meta&   s   r   N)r   r   r   __doc__r   	CharFieldr   	TextFieldZpresentacionZmodo_de_empleoZindicacionesZ	contenido
ImageFieldfotor   r   r   r   r   r   r      s   r   c               @   s0   e Zd ZdZejdddZejdZdd Z	dS )	FamiliaSuplementoszC
    Organiza a los Suplemento en familias segun a que afectan
    r   r   )r   r   r   c             C   s   | j S )N)r   )r   r   r   r   r   1   s    zFamiliaSuplementos.__str__N)
r   r   r   r   r   r   r   ManyToManyFieldsuplementosr   r   r   r   r   r#   *   s   
r#   c            w   @   s<  e Zd ZdZddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddguZdd eD Zdd eD Zedd eD ZdZ	e
jdedZe
jdedZe
jddZe
jde	ddZe
jddd dddZe
jddddZe
jddddZe
jddddZe
jdddZe
jdddZe
jdddZe
jdddZdd	 Zd
d Zdd Zdd ZdS (  Recomendacion==<><=>=!=cuestionario.numero_hijos   Número de Hijosintcuestionario.climaterio
Climaterioboolcuestionario.sofocosSofocoscuestionario.cansancio	Cansanciocuestionario.candidiasisCandidiasiscuestionario.cistitisCistitiscuestionario.picores_vaginalesPicores Vaginalescuestionario.perdida_muscular   Pérdida muscularcuestionario.perdida_memoria   Pérdida de memoriacuestionario.perdida_vision   Pérdida de visioncuestionario.nicturiaNicturiacuestionario.edadEdadcuestionario.pesoPesofloatcuestionario.alturaAlturacuestionario.actividad	Actividad(cuestionario.medidas_antropometricas.IMCIMC'cuestionario.medidas_antropometricas.MBMB(cuestionario.medidas_antropometricas.GETGETcuestionario.cintura   Perímetro cinturacuestionario.cadera   Perímetro caderacuestionario.muslo   Perímetro muslocuestionario.masa_grasa
Masa grasacuestionario.masa_magra
Masa magracuestionario.agua_corporalAgua corporalcuestionario.alergiasAlergiascuestionario.intoleranciasIntoleranciascuestionario.medicamentosMedicamentos$cuestionario.alteraciones_analiticasAlteraciones Analiticas'cuestionario.presion_arterial_sistolicaPresion arterial sistolica(cuestionario.presion_arterial_diastolicaPresion arterial diastolicacuestionario.glucosaglucosacuestionario.colesterol_hdlColesterol hdlcuestionario.colesterol_ldlColesterol ldlcuestionario.trigliceridosTrigliceridoscuestionario.colesterol_totalColesterol totalcuestionario.acido_urico   Ácido úricocuestionario.hierroHierrocuestionario.perdida_peso   Objetivo: Pérdida de peso"cuestionario.pruebas_intelectualesObjetivo: Pruebas intelectualescuestionario.pruebas_fisicas   Objetivo: Pruebas físicascuestionario.mejora_sintoma   Objetivo: Mejorar síntoma!cuestionario.mejora_dolor_espaldaObjetivo: mejorar dolor espaldacuestionario.mejora_agotamientoObjetivo: mejorar agotamiento#cuestionario.mejora_dolor_articular Objetivo: mejora dolor articular.cuestionario.mejora_dificultades_respiratorias+Objetivo: mejora dificultades respiratorias+cuestionario.mejora_alteraciones_analiticas(Objetivo: mejora alteraciones analiticas'cuestionario.mejora_razones_emocionales$Objetivo: mejora razones emocionalescuestionario.fumadorFumadorcuestionario.cigarrosNum cigarros al diacuestionario.alcoholAlcoholstrcuestionario.ejercicio	Ejerciciocuestionario.cafesCafescuestionario.comidas_fueraComidas fueracuestionario.dormirDormircuestionario.ph_colesterolPatogia Hereditaria: colesterolcuestionario.ph_diabetesPatogia Hereditaria: diabetes cuestionario.ph_cardiovasculares%Patogia Hereditaria: cardiovascularescuestionario.ph_alzheimerPatogia Hereditaria: alzheimer#cuestionario.ph_artritis_reumatoide(Patogia Hereditaria: artritis_reumatoide!cuestionario.alergia_respiratoriaAlergia respiratoriacuestionario.asmaAsmacuestionario.tos_frecuenteTos frecuente$cuestionario.dificultad_respiratoriaDificultad respiratoriacuestionario.varicesVaricescuestionario.aranas_vasculares   Arañas vascularescuestionario.fragilidad_capilarFragilidad capilar$cuestionario.neuropatias_perifericasNeuropatias perifericascuestionario.moratones	Moratonescuestionario.pesadez_piernasPesadez piernascuestionario.hemorroidesHemorroidescuestionario.digestiones_lentasDigestiones lentascuestionario.estrenimiento   Estreñimientocuestionario.diarreasDiarreascuestionario.gasesGasescuestionario.nauseasNauseascuestionario.ardorArdorcuestionario.acidez_estomacalAcidez estomacalcuestionario.vomitos   Vómitoscuestionario.higado_graso   Hígado graso!cuestionario.perdida_flexibilidad   Pérdida de flexibilidadcuestionario.desgaste_articularDesgaste articular+cuestionario.molestias_manos_articulaciones!Molestias articulaciones de manoscuestionario.retencion_liquidos   Retención líquidoscuestionario.ciclo_menstrualCiclo menstrualcuestionario.afeccion_emocionalAfeccion emocionalcuestionario.cefaleasCefaleascuestionario.somnolenciaSomnolenciacuestionario.irritabilidadIrritabilidad cuestionario.dificultad_urinariaDificultad urinariacuestionario.escozor_urinarioEscozor urinariocuestionario.orina_nocturnaOrina nocturnacuestionario.estriasEstriascuestionario.acneAcnecuestionario.psoriasis	Psoriasiscuestionario.eccemasEccemascuestionario.dermatitis
Dermatitiscuestionario.pigmentacionesPigmentacionescuestionario.piel_seca	Piel secacuestionario.caida_cabelloCaida de cabellocuestionario.migranasMigranascuestionario.vertigos	   Vértigos cuestionario.melancolia_tristezaMelancolia tristezacuestionario.ansiedadAnsiedadcuestionario.preocupacionesPreocupacionescuestionario.depresion
   Depresióncuestionario.palpitacionesPalpitaciones#cuestionario.disforia_irritabilidadDisforia irritabilidad+cuestionario.problemas_personales_laboralesProblemas personales laboralescuestionario.insomnioInsomniocuestionario.despertar_precozDespertar precozcuestionario.sueno_fragmentado   Sueño fragmentadocuestionario.se_levanta_cansadoSe levanta cansadocuestionario.estres   Estréscuestionario.num_intolerancias   Núm. intoleranciasgenderSexoc             C   s   g | ]}|d  qS )r   r   ).0rr   r   r   
<listcomp>   s    zRecomendacion.<listcomp>c             C   s   g | ]}|d  qS )   r   )r  r  r   r   r   r     s    c             C   s   g | ]\}}}||fqS r   r   )r  abcr   r   r   r     s    HombreMujer
Cualquiera   )r   choices
   )r   2   )r   r"  default   zGET Diffz(Valor a sumar sobre el GET para las kcalT)r   r   	help_textr   r   u-   Distribución de hidratos en tanto por ciento)r   r   r   u.   Distribución de proteinas en tanto por cientou+   Distribución de grasas en tanto por ciento)r   r   c             C   sV   | j  }| j}|dkrB|j dkp4|j dkp4|dk}|r>dnd}dj| j | j|S )Nr2   TRUESI1NOz{} {} {})get_campo_typevalorupperformatZget_campo_display	condicion)r   
field_typevaluer   r   r   r      s     zRecomendacion.__str__c             C   s   t jj| j}t j| S )N)r&   CAMPO_FIELDSindexcampoCAMPO_TYPES)r   r4  r   r   r   r,     s    zRecomendacion.get_campo_typec       
      C   s  |}d| j krF| j jd}|}x2|D ]}|dkr6|}q$t||}q$W nt|| j }| j }| j}|dkrrt|}n:|dkr|j dkp|j dkp|dk}n|dkrt|}|d krd	S | jd
kr||k}	nh| jdkr||k}	nT| jdkr||k }	n@| jdkr
||k}	n*| jdkr ||k}	n| jdkr4||k}	| j	rP|	oN|j
 | j	k}	| jrl|	oj|j
 | jk}	| jdkr||	S |	o| j|jkS )N.cuestionarior/   r2   r(  r)  r*  rI   Fz==z!=r(   r)   z<=z>=r   )r5  splitgetattrr,  r-  r/   r.  rI   r0  
edad_desdeage
edad_hastasexor  )
r   pacienter8  objpartsZ
subobjectssubr1  r2  Z	resultador   r   r   evaluar   sL    


"







zRecomendacion.evaluarc             C   s   t jj| jj jddddS )NZsuplemento_idT)flat)Zid__in)r   objectsfilterZsuplementorecomendado_setallvalues_list)r   r   r   r   get_suplementos  s    zRecomendacion.get_suplementosNr'   r'   r(   r(   r)   r)   r*   r*   r+   r+   r,   r,   )rJ  rK  rL  rM  rN  rO  )r-   r.   r/   )r0   r1   r2   )r3   r4   r2   )r5   r6   r2   )r7   r8   r2   )r9   r:   r2   )r;   r<   r2   )r=   r>   r2   )r?   r@   r2   )rA   rB   r2   )rC   rD   r2   )rE   rF   r/   )rG   rH   rI   )rJ   rK   rI   )rL   rM   rI   )rN   rO   rI   )rP   rQ   rI   )rR   rS   rI   )rT   rU   r/   )rV   rW   r/   )rX   rY   r/   )rZ   r[   rI   )r\   r]   rI   )r^   r_   rI   )r`   ra   r2   )rb   rc   r2   )rd   re   r2   )rf   rg   r2   )rh   ri   r/   )rj   rk   r/   )rl   rm   r/   )rn   ro   r/   )rp   rq   r/   )rr   rs   r/   )rt   ru   r/   )rv   rw   r/   )rx   ry   r/   )rz   r{   r2   )r|   r}   r2   )r~   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r/   )r   r   r   )r   r   r   )r   r   r/   )r   r   r/   )r   r   r   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r   r   r2   )r  r  r2   )r   r   r2   )r  r  r2   )r  r  r2   )r  r  r2   )r	  r
  r2   )r  r  r2   )r  r  r2   )r  r  r2   )r  r  r2   )r  r  r/   )r  r  r   r  r  r  r  r   r   )rP  rQ  rR  )r   r   r   ZCONDICION_OPTIONSZ
CAMPO_LISTr3  r6  tupleZCAMPO_OPTIONSZSEXO_OPTIONSr   r   r5  r0  r-  r>  get_diff
FloatFieldhidratos_porcientoproteinas_porcientograsas_porcientoIntegerFieldr;  r=  r    Z	posologiaconsejo_saludr   r,  rC  rI  r   r   r   r   r&   5   s  	4r&   c               @   s@   e Zd ZejdejdZejdejdZejddZ	dd Z
dS )	SuplementoRecomendador&   )	on_deleter   r   )r%  c             C   s   dj | j| jS )Nz{} ({}))r/  
suplemento
puntuacion)r   r   r   r   r     s    zSuplementoRecomendado.__str__N)r   r   r   r   
ForeignKeyCASCADErecomendacionr]  PositiveSmallIntegerFieldr^  r   r   r   r   r   r[    s   r[  c               @   s@   e Zd ZejdejdZejdejdZejddZ	dd Z
dS )	FamiliaRecomendadar&   )r\  r#   r   )r%  c             C   s   dj | j| jS )Nz{} ({}))r/  familia_suplementosr^  )r   r   r   r   r     s    zFamiliaRecomendada.__str__N)r   r   r   r   r_  r`  ra  rd  rb  r^  r   r   r   r   r   rc    s   rc  c               @   sb   e Zd ZejdejdZejddZej	ddddZ
ej	ddddZd	d
 Zdd ZdddZdS ) RecomendacionSuplementosPacienteCuestionario)r\  T)auto_now_addr&   Z+recomendacion_activada_suplementos_paciente)r   related_nameZ&recomendacion_top_suplementos_pacientec             C   s   | j jddjdddS )NF)Zconsejo_salud__isnullrZ  T)rD  )recomendaciones_activadasrF  rH  )r   r   r   r   get_consejos_salud%  s    z3RecomendacionSuplementosPaciente.get_consejos_saludc             C   st   d }| j jddj r(| j jddd }|d krT| jjddj rT| jjddd }|d kr`d S |j|j|j|jfS )NF)Zhidratos_porciento__isnullr   )recomendaciones_toprF  existsri  rT  rV  rW  rX  )r   recr   r   r   get_dieta_recomendada(  s    z6RecomendacionSuplementosPaciente.get_dieta_recomendadaNc             C   s  | j j}d| |d}tjjtjdd|d d}tdj|d }|j	|}g }|j
t||dj	t|gd	 g }	x&|D ]}
x|
jD ]}|	j
| qW qxW |d
 j|	j }|r t|dd}|rd|j d |j d }nd}|jdd}d| d |d< |S |S d S )N
vitahealth)modelodatar?  staticpdfrp  zpdf.cssz%healthbackend/pdf/{}/suplementos.html)stringbase_url)stylesheetsr   zapplication/pdf)content_typezSuplementos para  z.pdfzSuplementos.pdf_z
filename=""zContent-Disposition)r8  r?  ospathjoinr   BASE_DIRr   r/  renderappendr   r	   pagescopy	write_pdfr   
first_name	last_namereplace)r   as_httpresponseru  r?  rq  
report_csstemplatehtml	documents	all_pagesdocp	pdf_finalhttp_responsefilenamer   r   r   to_pdf6  s.    
 
z'RecomendacionSuplementosPaciente.to_pdf)TN)r   r   r   r   OneToOneFieldr`  r8  DateTimeFieldcreatedr$   ri  rk  rj  rn  r  r   r   r   r   re    s   re  )datetimer{  	django.dbr   django.contrib.auth.modelsr   django.confr   django.httpr   django.template.loaderr   django.utils.encodingr   
weasyprintr   r	   riskmapr
   healthbackendr   Modelr   r#   r&   r[  rc  re  r   r   r   r   <module>   s"   
 W		