
    7gyi8                     T    S SK JrJr  S SKJr  S SKJrJr  S SKJrJ	r	   " S S5      r
g)    )OptionalAny)Session)datetimedate)HealthEvaluationModelFolderModelc                   t    \ rS rSrS\4S jrS\S\4S jrS\S\4S jr	SS\
\   S\4S
 jjrS\S\4S jrSrg	)HealthEvaluationClass   dbc                     Xl         g Nr   )selfr   s     ]C:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\classes\health_evaluation_class.py__init__HealthEvaluationClass.__init__   s        idreturnc                     U R                   R                  [        5      R                  [        R                  U:H  5      R                  5       nU(       Ga  0 SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _S	UR                  _S
UR                  (       a  UR                  R                  S5      OS_SUR                   _SUR"                  _SUR$                  _SUR&                  _SUR(                  _SUR*                  _SUR,                  _UR.                  UR0                  UR2                  (       a  UR2                  R                  S5      OSUR4                  (       a  UR4                  R                  S5      OSUR6                  UR8                  UR:                  UR<                  (       a  UR<                  R                  S5      OSUR>                  (       a  UR>                  R                  S5      OSS.	E$ SSS.$ ! [@         a  n[C        U5      nSUS.s SnA$ SnAff = f)u-   
Obtiene una evaluación de salud por su ID.
r   
student_id	gender_idnationality_idconsultation_reason_idprofesional_idprocedence_id	full_nameidentification_number	born_date%Y-%m-%dNagenative_languagelanguage_usually_usedconsultation_reason_detail"professional_identification_number professional_registration_numberprofessional_specialty%Y-%m-%d %H:%M:%S	procedence_otherprofessional_contactevaluation_datereevaluation_dategeneral_assessment	diagnosisindications
added_dateupdated_dateerroruB   No se encontraron datos para la evaluación de salud especificada.statusmessage)"r   queryr   filterr   firstr   r   r   r   r   r   r   r    r!   strftimer#   r$   r%   r&   r'   r(   r)   r,   r-   r.   r/   r0   r1   r2   r3   r4   	Exceptionstr)r   r   
evaluationeerror_messages        r   getHealthEvaluationClass.get   sw   '	A'<=DD%((B.eg  *-- *"7"7  !5!5 %j&?&?	
 -j.O.O %j&?&? $Z%=%=  !5!5 ,Z-M-M  jNbNb!5!5!>!>z!Jhl :>> &z'A'A ,Z-M-M 1*2W2W 9*:g:g  7
8c8c!" -j.O.O#$ )3(C(C,6,K,KZdZtZtz'A'A'J'J:'Vz~^h^z^z)E)E)N)Nz)Z  AE*4*G*G!+!5!5#-#9#9YcYnYn*"7"7"@"@AT"Utx]g]t]tJ$;$;$D$DEX$Yz~5 : #*6z{{ 	AFM%-@@	As$   II I 
I/I*$I/*I/r   c                 :    U R                   R                  [        5      R                  [        R                  U:H  5      R                  [        R                  R                  5       5      R                  5       nU(       Ga  0 SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _S	UR                  _S
UR                   (       a  UR                   R#                  S5      OS_SUR$                  _SUR&                  _SUR(                  _SUR*                  _SUR,                  _SUR.                  _SUR0                  _UR2                  UR4                  UR6                  (       a  UR6                  R#                  S5      OSUR8                  (       a  UR8                  R#                  S5      OSUR:                  UR<                  UR>                  UR@                  (       a  UR@                  R#                  S5      OSURB                  (       a  URB                  R#                  S5      OSS.	E$ SSS.$ ! [D         a  n[G        U5      nSUS.s SnA$ SnAff = f)uU   
Obtiene la evaluación de salud más reciente para un estudiante por su student_id.
r   r   r   r   r   r   r   r   r    r!   r"   Nr#   r$   r%   r&   r'   r(   r)   r*   r+   r5   u:   No se encontró evaluación de salud para este estudiante.r6   )$r   r9   r   r:   r   order_byr   descr;   r   r   r   r   r   r   r    r!   r<   r#   r$   r%   r&   r'   r(   r)   r,   r-   r.   r/   r0   r1   r2   r3   r4   r=   r>   )r   r   r?   r@   rA   s        r   get_by_student_id'HealthEvaluationClass.get_by_student_id8   s   '	A'<=DD%00J>h,//4467  *-- *"7"7  !5!5 %j&?&?	
 -j.O.O %j&?&? $Z%=%=  !5!5 ,Z-M-M  jNbNb!5!5!>!>z!Jhl :>> &z'A'A ,Z-M-M 1*2W2W 9*:g:g  7
8c8c!" -j.O.O#$ )3(C(C,6,K,KZdZtZtz'A'A'J'J:'Vz~^h^z^z)E)E)N)Nz)Z  AE*4*G*G!+!5!5#-#9#9YcYnYn*"7"7"@"@AT"Utx]g]t]tJ$;$;$D$DEX$Yz~5 : #*6rss 	AFM%-@@	As$   I.I6 1I6 6
J JJJNc                 Z    U R                   R                  [        5      nUb"  UR                  [        R                  U:H  5      nUR                  [        R                  R                  5       5      R                  5       nU Vs/ s GH  n0 SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _S	UR                  _S
UR                  _SUR                   (       a  UR                   R#                  S5      OS_SUR$                  _SUR&                  _SUR(                  _SUR*                  _SUR,                  _SUR.                  _SUR0                  _UR2                  UR4                  UR6                  (       a  UR6                  R#                  S5      OSUR8                  (       a  UR8                  R#                  S5      OSUR:                  UR<                  UR>                  UR@                  (       a  UR@                  R#                  S5      OSURB                  (       a  URB                  R#                  S5      OSS.	EPGM     sn$ s  snf ! [D         a  nS[G        U5      S.s SnA$ SnAff = f)zX
Obtiene la lista de evaluaciones de salud almacenadas.
Puede filtrarse por student_id.
Nr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r5   r6   )$r   r9   r   r:   r   rE   r   rF   allr   r   r   r   r   r   r    r!   r<   r#   r$   r%   r&   r'   r(   r)   r,   r-   r.   r/   r0   r1   r2   r3   r4   r=   r>   )r   r   r9   evaluationsevalr@   s         r   get_allHealthEvaluationClass.get_alle   s   
,	GGMM"78E%%:%E%E%ST..)>)A)A)F)F)HIMMOK> (;: (D9$'' $//   %d&9&9	
 -d.I.I %d&9&9 $T%7%7   ,T-G-G  !8!8!D\` 488 &t';'; ,T-G-G 1$2Q2Q 9$:a:a  78]8]!" -d.I.I#$ )-(=(=,0,E,ETXThTht';';'D'DZ'PnrX\XnXn)?)?)H)H)Ttx*.*A*A!%#'#3#3SWSbSb$//":":;N"OhlW[WhWhD$5$5$>$>?R$Snr58 (;  @  	!q6 	s1   BJ G;J J J 
J*J%J*%J*evaluation_datac           
      
    SnUR                  S5      (       ak  [        UR                  S5      [        5      (       a6   [        R                  " UR                  S5      S5      R                  5       nOUR                  S5      nSnUR                  S5      (       ak  [        UR                  S5      [        5      (       a6   [        R                  " UR                  S5      S5      R                  5       nOUR                  S5      nSnUR                  S5      (       ak  [        UR                  S5      [        5      (       a6   [        R                  " UR                  S5      S5      R                  5       nOUR                  S5      n[        S%0 SUR                  S5      _SUR                  S5      _SUR                  S5      _S	UR                  S	5      _S
UR                  S
5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SU_SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SU_SU_SUR                  S5      _SUR                  S5      _SUR                  S5      _S[        R                  " 5       _S[        R                  " 5       _6nU R                  R                  U5        U R                  R                  5          SnU R                  R                  [        5      R                  [        R                  UR                  :H  [        R                  U:H  5      R!                  [        R"                  R%                  5       5      R'                  5       nU(       a  UR"                  S-   nOSn[        UR                  UUUR(                  S[        R                  " 5       [        R                  " 5       S9n	U R                  R                  U	5        U R                  R                  5         U R                  R/                  5         U R                  R1                  U5        S"S#UR(                  S$.$ !   Sn GN[= f!   Sn GN= f!   Sn GNi= f! [*         a5  n
U R                  R-                  5         SS [        U
5       3S!.s Sn
A
$ Sn
A
ff = f! [*         a2  nU R                  R-                  5         S[        U5      S!.s SnA$ SnAff = f)&u*   
Almacena una nueva evaluación de salud.
Nr!   r"   r.   r/   r   r   r   r   r   r   r   r    r#   r$   r%   r&   r'   r(   r)   r,   r-   r0   r1   r2   r3   r4         )r   document_id
version_id	detail_idfiler3   r4   r5   z"Error guardando en tabla folders: r6   successu(   Evaluación de salud creada exitosamente)r7   r8   r    )rB   
isinstancer>   r   strptimer   r   nowr   addflushr9   r	   r:   r   rS   rE   rT   rF   r;   r   r=   rollbackcommitrefresh)r   rO   born_date_objevaluation_date_objreevaluation_date_objnew_evaluationrS   last_versionnew_version_id
new_folderfolder_errorr@   s               r   storeHealthEvaluationClass.store   s'   u	 M"";//o11+>DD-(0(9(9/:M:Mk:Z\f(g(l(l(n %4$7$7$DM"&""#455o112CDcJJ3.6.?.?@S@STe@fhr.s.x.x.z+ +:*=*=>O*P'$(!""#677o112EFLL5080A0A/BUBUViBjlv0w0|0|0~- -<,?,?@S,T) 3 *..|<)--k:  /223CD (7':':;S'T	
  /223CD .11/B *--k: '6&9&9:Q&R ( $''. !0 3 34E F '6&9&9:Q&R ,;+>+>?[+\ 4C3F3FGk3l 2A1D1DEg1h  (7':':;S'T!" "1!4!45G!H#$ &5%8%89O%P%& !4'( #8)* $3#6#67K#L+, *--k:-. ,//>/0 $<<>12 &\\^3N8 GGKK'GGMMO$  $ww}}[9@@**n.G.GG++{:  (;116689%%'   %1%<%<q%@N%&N )-88 +-,//'||~!)
 J' GGNNGGOON+ $E$'' G-(,3.2+504-F    "%!CCDUCVW "  	GG!q6 	s   <T9 4S 3AT9 4S# 6AT9 4S- 9G-T9 'D-S7 AT9 S T9 #S*'T9 -S41T9 7
T6*T1+T6,T9 1T66T9 9
U5'U0*U50U5r   r   )__name__
__module____qualname____firstlineno__r   r   intr   rB   rG   r   rM   dictri   __static_attributes__rX   r   r   r   r      sj    7 +Ac +Ac +AZ+AC +AC +AZ1(3- 13 1fyT yc yr   r   N)typingr   r   sqlalchemy.ormr   r   r   app.backend.db.modelsr   r	   r   rX   r   r   <module>ru      s      " # DJ Jr   