
    U+i0                     n   d dl mZmZ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mZmZ d dlmZ d dlmZ  ed	d
g      Zej-                  d       ee       ee	      fdededefd       Zej1                  d       ee       ee	      fdedededefd       Zej7                  d       ee       ee	      fdededefd       Zej7                  d       ee       ee	      fdededefd       Zej7                  d      ddd ee       ee	      fdee   dee   dededef
d       Zy)    )	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           	      >  K   	 t        |      }t        | d      r| j                         n| j                         }|j	                  |      }t        |t              rC|j                  d      dk(  r/t        t        j                  d|j                  dd      dd	      S t        t        j                  d
|j                  dd      d|j                  d      id	      S # t        $ r2}t        t        j                  dt        |      dd	      cY d}~S d}~ww xY ww)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          E/var/www/pie360backend.cl/public_html/app/backend/routes/anamnesis.pystore_anamnesisr0      s    
 $'.t\'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           	      H  K   	 t        |      }t        |d      r|j                  d      n|j                  d      }|j	                  | |      }t        |t              rC|j                  d      dk(  r/t        t        j                  d|j                  dd      d	d
      S t        t        j                  d|j                  dd      d|j                  d      id
      S # t        $ r2}t        t        j                  dt        |      d	d
      cY d	}~S d	}~ww xY ww)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?l8S$//t/4Y]YbYbptYbYug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                   K   	 t        |      }|j                  |       }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      dd      S t        t        j                  d	d
|d      S # t        $ r2}t        t        j                  dt        |      dd      cY d}~S d}~ww xY ww)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A.B 2C3B C	C'CCCCCz/student/{student_id}c                   K   	 t        |      }|j                  |       }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      dd      S t        t        j                  d	d
|d      S # t        $ r2}t        t        j                  dt        |      dd      cY d}~S d}~ww xY ww)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                   K   	 t        |      }|j                  | ||      }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      dd	      S t        t        j                  d
d|d	      S # t        $ r2}t        t        j                  dt        |      dd	      cY d}~S d}~ww xY ww)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     
 $JTHUfd#

8(<(G"AA!%zz)5PQ   **1
 	
  
==q6
 	

sA   CA1B 5C6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postr0   putintr9   r%   rA   rE   rK        r/   <module>rZ      s   . . * > * > Y Y  "
	
  &&=>&/%

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

&
 &
 		&
 "&
R !" &&=>&/$
$
$
 	$
 #$
N &' &&=>&/$
$
$
 	$
 ($
N w $%&=>&/&
&

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

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