NIH | National Cancer Institute | NCI Wiki  

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

LexEVS GraphResolve Final Proposal

Final Proposal Description and Sign Off

Requirements:

  1. Create a method over the Graph API that allows a CodedNodeSet to be passed as a parameter along with an Enumeration value indicating direction, a value for the depth of the resolution, and one or more associations. Return a List of Minimally populated ResolvedConceptReferences. 
  2. Constraints:

    • Will not require current RMI users to update their client jar
  3. Features:
    • Will provide a loader for the graph database 
    • Will provide instructions on the use of the loader, including any dependencies on existing services
  4. Architecture:

    • Specify which Graph DB will need to be installed on which tiers
    • Specify any other services that need to be installed on which tiers

1. Create a Method:

Method Signature

public List<ResolvedConceptReference> getAssociatedConcepts(CodedNodeSet cns, Direction directionint depth,  NameAndValueList association);

Parameters:

Parameter cns: This CodedNodeSet must have a set of restrictions appropriate for query building and fully ready to be resolved. Cannot be null

Parameter direction: incoming or outgoing edges will be designated by one of these Enumerations.  Cannot be null

Parameter depth: This allows depth control of the query including resolving only neighbors or a full resolution if depth is known. Entering -1 allows full resolution,  0 will return null

Parameter associations: The name or names of the edges in the graph (Must exist as a supported association the code system).  Null returns all associations

Return Value List<ResolvedConceptReference>: a list of minimally populated concept references including code, namespace

entity description and coding scheme uri and version. These objects are the result of a graph resolution without 

any indication of where they existed in the graph before the resolution.


Method Behavior

This method requires some knowledge of building queries into the LexEVS system's CodedNodeSet API, including the capability

of building a CodedNodeSet set of restrictions through restriction method calls.  Within the scope of this method, 

the CodedNodeSet will be resolved to a ResolvedConceptReferenceList  using the method 



Code Block
languagejava
resolveToList(

SortOptionList sortOptions, LocalNameList propertyNames,

PropertyType[] propertyTypes, int maxToReturn)

throws LBInvocationException,LBParameterException;



The parameter set for this method will be defaulted to the following: 

SortOptionList: null – No sort options allowed

LocalNameList: null – No restrictions on property names

PropertyType: null – No restrictions on property types

int: 10 Maximum return limited to ten entities.


Null value for associations will return values for all associations.  Otherwise queries will be generated depending on each

association name.


Exceptions would be handled in this method and an appropriately messaged RuntimeException would be thrown on failure.

The ResolvedConceptReference objects returned contain only the code, name space, entityDescription, coding scheme URI, and coding scheme version.

It will not contain any entities or their properties or targetOf or sourceOf links to other entities.  

2. Constraints

Initial testing is complete.  Will retest before release. Since this is not implemented in the RMI application we don't need to require runtime client changes, especially since extensions are called as plugins and not from local client code.

3. Features

We have a loader complete at this point and it should have the same profile as other loaders.

The loader requires a local install of Arangodb along with a configuration of LexEVS where lbconfig.props is updated with connection parameters. Instructions for loader use will be supplied in the usual loader documentation section of the Wiki

Loader use is documented here:

Loading the Graph Database into ArangoDb for a Given Terminology

4. Architecture

We will work with the Systems team to get the most optimal installation of Arangodb for each tier.  

Each tier will also need to have a tomcat instance with the graph-resolve installed to produce REST services for the Graph Resolution API.  We'll provide the usual configuration parameters for the REST service that are normally defined for deployment tracks on Jenkins and/or PTE documents.  

9 - Installing the Graph Node Resolution REST Service


5. Migration

LexEVS 6.5.4 Release Notes

Proposal Sign off

Federal Sponsor(s)Signature
Lyubov Remennikvia email
Sherri De CoronadoSDC
User(s)Signature
Kim Ongvia email
NCI System ArchitectSignature
Tracy Safranapproved during arch meeting 2020.01.14


LexEVS Rest Service API

List of terminologies

base url/databases

List of associations

base url/graphDbs/<coding scheme name from database list>

Get inbound edges for coding scheme, association and unique id.

base url/getInbound/<coding scheme name>/<association name from graph list>/<entity code>

Get inbound edges for depth, coding scheme, association and unique id.

base url/getInbound/<depth/<coding scheme name>/<association name from graph list>/<entity code>

Get outbound edges for coding scheme, association and unique id.

base url/getOutbound/<coding scheme name>/<association name from graph list>/<entity code>

Get outbound edges for depth,  coding scheme, association and unique id.

base url/getOutbound/<depth/<coding scheme name>/<association name from graph list>/<entity code>


LexEVS GraphResolve Legacy Requirements and Knowledge Base


Use Case/Requirements Statement:

...

Timeline for LexEVS Graph Service Design Discussion and Implementation.docx

Final Proposal Description and Sign Off

Parameters:

Parameter cns: This CodedNodeSet must have a set of restrictions appropriate for query building and fully ready to be resolved. Cannot be null

Parameter direction: incoming or outgoing edges will be designated by one of these Enumerations.  Cannot be null

Parameter depth: This allows depth control of the query including resolving only neighbors or a full resolution if depth is known. Entering -1 allows full resolution,  0 will return null

Parameter associations: The name or names of the edges in the graph (Must exist as a supported association the code system).  Null returns all associations

Return Value List<ResolvedConceptReference>: a list of minimally populated concept references including code, namespace

entity description and coding scheme uri and version. These objects are the result of a graph resolution without 

any indication of where they existed in the graph before the resolution.

Method Behavior

This method requires some knowledge of building queries into the LexEVS system's CodedNodeSet API, including the capability

of building a CodedNodeSet set of restrictions through restriction method calls.  Within the scope of this method, 

the CodedNodeSet will be resolved to a ResolvedConceptReferenceList  using the method 

Code Block
languagejava
resolveToList(

SortOptionList sortOptions, LocalNameList propertyNames,

PropertyType[] propertyTypes, int maxToReturn)

throws LBInvocationException,LBParameterException;

The parameter set for this method will be defaulted to the following: 

SortOptionList: null – No sort options allowed

LocalNameList: null – No restrictions on property names

PropertyType: null – No restrictions on property types

int: 10 Maximum return limited to ten entities.

Null value for associations will return values for all associations.  Otherwise queries will be generated depending on each

association name.

Exceptions would be handled in this method and an appropriately messaged RuntimeException would be thrown on failure.

The ResolvedConceptReference objects returned contain only the code, name space, entityDescription, coding scheme URI, and coding scheme version.

It will not contain any entities or their properties or targetOf or sourceOf links to other entities.   

Method Signature

...

getAssociatedConcepts Proposal Signoff

...