User Tools

Site Tools


medicacion2021

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
medicacion2021 [2021/03/31 08:03]
osotolongo [Reglas de CIMA]
medicacion2021 [2021/04/03 10:42] (current)
osotolongo [tl;dr]
Line 4: Line 4:
  
 ===== tl;dr ===== ===== tl;dr =====
 +
 +El formato de la base de datos de input ha de ser:
 +<code>
 +<ID_Subject>;<ID_visita>;<Texto libre>
 +</code>
 +
 +y se ejecutan dos scripts consecutivos,
  
 <code bash> <code bash>
Line 10: Line 17:
 </code> </code>
  
-ahora lee al menos acerca del formato de input. ;-)+los resultados quedan en el archivo //meds_matrix.csv//. ;-)
 ===== Antes de empezar ===== ===== Antes de empezar =====
  
Line 266: Line 273:
 ===== 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 279: Line 286:
 close RDF; close RDF;
  
 +</code>
 +
 +Luego, la lista de principios activos de [[https://cima.aemps.es/cima/publico/home.html|CIMA]].
 +
 +<code perl>
 +my %cima;
 +open ADF, "<$mpa";
 +while (<ADF>){
 +        my ($med, $pal, $pan) = /^(.*);(.*);(.*)$/;
 +        my @pas = split /, /, $pal;
 +        for (@pas) {s/\s+/_/g;}
 +        $cima{$med} = [ @pas ];
 +}
 +close ADF;
 </code> </code>
  
Line 308: 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; +                                                foreach my $pa (@{$cima{$rkey}}){ 
-                                                $visits{$pid}{$vid}{$rkey} = 1;+                                                        $meds{$pa} = 1; 
 +                                                        $visits{$pid}{$vid}{$pa} = 1; 
 +                                                }
                                                 last;                                                 last;
                                         }                                         }
Line 317: Line 340:
 </code> </code>
  
-Cuando encuentro este elemento en las reglas, marco el ID de la regla como existente en esa visita y ademas lo sumo a las variables que he de escribir. Si no se encuentraeste termino, se concluye que no es ningun medicamento (pues no esta en ninguna regla) y no se hace nada.+Cuando encuentro este elemento en las reglas, marco tods los ID de principios activos correspondientes a este medicamento como existentes en esa visita y ademas los sumo a las variables que he de escribir. Si no se encuentra este termino, se concluye que no es ningun medicamento (pues no esta en ninguna regla) y no se hace nada.
  
 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,
medicacion2021.1617177835.txt.gz · Last modified: 2021/03/31 08:03 by osotolongo