Translation of medical evidence into computational evidence and applications thereof
A computational evidence platform extracts clinical concepts from medical evidence sources and creates a database of elemental diagnostic factors and elemental investigations links to medical conditions. Input from a person groups factors and investigations makes corrections and adds a ranking. Elemental factors and investigations do not include information specific to their associated conditions but include synonyms and a link to a medical ontology. A patient state is determined by extracting patient known diagnostic factors and investigation results from the patient chart. These known factors and results are matched to the database and a ranking of likely conditions are output. Next-best actions per condition are output by determining factors not yet known and investigations not yet performed. Next-best actions across conditions are determined by performing a recursive tree search of the database and assuming that unknown factors are now known to generate a score for each assumption.
1 . A computer system for transforming narrative medical evidence into a computational form, said computer system comprising:
one or more processors; and
memory that stores instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors to:
receive text from a plurality of medical evidence sources, said text pertaining to a medical condition, wherein one or more of said medical evidence sources use a same name to describe both said medical condition and a symptom, and wherein said medical condition and said symptom are arranged in different hierarchies in one or more medical evidence sources;
process said text using a natural language processing (NLP) engine to produce a plurality of clinical concepts indicative of said medical condition;
generate a plurality of nodes in a graph database, said plurality of nodes including said plurality of clinical concepts, wherein said medical condition and said symptom, which are associated with said same name in said one or more medical evidence sources, are represented in different nodes in said graph database in order to disambiguate one or more of said plurality of clinical concepts;
store said plurality of clinical concepts each as separate nodes in said graph database, said medical condition being linked to one or more of said plurality of clinical concepts in said graph database, wherein said graph database describes more than one hundred thousand relationships; and
establish one or more application programming interfaces (APIs) for said graph database, said one or more APIs allowing a software application to integrate with said graph database to access said plurality of nodes to generate a healthcare determination by traversing a portion of said plurality of nodes that disambiguate one or more of said plurality of clinical concepts.
2 . A computer system as recited in claim 1 wherein said graph database is a knowledge graph and said each separate node is a node of said knowledge graph.
3 . A computer system as recited in claim 1 wherein each clinical concept is a diagnostic factor and each diagnostic factor node includes a unique identifier which links to an entry in a medical ontology representing said each diagnostic factor.
4 . A computer system as recited in claim 1 , wherein the instructions, when executed, further cause the one or more processors to:
receive a rank associated with said clinical concepts, said rank indicating how likely it is that said clinical concepts are indicative of said medical condition; and
store said rank in a graph database node between said medical condition node and said clinical concepts nodes.
5 . A computer system as recited in claim 1 wherein said clinical concepts are diagnostic factors caused by said medical condition, are risk factors that contribute to said medical condition, are laboratory tests that indicate said medical condition, are examinations that indicate said medical condition, or are drugs that contribute to said medical condition.
6 . A computer system as recited in claim 1 , wherein the instructions, when executed, further cause the one or more processors to:
receive input indicating a group that subsumes said clinical concepts; and
store said group as a separate node in said graph database, said group including at least one condition-dependent attribute that depends upon said medical condition, said medical condition node being linked to said group node and said group node being linked to each of said clinical factors nodes.
7 . A computer system as recited in claim 1 wherein said one of said clinical concepts is a diagnostic factor, and wherein a diagnostic factor node includes a temporality attribute indicating whether or not a patient is currently exhibiting said diagnostic factor, a negation attribute indicating whether not said diagnostic factor is present in said patient, or an experience attribute indicating whether not said patient experiences said diagnostic factor personally.
8 . A computer system as recited in claim 1 , wherein the instructions, when executed, further cause the one or more processors to:
extract from said text a rank indicating how likely it is that one of said clinical concepts is indicative of said medical condition; and
add said rank to a location in said graph database between said medical condition node and said clinical concepts nodes.
9 . A computer system for determining a state of a patient, said computer system comprising:
one or more processors; and
memory that stores instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors to:
extract, using a natural language processing (NLP) engine, from a medical evidence source a plurality of diagnostic factors each indicative of a medical condition and store each of said diagnostic factors and said medical condition as its own node in a graph database, said medical condition being linked to said diagnostic factors, wherein said medical evidence source uses a same name to describe both said medical condition and one of said diagnostic factors, wherein said medical condition and said one of said diagnostic factors are arranged in different hierarchies in one or more medical evidence sources, and wherein said medical condition and said one of said diagnostic factors are represented in different nodes in said graph database in order to disambiguate said medical condition from said one of said diagnostic factors, wherein said graph database describes more than one hundred thousand relationships;
for at least one of said diagnostic factors, store demographics that indicate said medical condition on the basis of said at least one diagnostic factor between said medical condition node and a node representing said at least one diagnostic factor;
establish one or more application programming interfaces (APIs) for said graph database, said one or more APIs allowing a software application to integrate with said graph database to access said nodes to generate a healthcare determination; and
match patient data from a patient medical chart to at least one of said diagnostic factor nodes or said demographics by traversing a portion of said nodes of said graph database in order to display said healthcare determination that said patient has said medical condition.
10 . A computer system as recited in claim 9 , wherein the instructions, when executed, further cause the one or more processors to:
determine a rank of said likelihood that said patient has said medical condition by reference to a node intermediate between said medical condition node and said diagnostic factor nodes that holds said rank of said diagnostic factors.
11 . A computer system for determining a state of a patient, said computer system comprising:
one or more processors; and
memory that stores instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors to:
receive a plurality of diagnostic factors known to be present or absent in a patient using a natural language processing (NLP) engine;
match said diagnostic factors to factor nodes in a knowledge graph that includes a plurality of medical condition nodes, each of said factor nodes being linked to at least one of said medical condition nodes, wherein at least one of said medical condition nodes and at least one of said factor nodes uses a same name to describe both said at least one of said medical condition nodes and said at least one of said factor nodes, and wherein said at least one of said medical condition nodes and said at least one of said factor nodes are represented in different nodes in said knowledge graph in order to disambiguate said at least one of said medical condition nodes from said at least one of said factor nodes, wherein said knowledge graph describes more than one hundred thousand relationships;
establish one or more application programming interfaces (APIs) for said knowledge graph, said one or more APIs allowing a software application to integrate with said knowledge graph to access said medical condition nodes and said factor nodes to generate a healthcare determination;
for each of a plurality of said medical condition nodes, collect a rank value from along a path between said each medical condition node and each matched factor node to which said each medical condition node is linked, said rank value indicating how likely it is that the diagnostic factor matched to said each matched factor node is indicative of a medical condition represented by said each medical condition node;
sum all collected rank values for said each medical condition node to produce a final ranking value for said each medical condition node; and
output the medical condition representing said each medical condition node and said final ranking value of said each medical condition node in order to output said healthcare determination.
12 . A computer system as recited in claim 11 , wherein the instructions, when executed, further cause the one or more processors to:
display in association with each of said output medical conditions its corresponding final ranking value.
13 . A computer system as recited in claim 11 wherein each of said medical conditions is a disease, an orthopedic anomaly, an adverse drug reaction, or a drug-to-drug interaction.
14 . A computer system as recited in claim 11 wherein the instructions, when executed, further cause the one or more processors to:
display said output medical conditions in order of final ranking value.
15 . A computer system as recited in claim 11 wherein the instructions, when executed, further cause the one or more processors to:
receive said plurality of diagnostic factors at said knowledge graph via an one of said application programming interfaces (APIs); and
output said medical conditions and said final ranking values via one of said APIs to said software application.
16 . A computer system as recited in claim 11 wherein the instructions, when executed, further cause the one or more processors to:
for at least one of said diagnostic factors known to be present, traversing upward in a medical ontology link found in one of said matched factor nodes corresponding to said at least one of said diagnostic factors known to be present in order to infer at least one other diagnostic factor present in said patient and matching this other diagnostic factor to a factor node in said knowledge graph.
17 . A computer system as recited in claim 11 wherein a demographics node of said knowledge graph located between one of said matched factor nodes and its corresponding linked medical condition node includes demographics of people who exhibit said matched diagnostic factor in the context of said linked medical condition, and wherein the instructions, when executed, further cause the one or more processors to:
only collect a rank value from along a path between said matched factor node and said at least one linked medical condition node when information of said patient matches said demographics in said demographics node.
18 . A computer system as recited in claim 11 wherein each of said factor nodes does not include information specific to a medical condition represented by said at least one medical condition node.
19 . A computer system for determining next-best actions for a medical condition, said system comprising:
one or more processors; and
memory that stores instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors to perform the following for at least one medical condition of a patient:
identify all known factor nodes in a knowledge graph that each represent a diagnostic factor known to be present or absent in said patient, said diagnostic factors being determined using a natural language processing (NLP) engine, each known factor node being linked to a medical condition node in said knowledge graph representing said at least one medical condition, wherein said knowledge graph describes more than one hundred thousand relationships;
identify all unknown factor nodes in said knowledge graph that each represent an unknown diagnostic factor not known to be present or absent in said patient, each unknown factor node being linked to said medical condition node, wherein said medical condition node and at least one of said known or unknown factor nodes uses a same name to describe both said medical condition node and said at least one of said known or unknown factor nodes, and wherein said medical condition node and said at least one of said known or unknown factor nodes are represented in different nodes in said knowledge graph in order to disambiguate said medical condition node from said at least one of said known or unknown factor nodes;
establish one or more application programming interfaces (APIs) for said knowledge graph, said one or more APIs allowing a software application to integrate with said knowledge graph to access said medical condition node and said known and unknown factor nodes to generate a healthcare determination;
identify a rank of each unknown factor node that indicates a likelihood that said represented unknown diagnostic factor indicates said at least one medical condition, said rank being stored between said unknown factor node and said medical condition node; and
output said unknown diagnostic factors corresponding to said unknown factor nodes in association with said at least one medical condition in order of said rank of said each unknown factor node in order to output said healthcare determination.
20 . A computer system as recited in claim 19 , wherein the instructions, when executed, further cause the one or more processors to:
identify said unknown factor nodes by traversing down through said knowledge graph from said at least one medical condition node and disregarding said known factor nodes.
21 . A computer system as recited in claim 19 wherein said rank of said each unknown factor node is located between said at least one medical condition node and said each unknown factor node.
22 . A computer system as recited in claim 19 , wherein the instructions, when executed, further cause the one or more processors to:
for each known factor node, traverse upward in a medical ontology link found in said each known factor node in order to infer other diagnostic factors present in said patient.
23 . A computer system as recited in claim 19 wherein traversing said knowledge graph from one of said unknown factor nodes to said at least one medical condition produces a first rank for said one of said unknown factor nodes in the context of said at least one medical condition which is different from a second rank produced by traversing from said one of said unknown factor nodes to a second medical condition.
24 . A computer system as recited in claim 19 wherein the instructions, when executed, further cause the one or more processors to:
input said diagnostic factors known to be present or absent in said patient to said knowledge graph via an applications programming interface (API); and
provide said unknown diagnostic factors in association with said at least one medical condition via said API to a software application.
25 . A computer system as recited in claim 19 wherein said each known factor node does not include information specific to said at least one medical condition.