Page History
Scrollbar | ||
---|---|---|
|
Page info | ||||
---|---|---|---|---|
|
Section | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Warning | ||
---|---|---|
| ||
Data services were deprecated in LexEVS 6.4.1 and removed in 6.5. The Java based remote method invocation will remain available for the time being. These services are replaced by a separate CTS2 compliant web service described in the CTS2 API. |
Introduction
The focus of documentation will be the Java based LexEVS remote method invocation service.
Info | ||
---|---|---|
| ||
See migration notes below for LexEVS Distributed 6.0, 6.1 to 6.2, 6.3 to 6.4.1, 6.5 |
LexEVSDistributed
The Distributed LexEVS Portion of LexEVSAPI extends a subclass of, or in 6.5 and later, implements LexEVSService. This interface is a framework for calling LexEVS API methods remotely, while enforcing restrictions on proprietary content. JavaDoc
...
Info | ||||
---|---|---|---|---|
| ||||
Overview
This exposes the LexEVS Service model via a Remote Method Invocation service.
LexEVS Installation and Configuration
The distributed LexEVS API is strictly a Java interface and requires Internet access for remote connectivity to the caCORE LexEVS server.
Client configuration is represented in a client project in github: https://github.com/lexevs/LexEVS_Distributed_Client
Using the distributed LexEVS API
Example code can be found at the above client project link for a number of use cases.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<dependencies> <dependency> <groupId>lexevs.dist.client</groupId> <artifactId>lexevs.dist.client</artifactId> <version>0<version>6.5.0.1-SNAPSHOT<FINAL</version> </dependency> </dependencies> |
Users should be able to access a remote service with code similar to the following (Service URL should be adjusted to a valid LexEVS API service such as the one hosted at NCI):
Code Block | ||||
---|---|---|---|---|
| ||||
package org.lexgrid.lexevs.remote.client; import org.LexGrid.LexBIG.DataModel.Collections.CodingSchemeRenderingList; import org.LexGrid.LexBIG.DataModel.InterfaceElements.CodingSchemeRendering; import org.LexGrid.LexBIG.Exceptions.LBInvocationException; import org.LexGrid.LexBIG.caCore.interfaces.LexEVSDistributed; import gov.nih.nci.system.client.ApplicationServiceProvider; public class MavenBasedPrototype { LexEVSDistributed lbs = null; private static String serviceUrl = "https://localhost.daplie.com:8443/lexevsapi65"; public void run() throws LBInvocationException{ try { lbs = (LexEVSDistributed)ApplicationServiceProvider.getApplicationServiceFromUrl(serviceUrl, "EvsServiceInfo"); } catch(Exception e){ System.out.println("Starting LexEVS Remote Client fails" + e); } CodingSchemeRenderingList list = lbs.getSupportedCodingSchemes(); for(CodingSchemeRendering rendering: list.getCodingSchemeRendering()){ System.out.println(rendering.getCodingSchemeSummary().getFormalName()); } } public static void main(String[] args) { try { new MavenBasedPrototype().run(); } catch (LBInvocationException e) { e.printStackTrace(); } } } |
...
Background:
Architecture
The LexEVS API is exposed by the LexEVS caCORE System for remote access through the caCORE System's LexEVSApplicationService
class which implements the LexBIGService
interface.
The distributed LexEVS API environment will be configured on the LexEVS Server currently at (https://lexevsapi6lexevsapi65.nci.nih.gov/lexevsapi64lexevsapi65/).
LexEVS Annotations
To address LexEVS DAOs, the LexEVS API integration incorporates:
...
The interceptor is responsible for intercepting all client calls on the methods in each object. If a method is marked with the @lgClientSideSafe annotation, it proceeds normally. Otherwise, the object, method name, and parameters are sent to the caCORE LexEVS server for remote execution.
Scrollbar | ||
---|---|---|
|