Skip to content

LifeOmic Ontologies Service

What is LifeOmic Ontologies Service?

LifeOmic Ontologies Service is a web service that makes it easy to store and manage ontologies, terminologies and value-sets. Lifeomic Ontologies is our solution for organizing and translating information into knowledge for more efficient searching, filtering and discovery.


LifeOmic Ontologies Service provides a powerful API and other tools you will need to organize your terminologies using standard and proprietary knowledge, as well as increase your data's utility within the Precision Health Cloud. Ontologies is integrated with HL7 FHIR and provides endless flexibility to build custom groupings to power search, filtering and graphing. You can manage your information in many ways, including:

  • LifeOmic's API
  • LifeOmic's Command Line Interface

We maintain an open source project, called TermLink, that provides an engine for transforming open source terminologies, like SNOMED CT, RxNorm and LOINC.

Use Cases

LifeOmic Ontologies Service is a flexible combination of features designed to support a wide range of use cases:

  • Academic Researchers: Optimize search and filter criteria for analytics.
  • Bioinformaticians: Simplify cohort creation using standard and custom groupings.
  • Clinicians: Reduce complexity of patient analysis.
  • Health Coaches: Create activity, nutrition and health profiles.
  • HealthCare Data Managers: Audit your data for appropriate use of code systems, value sets and concept maps.

Quick Start

Learn how to create an ontology using LifeOmic Ontologies Service in the Precision Health Cloud.

  1. Create an ontology.
  2. Import it using the LifeOmic CLI.

Step 1: Create

An ontology can be defined as a JSON file. You can create one using a text editor.

For example, if you want to create an ontology that organizes ICD-10-CM codes into cancer groupings. Copy the example in Appendix B into a text file called oncology-ontology.json.

Step 2: Import

Using the LifeOmic CLI, import the ontologies into your project.

cat oncology-ontology.json | lo ontologies import [project]

For additional information run:

lo ontologies --help

Many standard ontologies can be imported using the open source TermLink library. This includes terminologies you may be familiar with, such as RxNorm and LOINC. See the Installing section for more information.

Overview

Tools

The API, CLI and other tools you need to organize your project using standard and proprietary knowledge.

API

The API exposes the full power of the Precision Health Cloud platform and is intended for software engineers that want to build custom applications.

See the API documentation for more details.

Command Line Interface

See the LifeOmic CLI project's README for more information on installation and authenticating with the Precision Health Cloud.

Once installed you can see the full list of commands available by running:

lo ontologies --help

TermLink is a program for transforming terminologies into a format that can be uploaded to LifeOmic Ontologies in the Precision Health Cloud.

Our goal is to provide support for all Code Systems registered in FHIR.

Installing

Get started by installing Docker and pulling the latest image:

docker pull lifeomic/termlink

Run it using:

docker run lifeomic/termlink --help

See the guide on Docker Hub for more information.

Extending

TermLink is written in Python and distributed as a PyPI package. You can import the library into your own Python program.

pip install termlink

Contributing

The project is open sourced on GitHub and we encourage everyone working with open sourced terminologies to open a pull request.

See the contributing guide to get started.

Appendix

Appendix A - Definitions

  • Ontology: a set of concepts and categories in a subject area or domain that shows their properties and the relations between them. Also known as a knowledge graph.1

  • Terminology: a set of concepts which may, or may not, be organized as an ontology.

  • Code System: "defines a set of concepts with a coherent meaning."2

  • Value Set: "a selection of a set of codes for use in a particular context."2

  • Concept Map: "mappings between concepts between one or more code system and or value sets."2

  • Relationship: a defined relation between a source and target concept with a defined equivalence3. Also informally referred to as a semantic triple.4

  • Coding: a representation of a defined concept using a symbol from a defined code system.5

Appendix B - Oncology Ontology

An ontology that includes a concept map of ICD-10-CM codes into a custom code systems cancers.

This example only includes codes for pancreatic cancer, but can be extended to include additional cancers.

[
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://hl7.org/fhir/sid/icd-10-cm",
            "display": "Malignant neoplasm of head of pancreas",
            "code": "C25.0"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        }
    },
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://hl7.org/fhir/sid/icd-10-cm",
            "display": "Malignant neoplasm of tail of pancreas",
            "code": "C25.2"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        }
    },
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://hl7.org/fhir/sid/icd-10-cm",
            "display": "Malignant neoplasm of endocrine pancreas",
            "code": "C25.4"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        }
    },
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://hl7.org/fhir/sid/icd-10-cm",
            "display": "Malignant neoplasm of overlapping sites of pancreas",
            "code": "C25.8"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        }
    },
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://hl7.org/fhir/sid/icd-10-cm",
            "display": "Malignant neoplasm of body of pancreas",
            "code": "C25.1"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        }
    },
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://hl7.org/fhir/sid/icd-10-cm",
            "display": "Malignant neoplasm of pancreatic duct",
            "code": "C25.3"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        }
    },
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://hl7.org/fhir/sid/icd-10-cm",
            "display": "Malignant neoplasm of other parts of pancreas",
            "code": "C25.7"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        }
    },
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://hl7.org/fhir/sid/icd-10-cm",
            "display": "Benign neoplasm of pancreas",
            "code": "D13.6"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        }
    },
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://hl7.org/fhir/sid/icd-10-cm",
            "display": "Personal history of malignant neoplasm of pancreas",
            "code": "Z85.07"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        }
    },
    {
        "equivalence": "subsumes",
        "source": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Pancreatic Cancer",
            "code": "pancreatic-cancer"
        },
        "target": {
            "type": "coding",
            "system": "http://lifeomic.com/ontology/oncology",
            "display": "Cancer",
            "code": "cancer"
        }
    }
]

Each node in the JSON object is an individual relationship. For example, the first node can be read as "'Malignant neoplasm of head of pancreas' is subsumed by 'Pancreatic Cancer'." In other words 'Malignant neoplasm of head of pancreas' is a pancreatic cancer.

{
    "equivalence": "subsumes",
    "source": {
        "type": "coding",
        "system": "http://hl7.org/fhir/sid/icd-10-cm",
        "display": "Malignant neoplasm of head of pancreas",
        "code": "C25.0"
    },
    "target": {
        "type": "coding",
        "system": "http://lifeomic.com/ontology/oncology",
        "display": "Pancreatic Cancer",
        "code": "pancreatic-cancer"
    }
}

Last update: June 8, 2020