Categories
Medicine Pharmacovigilance toolkit Semantic search

Label/document search using medical synonyms

In medicine we repeatedly need answers to the following kinds of questions:

Based on a set of documents (like an H&P, a few progress notes, perhaps the results of a few lab tests), does a patient have or not have a clinical condition, eg, things like significant cardiac disease, risk factors for seizure, etc?

Based on a set of documents (like drug labels, perhaps the results of a couple of additional studies), has a given drug been associated with clinical conditions, eg, things like significant cardiac risk, risk of renal effects, etc?

This is a time-consuming problem. Usually the clinician ultimately must carefully read the chart, labels, or study to make such an assessment. But an intelligent search of such documents could assist the clinician’s evaluation.

Unfortunately, it’s a hard problem for software to provide any kind of definitive guidance. A first naive pass might include searching the relevant documents for phrases like “myocardial infarction” and “conduction disorder”, or “head injury” and “epilepsy”.

It helps to use standardized synonyms for various conditions and automatically search documents for all such synonyms. Examples of synonym sources include the UMLS Metathesaurus and National Library of Medicine. A second approach is then to search using all the synonyms for a clinical condition.

Here is an experimental search of drug labels using medical synonyms from the National Library of Medicine.

Example:

  • Enter “stribild” as drug
  • Press “Fetch label(s)” button (or just press enter)
  • Enter “pain” as search term
  • Press “Get synonyms for search terms” button (or just press enter)
  • Press “Search with synonyms”

Ultimately what is needed is semantic search, which may be amenable to hybrid approaches using these kinds of simple synonym searches combined with machine learning. For example, biologically-oriented BERT models provide some semantic search capability and are the subject of active research.

Categories
Medicine Ontology Pharmacovigilance toolkit SPARQL

Pharmacological Actions

Interface to National Library of Medicine MESH SPARQL endpoint to obtain the pharmacological action of a medication, using the following type of query:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX meshv: <http://id.nlm.nih.gov/mesh/vocab#>
PREFIX mesh: <http://id.nlm.nih.gov/mesh/>
PREFIX mesh2020: <http://id.nlm.nih.gov/mesh/2020/>
PREFIX mesh2019: <http://id.nlm.nih.gov/mesh/2019/>
PREFIX mesh2018: <http://id.nlm.nih.gov/mesh/2018/>
PREFIX : <urn:ex:>
SELECT DISTINCT ?paLabel
FROM <http://id.nlm.nih.gov/mesh>
WHERE {
?s ?p ?n . 
?possible_concepts (:|!:){,3} ?s . 
BIND (?possible_concepts as ?fresh_possible_concepts) .
?fresh_possible_concepts (:|!:){,3} ?n . 
?fresh_possible_concepts rdf:type meshv:TopicalDescriptor .
?fresh_possible_concepts meshv:pharmacologicalAction ?pa .
?pa rdfs:label ?paLabel .} '

Compare the results obtained via MESH with results obtainable via US FDA National Drug Code (NDC) Directory data:

MESH results for ‘Stribild’:

  • Anti-HIV Agents

US FDA NDC results for ‘Stribild’:

  • Mechanism of Action
    • HIV Integrase Inhibitors
    • Cytochrome P450 2C9 Inducers
    • Cytochrome P450 3A Inhibitors
    • P-Glycoprotein Inhibitors
    • Cytochrome P450 2D6 Inhibitors
    • Organic Anion Transporting Polypeptide 1B1 Inhibitors
    • Organic Anion Transporting Polypeptide 1B3 Inhibitors
    • Breast Cancer Resistance Protein Inhibitors
    • Nucleoside Reverse Transcriptase Inhibitors
    • Nucleoside Reverse Transcriptase Inhibitors
  • Established Pharmacological Class
    • Human Immunodeficiency Virus Integrase Strand Transfer Inhibitor
    • Cytochrome P450 3A Inhibitor
    • Human Immunodeficiency Virus Nucleoside Analog Reverse Transcriptase Inhibitor
    • Human Immunodeficiency Virus Nucleoside Analog Reverse Transcriptase Inhibitor
    • Hepatitis B Virus Nucleoside Analog Reverse Transcriptase Inhibitor
  • Chemical Structure
    • Nucleosides

Categories
Ontology Pharmacovigilance toolkit SPARQL

Medical Synonyms

Example interface to the National Library of Medicine MESH SPARQL endpoint, which returns medical synonyms using the following type of query:


PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX meshv: <http://id.nlm.nih.gov/mesh/vocab#>
PREFIX mesh: <http://id.nlm.nih.gov/mesh/>
PREFIX mesh2020: <http://id.nlm.nih.gov/mesh/2020/>
PREFIX mesh2019: <http://id.nlm.nih.gov/mesh/2019/>
PREFIX mesh2018: <http://id.nlm.nih.gov/mesh/2018/>
PREFIX : <urn:ex:>


SELECT DISTINCT ?synonyms
FROM <http://id.nlm.nih.gov/mesh>
WHERE {

  # Which direct triples ?s match the query string?
  ?s ?p ?n.
  # Find ancestors a few levels above. The limiting numbers {,3} mean
  # only consider 3 levels at most - this is important as the number
  # of ancestors/descendants are potentially large.
  ?possible_concepts (:|!:){,3} ?s.
  # Of these ancestors, which have a direct path to the query string?
  ?possible_concepts (:|!:){,3} ?n.
  # ..and of these, we want concepts because they contain
  #   synonyms of interest
  [] meshv:preferredConcept ?possible_concepts.
  # Find all the children of these concepts
  ?possible_concepts (:|!:){,3} ?all_descendants.
  # Finally, enumerate labels of these concepts as synonyms of the
  # input string
  ?all_descendants meshv:label|meshv:prefLabel|rdfs:label|meshv:altLabel ?synonyms.}

Categories
Pharmacovigilance toolkit

Get drug class(es) of drug

Enter a drug name (generic or brand name) – returns the medication class or classes.

Categories
Pharmacovigilance toolkit

Drugs in class

Select a drug class to get a list of drugs in that class (with manufacturer).

Categories
Pharmacovigilance toolkit

Label grep

Experimental application to allow quick search across USPI and SmPC for multiple drugs.

Paste a comma-separated list of medications (either generic or brand name can be used).

Press fetch.

Enter a search term.