
    V9h                        d dl Z 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 d dlmZ d dlmZ d d	lmZ  ed
e      Z ede      ZdZdZh dZd Zej1                  ddg      d        Zej1                  ddg      d        Zej1                  ddg      d        Zej1                  ddg      ed               Zej1                  ddg      ed               Zej1                  ddg      d        Zej1                  ddg      d        Zej1                  d dg      d!        Z ej1                  d"dg      d#        Z!ej1                  d$dg      d%        Z"y)&    N)	Blueprintrequestjsonify)db)Plak)SelectedPlak)secure_filename)TreatmentPhoto)datetime)token_requiredplak	treatmentzapp/static/treatment_photoszapp/static/uploads>   gifjpgpngjpegc                 `    d| v xr) | j                  dd      d   j                         t        v S )N.   )rsplitlowerALLOWED_EXTENSIONS)filenames    KC:\Users\kuray\Desktop\easyalignerAPI\EasyAligner\app\routes\plak_routes.pyallowed_filer      s7    (? D??3"1%++-1CCD    z/plaks/upload-imagePOST)methodsc                     dt         j                  vrt        ddi      dfS t         j                  d   } | j                  dk(  rt        ddi      dfS | rst	        | j                        r^t        | j                        }t        j                  j                  t        |      }| j                  |       d| }t        d|i      d	fS t        dd
i      dfS )NimagemsgzNo image file in request   zNo selected filez%http://localhost:5000/static/uploads/	image_url   zInvalid file type)r   filesr   r   r   r	   ospathjoinUPLOAD_FOLDER_DOCTORsave)filer   	save_pathr$   s       r   upload_imager.      s    gmm#9:;S@@==!D}}123S88T]]+"4==1GGLL!5x@			);H:F	Y/0#55E./0#55r   z/plaksc                     t        j                         } t        | d   | d   | j                  d      | d         }t        j
                  j                  |       t        j
                  j                          t        ddi      dfS )	Ntitledescriptionr$   	doctor_id)r0   r1   r$   
created_byr!   zPlak created   )	r   get_jsonr   getr   sessionaddcommitr   )datar   s     r   create_plakr;   -   st    D7m'((;'$	D JJNN4JJE>*+S00r   GETc            
          t         j                  j                         } t        | D cg c]1  }|j                  |j
                  |j                  |j                  d3 c}      S c c}w )N)idr0   r1   r$   )r   queryallr   r>   r0   r1   r$   )plaksps     r   get_all_plaksrC   ;   s\    JJNNE  	 $$WW==		
   s   6A%z/limitedc           
      $   	 t         j                  j                  t         j                  j	                               j                  d      j                         }g }|D ]r  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  r|j                  j                         nd d       t t        d|d      dfS # t        $ r#}t        dt!        |      d      dfcY d }~S d }~ww xY w)	N
   )r>   r0   r1   r$   status
created_atsuccessrF   r:   r%   errorrF   message  )r   r?   order_byrG   desclimitr@   appendr>   r0   r1   r$   rF   	isoformatr   	Exceptionstr)current_userrA   
plaks_listr   es        r   get_limited_plaksrX   H   s    

##DOO$8$8$:;AA"EIIK 
 	Dgg#//!^^++=A__doo779RV 	 
   	
  1v
   	s   C C# #	D,D
D
Dz/slidersc           	         	 t         j                  j                  d      j                         }g }|D ]K  }|j	                  |j
                  |j                  |j                  |j                  |j                  d       M |j                  d        t        d|d      dfS # t        $ r#}t        d	t        |      d
      dfcY d }~S d }~ww xY w)NT)	is_slider)r>   r0   r$   rF   orderc                 ,    | d   | d   S t        d      S )Nr[   inf)float)xs    r   <lambda>z"get_plak_sliders.<locals>.<lambda>z   s    aj6L'
 RWX]R^ r   )keyrH   rI   r%   rJ   rK   rM   )r   r?   	filter_byr@   rQ   r>   r0   r$   rF   slider_ordersortr   rS   rT   )rU   sliderssliders_listsliderrW   s        r   get_plak_slidersrh   g   s    **&&&6::<  	Fii#-- --,,! 	 	^_ 
   	
  1v
   	s   B"B% %	C.CCCz/plaks/selectc                      t        j                         } t        | d   | d         }t        j                  j                  |       t        j                  j                          t        ddi      dfS )Nplak_id
patient_id)rj   rk   r!   zPlak selectedr%   )r   r5   r   r   r7   r8   r9   r   )r:   	selections     r   select_plakrm      s`    DY%I JJNN9JJE?+,c11r   z /plaks/selected/<int:patient_id>c           
      V   t         j                  j                  |       j                         }|st	        ddi      dfS |j
                  }t	        |j                  |j                  |j                  |j                  |j                  |j                  j                  d      d      dfS )Nrk   r!   zNo plak selectedi  %Y-%m-%d %H:%M:%S)r>   r0   r1   r$   r3   rG   r%   )r   r?   rb   firstr   r   r>   r0   r1   r$   r3   rG   strftime)rk   rl   r   s      r   get_selected_plakrs      s    "",,
,CIIKI123S88>>Dgg''^^oooo../BC  	 r   z/treatment/uploadc            
          dt         j                  vrt        ddi      dfS t         j                  d   } | j                  dk(  st	        | j                        st        ddi      dfS t         j
                  }t        | j                        }t        j                  j                  t        |      }| j                  |       t        |j                  d      |j                  d      |j                  d	      |j                  d
      |j                  d      t        j                         d|       }t         j"                  j%                  |       t         j"                  j'                          t        ddi      dfS )Nphotor!   zNo photo uploadedr"   r#   zInvalid or missing photor2   rk   rj   r0   notez/static/treatment_photos/)r2   rk   rj   r0   rv   
photo_date
photo_pathz%Treatment photo uploaded successfullyr4   )r   r&   r   r   r   formr	   r'   r(   r)   UPLOAD_FOLDER_TREATMENTr+   r
   r6   r   utcnowr   r7   r8   r9   )r,   r:   r   r-   ru   s        r   upload_treatment_photor|      s)   gmm#234c99==!D}},t}}"=9:;S@@<<Dt}}-H4h?IIIi((;'88L)#hhwXXf??$.xj9E JJNN5JJEBCDcIIr   z*/treatment/photos/patient/<int:patient_id>c           	         t         j                  j                  |       j                  t         j                  j                               j                         }g }|D ]Z  }|j                  |j                  |j                  |j                  |j                  j                  d      |j                  d       \ t        |      dfS )Nro   rp   )r>   r0   rv   rw   rx   r%   )r
   r?   rb   rN   rw   rO   r@   rQ   r>   r0   rv   rr   rx   r   )rk   photosresultru   s       r   get_photos_by_patientr      s    !!++z+BKKNLeLeLjLjLlmqqsFF (([[JJ**334GH**
 	 6?Cr   z(/treatment/photos/doctor/<int:doctor_id>c                    t         j                  j                  |       j                  t         j                  j                               j                         }g }|D ]p  }|j                  |j                  |j                  |j                  |j                  j                  d      |j                  |j                  |j                  d       r t        |      dfS )N)r2   rp   )r>   r0   rv   rw   rx   rk   rj   r%   )r
   r?   rb   rN   rw   rO   r@   rQ   r>   r0   rv   rr   rx   rk   rj   r   )r2   r~   r   ru   s       r   get_photos_by_doctorr      s    !!++i+@II.JcJcJhJhJjkooqFF 	(([[JJ**334GH****}}
 		 6?Cr   )#r'   flaskr   r   r   app.dbr   
app.modelsr   r   werkzeug.utilsr	   appr
   r   app.authr   __name__plak_bptreatment_bprz   r*   r   r   router.   r;   rC   rX   rh   rm   rs   r|   r   r    r   r   <module>r      s   
 - -   # *  %  #
FH
%h/7 + 3 D 	$vh76 86& 	x&*
1 +
1 	x%)	 *	 	zE7+  ,: 	zE7+  ,> 	12 22 	1E7C D" '&:J ;J< 	;eWM  N  	9E7K  L r   