Enabling complex queries to drug information sources through functional composition Olivier Bodenreider Lister Hill National Center for Biomedical Communications Bethesda, Maryland - USA Lee Peters, Jonathan Mortensen, Thang Nguyen Medinfo 2013 Copehangen, Denmark Session: Data models and representations - I August 21, 2013
Motivation u Biomedical vocabularies are used as reference knowledge sources u They can be used programmatically through Application Programming Interfaces (APIs) l Unified Medical Language Server (UMLS) l BioPortal l RxNorm u Difficult to compose complex queries across multiple APIs 2
Example use case u u Find all the brand name products available for a given generic drug, whose identity is known by the FDA unique ingredient identifier code (UNII) u u Workflow 3 RxNorm ID (ingredient) RxNorm ID (branded drug) FDA UNII (ingredient) findRxcuiByIdgetRelatedByType
Objectives u u To enable an end-user to create complex queries to drug information sources through functional composition u u Application to two different web services to drug information sources l l RxNorm API l l NDF-RT API – National Drug File-Reference Terminology u u Complex query = workflow l l Sequence of web service functions l l Function interoperability driven by an ontology 4
Web service annotation u u Several web service annotation and composition frameworks l l SAWSDL (Semantic Annotations for WSDL and XML Schema) – W3C l l SSWAP (Simple Semantic Web Architecture and Protocol) – U. Arizona l l SADI (Semantic Automated Discovery and Integration) – U. British Columbia l l Taverna – U. Manchester u u Our approach l l Difficult to retrofit our services to these frameworks l l Use of an ontology in the background, not in the payload 5
Drug information sources u u RxNorm l l Developed by NLM l l Normalized names and codes for drug entities l l Relations among drug entities form a graph u u NDF-RT l l National Drug File-Reference Terminology l l Developed by the Veterans Health Administration l l Generic drugs described in terms of their active ingredients, mechanisms of action, physiologic effects, and therapeutic intent (indications and contraindications) 6
Methods u Problem: Determine and represent interoperability among RxNorm and NDF-RT API functions based on their input and output u Semantic representation of input and output l Captured in an OWL ontology u Definition of interoperability between two functions l Modeled through rules 7
Ontology of functions u Developed in OWL using Protégé u Main classes l Service (e.g., RxNorm, NDF-RT) l Function: input and output parameters l Function parameter: semantics of identifiers u Examples l l RxNorm API has_function findRxcuiByID l l findRxcuiById has_input id_type l l findRxcuiById has_input id l l findRxcuiById has_output RxCUI l l RxNorm API has_function getRelatedByType l l getRelatedByType has_input RxCUI 8
Rules of interoperability u Main rule – u Main rule – If the input of B matches the output of A, then A is potentially interoperable with B u Additional rules l Interoperability between generic IDs and specific IDs in the input or output of functions u Example l l A: rxnorm:findRxcuiById has_output RxCUI l l B: rxnorm:getRelatedByType has_input RxCUI l l input of B matches the output of A => rxnorm:getRelatedByType interoperable_with rxnorm:findRxcuiById 9
Implementation u The OWL ontology supports the interoperability rules u Interoperability relations inferred from the rules support the determination of interoperability for a given pair of functions u The ontology and the interoperability relations drive l The validation of workflows l The graphical interface for creating workflows n Only allowable functions are proposed in the menu 10
RxMix u Simple example workflow: Finding brand names from clinical drug strings l Original input: a clinical drug string n n citalopram 20 mg oral tablet l Expected output: brand names n n Celexa l Workflow n clinical drug string -> clinical drug RxCUI –findRxcuiByString() n clinical drug RxCUI -> branded drug RxCUI (+ name) –getRelatedByType() 11
12
Add first function 13
Add second function 14
Complete workflow 15
Add input and run 16
Output 17
Examples of use cases u Finding clinical drugs which may cause allergic reactions u Finding interactions to RxNorm clinical drugs u Finding NDF-RT ingredients from RxNorm clinical drugs u Finding VA classes for RxNorm clinical dose forms u Finding brand names from clinical drug strings 18 Library of common use cases integrated in RxMix
Summary u u Web service composition model for the RxNorm and NDF-RT APIs u u Enables an end-user to create complex queries to drug information sources (“workflows”) u u Our model supports common use cases, including checking interactions for RxNorm drugs and deploying allergy lists defined in reference to drug properties in NDF-RT u u RxMix: 19
Medical Ontology Research Olivier Bodenreider Lister Hill National Center for Biomedical Communications Bethesda, Maryland - USA