
    :0j,                     |   S r SSKrSSKrSSKrSSKrSSKr\R                  R                  \R                  R                  \	5      S5      r
\R                  R                  \R                  R                  \	5      S5      rS r/ SQr\R                  " S\R                  5      r\R                  " S\R                  5      r\R                  " S	5      r\R                  " S
5      r\R                  " S\R                  5      r\R                  " S\R*                  5      rS rS rS rS rS r\S:X  a  \" 5         gg)a+  Re-limpa PII dos dumps build/docx_text/*.txt (Slice B falhou pq pandoc
colapsou celulas de tabela na MESMA linha do achado). Estrategia:
 - dropar linhas de Indicacao (contexto clinico identificavel);
 - em cada linha, separar por '|' e descartar SEGMENTOS de PII (CRM, nomes de
   medico, Proto, Data:, colo:, numeros longos, paths Windows/imagens);
 - recolar o que sobra e redigir datas/CRM residuais inline.
Tambem sanitiza o campo 'fonte' do templates.json (remove pasta-medico).
NAO toca em titulo/tecnica do templates.json nem nos .docx originais.
    N	docx_textztemplates.jsonc                 x    SR                  S [        R                  " SU R                  5       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cs     '/home/lucas/joana666/build/clean_pii.py	<genexpr>na.<locals>.<genexpr>   s,      7E!**1-5 1Es   -	-NFD)joinr   	normalizelower)ss    r   nar      s2    77 7k33E1779E 7 7 7    )crmzdr.z dr drazantonio coutinhocoutinhorenatacalongetaniadanusaquiroztapiocafagundespintoproto	protocolo	matriculaconveniosolicitante
assinaturazdata:nasczcolo:unidademedicoz	paciente:znome:	inetcacheappdatazcontent.msoz[a-z]:\\z%\.(png|jpe?g|emf|wmf|gif|bmp|tiff?)\bz\d{6,}z\b\d{1,2}/\d{1,2}/\d{2,4}\bz\bCRM[-\s]?\d[\d-]*uB   \bDr[a]?\.?\s+[A-ZÀ-Ý][\wÀ-ÿ]+(?:\s+[A-ZÀ-Ý][\wÀ-ÿ]+){0,3}c                   ^ U R                  5       nU(       d  g[        U5      m[        U4S j[         5       5      (       a  g[        R                  U5      (       d  [        R                  U5      (       a  g[        R                  U5      (       a5  [        [        R                  " SSU5      5      S:  a  [        U5      S:  a  gg)NTc              3   ,   >#    U  H	  oT;   v   M     g 7fN )r
   tokns     r   r   seg_is_pii.<locals>.<genexpr>,   s     
'w!8ws   z\Dr      (   F)stripr   anySEG_PIIWIN_PATHsearchIMG_REFLONGNUMlenresub)segr   r1   s     @r   
seg_is_piir@   '   s    		A
1A

'w
'''qW^^A..~~aSr1!56!;Ar   c                     [         R                  SU 5      n [        R                  SU 5      n [        R                  SU 5      n [        R                  " SSU 5      R                  5       $ )Nr   z[data]z  + )
CRM_INLINEr>   NAME_INLINEDATEr=   r5   )texts    r   scrub_inlinerG   5   sN    >>"d#D??2t$D88Hd#D66&#t$**,,r   c                 D   [        U R                  5       5      nUR                  S5      (       a  g SU ;   aY  U R                  S5       Vs/ s H  n[	        U5      (       a  M  UPM     nnSR                  S U 5       5      R                  5       n [        U 5      n U $ s  snf )N	indicacao|rB   c              3   @   #    U  H  oR                  5       v   M     g 7fr.   )r5   )r
   r   s     r   r   clean_line.<locals>.<genexpr>B   s     04a		4s   )r   r5   
startswithsplitr@   r   rG   )liner1   r   segss       r   
clean_linerQ   ;   s    
4::<A||K  
d{::c?@?a*Q-?@xx0400668DK As   
B"Bc                    [        U SS9 nUR                  5       R                  5       nS S S 5        / SpCW HJ  n[        U5      nUc  M  US:X  a  US-  nUS::  a  UR	                  S5        M7  SnUR	                  U5        ML     SR                  U5      R                  5       S-   n[        U SSS9 nUR                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nutf-8encodingr   r      
w)openread
splitlinesrQ   appendr   r5   write)pathfrawoutblankslnclrF   s           r   
clean_filere   F   s    	dW	%ffh!!# 
&a^:8aKF{

2

2  99S>!D(D	dC'	*a	 
+	* 
&	% 
+	*s   C2C
C
C,c                     [        [        R                  " [        R                  R	                  [
        S5      5      5      n U  H  n[        U5        M     [        S[        U 5       S[
         35        [        [        SS9 n[        R                  " U5      nS S S 5        WR                  5        H2  u  pESU;   d  M  [        R                  R                  US   5      US'   M4     [        [        SSS9 n[        R                  " X2SS	S
9  S S S 5        [        S5        g ! , (       d  f       N= f! , (       d  f       N+= f)Nz*.txtzlimpos z
 dumps em rS   rT   fonterX   FrV   )ensure_asciiindentz+templates.json: fonte sanitizado (basename))sortedglobosr^   r   DOCX_DIRre   printr<   rY   	TEMPLATESjsonloaditemsbasenamedump)filespr_   tplkvs         r   mainrz   Y   s    499RWW\\(G<=>E1 	GCJ<z(
45 
i'	*aiil 
+		a<))!G*5AgJ  
iw	/1		#uQ7 
0	
78 
+	*
 
0	/s   D!6D2!
D/2
E __main__)__doc__rp   r=   r   rk   rl   r^   r   dirname__file__rm   ro   r   r7   compileIr8   r:   r;   rE   rC   UrD   r@   rG   rQ   re   rz   __name__r/   r   r   <module>r      s   ' & &77<<1;?GGLL24DE	7
 ::k244(
**=rtt
D
**Y
 
zz01ZZ.5
jjI244Q-	&9  zF r   