U
    4È¹j,8  ã                !   @   s  d dl Z d dlZd dlmZ d dlZe j e j 	e
¡¡Ze j ed¡Ze j ed¡Ze j ed¡Ze j ed¡Ze j ed¡Ze j ed¡Ze j ed¡Ze j ed¡Zd	d
gZe j ed¡Ze j ed¡Ze e j ed¡¡Ze e j ed¡¡Ze e j ed¡¡Zddddddddddddd d dœZddddddddddddd d dœZdddddddœZdddddddddddddddddddœZdddddddddddddddddddœZ dddddddœZ!d d!d"d#d$d%d&d'd(d)d*œ
Z"d+d,d-d.d/d%d&d0d(d)d*œ
Z#d1d2d3d4d5d6œd7d8d3d4d5d6œd9d:d;d<d5d6œd=d>d;d?d5d6œd@dAd;d5d5d6œdBdCdDd5d5d6œgZ$dEd8dFdGd5d6œdHdId;d<d5d6œd=d>d;d?d5d6œdJdAd;d5d5d6œdBdCdDd5d5d6œgZ%dKdL„ Z&dMdN„ Z'dOdP„ Z(dQdR„ Z)d dTdU„Z*d¡dWdX„Z+dYdZ„ Z,d¢d[d\„Z-d£e.e.d]œd^d_„Z/d`da„ Z0dbdc„ Z1d dl2Z2ddde„ Z3ddfgdfdgdd)gd)d?gd?dggdgdhgdhd(gdiœZ4ddfgdfd)gdfdgdd)gd)d?gd?dggdgdhgdhd(gdjœZ5dkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€d�d‚dƒd„d…d†d‡dˆd‰dŠd‹g!Z6dŒd�dŽd�d�d‘d’d“gZ7d”gZ8d•d–„ Z9d—d˜„ Z:d¤d™dš„Z;d d›l<m=Z= d dl>Z?e=dœd��dždŸ„ ƒZ@dS )¥é    NZbase_file_newZbase_file_en_newZbase_file_cec_newZcompany_imgZbase_file_hospital_newZEBSIZdetailZ173Z174ZfontZ	normativeznormative_eeg_ver2.9_0220.csvznormative_ppg_ver2.9_0220.csvznormative_mini_ver1.2_0401.csvé   é   é   é   é   é   )ZfoggyZmindfulZtalentedZtensezfoggy-tenseÚstableu	   ì•ˆê°œí˜•u	   ì°¨ë¶„í˜•u	   ì˜�ìž¬í˜•u	   ê¸´ìž¥í˜•u   ì•ˆê°œê¸´ìž¥í˜•õ	   ì•ˆì •í˜•Nr   )ZdepreessiveZanxiousz	mind-weakzweak-depressivezweak-anxiousr   u	   ìš°ìš¸í˜•u	   ë¶ˆì•ˆí˜•u	   ì‹¬ì•½í˜•u   ì‹¬ì•½ìš°ìš¸í˜•u   ì‹¬ì•½ë¶ˆì•ˆí˜•r	   Nr   )r   r   r   r   r   r   é   é   é   )Z1_1Z1_2Z1_3Z2_1Z2_2Z2_3Z3_1Z3_2Z3_3Z4_1Z4_2Z4_3Z5_1Z5_2Z5_3Z6_1Z6_2Z6_3é
   é	   )Ú1Ú2Ú3Ú4Ú5Ú6zHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yHTWa8gclxamYwiXzfU0_kvzHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yFG7JOxzMKizBht5QG5BAQ1zHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yGj3htrRbpBXl6US35kizGIzHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yGr-5X6dPUuNnsliBN8GLbIzHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yFfeQkLwEaAXI3nc7UNtT7OzHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yF6wb2gbAJMvpRO5be0mbs0g33333£c@é/   é(   é   )
r   r   r   r   r   r   ÚxÚyÚwÚhzHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yEkV8Llz3LcFUmgmS0vcZhgzHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yGa7_Sem8EdN7hv5EWvyHE8zHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yGHcg573uRk2_a7Cmdnz6d2zHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yE1P30OuC9PpCaTZMr20pOWzHhttps://www.youtube.com/playlist?list=PL6T1gRDLV1yEcsI1XUNEEoiK6cH8rP_tRéZ   z,https://www.bwaveeeg.com/maumgyeol-partners/é$   é÷   é<   é   )Zurlr   r   r   r   z1https://www.bwaveeeg.com/services/maumgyeol-mini/é„   zhttps://www.bwaveeeg.com/é6   g33333q@é4   z(https://www.youtube.com/@bwave_maumgyeolgš™™™™¹]@é   z%https://www.instagram.com/maumgyeol_/g     Pb@zhttps://blog.naver.com/bwaveeeggÍÌÌÌÌœe@gfffffq@z4https://www.bwaveeeg.com/en/services/imindwave-mini/gš™™™™ùn@é=   zhttps://www.bwaveeeg.com/ené8   z$https://www.instagram.com/imindwave/c                 C   s   | | krdS dS d S )NZnoneZdesc© )Znumr'   r'   ú'/var/www/html/bwave/python/directory.pyÚisNaN‚   s    r)   c              
   C   sZ   z&t j | ¡s$t  | ¡ t  | d¡ W n. tk
rT } ztd|  ƒ W 5 d }~X Y nX d S )Niÿ  zError: Creating directory. )ÚosÚpathÚexistsÚmakedirsÚchmodÚOSErrorÚprint)Ú	directoryÚer'   r'   r(   ÚcreateFolderˆ   s    
r3   c                 C   sf   d}t | dd�} t |dd�}t |dd�}| d d |d  |d  }|dkrT|d }t|| dƒ}|S )	Ng2Ç² ]ã–?é   ©Úbaseé   r   é  € é   r   ©ÚintÚround©Zb1Zb2Zb3ÚCZdecir'   r'   r(   ÚtransHex2Deci’   s    r?   c                 C   sf   d}t | dd�} t |dd�}t |dd�}| d d |d  |d  }|dkrT|d }t|| dƒ}|S )	Ng    ž˜?r4   r5   r7   r   r8   r9   r   r:   r=   r'   r'   r(   ÚtransHex2Deci_24ž   s    r@   Fc                 C   sè   dddddg}|dkr$|   d¡d } z¢t| ƒdk rˆt| ƒd	k rDd
} qÄd	t| ƒ  kr\dkrfn nd} qÄdt| ƒ  k r~dk rÄn qÄd} n<|D ]6}t| ƒd t|ƒd kr²t|ƒ} qŒt| ƒdkrŒd} qŒW n tk
râ   tdƒ Y nX | S )Né   é   r   é2   r   Tu   ì„¸r   r   Ú0r$   Ú10Ú15Ú60zError: not adequate age type)Úsplitr;   ÚstrÚ	TypeErrorr0   )ÚageZpngZ	age_rangeÚir'   r'   r(   Ú
age_modifyª   s&    

rM   Úkrc                 C   s.   |dkr*| dkrd} q*| dkr$d} q*| } n | S )NrN   ÚMõ   ë‚¨ÚFõ   ì—¬r'   )ÚsexÚreportLanguager'   r'   r(   Ú
sex_modifyÁ   s    rU   c                 C   s0   | dks| dkrd} n| dks&| dkr,d} n | S )NrO   rP   r   rQ   rR   r   r'   )rS   r'   r'   r(   Úsex_modify_intÍ   s
    rV   c                 C   sô   |dkrˆ|dkrd}nd}| dkr0d| d }qð| dkrFd| d	 }qð| d
kr\d| d }qð| dkrrd| d }qðd| d |  d }nh| dkržd| d }nR| dkr´d| d }n<| d
krÊd| d }n&| dkràd| d }n| d | d }|S )NÚenu   ë‘�ë‡ŒZbrainZmindrD   zThe distribution of z/ health scores for children under 10 years old rE   z% health scores for 10 to 15 year oldsrF   z% health scores for 15 to 19 year oldsrG   z health score for the 60+ groupz health score for the z's groupu-   10ì„¸ ë¯¸ë§Œ(í•™ì „ê¸° ë°� ì´ˆë“± ì €í•™ë…„) u   ê±´ê°•ì§€ìˆ˜ ë¶„í�¬u-   10ì„¸~15ì„¸ (ì´ˆë“± ê³ í•™ë…„ ë°� ì¤‘í•™ìƒ�) u   15ì„¸~19ì„¸ (ê³ ë“±í•™ìƒ�) u   60ëŒ€ ì�´ìƒ� u   ëŒ€ r'   )rK   ÚsignalrT   Útextr'   r'   r(   Údefine_norm_textØ   s.    rZ   ©ZdqrT   c                 C   s>   |dkr|   ¡ } n(| dkr d} n| dkr.d} n| dkr:d} | S )NrW   Zhighu   ìƒ�Zmiddleu   ì¤‘Zlowu   í•˜)Ú
capitalizer[   r'   r'   r(   Ú	change_dq÷   s    
r]   c                 C   sÔ   d}t j | ¡\}}|dks,|dks,|dkr0d}|dksP|dksP|dksP|d	krTd
}|dkr`d}|dksp|dkrtd}|dkr€d}|dkrŒd}|dkrº|  d¡d  d¡d dkr¶d}nd
}|dksÐtd |¡ƒ‚|S )Nr   ZlaxthaZ
laxtha_oldZlinkbandéú   ZsosoZ
compumedicZcrownZfnirsr7   Zcgxiô  Z	neuroscanZegiiè  Zarduinoé½   Zminig      9@Z
light_sosoú/éÿÿÿÿÚ_r   Z02z{} is unsupported device.)r*   r+   ÚsplitextrH   ÚAssertionErrorÚformat)ÚfileÚdeviceÚ
samplefreqrb   Ú	extensionr'   r'   r(   Úcal_samplefreq  s(     rj   c                 C   s’   t j | |¡}t j | |¡}|}t|dƒ}t |¡}t ¡ }tt|j	ƒƒD ]}	| 
|j	|	 ¡ qJ| |¡ t|dƒ}
| |
¡ |
 ¡  | ¡  d S )NZrbÚwb)r*   r+   ÚjoinÚopenÚPyPDF2Z	PdfReaderZ	PdfWriterÚrangeÚlenZpagesZadd_pageZencryptÚwriteÚclose)Ú
RESULT_DIRÚpdf_filenameÚbirthZorgÚnewÚpasswordrf   ÚreaderÚwriterÚpZnew_filer'   r'   r(   Úencrypt_pdf_old   s    




r{   c                 C   sT   t j | |¡}t j | | d¡d ¡}t |¡}tj}|j||||d� | ¡  d S )NZtemp_r   )Z
encryptionZowner_pwZuser_pw)	r*   r+   rl   rH   Úfitzrm   ZPDF_ENCRYPT_AES_256Zsaverr   )rs   rt   rw   Zinput_pdf_pathZoutput_pdf_pathÚdocZencrypt_methr'   r'   r(   Úencrypt_pdf7  s    
r~   é   rA   rB   )Úthetaú	low-alphaú
high-alphaúlow-betaúmiddle-betaú	high-betaÚgamma)r€   Zalphar�   r‚   rƒ   r„   r…   r†   zANS_activity.pngzANS_balance.pngzbrain_activity.pngzbrain_balance.pngzbrain_flexibility.pngzbrain_intelligence.pngzeeg_mean.pngzeeg_norm.pngzeeg_score.pngzfirst_1.jpgzfirst_2.jpgzfirst_3.jpgzfirst_4.jpgzfirst_5.jpgzfirst_6.jpgzfirst_7.jpgzppg_mean.pngzppg_norm.pngzppg_score.pngzpse_depress.pngzpse_unrest.pngzsecond_2.jpgzsecond_3.jpgzsecond_4.jpgzsecond_5.jpgzsecond_6.jpgzself_understanding.pngzstress_index.pngzstress_resistance.pngzthird_2.jpgzthird_4.jpgzthird_5.jpgzfirst_2_1.jpgzeeg_ebsi_radar.pngzfirst_1_ebsi.jpgzfirst_2_ebsi.jpgzfirst_3_ebsi.jpgzfirst_4_ebsi.jpgzppg_ebsi_radar.pngzfirst_8.jpgzfirst_list.jpgzmdd_report.jpgc                  C   s`   dd l } |  d| j¡}|  |d¡}d}|  |¡ |  |dd¡ |  ||¡ |  d¡ |  ¡  d S )Nr   z*C:/Users/bwave/Desktop/bwave_basic/end.jpg)i   iÐ  ÚendéÈ   éd   )	Zcv2ZimreadZIMREAD_UNCHANGEDZresizeZnamedWindowZ
moveWindowZimshowZwaitKeyZdestroyAllWindows)Zcvr‡   Z
resize_imgZwinnamer'   r'   r(   Úim‰  s    

rŠ   c                  C   s    dd l } d}d}|  ||¡ d S )Nr   i N  i¸  )ZwinsoundZBeep)ZsdZfrZdur'   r'   r(   Úbp•  s    r‹   c                 C   s\   t |  ¡ ƒ}| dd|f¡ | ddt|ƒf¡ | dd|f¡ | dd|f¡ t|ƒ} | S )Nr   rS   rK   ÚdateÚpatient)ÚlistÚitemsÚinsertr;   Údict)ZdicrS   rK   rŒ   r�   Ztempr'   r'   r(   Úinsert_info›  s    r’   )ÚjitT)Znopythonc                 C   s  |   ¡ }tt| ƒƒD ]"}| | |kr.d| |< qd| |< qt| ƒ}d}d}d}d}d}d}|dkrô| || d  | || d  krÒ||krŒ|}|d }||krÌ|d }|| }|d |kr¾d}qÐd}d}d}qòd}qX|d }|| |krX|d }d}qX|t |¡ }	||	 }
|
S )Nr   r   )Úmeanro   rp   ÚnpZlog2)Zarrr”   rL   ÚnÚcÚlÚkZk_maxÚstopÚbZ
complexityr'   r'   r(   Úkolmogorov_complexity§  sB    

 rœ   )F)rN   )rN   )rN   )r   r   )Ar*   ÚpandasÚpdZmatplotlib.font_managerZfont_managerZfmrn   r+   ÚdirnameÚabspathÚ__file__ÚROOT_DIRrl   ZBASE_DIRZBASE_DIR_ENZBASE_DIR_CECZBASE_DIR_comZBASE_DIR_HOSZBASE_DIR_EBSIZBASE_DIR_EBSI_DETAILZBASE_DIR_EBSI_ENZhos_msnZFONT_DIRZNORMATIVE_DIRÚread_csvZ
N_DATA_EEGZ
N_DATA_PPGZN_DATA_MINIZbrain_ebsi_indexZmind_ebsi_indexZmini_mind_ebsi_indexZbrain_ebsi_lengthZmind_ebsi_lengthZmind_person_lengthZbrain_ebsi_link_infosZmind_ebsi_link_infosZ
link_infosZlink_infos_enr)   r3   r?   r@   rM   rU   rV   rZ   rI   r]   rj   r{   r|   r~   Z
FREQ_BANDSZFREQ_BANDS_alphaZREPORT_FILELISTZEBSI_FILELISTZMDD_FILELISTrŠ   r‹   r’   Znumbar“   Znumpyr•   rœ   r'   r'   r'   r(   Ú<module>   sè         ÿ       ÿ          û          û	     ý     ý   þ   þ   þ   þ   þ   þë   þ   þ   þ   þ   þï




ú	ùß%øÿ

