CTS. Common Terminology Services Overview Technology Status.

Slides:



Advertisements
Similar presentations
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 10 Servlets and Java Server Pages.
Advertisements

DC2001, Tokyo DCMI Registry : Background and demonstration DC2001 Tokyo October 2001 Rachel Heery, UKOLN, University of Bath Harry Wagner, OCLC
HL7 V2 Implementation Guide Authoring Tool Proposal
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Enterprise Java and Data Services Designing for Broadly Available Grid Data Access Services.
Service Description: WSDL COMP6017 Topics on Web Services Dr Nicholas Gibbins –
XML: Extensible Markup Language
UDDI v3.0 (Universal Description, Discovery and Integration)
RDF Schemata (with apologies to the W3C, the plural is not ‘schemas’) CSCI 7818 – Web Technologies 14 November 2001 Van Lepthien.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
CTS2 Terminology Services
1 Generalizations Multiple Inheritance (finishing up Class Design) Class Design – Another Look – Part 11.
Beispielbild Shibboleth, a potential security framework for EDIT Lutz Suhrbier AG Netzbasierte Informationssysteme (
DT211/3 Internet Application Development JSP: Processing User input.
NaLIX: A Generic Natural Language Search Environment for XML Data Presented by: Erik Mathisen 02/12/2008.
Testing an individual module
Chapter 10 Classes Continued
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
3/18/19990© 1999, Health Level Seven, Inc. Introduction: Vocabulary domains Marital Status –single (never married) –married –divorced –separated “Vocabulary”
UNIT-V The MVC architecture and Struts Framework.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Common Object Request Broker Architecture (CORBA) CS-328.
Chapter 6: Forms JavaScript - Introductory. Previewing the Product Registration Form.
Author: DoanNX Version 2.0/Time: 30’. The ways to solve it There are 2 main ways:  Client-side: Using JavaScript (now one very good option is JQuery).
Interoperability Tests for IEC Scott Neumann November 12, 2009.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
LexEVS 6.0 Overview Scott Bauer Mayo Clinic Rochester, Minnesota February 2011.
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
RECALL THE MAIN COMPONENTS OF KIM Functional User Interfaces We just looked at these Reference Implementation We will talk about these later Service Interface.
5.1 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Web Services Description Language CS409 Application Services Even Semester 2007.
Dodick Zulaimi Sudirman Lecture 14 Introduction to Web Service Pengantar Teknologi Internet Introduction to Internet Technology.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Processing of structured documents Spring 2002, Part 2 Helena Ahonen-Myka.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
XML A web enabled data description language 4/22/2001 By Mark Lawson & Edward Ryan L’Herault.
XML Registries Source: Java TM API for XML Registries Specification.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Chapter 6 Server-side Programming: Java Servlets
LexBIG/LexGrid Services for LexBIG 2.3 Model and API for the Grid.
New perfSonar Dashboard Andy Lake, Tom Wlodek. What is the dashboard? I assume that everybody is familiar with the “old dashboard”:
1 Class responsibilities & relationships. 2 Responsibilities Responsibilities describe a class’s purpose in terms of its functionality Responsibilities.
Common Terminology Services 2 CTS 2 Submission Team Status Update HL7 Vocabulary Working Group May 17, 2011.
Preliminary Ocean Project Page 1 WGISS SG May 15, C. Caspar G. Tandurella P. Goncalves G. Fallourd I. Petiteville Preliminary Ocean Project Phase.
FIPA Abstract Architecture London FIPA meeting January 24-29, 2000 from: TC-A members.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
Providing web services to mobile users: The architecture design of an m-service portal Minder Chen - Dongsong Zhang - Lina Zhou Presented by: Juan M. Cubillos.
CS223: Software Engineering Lecture 13: Software Architecture.
Enable Semantic Interoperability for Decision Support and Risk Management Presented by Dr. David Li Key Contributors: Dr. Ruixin Yang and Dr. John Qu.
M1G Introduction to Programming 2 2. Creating Classes: Game and Player.
BIM Guides & bSDD Puzzling out a Strategy. Goals 1.Use the bSDD as the source for terminology 2.Use the bSDD to harmonize terms; enable synonyms without.
Sherri de Coronado Enterprise Vocabulary Services NCI Center for Bioinformatics and Information Technology March 11, 2009 A Terminology.
Software Design and Development Development Methodoligies Computing Science.
Public Service Announcement Movies made with the Alice Programming Language.
Advanced Higher Computing Science
Object Management Group Information Management Metamodel
Software Documentation
Chapter 18: Refining Analysis Relationships
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
ARCH-1: Application Architecture made Simple
Tim Bornholtz Director of Technology Services
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
CS 8532: Advanced Software Engineering
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Chapter 17 - Component-based software engineering
Presentation transcript:

CTS

Common Terminology Services Overview Technology Status

CTS Overview Goal Create interface specification which allows software based on the HL7 version 3 RIM to access terminology content in an consistent and implementation independent fashion.

CTS Overview Benefits for HL7 designers and implementation developers –Software can be written once and wont need to understand each terminology vendors database and/or API –Hides much of the complexity inherent in modern terminology systems.

CTS Overview Benefits for terminology and terminology software developers –Basic functional requirements clearly specified –Implementation can be based on existing databases and software –A common entry point – you dont have to sell the idea – you sell your enhancements, performance, etc.

CTS Partitions Message API vs. Terminology API vs. Mapping API HL7 Software Implementation Message Layer Terminology API Terminology Layer

CTS Overview Message API vs. Terminology API HL7 Software Implementation Message API Terminology API Is this code valid for this attribute? Is this code an example of an orderable drug? What are the valid codes for this attribute? What is the preferred English designation for this code? What is the closest equivalent for code x in terminology y?

CTS Partitions Message API vs. Terminology API vs. Mapping API HL7 Software Implementation Message Layer Terminology API Terminology Layer API published primarily for client implementations API published primarily for server implementations

CTS Partitions Runtime vs. Browsing (vs. Authoring) –Runtime Profile High availability, high throughput Production line use –Browsing Profile High functionality – search, filter, organize Use case is modeling and concept discovery Availability and throughput requirements (potentially) less stringent –Authoring Profile Needed to enter and modify HL7 vocabulary content May not need to be official standard

CTS Partitions Message API Vocabulary API Mapping API Runtime xx x Browsing xx Authoring x(limited/ HL7 Specific)

CTS API Subparts CTS Message API –Browser –Runtime CTS Vocabulary API –Browser –Runtime –Mapper (not really vocab, but it fits well here…) –Maintenance (lightweight authoring)

CTS Message Runtime API 1.Is this code* valid for this vocabulary domain and context(s)? 2.Is this a valid translation for this code for this vocabulary domain and context(s)? 3.Translate this code from this vocabulary domain into a code that is meaningful in this context. 4.Fill out the missing details (display name, code system name, version) for this code (for the supplied language and context(s)) * Instance of a CD data type

ValidateCode 1.Should this validation process include modifier validation, or should there be a separate function for modifiers? 2.Translations - if the code has translations, it is possible that the base code cannot be validated and that valid code(s), if any are in tre translation section only. What should the approach be under these circumstances? 3.Should there be a batch equivalent of this function, taking in multiple codes, outputing multiple details?

Validate Translation 1.How does this function relate to ValidateCode? 2.Should a complete translation list be checked? 3.What should the behavior be regarding recursive translations? 4.Batching?

TranslateCode 1.What unqiuely determines the target of a translation? If Value Sets can correspond to multiple code systems, then what should the target identifier be? The value set id? 2.What to do when a translation doesn't exist. Options include raise an exception (the current approach), emit an exception type if the data type is CWE, take the boolean/warning model of validate.

CTS Message Runtime API 5. Does code A imply code B? 6. Give me a list of the valid codes and display names for this vocabulary domain and context(s) in this language (which match this filter). (Identity functions: name, version, HL7 Release Version, description)

implies 1.There is currently no mechanism to ask the question WRT to the child code system. Will this nuance be needed?

CTS Vocabulary Runtime API 1.Is this code valid in this code system? 2.What is the preferred designation for this code in this language and context(s)? 3.Does a specific (directed) relationship exist between these two codes? 4.Return a hierarchically organized list of codes and designations (in the specified language) that have a given relationship with the supplied code. (identity + list of supported code systems)

Are codes related A false return does not necessarily imply that the code system was able to determine that a relationship was not *possible*, simply that such a relationship was not asserted. 1.Will we need a stronger function at some point to be able to ask whether the code system definitely says that the two codes are *not* related?

CTS Code Translation API 1.What is the translation (mapping) of the supplied code from code system x in code system y? (Identifying information – from and to code systems and versions, name, description, source or authority, contexts in which the service is applicable)

CTS Message Browser API 1.List all of the active attributes 2.List all of the active vocabulary domains 3.List all of the value sets 4.List all of the code systems (known to the browser) 5.Return the description, superclass, subclass(es), associated attributes and associated value sets of a named vocabulary domain.

CTS Message Browser API 6.Return the description, list of value sets used by, list of value sets using and code references for a supplied value set id. 7.Return the code system name and version of a supplied code system identifier 8.Return the value set (inc description, lists) that would be used for a given vocabulary domain and context(s) in a runtime situation. 9.Return a hierarchical list of codes associated with a given code set (pretty much what RoseTree or the listing in the Ballot returns) 10.Determine whether the supplied code is in the code set 11.(identification)

CTS Vocabulary Browser API 1.Get coded terms (and a whole bunch more information) whose designations, descriptions, match a supplied regular expression, language, context(s) and/or mime code(s). 2.Get coded terms (and a whole bunch o info) having property(s) that match a supplied regular expression, language, context(s) and/or mime code(s).

CTS Message Browser API 3. Get the designation(s) for a specific coded term that match the supplied regular expression, language, context(s) and/or mime code(s). 4.Get the descriptions 5.Get the properties (potentially selected from a list) that match the supplied regular expression, language, context(s) and/or mime code(s).

CTS Message Browser API 6. Return a nested list of concepts and the associated designations, relationship codes and relationship qualifiers that: a) Have the supplied concept code at the root b) are related via the supplied relationship code (opt) c) are either directly descendants or the transitive closure of the relationship (choice) d) have the named list of properties that optionally match the supplied regular expression in the supplied language, have the supplied qualifiers and/or have the supplied mime types. (Identifying information)

CTS Vocab Maintenance API 1.Create a new code system 2.Remove an existing code system 3.Add coded terms (inc properties, designations, etc) to a code system 4.Inactivate coded terms 5.Remove coded terms 6.Add properties to a coded term 7.Remove properties from a coded term 8.Add a coded term to a list of relationships 9.Remove coded term from a list of relationships

Technology Details

CTS API Currently –Specification language is IDL –Target languages are WSDL & Java –Process involves IDL->Java->WSDL->Java

CTS API IDL /* Determine whether the given code is valid in the code system * code - code to validate * activeOnly - true means code must be currently active, false * means both active and inactive pass * * Returns - true if the code exists in the current code system * false otherwise. */ V3DT::BL isCodeValid( in CTSCommon::ConceptId code, in V3DT::BL activeOnly ) raises (CTSCommon::UnknownCodeSystem);

CTS API Java (Part 1) /** * * Determine whether the given code is valid in the code system * code - code to validate * activeOnly - true means code must be currently active, false * means both active and inactive pass * * Returns - true if the code exists in the current code system * false otherwise. */ boolean isCodeValid (org.hl7.CTSCommon.ConceptId code, boolean activeOnly) throws org.hl7.CTSCommon.UnknownCodeSystem;

WSDL

Java (Part 2) (Almost) no difference on InterFace specs Structs, however are now beans. Comments stripped earlier in the process (will fix…)

CTS API Specification language –Spec in WSDL? Cumbersome, but a semantic superset of IDL Tends to imply SOAP ITS –Spec in Java? Difficult to keep synched w/ WSDL Tends to imply Java ITS –OMG MDA? Possibility, but may yet be too immature

Status

Message Browser API Complete prototype implementation Based on postgres image of Access DB Vocab Browser API Partial prototype implementation Based on ldap server image of Access DB

Vocab Runtime API Partial prototype implementation Based on ldap server image of Access DB

Samples SOAP Test

Samples Value Set Browser

Samples Useful JSPs

Samples Sample JSPs

Status Officially assuming the role of vocabulary maintenance. –Will maintain dual images for (at least) one cycle –Submission process will still be Excel spreadsheets for November RIM Harmonization –Intend to have new mechanism in place for following meeting.

Next Steps Part 1 Incorporate model changes and comments from session Incorporate Realm implementation Incorporate Ordinal interface Complete Message Maintenance Spec Publish revised, smaller and more readable specification for review and evaluation Integrate w/ RoseTree & RoseTree XML output

Next Steps Part 2 Finish implementation w/ more demos Revise vocab submission process Put together demo and proposal for distributed vocabulary maintenance using LDAP (which is, in part, why were here in the first place )

Question Would it be possible to move to the HL7 web site at some point? –Current implementation is Tomcat4 Axis Postgresql Openldap