Skip to content

Python-based non-minimalistic OWL to FHIR converter.

Notifications You must be signed in to change notification settings

timsbiomed/owl-on-fhir

Repository files navigation

OWL-on-FHIR

owl-on-fhir logo

A Python-based non-minimalistic OWL to FHIR converter.

Prerequisite

Installation

pip install owl-on-fhir

Usage

Syntax

owl-on-fhir --input-path-or-url FILENAME --code-system-id ID --native-uri-stems "URL_1,...,URL_N" --code-system-url URL [NON_REQUIRED_OPTIONS]

Examples

owl-on-fhir --input-path-or-url comploinc.owl --code-system-id comploinc --native-uri-stems "https://loinc.org/" --code-system-url https://github.com/loinc/comp-loinc/releases/latest/download/merged_reasoned_loinc.owl

CLI options

Short Flag Long Flag Required Description
-h --help Show this help message and exit.
-i --input-path-or-url True URL or path to OWL file to convert.
-s --code-system-id True The code system ID to use for identification on the server uploaded to. See: https://hl7.org/fhir/resource-definitions.html#Resource.id
-S --code-system-url True Canonical URL for the code system. See: https://hl7.org/fhir/codesystem-definitions.html#CodeSystem.url
-u --native-uri-stems True A comma-separated list of URI stems that will be used to determine whether a concept is native to the CodeSystem. For example, for OMIM, the following URI stems are native: https://omim.org/entry/,https://omim.org/phenotypicSeries/PS". As of 2023-01-15, there is still a bug in the Obographs spec and/or robot where certain nodes are not being converted. This converter adds back the nodes, but to know which ones belong to the CodeSystem itself and are not foreign concepts, this parameter is necessary. OAK also makes use of this parameter. See also: geneontology/obographs#90
-o --out-dir False The directory where results should be saved.
-n --out-filename False Filename for the primary file converted, e.g. CodeSystem.
-p --include-only-critical-predicates False If present, includes only critical predicates (is_a/parent) rather than all predicates in CodeSystem.property and CodeSystem.concept.property.
-t --intermediary-type False Which type of intermediary to use? First, we convert OWL to that intermediary format, and then we convert that to FHIR.
-c --use-cached-intermediaries False Use cached intermediaries if they exist?
-r --retain-intermediaries False Retain intermediary files created during conversion process (e.g. Obograph JSON)?
-I --convert-intermediaries-only False Convert intermediaries only?
-d --dev-oak-path False If you want to use a local development version of OAK, specify the path to the OAK directory here. Must be used with --dev-oak-interpreter-path.
-D --dev-oak-interpreter-path False If you want to use a local development version of OAK, specify the path to the Python interpreter where its dependencies are installed (i.e. its virtual environment). Must be used with --dev-oak-path.

More

Alternative OWL to FHIR converters

FHIR-OWL

https://github.com/aehrc/fhir-owl
Takes a minimalistic approach. Can convert top-level CodeSystem properties, concepts, and also supports some predicates, such as synonyms. Uses Java owl-api.

Ontology Access Kit (OAK)

https://github.com/INCATools/ontology-access-kit/ OWL-on-FHIR is largely a wrapper around Ontology Access Kit (OAK)'s FHIR converter. It adds some extra automation such as an intermediary conversion to Obographs JSON, which is currently a required input for OAK for most ontologies, given the current state of development.