NIH | National Cancer Institute | NCI Wiki  

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Scrollbar
iconsfalse

...

Page info
title
title

Anchor
ContentsofthisPage
ContentsofthisPage

Panel
titleContents of this Page
Table of Contents
minLevel2

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 REST CTS2 Service

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.

  • Iterators changes according to the context of the Iterator.
  • New Concept replaced by a "new Entity".
  • After New Entity use the new addEntityType() method to set the specific Entity type.
  • New Association replaced by new AssociationEntity and new AssociationPredicate.
  • ValueDomain renamed to "ValueSet". This affects package names, class names, method names, method's input/output type/names.
  • LexEVSValueDomainServices renamed to LexEVSValueSetServices.
  • Method resolveValueDomain in LexEVSValueDomainServices, renamed to resolveValueSetDefinition and the method's arguments have changed.
  • LexEVSPickListServices renamed to LexEVSPickListDefinitionServices
  • Method resolvePickList in LexEVSPickListDefinitionServices, arguments have changed.

API Changes

Iterators

For example Iterator<ResolvedConceptReference>

Code Block
Iterator<ResolvedConceptReference> 

may need to be replaced by

Code Block
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:

Code Block
:title}
{anchor:ContentsofthisPage}{panel:title=Contents of this Page}
{toc:minLevel=2}
{panel}

h2. 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.

h2. 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.

* [Iterators|#Iterators] changes according to the context of the Iterator.
* [New Concept|#Concept_vs_Entity] replaced by a "new Entity".
* After [New Entity|#Concept_vs_Entity] use the new addEntityType() method to set the specific Entity type.
* [New Association|#Association vs AssociationPredicate and AssociationEntity] replaced by new AssociationEntity and new AssociationPredicate.
* [ValueDomain|#Value Sets] renamed to "ValueSet". This affects package names, class names, method names, method's input/output type/names.
* [LexEVSValueDomainServices|#Value Sets] renamed to LexEVSValueSetServices.
* Method [resolveValueDomain|#Value Sets] in LexEVSValueDomainServices, renamed to resolveValueSetDefinition and the method's arguments have changed.
* [LexEVSPickListServices|#Pick Lists] renamed to LexEVSPickListDefinitionServices
* Method [resolvePickList|#Pick Lists] in LexEVSPickListDefinitionServices, arguments have changed.

h2. API Changes

h3. Iterators
For example Iterator<ResolvedConceptReference>
{code}Iterator<ResolvedConceptReference> {code}
may need to be replaced by
{code}Iterator<? extends ResolvedConceptReference>{code}

h3. 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:
{code}
Concept concept = new Concept();
concept.setEntityCode("code");
concept.setEntityCodeNamespace("namespace");
concept.setIsDefined(true);
concept.setIsAnonymous(false);
concept.setIsActive(true);
{code}

In

...

6.0,

...

a

...

concept

...

entity

...

is

...

defined

...

as

...

follows:

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

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:

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

h3. Association vs AssociationPredicate and AssociationEntity

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:

Code Block


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

In

...

6.0

...

it

...

is

...

replaced

...

by

{
Code Block
}
AssociationPredicate associationPredicate = new AssociationPredicate();
associationPredicate.setAssociationName("name");
associationPredicate.addSource(source);

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

h3. Value Sets
* All class names that contain 

Value Sets

  • All class names that contain "ValueDomain"

...

  • are

...

  • now

...

  • replaced

...

  • with

...

  • "ValueSet",

...

  • for

...

  • instance,

...

  • ValueDomainDefinition

...

  • is

...

  • renamed

...

  • to

...

  • ValueSetDefinition.

...

  • Major

...

  • Value

...

  • Set

...

  • interfaces

...

  • changes:

...

  • These

...

  • affect

...

  • class

...

  • names,

...

  • method

...

  • names,

...

  • method's

...

  • input/output

...

  • type/names.

...

  • If

...

  • the

...

  • name

...

  • contains

...

  • "ValueDomain",

...

  • rename

...

  • it

...

  • to

...

  • "ValueSet".

...

    • ValueDomainDefinition

...

    • to

...

    • ValueSetDefinition.

...

    • LexEVSValueDomainServices

...

    • to

...

    • LexEVSValueSetDefinitionServices.

...

  • All

...

  • packages

...

  • that

...

  • had

...

  • "valuedomain"

...

  • are

...

  • now

...

  • "valuesets".

...

  • LexEVSPickListServices

...

  • has

...

  • been

...

  • renamed

...

  • to

...

  • LexEVSPickListDefinitionServices

...

  • Resolve

...

  • supplied

...

  • ValueSetDefinition

...

  • object:

...

  • In

...

  • 5.0,

...

  • this

...

  • method

...

  • is

...

  • defined

...

  • under

...

  • LexEVSValueDomainServices.

...

  • Code Block

...

  • public ResolvedValueDomainDefinition resolveValueDomain(URI valueDomainURI, 
           AbsoluteCodingSchemeVersionReferenceList csVersionList, 
           String versionTag) throws LBException;
    

...

  • In

...

  • 6.0,

...

  • the

...

  • method

...

  • is

...

  • under

...

  • LexEVSValueSetDefinitionServices.

...

  • It

...

  • is

...

  • represented

...

  • as

...

  • follows:

...

  • Code Block

...

  • public ResolvedValueSetDefinition resolveValueSetDefinition(URI valueSetDefinitionURI, 
           String valueSetDefinitionRevisionId, 
           AbsoluteCodingSchemeVersionReferenceList csVersionList, 
           String versionTag, SortOptionList sortOptionList) throws LBException;
    

...

  • Besides

...

  • the

...

  • return

...

  • type

...

  • change,

...

  • two

...

  • new

...

  • input

...

  • arguments

...

  • have

...

  • been

...

  • added.

...

  • valueSetDefinitionRevisionId

...

  • which

...

  • holds

...

  • the

...

  • information

...

  • of

...

  • the

...

  • version

...

  • of

...

  • the

...

  • value

...

  • set

...

  • definition

...

  • and

...

  • sortOptionList

...

  • which

...

  • represents

...

  • the

...

  • list

...

  • of

...

  • sort

...

  • options

...

  • to

...

  • apply

...

  • during

...

  • resolution.

...

  • If

...

  • supplied,

...

  • the

...

  • sort

...

  • algorithms

...

  • will

...

  • be

...

  • applied

...

  • in

...

  • the

...

  • order

...

  • provided.

...

  • Any

...

  • algorithms

...

  • not

...

  • valid

...

  • to

...

  • be

...

  • applied

...

  • in

...

  • context

...

  • of

...

  • node

...

  • set

...

  • iteration,

...

  • as

...

  • specified

...

  • in

...

  • the

...

  • sort

...

  • extension

...

  • description,

...

  • will

...

  • result

...

  • in

...

  • an

...

  • argument

...

  • exception.

...

  • Available

...

  • algorithms

...

  • can

...

  • be

...

  • retrieved

...

  • through

...

  • the

...

  • LexBIGService

...

  • getSortExtensions

...

  • method

...

  • after

...

  • being

...

  • defined

...

  • to

...

  • the

...

  • LexBIGServiceManager

...

  • extension

...

  • registry.

...

  • For

...

  • example:

...

  • Code Block

...

  • AbsoluteCodingSchemeVersionReferenceList acsvList = null;
    Util.displayMessage("Now select Code System to use to resolve Value Set Definition");
    CodingSchemeSummary css = Util.promptForCodeSystem();
    if (css != null)
    {
     acsvList = new AbsoluteCodingSchemeVersionReferenceList();
     acsvList.addAbsoluteCodingSchemeVersionReference(Constructors.createAbsoluteCodingSchemeVersionReference(css.getCodingSchemeURI(), 
                                                      css.getRepresentsVersion()));
    }
    
    LexEVSValueSetDefinitionServices vsdServ = LexEVSValueSetDefinitionServicesImpl.defaultInstance();
    ResolvedValueSetDefinition rVSD = null;
    try {
     rVSD = vsdServ.resolveValueSetDefinition(new URI("myUri"), null, acsvList, null, null);
    } catch (URISyntaxException e) {
     e.printStackTrace();
    }
    

...

A

...

new

...

resolve

...

value

...

set

...

definition

...

method

...

is

...

provided.

...

It

...

accepts

...

a

...

ValueSetDefinition

...

object

...

instead

...

of

...

a

...

URI.

{
Code Block
}
public ResolvedValueSetDefinition resolveValueSetDefinition(ValueSetDefinition vsDef, 
AbsoluteCodingSchemeVersionReferenceList csVersionList, 
String versionTag, SortOptionList sortOptionList) throws LBException;
{code}

h3. Pick Lists
* LexEVSPickListServices renamed to LexEVSPickListDefinitionServices 
* Resolve supplied PickListDefinition object. In 

Pick Lists

  • LexEVSPickListServices renamed to LexEVSPickListDefinitionServices
  • Resolve supplied PickListDefinition object. In 5.0,

...

  • LexEVSPickListServices

...

  • provides

...

  • this

...

  • function.

...

  • Two

...

  • methods

...

  • are

...

  • defined

...

  • as

...

  • follows:

...

  • Code Block

...

  • public ResolvedPickListEntryList resolvePickList(String pickListId, Integer sortType) throws LBException;
    

...

  • Code Block
    public ResolvedPickListEntryList resolvePickList(String pickListId, boolean sortByText) throws LBException;
    

...

  • In

...

  • 6.0,

...

  • these

...

  • methods

...

  • are

...

  • defined

...

  • in

...

  • LexEVSPickListDefinitionServices.java.

...

  • Code Block

...

  • public ResolvedPickListEntryList resolvePickList(String pickListId, Integer sortType,
           AbsoluteCodingSchemeVersionReferenceList csVersionList, String versionTag) throws LBException;
    

...

  • Code Block
    public ResolvedPickListEntryList resolvePickList(String pickListId, boolean sortByText,
           AbsoluteCodingSchemeVersionReferenceList csVersionList, String versionTag) throws LBException;
    

...

  • Argument

...

  • 'csVersionList'

...

  • and

...

  • 'versionTag'

...

  • are

...

  • added.

...

  • 'csVersionList'

...

  • represents

...

  • a

...

  • list

...

  • of

...

  • coding

...

  • scheme

...

  • URI's

...

  • and

...

  • versions

...

  • to

...

  • be

...

  • used.

...

  • These

...

  • will

...

  • be

...

  • used

...

  • only

...

  • if

...

  • they

...

  • are

...

  • present

...

  • in

...

  • the

...

  • service.

...

  • If

...

  • absent,

...

  • the

...

  • most

...

  • recent

...

  • version

...

  • will

...

  • be

...

  • used

...

  • instead.

...

  • 'versionTag'

...

  • is

...

  • the

...

  • tag

...

  • (e.g

...

  • "devel",

...

  • "production",

...

  • ...)

...

  • to

...

  • be

...

  • used

...

  • to

...

  • reconcile

...

  • coding

...

  • schemes

...

  • when

...

  • more

...

  • than

...

  • one

...

  • is

...

  • present.

...

  • Note

...

  • that

...

  • non-tagged

...

  • versions

...

  • will

...

  • be

...

  • used

...

  • if

...

  • the

...

  • tagged

...

  • version

...

  • is

...

  • missing.

...

  • An

...

  • example

...

  • using

...

  • integer

...

  • to

...

  • indicate

...

  • the

...

  • sort

...

  • type

...

  • is

...

  • shown

...

  • as

...

  • follows:

...

  • Code Block

...

  • AbsoluteCodingSchemeVersionReferenceList incsvrl = new AbsoluteCodingSchemeVersionReferenceList();
    incsvrl.addAbsoluteCodingSchemeVersionReference(Constructors.createAbsoluteCodingSchemeVersionReference("urn:oid:11.11.0.1", "1.1"));
    	
    ResolvedPickListEntryList pls = _pickListService.resolvePickList("SRITEST:FA:MicrobialStructureOntologyMinusMCell", 1, incsvrl, "production");
    

...

  • Besides the two methods above, LexEVSPickListServices also adds two new methods resolvePickList and resolvePickListForTerm as follows:
  • The new resolvePickList method can be passed in a PickListDefinition object instead of pickListId.

    Code Block
    public ResolvedPickListEntryList resolvePickList(PickListDefinition pickList, boolean sortByText, 
            AbsoluteCodingSchemeVersionReferenceList csVersionList, 
            String versionTag) throws LBException;
    

...

  • Code Block
    public ResolvedPickListEntryList resolvePickListForTerm(String pickListId, String term, String matchAlgorithm,
            String language, String[] context, boolean sortByText,A
            bsoluteCodingSchemeVersionReferenceList csVersionList, String versionTag) throws LBException;
    

...

  • More restriction arguments have been added to the new resolvePickListForTerm method, such as: 'term',

...

  • 'matchAlgorithm',

...

  • 'languange',

...

  • and

...

  • 'context'.

...

  • The

...

  • argument

...

  • 'term'

...

  • is

...

  • required.

...

  • An

...

  • example

...

  • is

...

  • shown

...

  • below:

...

  • Code Block

...

  • ResolvedPickListEntryList pickLists = getPickListService().resolvePickListForTerm("SRITEST:AUTO:AllDomesticButGM", 
           "Jaguar", MatchAlgorithms.exactMatch.name(), 
           "english", null, false, null, null);
    

...

  • In 6.0

...

  • you

...

  • also

...

  • can

...

  • resolve

...

  • a

...

  • pick

...

  • list

...

  • by

...

  • revision.

...

  • The

...

  • code

...

  • below

...

  • is

...

  • the

...

  • new

...

  • method:

...

  • Code Block

...

  • public PickListDefinition resolvePickListByRevision(String pickListId,
           String revisionId, Integer sortOrder) throws LBRevisionException;
    

...

  • Note:

...

  • the

...

  • return

...

  • type

...

  • of

...

  • this

...

  • method

...

  • is

...

  • PickListDefinition

...

  • instead

...

  • of

...

  • ResolvedPickListEntryList.

...

Configuration

...

Changes

...

New

...

lbconfig.props

...

  • There

...

  • are

...

  • new

...

  • parameters

...

  • in

...

  • the

...

  • lbconfig.props

...

  • file.

...

  • Please

...

  • see

...

  • the

...

...

...

...

...

...

...

...

  • .

...

  • Single

...

  • or

...

  • Multi-table

...

  • set

...

  • mode

...

  • is

...

  • now

...

  • available

...

  • in

...

  • LexEVS

...

  • 6.0.

...

  • This

...

  • allows

...

  • users

...

  • to

...

  • either

...

  • load

...

  • multiple

...

  • coding

...

  • schemes

...

  • into

...

  • one

...

  • set

...

  • of

...

  • tables

...

  • (single

...

  • table

...

  • set

...

  • mode)

...

  • or

...

  • each

...

  • coding

...

  • scheme

...

  • has

...

  • its

...

  • own

...

  • set

...

  • of

...

  • tables

...

  • (multi

...

  • table

...

  • set

...

  • mode).

...

  • Please

...

  • see

...

  • the

...

...

...

...

...

...

...

...

  • to

...

  • ensure

...

  • your

...

  • settings

...

  • are

...

  • correct

...

  • for

...

  • your

...

  • installation.

...

  • If

...

  • you

...

  • do

...

  • not

...

  • make

...

  • a

...

  • selection

...

  • single

...

  • table

...

  • set

...

  • mode

...

  • will

...

  • be

...

  • used.

...

New

...

or

...

Updated

...

Jars

...

  • ddlUtils-1.0-PATCHED.jar

...

  • ibatis-sqlmap-2.3.4.726.jar

...

  • hibernate-annotations-3.4.0.GA.jar

...

  • hibernate-commons-annotations-3.3.0.ga.jar

...

  • persistence-api-1.0.jar

...

  • hibernate-core-3.3.2.GA.jar

...

  • ehcache-core-2.0.1.jar

...

  • commons-betwixt-0.8.jar

...

  • commons-digester-1.8.jar

...

  • compass-2.2.0.jar

...

  • lucene-analyzers.2.4.1.jar

...

  • lucene-queries-2.4.1.jar

...

  • castor-1.3.1-anttasks.jar

...

  • castor-1.3.1-codegen.jar

...

  • castor-1.3.1-core.jar

...

  • castor-1.3.1-xml-schema.jar

...

  • castor-1.3.1.jar

...

Model

...

Changes

...

  • ValueDomains

...

  • changes

...

  • to

...

  • ValueSets

...

  • ValueDomainDefinition

...

  • changed

...

  • to

...

  • ValueSetDefinition

...

  • Added

...

  • ConceptDomain

...

  • attribute

...

  • to

...

  • ValueSetDefinition

...

  • Renamed

...

  • PickListDefinition's

...

  • attribute

...

  • completeDomain

...

  • to

...

  • CompleteSet

...

Scrollbar

...

icons

...

false

...