| Literature DB >> 23920645 |
Lee Peters1, Jonathan Mortensen, Thang Nguyen, Olivier Bodenreider.
Abstract
Our objective was to enable an end-user to create complex queries to drug information sources through functional composition, by creating sequences of functions from application program interfaces (API) to drug terminologies. The development of a functional composition model seeks to link functions from two distinct APIs. An ontology was developed using Protégé to model the functions of the RxNorm and NDF-RT APIs by describing the semantics of their input and output. A set of rules were developed to define the interoperable conditions for functional composition. The operational definition of interoperability between function pairs is established by executing the rules on the ontology. We illustrate that the functional composition model supports common use cases, including checking interactions for RxNorm drugs and deploying allergy lists defined in reference to drug properties in NDF-RT. This model supports the RxMix application (http://mor.nlm.nih.gov/RxMix/), an application we developed for enabling complex queries to the RxNorm and NDF-RT APIs.Entities:
Mesh:
Substances:
Year: 2013 PMID: 23920645 PMCID: PMC4303373
Source DB: PubMed Journal: Stud Health Technol Inform ISSN: 0926-9630
List of components in the interoperability ontology.
| Components/classes | Description |
|---|---|
| service | group of functions, may have a set of sources and specific IDs. Example: RxNorm API |
| function | a specific function of a service, has input and output parameters. Example: findRxcuiById |
| parameter | semantically described characteristics of input and output of a function. Example: RxCUI |
| source | certain vocabularies a service may have. Example: RxNorm |
| workflow_element | a container to describe a unit in a workflow, each containing a function and set of data annotations |
List of properties in the interoperability ontology.
| Properties | Description |
|---|---|
| has_function | relates a service to a function |
| has_id | relates a source to an ID |
| has_initial_output | relates the first workflow element (the user input) to the annotation of the input |
| has_input | relates a function to expected inputs or relates a workflow element to actual data inputs |
| has_member | relates a user_defined parameter to other parameters |
| has_output | relates a function to an output parameter |
| has_source | relates a service to a source |
| interoperable_with | relates a function to another function |
| next_element | points a workflow element to the next workflow element |
| previous_element | points a workflow element to the previous workflow element |
| provided_by | relates a function to a service |
| provides | relates a service to a function |
List of rules defining interoperability among functions.
| If the input of |
| If |
| If the output of |
| If the output of |
Figure 1Example of web service composition workflow in the RxMix application.