
    &0j                     
   S SK r S SKrS SKrS SKrS SKJr  \" S5      r\S-  S-  r\S-  S-  r/ SQr	SS	S
SSSSSSSSSS.r
SSSSSS.r\R                  " S\R                  5      r\R                  " S\R                  5      r\R                  " S\R                  5      r\R                  " S\R                  5      r\R                  " S\R                  5      rS rS  rS! rS" rS# rS$ rS% rS& rS' r\S(:X  a  \" 5         gg))    N)Pathz/home/lucas/joana666build	docx_textztemplates.json))ant
angio.docx)r   atm.docx)r   cranio.docx)r   lombar.docx)r   pescoco.docx)r   	sela.docx)danusar   )r   r   )r   cervical.docx)r   r	   )r   r
   )r   zmastoide.docx)r   zorbita.docx)r   r   )r   r   )joanar   )r   r   )r   r   )r   r	   )r   z	face.docx)r   r
   )r   zorbitas.docx)r   zossos temporais.docx)r   r   angioatmcervicalcraniofacelombar	mastoidesorbitasossos_temporaispescocosela)r   r   r   r   r   r   mastoideorbitar   zossos temporaisr   r   u>   RESSONÂNCIA MAGNÉTICA DAS ARTICULAÇÕES TEMPOROMANDIBULARESu%   RESSONÂNCIA MAGNÉTICA DAS MASTOIDESu+   RESSONÂNCIA MAGNÉTICA DOS OSSOS TEMPORAISu2   RESSONÂNCIA MAGNÉTICA DA FACE E SEIOS PARANASAISu#   RESSONÂNCIA MAGNÉTICA DO PESCOÇO)r   r   r   r   r   u   \b((?:ANGIO)?R?RESSON[ÂA]NCIA\s+MAGN[ÉE]TICA\b.*?)(?=\s+(?:Indica[cç][aã]o|T[eé]cnica|An[aá]lise|Analise|Impress[aã]o|Nota|$))u   \s+(?=(?:Indica[cç][aã]o(?:\s+cl[ií]nica)?|T[eé]cnica|An[aá]lise|Analise|Impress[aã]o|Conclus[aã]o|Nota|Opini[aã]o)\s*:)u   \bT[eé]cnica\s*:\s*(.*?)(?=\s+(?:Indica[cç][aã]o(?:\s+cl[ií]nica)?|An[aá]lise|Analise|Impress[aã]o|Conclus[aã]o|Nota|Opini[aã]o)\s*:|$)u1  \b(?:Nome(?:\s+do\s+paciente)?|ID\s+do\s+paciente|Data\s+de\s+nascimento|Data\s+do\s+Exame|ACC#?|CRM|Protocolo|Proto\s*colo|Unidade|DN|Nasc(?:imento)?)\s*:.*?(?=\s+(?:RESSON[ÂA]NCIA|ANGIORRESSON[ÂA]NCIA|Indica[cç][aã]o|T[eé]cnica|An[aá]lise|Analise|Impress[aã]o|Conclus[aã]o|Nota|Opini[aã]o)\b|$)z\b(?:danusa|fagundes)\bc                 \    SR                  S [        R                  " SU 5       5       5      $ )N c              3   ^   #    U  H#  n[         R                  " U5      S :w  d  M  Uv   M%     g7f)MnN)unicodedatacategory).0chars     */home/lucas/joana666/build/extract_docx.py	<genexpr> strip_accents.<locals>.<genexpr>T   s,      7D%- 	7s   -	-NFD)joinr!   	normalize)values    r%   strip_accentsr,   S   s-    77 ))%7      c                     [         R                  " S[        U 5      SS/S[         R                  [         R                  SS9nUR                  $ )Npandocz-tplainT)checkstdoutstderrtext)
subprocessrunstrPIPEr2   )pathprocs     r%   
run_pandocr;   [   s@    >>	3t9dG,D ;;r-   c                    [         R                  " SU 5      n [        R                  " SSU 5      n U R	                  SS5      n [        R                  " SSU [        R
                  S9n [        R                  " SSU 5      R                  5       n U $ )NNFCz[\ue000-\uf8ff]     z^[+\-|=\s]+$flags\s+)r!   r*   resubreplace	MULTILINEstripr4   s    r%   normalize_textrI   f   so      -D66$c40D<<$D66/3BLLAD66&#t$**,DKr-   c                    [         R                  U 5      nU(       aN  [        R                  " SU S UR                  5        [        R                  5      (       a  XR                  5       S  n S nX :w  a  U n[
        R                  SU 5      n X :w  a  M  [        R                  " SSU [        R                  S9n [        R                  SU 5      n [        U 5      $ )Nz@\b(?:Nome|paciente|Protocolo|Proto|Unidade|DN|Nasc|ACC#?|Data)\br>   ub   \bEste laudo foi assinado eletronicamente\b.*?(?=\s+(?:RESSON[ÂA]NCIA|ANGIORRESSON[ÂA]NCIA)\b|$)r@   )	TITLE_REsearchrC   start
IGNORECASEPII_FRAGMENT_RErD   PII_WORD_RErI   )r4   first_titlepreviouss      r%   
remove_piirS   o   s    //$'KryyK"{  "#
 
 %%')*H

""3- 
 66wy|  C  KM  KX  KX  YD??3%D$r-   c                     [        U 5      n [        U 5      n [        R                  SU 5      n [        R                  " SSU 5      R                  5       n U S-   $ )N
z\n{3,}z

)rI   rS   
SECTION_RErD   rC   rG   rH   s    r%   
clean_textrW      sK    $DdD>>$%D66)VT*002D$;r-   c                 R   [         R                  U 5      nU(       ai  [        R                  " SSUR	                  S5      5      R                  5       n[        U5      R                  5       nUS:X  a  SU;   a  [        U   S4$ US4$ U[        ;   a  [        U   S4$ [        SU 35      e)	NrB   r>      r   zDO OSSOS TEMPORAISTFzsem titulo e sem fallback para )
rK   rL   rC   rD   grouprG   r,   upperTITLE_FALLBACKS
ValueError)r4   modalitymatchtitletitle_plains        r%   extract_titlerb      s    OOD!EvsEKKN399;#E*002((-A[-P"8,d22e|?"x($..
6xjA
BBr-   c                     [         R                  U 5      nU(       d  g[        R                  " SSUR	                  S5      5      R                  5       $ )Nr   rB   r>   rY   )TECHNIQUE_RErL   rC   rD   rZ   rG   )r4   r_   s     r%   extract_techniquere      s<    %E66&#u{{1~.4466r-   c                     0 n0 n[        U 5       H[  nX    Vs/ s H  oDS   (       d  M  UPM     nnU(       d  X   n[        S U 5       US   5      nUS   US   US   S.X'   US   X#'   M]     X4$ s  snf )Ntecnicac              3   <   #    U  H  oS    (       a  M  Uv   M     g7f)fallbackN )r#   items     r%   r&   #choose_templates.<locals>.<genexpr>   s     F*5Etts   	r   titulofonte)rm   rg   rn   ri   )sortednext)
candidates	templatesfallback_usedr^   rk   validchosens          r%   choose_templatesrv      s    IM:&","6J"6$y/"6J(EFFaQX&i(G_
	
 #)"4 ' ## Ks
   A2A2c            	      h   [         R                  SSS9  0 n [         H  u  p[        U-  U-  n[        UR
                     n[        U5      n[        U5      n[         U SU S3-  nUR                  USS9  [        Xd5      u  p[        U5      n
U R                  U/ 5      R                  U SU 3UU
U	S.5        M     [        U 5      u  p[        R                  [        R                   " US	S
S9S-   SS9  [#        U5       H/  nX   (       a  SOSn[%        U SX   S    SX   S    U 35        M1     g )NT)parentsexist_ok__z.txtzutf-8)encoding/)rn   rm   rg   ri   FrY   )ensure_asciiindentrU   z [titulo fallback]r   z: rn   z | rm   )OUT_DIRmkdirINPUTSROOTMODALITY_BY_STEMstemr;   rW   
write_textrb   re   
setdefaultappendrv   TEMPLATES_OUTjsondumpsro   print)rq   doctorfilenamesourcer^   rawcleanedout_pathr`   ri   	techniquerr   rs   markers                 r%   mainr      sT   MM$M.J")#FKK0 S/xr(488Gg6':%g.	h+22"81XJ/$$		
 #&  0
;I

95;dB  
 9%)6)@%b
"Y09:#i>QRZ>[=\]c\def &r-   __main__)r   rC   r5   r!   pathlibr   r   r   r   r   r   r\   compilerN   rK   rV   rd   rO   rP   r,   r;   rI   rS   rW   rb   re   rv   r   __name__rj   r-   r%   <module>r      s[    	    "#
.;
&w!11
8 (   L8D@4 :: MMM ZZ HMM
 zz WMM
 ** yMM jj3R]]C "
C7$"gD zF r-   