
    i4                     |   S SK JrJrJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJrJrJrJr  S SKJr  S SKJr  \" S	S
/S9r\R-                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R1                  S5      \" \5      \" \	5      4S\S\S\S\4S jj5       r\R7                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R7                  S5      \" \5      \" \	5      4S\S\S\4S jj5       r\R7                  S5      SSS\" \5      \" \	5      4S\\   S\\   S\S\S\4
S jj5       rg)    )	APIRouterstatusDepends)JSONResponse)AnamnesisClass)get_db)get_current_active_user)	UserLoginStoreAnamnesisUpdateAnamnesisAnamnesisList)Optional)Sessionz
/anamnesis	Anamnesis)prefixtagsz/storedatasession_userdbc           	      D  #     [        U5      n[        U S5      (       a  U R                  5       OU R                  5       nUR	                  U5      n[        U[        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      SS.S	9$ [        [        R                  S
UR                  SS5      SUR                  S5      0S.S	9$ ! [         a/  n[        [        R                  S[        U5      SS.S	9s SnA$ SnAff = f7f)z?Crea una nueva anamnesis (documento tipo 3) para un estudiante.
model_dumpr   errori  messagezError al guardar anamnesisNr   r   r   status_codecontent   zAnamnesis creada correctamenteid  )r   hasattrr   dictstore
isinstancegetr   r   HTTP_400_BAD_REQUESTHTTP_201_CREATED	ExceptionHTTP_500_INTERNAL_SERVER_ERRORstr)r   r   r   servicepayloadresultes          OC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\anamnesis.pystore_anamnesisr0      s    
 $'.t\'B'B$//#		w'fd##

8(<(G"77!%zz)5QR   //!::i1QRvzz$/0
 	
  
==q6
 	

sA   D B"C$ &D '<C$ #D $
D.$DDD DD z/{anamnesis_id}anamnesis_idc           	      @  #     [        U5      n[        US5      (       a  UR                  SS9OUR                  SS9nUR	                  X5      n[        U[        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S	S
.S9$ [        [        R                  SUR                  SS5      SUR                  S5      0S
.S9$ ! [         a/  n[        [        R                  S[        U5      S	S
.S9s S	nA$ S	nAff = f7f)z"Actualiza una anamnesis existente.r   T)exclude_noner   r     r   zAnamnesis no encontradaNr   r      z#Anamnesis actualizada correctamenter   r    )r   r!   r   r"   updater$   r%   r   r   HTTP_404_NOT_FOUNDHTTP_200_OKr(   r)   r*   )r1   r   r   r   r+   r,   r-   r.   s           r/   update_anamnesisr9   9   s    
 $8?l8S8S$//t/4Y]YbYbptYbYu6fd##

8(<(G"55!%zz)5NO   **!::i1VWvzz$/0
 	
  
==q6
 	

sA   DB C" $D%<C" !D"
D,$DDDDDz/id/{student_id}
student_idc                   #     [        U5      nUR                  U 5      n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS.S9$ [        [        R                  S	S
US.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f7f)u   Obtiene la anamnesis más reciente de un estudiante por student_id (incluye informantes, entrevistadores y miembros del hogar).r   r   r4   r   .   No se encontró anamnesis para este estudianteNr   r   r5   Anamnesis encontradar    r   get_by_student_idr$   r"   r%   r   r   r7   r8   r(   r)   r*   r:   r   r   r+   r-   r.   s         r/   get_anamnesis_by_student_idrA   c        
 $**:6fd##

8(<(G"55!%zz)5ef   **1
 	
  
==q6
 	

A   CA1B 5C6B C
C$C CCCCz/student/{student_id}c                   #     [        U5      nUR                  U 5      n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS.S9$ [        [        R                  S	S
US.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f7f)uC   Obtiene la anamnesis más reciente de un estudiante por student_id.r   r   r4   r   r<   Nr   r   r5   r=   r    r>   r@   s         r/   get_anamnesis_by_studentrE      rB   rC   z/listN
   pageper_pagec                   #     [        U5      nUR                  XUS9n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS.S	9$ [        [        R                  S
SUS.S	9$ ! [         a/  n[        [        R                  S[        U5      SS.S	9s SnA$ SnAff = f7f)zBLista anamnesis; opcionalmente filtrada por student_id y paginada.)r:   rG   rH   r   r   r    r   zError al listar anamnesisNr   r   r5   zListado de anamnesis)r   get_allr$   r"   r%   r   r   r)   r8   r(   r*   )r:   rG   rH   r   r   r+   r-   r.   s           r/   list_anamnesisrK      s     
 $JHUfd##

8(<(G"AA!%zz)5PQ   **1
 	
  
==q6
 	

sA   CA0B 4C5B C
C
$C?C
 CC

C)fastapir   r   r   fastapi.responsesr   #app.backend.classes.anamnesis_classr   app.backend.db.databaser   app.backend.auth.auth_userr	   app.backend.schemasr
   r   r   r   typingr   sqlalchemy.ormr   anamnesis_routerpostr0   putintr9   r%   rA   rE   rK        r/   <module>rZ      s   . . * > * > Y Y  "
 
 x  &&=>&/%

%
%
 	%
 !%
P '( &&=>&/	&
&

&
 &
 		&
 )&
R () &&=>&/$
$
$
 	$
 *$
N -. &&=>&/$
$
$
 	$
 /$
N g $%&=>&/&
&

3-&
 &
 	&

 	&
 &
rY   