EVS 4 0 Feature Overview EVS API and

  • Slides: 23
Download presentation
EVS 4. 0 Feature Overview EVS API and User Interface p. BIO Meeting March

EVS 4. 0 Feature Overview EVS API and User Interface p. BIO Meeting March 20, 2007 Frank Hartel NCICB frankh@mail. nih. gov Gilberto Fragoso NCICB fragosog@mail. nih. gov Doug Mason SAIC masondo@mail. nih. gov

Outline Overview Current Lex. BIG psuedoproduction server Integration – System Overview 4. 0 Deployment

Outline Overview Current Lex. BIG psuedoproduction server Integration – System Overview 4. 0 Deployment / Timelines Application Programming Interface to NCI Vocabularies User Interfaces Next Steps

What is Lex. BIG? Successor to Lex. GRID 1. 0 – Open terminology server

What is Lex. BIG? Successor to Lex. GRID 1. 0 – Open terminology server – Developed by Mayo – Reference implementation HL 7 CTS 1. 0 spec Lex. BIG is a ca. BIG project – v. CDE contract to Mayo for development • Delivery of Lex. BIG 1. 0 (March 2006) Ongoing bug and feature enhancements v. CDE contract to Mayo for deployment support Future v. CDE support possible for Lex. BIG 2. 0 • – – Deployed at NCICB in ca. CORE 3. 2 “quasi-production” release

Why Incorporate Lex. BIG in ca. CORE? Current terminology components are proprietary, Metaphrase is

Why Incorporate Lex. BIG in ca. CORE? Current terminology components are proprietary, Metaphrase is frozen, requires complex ca. CORE architecture, many severs Lex. BIG is open, simplifies ca. CORE architecture, operations – – Superior performance Supports existing capabilities and provides new ones • Search, sub-setting, and Boolean operations across multiple terminologies simultaneously • Superior lexical search capabilities Superior graph construction Adoption by National Center for Biomedical Ontology, CDC, inherent support of HL 7 CTS and pending HL 7 CTS 2 spec ca. BIG product, support • – –

Current Lex. BIG psuedo-productions Server Supports ca. CORE 3. 2 API with Lex. BIG

Current Lex. BIG psuedo-productions Server Supports ca. CORE 3. 2 API with Lex. BIG serving terminologies – http: //cabio-lexbig. nci. nih. gov/cacore 32/remote. Service – http: //cabio-lexbig. nci. nih. gov/cacore 32/Happy. jsp May use for deprecated 3. 2 support after ca. CORE 4. 0 release – Questions – Our app developers/users need to answer – NOW! • Does it return the same search results as the production server? • If not are the results acceptable? Answer will influence how we support EVS access using 3. 2 API after ca. CORE 4. 0 release. Important because: – In ca. CORE 4. 0 Lex. BIG model will be exposed at ca. CORE API • Faster, more capable but • Not backward compatible with 3. 2 EVS API – So … Approach for 3. 2 EVS API support in 4. 0 is important!

Integration

Integration

System Overview – ca. CORE / Proprietary System Integration Current System (3. 2) –

System Overview – ca. CORE / Proprietary System Integration Current System (3. 2) – Proprietary Servers – Four servers NCI Metathesaurus Server ca. CORE User Request NCI DTS Server Oracle Database Server

System Overview – ca. CORE / Lex. BIG System Integration Proposed System (4. 0)

System Overview – ca. CORE / Lex. BIG System Integration Proposed System (4. 0) – – Open Source Servers (DB) Two servers ca. CORE Lex. BIG User Request My. SQL Database

System Overview - Interfaces / Services Query-by-example (QBE) system – – Web Services Distributed

System Overview - Interfaces / Services Query-by-example (QBE) system – – Web Services Distributed Lex. BIG XML / HTML Service Layer – Java Web Services REST (HTTP / XML) ca. CORE Server Cache DAO Java QBE Distributed Lex. BIG Interface Lex. BIG API

System Overview - Benefits Reduces the complexity of System deployment Reduces the System cost

System Overview - Benefits Reduces the complexity of System deployment Reduces the System cost / maintenance overhead Complete Open Source solution Flexible Query API – Extension points (Sort, Match Algorithms) Performance – Index common terms – Direct access to API – “lazy” loading (deferred loading) – Iterator (results paged from server) Not tied to data particular format

Production 4. 0 Tier Use Lex. BIG Support only one terminology transformation and load

Production 4. 0 Tier Use Lex. BIG Support only one terminology transformation and load process And maybe… Use Metaphrase For browser support Only…

Deprecated 3. 2 Tier Use Only Lex. BIG Support only one terminology transformation and

Deprecated 3. 2 Tier Use Only Lex. BIG Support only one terminology transformation and load process Or. . . Retain Legacy Infrastructure More servers and a second, incompatible terminology data transformation and load process required

4. 0 Deployment / Timelines

4. 0 Deployment / Timelines

Application Programming Interface to NCI Vocabularies

Application Programming Interface to NCI Vocabularies

ca. CORE / Lex. BIG 4. 0 API Benefits Does not use “proprietary-looking” terminology

ca. CORE / Lex. BIG 4. 0 API Benefits Does not use “proprietary-looking” terminology – coded. Entry rather than Desc. Logic. Concept, Meta. Thesaurus. Concept No need to wrap API, can be exposed with minor changes (if any), and distributed with ca. CORE – No performance lost on conversions from one model to another (e. g. Apelon Concept -> DTSRPC Concept -> ca. CORE Desc. Logic. Concept) Same API utilized for the Metathesaurus as well as stand-alone vocabularies Utilizes Lucene for searching, allows user to select matching algorithms (contains, exact, “sounds like”). Upside/Downside – very granular API, learning curve

ca. CORE / Lex. BIG 4. 0 API Examples – Current ca. CORE Search

ca. CORE / Lex. BIG 4. 0 API Examples – Current ca. CORE Search a vocabulary for concepts containing a specific synonym From a standalone DTS vocabulary; for description logic concepts EVSQuery evs. Query = new EVSQuery. Impl(); List evs. Results = new Array. List(); evs. Query. get. Concept. With. Property. Matching("NCI_Thesaurus", "Synonym", "protocol", 10); evs. Results = (List)app. Service. evs. Search(evs. Query); for(int i=0; i<evs. Results. size(); i++){ Desc. Logic. Concept dlc = (Desc. Logic. Concept) evs. Results. get(i); // do something with the returned concepts } From a source vocabulary in the Metathesaurus EVSQuery meta. Query = new EVSQuery. Impl(); List meta. Results = new Array. List(); meta. Query. search. Meta. Thesaurus("protocol", 10, "NCI 2006_10 D", false, false); meta. Results = (List)app. Service. evs. Search(meta. Query); for(int m=0; m<meta. Results. size(); m++){ Meta. Thesaurus. Concept mtc = (Meta. Thesaurus. Concept)meta. Results. get(m); // do something with the returned concepts }

ca. CORE / Lex. BIG 4. 0 API Examples – Lex. BIG-based ca. CORE

ca. CORE / Lex. BIG 4. 0 API Examples – Lex. BIG-based ca. CORE Search a vocabulary for concepts containing a specific synonym … From a Lex. Big-hosted vocabulary Coding. Scheme. Version. Or. Tag tag. Or. Version = new Coding. Scheme. Version. Or. Tag(); tag. Or. Version. set. Version("06. 12 d"); org. Lex. Grid. Lex. BIGService lb. Svc = new Lex. BIGService. Impl(); Coding. Scheme scheme = lb. Svc. resolve. Coding. Scheme("NCI_Thesaurus", tag. Or. Version); Coded. Node. Set cns = new Coded. Node. Set. Impl(coding. Scheme, tag. Or. Version, true); Local. Name. List property. List = new Local. Name. List(); property. List. add. Entry("Synonym"); String match. Algorithm = "contains"; // exact. Match, lucene. Query cns = cns. restrict. To. Matching. Properties(property. List, null, "protocol", match. Algorithm, language); Local. Name. List restrict. To. Properties = new Local. Name. List(); restrict. To. Properties. add. Entry("Preferred_Name"); restrict. To. Properties. add. Entry(“Synonym"); Sort. Option. List sort. Criteria = Constructors. create. Sort. Option. List(new String[]{"match. To. Query", "code"}); Resolved. Concept. Reference. List rcrl = cns. resolve. To. List(sort. Criteria, restrict. To. Properties, null, 10); Resolved. Concept. Reference[] rcrs = rcrl. get. Resolved. Concept. Reference(); Resolved. Concept. Reference rcr = null; for (int i=0; i<rcrs. length; i++) { rcr = rcrs[i]; Coded. Entry ce = rcr. get. Referenced. Entry(); // do something with the returned coded entries }

ca. CORE / Lex. BIG 4. 0 API Examples – Lex. BIG-based ca. CORE

ca. CORE / Lex. BIG 4. 0 API Examples – Lex. BIG-based ca. CORE Retrieve a coded entry by its code/identifier org. Lex. Grid. Lex. BIGService lb. Svc = null; lb. Svc = new Lex. BIGService. Impl(); Resolved. Concept. Reference. List matches = null; Concept. Reference. List crefs = Convenience. Methods. create. Concept. Reference. List( new String[] {"C 12345"}, "NCI_Thesaurus"); Coding. Scheme. Version. Or. Tag tag. Or. Version = new Coding. Scheme. Version. Or. Tag(); tag. Or. Version. set. Version("06. 12 d"); Local. Name. List property. List = null; Sort. Option. List sort. Order = null; matches = lb. Svc. get. Coding. Scheme. Concepts("NCI_Thesaurus", tag. Or. Version, false). restrict. To. Codes(crefs). resolve. To. List(sort. Order, property. List, 1); Resolved. Concept. Reference ref = (Resolved. Concept. Reference)matches. enumerate. Resolved. Concept. Reference(). next. Element(); Coded. Entry entry = ref. get. Referenced. Entry();

User Interface

User Interface

NCI Terminology Browser & Meta Browser in ca. CORE 4. 0

NCI Terminology Browser & Meta Browser in ca. CORE 4. 0

Next Steps Obtain user feedback about the quality and acceptability of EVS search results

Next Steps Obtain user feedback about the quality and acceptability of EVS search results from 3. 2 quasi-production server Complete schedule for EVS ca. CORE 4. 0 – Offer one or two beta releases of ca. CORE 4. 0 to enable users to test and comment on EVS API, performance, etc.

STOP

STOP

Bio. Portal – Lex. BIG powered User Interface Benefits – – Browser for both

Bio. Portal – Lex. BIG powered User Interface Benefits – – Browser for both NCI Metathesaurus and individual terminologies Supports • Terminology metadata • Terminology download Multiple graph types Open, extensible, developed by NCBO • – • Will support fine grained userterminology publisher dialog