This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
medicacion2021 [2021/03/29 16:18] osotolongo [Reglas] |
medicacion2021 [2021/04/03 10:42] (current) osotolongo [tl;dr] |
||
---|---|---|---|
Line 2: | Line 2: | ||
Ver programas en github: https:// | Ver programas en github: https:// | ||
+ | |||
+ | ===== tl;dr ===== | ||
+ | |||
+ | El formato de la base de datos de input ha de ser: | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | y se ejecutan dos scripts consecutivos, | ||
+ | |||
+ | <code bash> | ||
+ | $ ./parse.pl medicamentos.db | ||
+ | $ ./ | ||
+ | </ | ||
+ | |||
+ | Y los resultados quedan en el archivo // | ||
===== Antes de empezar ===== | ===== Antes de empezar ===== | ||
Line 236: | Line 252: | ||
**Ahora, las reglas han de revisarse y editarse a mano. Esto no hay manera de evitarlo pero solo ha de hacerse una vez. La proxima vez que se haga el analisis se usara el mismo archivo de reglas.** | **Ahora, las reglas han de revisarse y editarse a mano. Esto no hay manera de evitarlo pero solo ha de hacerse una vez. La proxima vez que se haga el analisis se usara el mismo archivo de reglas.** | ||
+ | |||
+ | ===== Reglas de CIMA ===== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | Me bajo la lista de medicamentos comercializados en España y la convierto a CSV. Luego hago esto: | ||
+ | |||
+ | <code bash> | ||
+ | [osotolongo@brick03 medicaion_dev]$ awk -F";" | ||
+ | </ | ||
+ | |||
+ | O si quiero tener los principios activos, | ||
+ | |||
+ | <code bash> | ||
+ | [osotolongo@brick03 medicaion_dev]$ awk -F";" | ||
+ | [osotolongo@brick03 medicaion_dev]$ sed ' | ||
+ | </ | ||
===== Aplicando las reglas ===== | ===== Aplicando las reglas ===== | ||
- | Aqui he de leer dos cosas antes que nada. Primero, las reglas que hemos construido. Estas las voy a asignar a un hash de arrays, | + | Aqui he de leer tres cosas antes que nada. Primero, las reglas que hemos construido. Estas las voy a asignar a un hash de arrays, |
<code perl> | <code perl> | ||
Line 253: | Line 286: | ||
close RDF; | close RDF; | ||
+ | </ | ||
+ | |||
+ | Luego, la lista de principios activos de [[https:// | ||
+ | |||
+ | <code perl> | ||
+ | my %cima; | ||
+ | open ADF, "< | ||
+ | while (< | ||
+ | my ($med, $pal, $pan) = / | ||
+ | my @pas = split /, /, $pal; | ||
+ | for (@pas) {s/ | ||
+ | $cima{$med} = [ @pas ]; | ||
+ | } | ||
+ | close ADF; | ||
</ | </ | ||
Line 282: | Line 329: | ||
foreach my $rkey (sort keys %wrules){ | foreach my $rkey (sort keys %wrules){ | ||
if(exists($wrules{$rkey}{$med})){ | if(exists($wrules{$rkey}{$med})){ | ||
- | $meds{$rkey} = 1; | + | |
- | $visits{$pid}{$vid}{$rkey} = 1; | + | $meds{$pa} = 1; |
+ | $visits{$pid}{$vid}{$pa} = 1; | ||
+ | } | ||
last; | last; | ||
} | } | ||
Line 291: | Line 340: | ||
</ | </ | ||
- | Cuando encuentro este elemento en las reglas, marco el ID de la regla como existente | + | Cuando encuentro este elemento en las reglas, marco tods los ID de principios activos correspondientes a este medicamento |
Una vez llenados los medicamentos de cada visita hemos de escribirlo en forma matricial. Primero escribimos los headers, | Una vez llenados los medicamentos de cada visita hemos de escribirlo en forma matricial. Primero escribimos los headers, | ||
Line 323: | Line 372: | ||
</ | </ | ||
- | TADA! | + | **TADA!** |