virgil/commit
Fix count drug occurrences in same report only once
author | Michiel Hildebrand |
---|---|
Mon Jul 15 22:50:13 2013 +0200 | |
committer | Michiel Hildebrand |
Mon Jul 15 22:50:13 2013 +0200 | |
commit | d36f94660152bf040db72128bd274caf813fdc4c |
tree | 003cc4be954d17ec1402c4d5484c45d0a68c0f52 |
parent | b29e036643f59c8a3a4c99af61005da9f2a2bd2c |
Diff style: patch stat
diff --git a/api/reports.pl b/api/reports.pl index 6cf2920..cef3e61 100644 --- a/api/reports.pl +++ b/api/reports.pl @@ -78,7 +78,7 @@ http_cc(Request) :- drug_reaction_cc(DrugMentions, Reaction, CC), length(CC, Total) ; nonvar(Reaction) - -> drug_reaction_cc([], Reaction, CC), + -> reaction_cc(Reaction, CC), length(CC, Total) ), list_offset(CC, Offset, CC_Offset), @@ -97,19 +97,18 @@ drug_match(Drug, Methods, DrugMentions) :- DrugMentions0), sort(DrugMentions0, DrugMentions). -drug_reaction_cc([], ReactionMention, []) :- +reaction_cc(ReactionMention, []) :- (var(ReactionMention); ReactionMention==all), !. -drug_reaction_cc([], ReactionMention, CC) :- - nonvar(ReactionMention), - !, - findall(cc(Report,Drug,Reaction), - ( rdf(Report, aers:reaction, literal(exact(ReactionMention), Reaction)), +reaction_cc(ReactionMention, CC) :- + findall(cc_drug(Report,Drug), + ( rdf(Report, aers:reaction, literal(exact(ReactionMention), _Reaction)), rdf(Report, aers:drug, DrugUse), rdf(DrugUse, aers:drugname, literal(Drug)) ), CC0), sort(CC0, CC). + drug_reaction_cc(DrugMentions, ReactionMention, CC) :- DrugMentions = [_|_], !, @@ -117,7 +116,7 @@ drug_reaction_cc(DrugMentions, ReactionMention, CC) :- -> ReactionLit = literal(Reaction) ; ReactionLit = literal(exact(ReactionMention), Reaction) ), - findall(cc(Report,Drug,Reaction), + findall(cc_reaction(Report,Reaction), ( member(Drug, DrugMentions), rdf(DrugUse, aers:drugname, literal(Drug)), rdf(Report, aers:drug, DrugUse), @@ -131,9 +130,10 @@ report_obj(R, JSON) :- resource_CBD(rdf, R, Graph), graph_json(Graph, JSON). -cc_json(cc(Report,Drug,Reaction), - json([report=Report,drug=Drug,reaction=Reaction])). - +cc_json(cc_reaction(Report,Reaction), + json([report=Report,reaction=Reaction])). +cc_json(cc_drug(Report,Drug), + json([report=Report,drug=Drug])). %% http_contingency_table(+Request) % @@ -158,7 +158,7 @@ http_contingency_table(Request) :- drug_match(Drug, DrugMatch, DrugMentions), drug_reaction_cc(DrugMentions, Reaction, CC_A), drug_reaction_cc(DrugMentions, all, CC_AC), - drug_reaction_cc([], Reaction, CC_AB), + reaction_cc(Reaction, CC_AB), cc_count(ABCD), length(CC_A, A), length(CC_AB, AB),