7 #use CXGN::Page::Simple;
8 #use CXGN::Page::VHost::SGN;
10 use CXGN
::Apache
::Error
;
11 use CXGN
::DB
::Connection
;
12 use CXGN
::Page
::FormattingHelpers qw
/info_section_html
15 use CXGN
::Chado
::Publication
;
16 use CXGN
::Phenome
::Locus
;
17 use CXGN
::Phenome
::Locus
::LocusRanking
;
19 my $page=CXGN
::Page
->new( "locus_pub_rank", "Naama");
21 my %args = $page->cgi_params(); #multi-valued parameters have values in a string, delimited by \0
22 my $locus_id= $args{locus_id
};
23 my $dbh=CXGN
::DB
::Connection
->new('phenome');
25 $page->jsan_use("CXGN.Phenome.Locus");
26 $page->jsan_use("Prototype");
29 my($person_id,$user_type)=CXGN
::Login
->new($dbh)->has_session();
31 my $locus=CXGN
::Phenome
::Locus
->new($dbh,$locus_id);
32 my $locus_name=$locus->get_locus_name();
34 my @assoc_pubs= $locus->get_dbxrefs_by_type('literature');
35 $page->simple_header("Publication list for locus $locus_name", "Curator tool: Validate publications associated with locus <a href=locus_display.pl?locus_id=$locus_id target=blanc>$locus_name</a>");
37 my $locus_pub_ranks=$locus->get_locus_pub();
39 my ($val_pubs, $rej_pubs, $pending_pubs, $a_pubs)= ("" x
4);
43 foreach(sort { $locus_pub_ranks->{$b} <=> $locus_pub_ranks->{$a} } keys %$locus_pub_ranks ) {
44 #foreach ( keys %$locus_pub_ranks) {
45 my $publication=CXGN
::Chado
::Publication
->new($dbh, $_);
46 my $pub_id = $publication->get_pub_id();
47 my $dbxref_id = $publication->get_dbxref_id_by_db('PMID');
48 my $title=$publication->get_title();
49 my $pyear=$publication->get_pyear();
50 my $series=$publication->get_series_name();
51 my $volume=$publication->get_volume();
52 my $issue=$publication->get_issue();
53 my $pages=$publication->get_pages();
54 my $abstract= $publication->get_abstract();
55 my $authors=$publication->get_authors_as_string();
56 my $locusRank = CXGN
::Phenome
::Locus
::LocusRanking
->new($dbh, $locus_id, $pub_id);
57 my $validated = $locusRank->get_validate() || "";
58 my $score = $locusRank->get_rank();
60 my $val_form= "<BR><BR>";
61 if ($user_type eq 'curator') {
63 <div id
='locusPubForm_$pub_id'>
64 <div id
='pub_dbxref_id_$dbxref_id'>
67 id
="dbxref_id_$pub_id">
68 <select id
="$dbxref_id" >
69 <option value
="" selected
></option
>
70 <option value
="no">no</option
>
71 <option value
="yes">yes
</option
>
72 <option value
="maybe">maybe
</option
>
75 id
="associate_pub_button"
76 value
="associate publication"
77 onclick
="Locus.addLocusDbxref('$locus_id', '$dbxref_id');this.disabled=false;">
83 my $associated= $publication->is_associated_publication('locus', $locus_id);
84 my $pub_link= tooltipped_text
("$authors ($pyear)",$abstract) . qq| <a href
="/chado/publication.pl?pub_id=$pub_id">$title.</a> $series. $volume($issue):$pages <b> Match score = $score </b
> | . $val_form;
85 if ($validated eq 'no') {
86 $rej_pubs .= $pub_link; #qq|<a href="/chado/publication.pl?pub_id=$pub_id">$title</a> ($pyear) $val_form |;
87 }elsif ($validated eq 'yes') {
88 $val_pubs .= $pub_link;
89 }elsif ($validated eq 'maybe') {
90 $pending_pubs .= $pub_link;
91 }elsif (!$associated) {
93 }elsif ($associated) {
95 print STDERR
"$associated ! pub $pub_id associated with locus $locus_id\n"; }
99 print info_section_html
(title
=> 'Suggested publication list',
103 print info_section_html
(title
=> 'Associated publications',
104 subtitle
=>'(these publications are already linked with the locus, but were not validated by a curator)',
108 print info_section_html
(title
=> 'Validated publications',
109 contents
=> $val_pubs,
111 print info_section_html
(title
=> 'Pending publications',
112 contents
=> $pending_pubs,
114 print info_section_html
(title
=> 'Rejected publications',
115 contents
=> $rej_pubs,
119 $page->simple_footer();
122 <a href="javascript:window.close();">Close This Window</a>