NCIEVS Metaphrase API Presented to the National Cancer Institute (NCI) Kim Ong 12/07/2001.

Slides:



Advertisements
Similar presentations
Database System Concepts and Architecture
Advertisements

® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Brian A. Carlsen Apelon, Inc. Tools For Classification Integration Networked Knowledge Organization Systems/Services Workshop June 28, 2001.
Java Library Java provides a huge library or collection of useful programs A gold mine of well-tested code that can save you countless hours of development.
Java Remote Object Invocation (RMI) Overview of RMI Java RMI allowed programmer to execute remote function class using the same semantics as local functions.
II. Middleware for Distributed Systems
Practical Issues of RPCCS-4513, D-Term Remote Procedure Call Practical Issues CS-4513 Distributed Computing Systems (Slides include materials from.
1 Chapter 2 Database Environment. 2 Chapter 2 - Objectives u Purpose of three-level database architecture. u Contents of external, conceptual, and internal.
Unified Medical Language System® (UMLS®) NLM Presentation Theater MLA 2007 National Library of Medicine National Institutes of Health U.S. Dept. of Health.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
1 Introduction to databases concepts CCIS – IS department Level 4.
K. Jamroendararasame*, T. Matsuzaki, T. Suzuki, and T. Tokuda Department of Computer Science, Tokyo Institute of Technology, JAPAN Two Generators of Secure.
Object Orientation An Object oriented approach views systems and programs as a collection of interacting objects. An object is a thing in a computer system.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
Indexing Knowledge Daniel Vasicek 2014 March 27 Introduction Basic topic is : All Human Knowledge Who Cares? Simple Examples.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Database System Concepts and Architecture Lecture # 2 21 June 2012 National University of Computer and Emerging Sciences.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
1 LexEVS 5.0 Advanced Topics Configuration Options LexEVS Boot Camp November, 2009.
DBXplorer: A System for Keyword- Based Search over Relational Databases Sanjay Agrawal Surajit Chaudhuri Gautam Das Presented by Bhushan Pachpande.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
1 st June 2006 St. George’s University of LondonSlide 1 Using UMLS to map from a Library to a Clinical Classification: Improving the Functionality of a.
CaDSR Java API Tutorial by John Kramer Tutorial Document by Manny Roble with assistance from Gene Levinson, and John Kramer.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Tommie Curtis SAIC January 17, 2000 Open Forum on Metadata Registries Santa Fe, NM SDC JE-2023.
Indexing UMLS concepts with Apache Lucene Julien Thibault University of Utah Department of Biomedical Informatics.
Remote programs and commands In this presentation… –rpc concepts –rpc connections –rpc actions.
LexBIG/LexGrid Services for LexBIG 2.3 Model and API for the Grid.
Environment Change Information Request Change Definition has subtype of Business Case based upon ConceptPopulation Gives context for Statistical Program.
Java Remote Object Invocation (RMI) Overview of RMI Java RMI allowed programmer to execute remote function class using the same semantics as local functions.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Sharing Ontologies in the Biomedical Domain Alexa T. McCray National Library of Medicine National Institutes of Health Department of Health & Human Services.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
DBLP database DBLP Web Site & Search Pages User Query Info n User Knowledge Info1 Info
EVS 4.0 Feature Overview EVS API and User Interface pBIO Meeting March 20, 2007 Frank Hartel Gilberto Fragoso
What is Java? Object Oriented Programming Language Sun Microsystems “Write Once, Run Everywhere” Bytecode and Virtual Machine Java Platform (Java VM and.
LexEVS 5.0 EVS to LexEVS: A Migration Guide November, 2009.
 Java RMI Distributed Systems IT332. Outline  Introduction to RMI  RMI Architecture  RMI Programming and a Sample Example:  Server-Side RMI programming.
.NET Mobile Application Development XML Web Services.
1 Lecture 15 Remote Method Invocation Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology.
2) Database System Concepts and Architecture. Slide 2- 2 Outline Data Models and Their Categories Schemas, Instances, and States Three-Schema Architecture.
Kyung Hee University Class Diagramming Notation OOSD 담당조교 석사과정 이정환.
Netprog Java RMI1 Remote Method Invocation.
Study on the Design for Consumer Health Knowledge Organization in China Institute of Medical Information Chinese Academy of Medical Sciences Jul. 10th,
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
Metaphrase EVS API Presented to the National Cancer Institute (NCI) Office of Informatics (OI) Noel Ramathal 06/06/2000.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Databases (CS507) CHAPTER 2.
UNIFIED MEDICAL LANGUAGE SYSTEMS (UMLS)
Chapter 2: Database System Concepts and Architecture - Outline
Chapter 2 Database Environment.
Programming Models for Distributed Application
Chapter 2 Database Environment.
DATABASE LINK DISTRIBUTED DATABASE.
Chapter 2 Database Environment Pearson Education © 2009.
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Exercise 2 students completed a higher education in Norway in 2004/05
Database System Concepts and Architecture
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Chapter 2 Database Environment Pearson Education © 2009.
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

NCIEVS Metaphrase API Presented to the National Cancer Institute (NCI) Kim Ong 12/07/2001

Outline Architecture Documentation Introduction Some API Classes Sample Code

Architecture (RMI) EVS Oracle Database Metaphrase Java API Relational to Object mapping Java Client RMI Server cache

Two Versions of APIs Remote Method Invocation (RMI) Component Object Model (COM)

Documentation

Introduction Source –A version of a local or external authority, such as PDQ, SNOMED, ICD-9, or CPT. Concept –A unit of thought, a semantic unit or ‘meaning’ in the thesaurus. Atom –An occurrence of a name in a source, typically associated with a Partition with a code. Term –A set of atoms which belong to the same Concept and the same lexical class (i.e., have the same LUI)

Introduction Partition –A collection of meanings identified in a Source. Code –The string which name a partition in a source. Relationship –A directional link between two concepts

Introduction CUI –Concept Unique Identifier LUI –Lexical class Unique Identifier Term Group –A subset of atoms in a source; e.g., preferred term (PT), synonym (SY), abbreviation (AB). Preferred Name –The preferred name for a concept Semantic Type –A classification of concepts

Thesaurus Structure concept term atom Preferred name of a concept Preferred form of a term Hierarchical relationship associative relationship Each concept is identified by CUI Each term is identified by LUI

Example CUI: C Skin neoplasm malignant NOS (CTEP-DIS) Skin Neoplasms, Malignant (NCI) Malignant Skin Neoplasm (NCIPDQ) Cancer of the Skin (NCIPDQ) Skin Cancer (NCIPDQ) Malignant Skin Tumor (NCIPDQ) Skin Cancer (NCI) Skin Cancer, Including Melanoma (DBS-CODE) MELANOMA AND NON-MELANOMA SKIN CANCER (DCTD-CD) Skin Cancers (NIH) Malignant Neoplasm of the Skin (NCIPDQ) Malignant Tumor of the Skin (NCIPDQ) PT SY Preferred name

Some Details NCI SNOMED For every relationship, there is an inverse relationship also. Relationships between two concepts can be specified by multiple sources (e.g. NCI, SNOMED).

Some Details NCI DBSDCBOCC DBS-KEYDBS-CODEDCB-BC DCB-BC2DCB-BC1 A source can have multiple sub-sources

Some API Classes

Metaphrase Class Enumeration matches(String, SearchSpec) –searches database for the input string returning a list of match objects within the specified limit. Concept getConcept(java.lang.String conceptID) –returns the Concept with the given ID. Enumeration getSources() –returns a list of Source objects. These are the sources contained in metathesaurus. SubSources are not included in this list. Enumeration getConcepts(Source source) –returns a list of Concept objects that contain atoms from the specified source. Note: The above list does not describe all the available methods for this class

Concept Class Atom[] atoms() –all the atoms that are contained in this concept. Atom[] atoms(Source source) –all the atoms from the specified source that are contained in this concept. Definition[] definitions() –the definitions for this concept. String conceptID() –the ID for this concept. String preferredName() –the preferred name of this concept. Relationship[] relationships() –the links between this concept and other concepts. Source[] sources() –the sources that have an atom in this concept. Term[] synonyms() –the terms that are synonyms for this concept (basically the terms that are not in the PT termgroup). Note: The first element of this list is also the preferred term. Note: The above list does not describe all the available methods for this class

Atom Class Concept concept() –the concept that the atom belongs to. String name() –the name of the atom. String termgp() –the term group to which the atom belongs. Source source() –the source that specified this atom. Note: The above list does not describe all the available methods for this class

Term Class Concept concept() –the concept that contains this term. String preferredForm() –the string representation of this term. Note: The above list does not describe all the available methods for this class

Definition Class String text() –the text of the definition. Source source() –the source that specified this definition. Note: The above list does not describe all the available methods for this class

Relationship Class String rel() –the type of relationship: RN or CHD = narrow, RB or PAR = broader, RO or RL = related. String rela() –more details pertaining to the relationship: e.g., ‘is part of’. Concept concept1() –the first concept that is part of the relationship. Concept concept2() –the second concept that is part of the relationship. Source source() –the source that specified this relationship. Note: The above list does not describe all the available methods for this class

Source Class String description() –description of the source String SAB() –an abbreviation that representes the source, e.g., NCI represents National Cancer Institute. Subsource[] children() –the subsources of this source. Note: The above list does not describe all the available methods for this class

Match Class Atom matched() –the atom that matched the search string. Atom preferred() –the preferred atom for the concept that contains the matched atom. Concept concept() –the concept that contains the matched atom. int score() –the match score. The higher the score the better the match. Term matchedTerm() –the term that matched the search string. Term preferredTerm() –the preferred term for the concept that contains the matched term. Note: The above list does not describe all the available methods for this class

Sample Code

Example Connect to EVS metaphrase server Perform Search for “Skin Cancer” and identify matched concepts Get synonyms for each matched concept Get relationships for each matched concept Compile & Run

Step 1: Connect to EVS - Create an instance of RMIMetaphrase RMIMetaphrase(String serverURL, String DBName, String userName, String passWord) Constructor try { metaphrase = new RMIMetaphrase("//"+"ncievs.nci.nih.gov"+"/RemoteMetaphrase", "NCI", "guest", "NCI-EVS"); } catch (MetaphraseException me) { } Example

Step 2: Perform Search - Use the matches function Enumeration Metaphrase.matches(String s, SearchSpec spec ) Atom Match.matched(); Atom Match.preferred() String Atom.name() Methods try { SearchSpec spec = new SearchSpec(); spec.setLimit(10); String s = “Skin Cancer”; Enumeration matches = metaphrase.matches(s, spec); while (matches.hasMoreElements()) { Match match = (Match) matches.nextElement(); Term matched_Term = match.matchedTerm(); int score = match.score(); String matchAtom = matched_Term.preferredForm(); Concept concept = matched_Term.concept(); String CUI = concept.conceptID(); } catch (MetaphraseException me) { } Example

Step 3: Get Synonyms - Call on Concept.synonyms for each matched concept Term[] Concept.synonyms() String Term.preferredForm() Methods while (match.hasMoreElements()) { Concept concept = ((Match) match.nextElement()).concept(); try { Term[] syns = concept.synonyms(); for (int I=0;I<syns.length;I++) System.out.println(syns[I].preferredForm()); } catch (MetaphraseException me) { } } Example

Step 4: Get Relationships - Call on Concept.relationships for each matched concept Relationship[] Concept.relationships() String Relationship.rel(); Concept Relationship.concept1(); Methods while (match.hasMoreElements()) { Concept concept = ((Match) match.nextElement()).concept(); try { Relationship[] rels = concept.relationships(); for (int I=0;I<rels.length;I++) System.out.println(rels[I].concept1().preferredName() + “ “ rels[I].rel() + “ “ + rels[I].concept2().preferredName()); } catch (MetaphraseException me) { } } Example

Step 5: Compile & Run (RMI) javac -deprecation -classpath %classpath%; c:\metaphrase\Metaphrase2.jar test.java Compile java -classpath %classpath%; c:\metaphrase\Metaphrase2.jar test Run

Step 5: Compile (COM) javac -deprecation -classpath %CLASSPATH%; c:\Metaphrase\commetaphrase.zip; c:\Metaphrase\xerces.jar; c:\Metaphrase\Tbv5vbjn.zip; c:\metaphrase\metaphrase2.jar; c:\jswdk-1.0.1\lib\servlet.jar test.java

Step 5: Run (COM) if "%OS%" == "Windows_NT" setlocal set BASE=%1 set TERM=%2 jview -cp %BASE%commetaphrase.zip; %BASE%xerces.jar test pause