{scrollbar:icons=false}

Introduction

LexEVS 6.0 functionality has been updated to provide many new features for terminology services. In the Tool Overview on the LexEVS 6.0 page, you can see an outline of this functionality. Changes were necessary to the existing LexEVS API and have been documented in the sections below. For help with the new APIs, see the LexEVS 6.0 Programmer's Guide. Before reading about each change, review the "What To Look For" section, which proposes a methodology that will help you find changes required in your code.

LexEVS 6.1 offers few changes to the Java API but an important update is the inclusion of a global search to the terminology service.  The biggest change is the addition of several new loaders and a new REST service implementation that is completely CTS2 compliant.

Documentation

LexEVS 6.x CTS2

Documentation of the CTS2 REST implementation in 6.1 and the legacy CTS2 Java API in 6.0.  Included is the REST bulk download extension in 6.1.

LexEVS 6.x Installation Guide

This document outlines the supported configurations and technical installation instructions for LexEVS Vocabulary Services for caBIG®.

LexEVS 6.x Administration Guide

This guide outlines the environment configuration from the perspective of an existing installation.

LexEVS 6.x Programmer's Guide

This guide explains the LexEVS API (services, extensions, utilities, and GUI); also many related APIs.

LexEVS 6.x Design and Architecture Guide

This guide explains the LexGrid model and the LexBIG services.

LexEVS 6.x Value Set and Pick List Definition Guide

This guide explain the LexEVS 6.0 Value Set and Pick List Definition documentation.

LexEVS 6.x Loader Guide

This guide is intended for a LexEVS developer and provides information about the loaders provided, mapping, and how to create your own loaders using the loader framework.

Downloads

To access the download files please visit: LexEVS 6.0 API Downloads

What To Look For

In the following sections you will find documentation on what may need to be changed in your code when moving from LexEVS 5 to LexEVS 6. Before you go to each section, you can search your code for these strings (without the surrounding quotes). If you get a hit or hits, then you will need to make some changes in that area of the code. Follow the link for the string that you got a hit on in order to determine what to do in each case. This list may not catch everything, but it is a great place to start.

API Changes

Iterators

For example Iterator<ResolvedConceptReference>

Iterator<ResolvedConceptReference> 

may need to be replaced by

Iterator<? extends ResolvedConceptReference>

Concept vs Entity

In 5.0 org.LexGrid.concepts.Concept and org.LexGrid.concepts.Instance were a subclass of org.LexGrid.concepts.Entity. These have been removed for 6.0. If you have used concept or instance in LexEVS 5.x ,then in 6.0 you will want to modify your code to use Entity instead.

In 5.0, for example, a concept can be defined as follows:

Concept concept = new Concept();
concept.setEntityCode("code");
concept.setEntityCodeNamespace("namespace");
concept.setIsDefined(true);
concept.setIsAnonymous(false);
concept.setIsActive(true);

In 6.0, a concept entity is defined as follows:

Entity concept = new Entity();
concept.addEntityType(EntityTypes.CONCEPT.toString());
concept.setEntityCode("code");
concept.setEntityCodeNamespace("namespace");
concept.setIsDefined(true);
concept.setIsAnonymous(false);
concept.setIsActive(true);

You may notice that we use the addEntityType method to specify the entity type of Concept. We use the same method for Instance. In 6.0 we define Instance as follows:

Entity instance = new Entity();
instance.addEntityType(EntityTypes.INSTANCE.toString());
instance.setEntityCode("code");
instance.setEntityCodeNamespace("namespace");

Association vs AssociationPredicate and AssociationEntity

org.LexGrid.relations.Association is replaced by AssociationPredicate and AssociationEntity in 6.0. The AssociationPredicate class contains 'associationName' and 'sourceList' properties, and their get/set methods. AssociationEntity class contains the properties such as 'forwardName', 'isNavigable', 'isTransitive', 'reverseName' etc., plus their get/set methods. For example, in 5.0 an Association class can be created as follows:

Association association = new Association();
association.setAssociationName("name");
association.addSource(source);
association.setForwardName("forwardName");
association.setIsNavigable(true);

In 6.0 it is replaced by

AssociationPredicate associationPredicate = new AssociationPredicate();
associationPredicate.setAssociationName("name");
associationPredicate.addSource(source);

AssociationEntity associationEntity = new AssociationEntity();
associationEntity.setEntityCode("name");
associationEntity.setForwardName("forwardName");
associationEntity.setIsNavigable(true);

Value Sets

A new resolve value set definition method is provided. It accepts a ValueSetDefinition object instead of a URI.

public ResolvedValueSetDefinition resolveValueSetDefinition(ValueSetDefinition vsDef, 
AbsoluteCodingSchemeVersionReferenceList csVersionList, 
String versionTag, SortOptionList sortOptionList) throws LBException;

Pick Lists

Configuration Changes

New lbconfig.props

New or Updated Jars

Model Changes

{scrollbar:icons=false}