virgil/commit
UPDATE use separate API call for the measurements of each reaction
author | Michiel Hildebrand |
---|---|
Tue Jun 4 17:22:39 2013 +0200 | |
committer | Michiel Hildebrand |
Tue Jun 4 17:22:39 2013 +0200 | |
commit | ae72d1941feea22f1e4fbc557a0e136b271ece50 |
tree | 13864ecad1ad75247d49a35e1a15f3cb1ff292ce |
parent | 6372062aa71cc7bb7f30800a3970f4909dd446cc |
Diff style: patch stat
diff --git a/api/measurements.pl b/api/measurements.pl index fbc151a..0a81a37 100644 --- a/api/measurements.pl +++ b/api/measurements.pl @@ -9,6 +9,7 @@ :- use_module(library(count)). :- http_handler(cliopatria(aers/api/measurements/prr), http_measurements_prr, []). +:- http_handler(cliopatria(aers/api/measurements/prov), http_measurements_prov, []). @@ -16,12 +17,25 @@ http_measurements_prr(Request) :- http_parameters(Request, ['drugnames[]'(Drugs, [list(atom)]), + reaction(Reaction, + [atom + ]) + ]), + prr(Drugs, Reaction, PRR, Prov), + reply_json(json([reaction=Reaction, + prr=json([value=PRR, prov=Prov])])). + +http_measurements_prov(Request) :- + http_parameters(Request, + ['drugnames[]'(Drugs, + [list(atom)]), 'reactions[]'(Reactions, [list(atom) ]) ]), - prr_per_reaction(Reactions, Drugs, PRRs), - reply_json(PRRs). + prr_per_reaction(Reactions, Drugs, JSON), + reply_json(JSON). + prr_per_reaction([], _, []). diff --git a/web/html/wizard.html b/web/html/wizard.html index 9ebaa6f..5b4d8ab 100644 --- a/web/html/wizard.html +++ b/web/html/wizard.html @@ -74,6 +74,7 @@ <li data-target="#drugs" class="active"><span class="badge">1</span>Drug mentions<span class="chevron"></span></li> <li data-target="#reactions"><span class="badge">2</span>Reactions<span class="chevron"></span></li> <li data-target="#measurements"><span class="badge">3</span>Measurements<span class="chevron"></span></li> + <li data-target="#export"><span class="badge">4</span>Export prov<span class="chevron"></span></li> </ul> <div class="actions"> <button class="btn btn-mini btn-prev"> <i class="icon-arrow-left"></i>Prev</button> @@ -153,7 +154,7 @@ </div> <div class="step-pane" id="measurements"> - <section class="loader"> + <section> <h4>Select measurements</h4> <table class="table"> <thead><tr><th>Reaction</th><th>PRR</th></tr></thead> @@ -162,6 +163,15 @@ </section> </div> + <div class="step-pane" id="export"> + <section class="loader"> + <h4>Export Provenance</h4> + </section> + <div> + <img src="http://www.w3.org/Icons/SW/Buttons/sw-prov-magenta.png"> + </div> + </div> + </div> </div> @@ -176,6 +186,7 @@ synonymsURL = '../aers/api/drug/synonym/mentions', reactionsURL = '../aers/api/reactions'; prrURL = '../aers/api/measurements/prr'; + provURL = '../aers/api/measurements/prov'; $(function() { function getURLParameter(name) { @@ -272,30 +283,61 @@ $.fn.updateMeasurements = function() { var drugnames = getDrugNames(), reactions = getReactions(), - table = $(this).find('tbody'), - loader = $(this).find(".spinner"); + table = $(this).find('tbody'); table.html(""); - loader.show(); + for (var i=0; i < reactions.length; i++) { + var reaction = reactions[i]; + $('<tr><td class="reaction">'+reaction+'</td>' + +'<td class="prr"><img src="../img/spinner.gif" alt="Loading"/></td>' + +'</tr>') + .appendTo(table) + .fetchMeasurements(drugnames, reaction); + } + }; + + $.fn.fetchMeasurements = function(drugnames, reaction) { + var row = $(this); $.ajax(prrURL, { dataType:"json", type:"POST", data:{ drugnames:drugnames, - reactions:reactions + reaction:reaction }, + error: function() { + row.find(".prr").html(""); + }, + success: function(o) { + row.find(".prr").html(o.prr.value); + } + }); + }; + + $.fn.updateExport = function() { + var drugnames = getDrugNames(), + reactions = getReactions(), + loader = $(this).find(".spinner"); + + loader.show(); + $.ajax(provURL, { + dataType:"json", + type:"POST", + data:{ + drugnames:drugnames, + reactions:reactions + }, error: function() { loader.hide(); }, success: function(o) { + console.log(o); loader.hide(); - $(o).each(function(i,e) { - table.append('<tr><td>'+e.reaction+'</td><td>'+e.prr+'</td></tr>'); - }) } }); - } + + }; // setup the checkbox toggle buttons @@ -333,8 +375,13 @@ else if(o.step==2&&o.direction=="next") { $("#measurements").updateMeasurements(); } + else if(o.step==3&&o.direction=="next") { + $("#export").updateExport(); + } }); + + }); </script>