Home Events Library Discussions Mailing List About Us Membership Links Contact Us

Recent Research

(From PubMed Central . See also our BioMed Central feed.)

#!/usr/bin/perl -w use strict; =head1 STUFF Can use the html front end like: http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=pmc&cmd=search&term=%22alternative+medicine%22 filter_current=free%20fulltext CAM on PubMed http://www.nlm.nih.gov/nccam/camonpubmed.html http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=PubMed&orig_db=PubMed&cmd_current=Limits&pmfilter_Subsets=Complementary+Medicine =cut our $URL_SEARCH = 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pmc&term="alternative+medicine"&sort=pub+date&reldate=90&usehistory=y&filter_current=free%20fulltext'; our $URL_SUMMARY = 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pmc&query_key=1&WebEnv='; #our $SUMMARY_LINK_BASE = 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils'; our $SUMMARY_LINK_BASE = 'http://www.pubmedcentral.nih.gov'; our $URL_HTML = 'http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=pmc&cmd=search&term=%22alternative+medicine%22&filter=free+fulltext&sort1=SortDateshowndispmax=100&dispmax1=100'; use CGI qw(header param escapeHTML); use CGI::Util qw(escape); use CGI::Carp qw(fatalsToBrowser); use Data::Dumper; our $XML_CACHE = '/tmp/pmc_summary.xml'; our $HTML_CACHE = '/tmp/pmc.html'; sub fetch_xml { my ($filename) = @_; my $search = `curl -s '$URL_SEARCH'`; my ($webenv) = ($search =~ m,(.*?),); system("curl -s '$URL_SUMMARY$webenv' > $filename"); } sub fetch_html { my ($filename) = @_; system("curl -s '$URL_HTML' > $filename"); } sub get_cached { my ($filename, $fetcher) = @_; if (-f $filename && (-M $filename < 0.5) && !param('force') ) { # print STDERR 'DEBUG: cache file is recent, ', "-M=", -M $filename, "\n" # die "file is modified at ", -M $filename; } else { &$fetcher($filename); } open(F,"<$filename") || die "can't open $filename: $!"; my $s = join('', ); close(F); return $s; } sub main_xml { my $xml = get_cached($XML_CACHE, \&fetch_xml); return $xml; } sub main_html { my $html = get_cached($HTML_CACHE, \&fetch_html); $html =~ s,^.*\(page header\) -- end -+>,,s; $html =~ s,.*,,s; # print "middle: $html\n************\n"; $html =~ s,,,sgi; $html =~ s,,,sgi; $html =~ s,,,sgi; $html =~ s,
,,sgi; $html =~ s,
(.*?)
,$1,gs; $html =~ s/class="toc-title"/class="entrytitle"/g; $html = "$html
"; return $html; } sub main { my $limit = param('limit'); my $format = param('format') || 'table'; print header(); my $html; if ($format eq 'titles') { my $xml = main_xml(); my @titles = ($xml =~ m/Name="Title" Type="String">(.*?)(.*?)' . "\n"; } } else { $html = main_html(); } print $html; } main();