The purpose of this document is to document the LexEVS REST architecture changes during the course of this contract.
Current LexEVS REST Service Architecture
LexEVS has a resource oriented REST service available for traversing ontologies. This implementation has been built on the CTS2 standard.
The REST service is located here: https://lexevscts2.nci.nih.gov/lexevscts2/service
Background
As customers are transitioning from the retired caCORE API to the CTS2 REST service, they have asked how to retrieve terminology concepts in a similar way that the did previously in caCORE. This has raised some concerns in the differences they have encountered when using the CTS2 REST service. Previous caCORE API calls were able to retrieve the resource they wanted with one call. It was also able to retrieve the specific component that they requested.
Based on these concerns, there were several JIRA items that have been submitted, requesting enhancements to the CTS2 REST service.
We have provided a brief analysis of if the issues based on the following:
- Is this currently supported in CTS2?
- If the our implementation of CTS2 can handle the request, but it hasn't been implemented yet.
- This is outside of the CTS2 specification.
CTS2 Issue | Summary | CTS2 Support |
---|---|---|
LEXEVSCTS2-138 | Find entities based on presence of a property | This fits within the realm of the CTS2 spec and could be implemented as a part of that specification |
LEXEVSCTS2-139 | Find list of supported properties for coding scheme | These are LexEVS coding scheme metadata and don’t really have a good counterpart or fit in CTS2. We’d likely want to provide a separate resource or service for these. |
LEXEVSCTS2-140 | List supported restrictions for a coding scheme | These are LexEVS coding scheme metadata and don’t really have a good counterpart or fit in CTS2. We’d likely want to provide a separate resource or service for these. |
LEXEVSCTS2-141 | Retrieve a concept based on value of an annotation | |
LEXEVSCTS2-142 | Return only the specified information on an entity | CTS2 returns the entity. This request is to return only the specified information on an entity. This would be a new call that returned a new partial resource. |
LEXEVSCTS2-143 | Return a property type for an entity | CTS2 returns the entity. This request is to return only the specified information on an entity. This would be a new call that returned a new partial resource. |
LEXEVSCTS2-144 | Retrieve a concept based on the presence of a restriction | This is possible in CTS2. There are a series of calls to get from CTS2. |
REST Services
Going forward, we will need to determine what best fits NCI's needs for a LexEVS REST service.
In order to do this, the team will need to:
- Determine the audience - who are the users.
- Understand the technical requirements/limitations.
- Understand the functional requirements.