package PubMed::Snomed; use strict; use warnings; use Carp qw(confess); use Data::Dumper; use PubMed::Store; use PubMed::Paths; my $dir=$PubMed::Paths::snomed_dir; my $json=$PubMed::Paths::snomed_json; sub get_file { if(not $dir) { confess "I need a directory here."; } if(not -d $dir) { return ''; } foreach my $file (`find $dir -type f`) { chomp $file; if($file=~m|_Description_Full|) { return $file; } unlink $file; } return ''; } sub get_data { if(not -f $json) { my $file=&get_file(); if(not -f $json or -M $file < -M $json) { ## build the json from the input &input_to_json($file); } } if(not -f $json) { return {}; } my $d=&PubMed::Store::load($json); return $d; } sub clean { if(not $dir) { return 0; } if(not -d $dir) { return ; } my $s="find $dir -type d -empty -delete"; system("find $dir -type d -empty -delete"); } my $t; ## my bracket expressions my $b_e; sub input_to_json { my $file=shift; open(F,"< $file"); ## skip first line my $line=; while($line=) { my @parts=split("\t+",$line); my $term=lc($parts[7]); $t->{$term}++; } &PubMed::Store::save($t,$json); return $t; } sub bracket { #$term=~m|\(([^)]+)\)|; #my $bracketer=$1 or next; #$b_e->{$bracketer}++; #foreach my $be (sort {$b_e->{$a} <=> $b_e->{$b}} keys %$b_e) { # print $be, ' ', $b_e->{$be},"\n"; #} #exit; } 1;