{scrollbar:icons=false} |
This document is a section of the LexEVS 6.0 Programmer's Guide.
The Value Set services are integrated parts of the LexEVS API. It provide three major functions:
Remove - Ability to remove Value Set Definition from the system
These administration operations can be performed in LexEVS 'Local' environment only. This can not be performed using LexEVS Distributed environment. |
The LexEVS Value Set Services expose the API particularly for the Value Set Definition elements of the LexGrid Logical Model. For more information on LexGrid model see the LexBig Model and Schema
LexEVSValueSetDefinitionServices is the main interface for all the services provided by LexEVS Value Set API. Here is the class diagram of LexEVSValueSetDefinitionServices:
LexEVS Value Set Definition Services provides three major functions:
Each of these functions are described in following sections.
LexEVS Value Set Definition Services provide s following administration functions:
These administration operations can be performed in LexEVS 'Local' environment only. This can not be performed using LexEVS Distributed environment. |
There are two methods that could be used to load Value Set Definitions:
This function provides the capability to load supplied ValueSetDefinition object into the system.
loadSetValueSetDefinition(ValueSetDefinition vsddef, String systemReleaseURI, Mappings mappings)
Description: | Loads supplied valueSetDefinition object. Optionally, it can assign the release URI and mappings (supported attributes like SupportedCodingScheme, SupportedConceptDomain, SupportedAssociation etc) to the valueSetDefinition being loaded. | |||||
---|---|---|---|---|---|---|
Input: | org.LexGrid.valueSets.ValueSetDefinition vsdDef - (Mandatory) Value Set Definition object to be loaded. | |||||
Output: | none | |||||
Exception: | LBException | |||||
Implementation Details: | Implementation:
|
This function provides the capability to load Value Set Definitions found in file that are in LexGrid XML format.
loadValueSetDefinition(String xmlFileLocation, boolean failOnAllErrors)
Description: | Loads valueSetDefinitions found in input XML file. The input XML file should in LexGrid format i.e. the contents should confirm to LexGrid valueSets schema [ | ||
---|---|---|---|
Input: | java.lang.String xmlFileLocation - (Mandatory) File containing ValueSetDefinitions in LexGrid XML format. | ||
Output: | none | ||
Exception: | LBException | ||
Implementation Details: | Implementation:
|
There are two export functions available :
1. Export Value Set Definition - This function provides the capability to export Value Set Definition to a file in LexGrid XML format. This will be helpful if there is a need to import this exported Value Set Definition in different instance of LexEVS.
2. Export Value Set Resolution (Expanded Value Set) - This function provides the capability to resolve the Value Set Definition and exports the resolved(expanded) contents as a LexGrid Coding Scheme in XML format.
This function provides the capability to export Value Set Definition to a file in LexGrid XML format. This will be helpful if there is a need to import this exported Value Set Definition in different instance of LexEVS.
exportValueSetDefinition(URI valueSetDefURI, String valueSetDefinitionRevisionId, String xmlFullPathName, boolean overwrite, boolean failOnAllErrors)
Description: | Export Value Set Definition to a file in LexGrid XML format. | ||
---|---|---|---|
Input: | java.net.URI valueSetDefinitionURI - (Mandatory) the URI of value set definition to be exported.
| ||
Output: | none | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This function provides the capability to export Value Set Resolution (Expanded Value Set) to a file in LexGrid XML format as a Coding Scheme. This will be helpful if there is a need to import the contents of a value set as a separate Coding Scheme. The URI of the Coding Scheme will be set to URI of Value Set Definition being exported. And all the contents of the value set will be represented as an entities within that Coding Scheme.
exportValueSetResolution(URI valueSetDefinitionURI, String valueSetDefinitionRevisionId, URI exportDestination, AbsoluteCodingSchemeVersionReferenceList csVersionList, String csVersionTag, boolean overwrite, boolean failOnAllErrors)
Description: | Export Value Set Resolution to a file in LexGrid XML format as a Coding Scheme. | ||
---|---|---|---|
Input: | java.net.URI valueSetDefinitionURI - (Mandatory) the URI of value set definition to be exported. | ||
Output: | none | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
Below is the function to remove value set definition from the system.
removeValueSetDefinition(URI valueSetDefinitionURI)
Description: | Removes supplied value set definition from the system. | ||
---|---|---|---|
Input: | java.net.URI valueSetDefinitionURI - (Mandatory) the URI of value set definition to be removed. | ||
Output: | none | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
Here are some of the query functions that can be run against value set definitions using the LexEVS Value Set Definition Services.
Function to perform validation of source XML file without loading.
validate(URI xmlFileLocation, int valicationLevel)
Description: | Performs validation of the candidate resource without loading data. | ||
---|---|---|---|
Input: | java.net URI xmlFileLocation - (Mandatory) File containing ValueSetDefinitions in LexGrid XML format.
| ||
Output: | none | ||
Exception: | Org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
There are two methods to check if supplied concept code is part of supplied value set definition.
isEntityInValueSet(String entityCode, URI valueSetDefinitionURI, String valueSetDefinitionRevisionId, String versionTag)
Description: | Determine whether the supplied entity code is a valid entity code somewhere in the supplied value set definition. This function is intended for use with simple value set definition that are drawn from a single coding scheme where most parameters can be defaulted. | ||
---|---|---|---|
Input: | java.lang.String entityCode - (Mandatory) the entity code to search for | ||
Output: | org.LexGrid.LexBIG.DataModel.Core.AbsoluteCodingSchemeVersionReference - coding scheme and version if the entityCode is valid, null otherwise | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
isEntityInValueSet(String entityCode, URI entityCodeNamespace, URI valueSetDefinitionURI, String valueSetDefinitionRevisionId, AbsoluteCodingSchemeVersionReferenceList csVersionList, String versionTag)
Description: | Similar to the previous method, this method determines if the supplied entity code and entity namespace is a valid result for the supplied value set definition when resolved against the supplied Coding Scheme Version or Tag. | ||
---|---|---|---|
Input: | java.lang.String entityCode - (Mandatory) the entity code to search for | ||
Output: | org.LexGrid.LexBIG.DataModel.Core. AbsoluteCodingSchemeVersionReference - The codingScheme URI and version of that asserts that the code is in the value set | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
Returns all the value set definition uris that contains supplied entity code.
listValueSetsWithEntityCode(String entityCode, URI entityCodeNamespace, AbsoluteCodingSchemeVersionReferenceList csVersionList, String versionTag)
Description: | Returns all the value set definition uris that contains supplied entity code. | ||
---|---|---|---|
Input: | java.lang.String entityCode - (Mandatory) the entity code to search for | ||
Output: | java.util.List<String> - list of value set definition URIs that contain supplied entity code | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
Returns unresolved CodedNodeSet populated using definition entries in the value set definition.
getCodedNodeSetForValueSetDefinition(URI valueSetDefinitionURI, String valueSetDefinitionRevisionId, AbsoluteCodingSchemeVersionReferenceList csVersionList, String csVersionTag)
Description: | Returns unresolved CodedNodeSet populated using definition entries in the value set definition. | ||
---|---|---|---|
Input: | java.net.URI valueSetDefinitionURI - (Mandatory) the URI of the value set definition | ||
Output: | org.lexgrid.valuesets.dto.ResolvedValueSetCodedNodeSet - Unresolved CodedNodeSet populated using definition entries in the value set definition. | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This method checks if childValueSetDefinition is a sub set of parentValueSetDefinition.
isSubSet(URI childValueSetDefinitionURI, URI parentValueSetDefinitionURI, AbsoluteCodingSchemeVersionReferenceList csVersionList, String versionTag)
Description: | Checks whether childValueSetDefinition is a sub set of parentValueSetDefinition | ||
---|---|---|---|
Input: | java.net.URI childValueSetDefinitionURI - (Mandatory) child value set definition URI | ||
Output: | boolean - YES, if all the elements of the child value set are in the parent value set. NO otherwise. | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
Utility method that returns value set definition object for the supplied value set URI.
getValueSetDefinition(URI valueSetDefinitionURI, String valueSetDefinitionRevisionId)
Description: | Returns value set definition object for the supplied value set definition URI. | ||
---|---|---|---|
Input: | java.net.URI valueSetDefinitionURI - (Mandatory) value set definition URI | ||
Output: | org.LexGrid.valueSets.ValueSetDefinition - value set definition object | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
Utility method that lists all the URI's of the value set definition(s) for the supplied value set definition name. If the name is null, returns everything. If the name is not null, returns the value set definition(s) that have the assigned name.
listValueSetDefinitions(String valueSetDefinitionName)
Description: | Returns the URI's of the value set definition(s) for the supplied name. If the name is null, returns everything. If the name is not null, returns the value set definition(s) that have the assigned name.
| ||
---|---|---|---|
Input: | java.lang.String valueSetDefinitionName - (Optional) name of the value set definition. If null, returns URIs all the value set definition(s) in the system, if empty string "", returns all unnamed value set definition URIs. If name is provided, returns value set definition uris with the name that matches supplied valueSetDefinitionName. | ||
Output: | java.util.List<String> - List of matching value set definition uris | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
Utility method that lists all the URI's of the value set definition(s) that are loaded in the system.
listValueSetDefinitionURIs()
Description: | Returns all the URI's of the value set definition(s) that are loaded in the system. | ||
---|---|---|---|
Input: | none | ||
Output: | java.util.List<String> - List of all the value set definition uris available in the system | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This method returns all the value set definition URI's that contains no names.
getAllValueSetDefinitionsWithNoNames()
Description: | Returns the URI's of all unnamed value set definition(s). | ||
---|---|---|---|
Input: | none | ||
Output: | java.util.List<String> - List of all unnamed value set definitions URI's | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This method resolves the supplied value set definition and returns only those concept codes that matches the supplied term.
getValueSetDefinitionEntitiesForTerm(String term, String matchAlgorithm, URI valueSetDefinitionURI, AbsoluteCodingSchemeVersionReferenceList csVersionList, String versionTag)
Description: | Resolves the value set definition supplied and restricts it to the term and matchAlgorith supplied. The returned object ResolvedValueSetCodedNodeSet contains the codingScheme URI and Version that was used to resolve and the CodedNodeSet.
| ||
---|---|---|---|
Input: | java.lang.String term - (Mandatory) text to match. Format is specific to the match algorithm | ||
Output: | org.lexgrid.valuesets.dto.ResolvedValueSetCodedNodeSet - contains the codingScheme URI and Version that was used to resolve and the unresolved CodedNodeSet. | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This method returns all the coding scheme referenced by supplied value set definition.
getCodingSchemesInValueSetDefinition(URI valueSetDefinitionURI)
Description: | Returns list of coding scheme summary that is referenced by the supplied value set definition. | ||
---|---|---|---|
Input: | java.net.URI valueSetDefinitionURI - (Mandatory) value set definition uri | ||
Output: | org.LexGrid.LexBIG.DataModel.Collections.AbsoluteCodingSchemeVersionReferenceList - list of coding scheme summary referenced by the supplied value set definition | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This method checks if the supplied entityCode is of type 'valueSetDefinition' in supplued coding scheme and version.
isValueSetDefinition(String entityCode, String codingSchemeName, CodingSchemeVersionOrTag csvt)
Description: | Determines if the supplied entity code is of type valueSetDefinition in the supplied coding scheme and, if it is, returns true; otherwise returns false. | ||
---|---|---|---|
Input: | java.lang.String entityCode - (Mandatory) entity code | ||
Output: | boolean - TRUE : If entityCode is of type valueSetDefinition in supplied coding scheme, FALSE : otherwise | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This method returns a list of Value Set Definition URIs that references supplied coding scheme.
getValueSetDefinitionURIsWithCodingScheme(String codingSchemename, String codingSchemeURI)
Description: | Returns a list of Value Set Definition URIs that references supplied coding scheme. | ||
---|---|---|---|
Input: | java.lang.String codingSchemename - (Mandatory) Name of coding scheme to check | ||
Output: | java.util.List<String> - List of value set definition URIs that references the supplied coding scheme name | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This method returns a list of Value Set Definition URIs that are bound to supplied concept domain.
{{getValueSetDefinitionURIsWithConceptDomain(String conceptDomain, String codingSchemeURI)}
Description: | Returns a list of Value Set Definition URIs that are bound to supplied concept domain. | ||
---|---|---|---|
Input: | java.lang.String conceptDomain- (Mandatory) name or uri of concept domain to check | ||
Output: | java.util.List<String> - List of value set definition URIs that are bound to supplied concept domain | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This method returns a list of Value Set Definition URIs that references supplied list of usage context(s).
getValueSetDefinitionURIsWithUsageContext(List<String> usageContexts, String codingSchemeURI)
Description: | Returns a list of Value Set Definition URIs that references supplied list of usage context(s). | ||
---|---|---|---|
Input: | java.util.List<java.lang.String> usageContexts- (Mandatory) list of name or uri of usage context to check | ||
Output: | java.util.List<String> - List of value set definition URIs that references the supplied list of usage context | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
This method Returns list of Value Set Definition URIs that are bound to supplied concept domain and in supplied usage context.
getValueSetDefinitionURIsWithConceptDomainAndUsageContext(String conceptDomain, List<String> usageContexts, String codingSchemeURI)
Description: | Returns list of Value Set Definition URIs that are bound to supplied concept domain and in supplied usage context. | ||
---|---|---|---|
Input: | java.lang.String conceptDomain - (Mandatory) name or uri of concept domain to check | ||
Output: | java.util.List<String> - List of value set definition URIs that are bound to supplied concept domain and references the supplied list of usage context | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation:
|
Rsolve functions provides the capability to resolve the value set definition against specific coding scheme version and get back the list of entities that belongs to the value set. If no coding scheme version is provided, the API will pick the latest version of the coding scheme.
There are two separate functions available to resolve value set definition :
This function resolves the value set definition that is loaded in the system and returns set of valied concept codes plus the code systems and its versions that were used.
resolveValueSetDefinition(URI valueSetDefinitionURI, String valueSetDefinitionRevisionId, AbsoluteCodingSchemeVersionReferenceList csVersionList, String versionTag, SortOptionList sortOptionList)
Description: | Resolves a value set definition that is available in the system using the supplied set of coding scheme versions. | |||
---|---|---|---|---|
Input: | java.net.URI valueSetDefinitionURI - (Mandatory) value set definition uri to resolve | |||
Output: | org.lexgrid.valuesets.dto.ResolvedValueSetDefinition - Resolved Value Set Definition | |||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | |||
Implementation Details: | Implementation:
|
This function resolves the value set definition that is supplied against the supplied coding scheme version(s) and returns set of valied concept codes plus the code systems and its versions that were used.
resolveValueSetDefinition(ValueSetDefinition vsDef, AbsoluteCodingSchemeVersionReferenceList csVersionList, String versionTag, SortOptionList sortOptionList)
Description: | Resolves a value set definition that is supplied using the supplied set of coding scheme version(s). | ||||
---|---|---|---|---|---|
Input: | org.LexGrid.valueSets.ValueSetDefinition vsDef- (Mandatory) value set definition object to resolve | ||||
Output: | org.lexgrid.valuesets.dto.ResolvedValueSetDefinition - Resolved Value Set Definition | ||||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||||
Implementation Details: | Implementation:
|
Contains Coding Scheme Version reference list that was used to resolve the Value Set Definition and the CodedNodeSet.
The CodedNodeSet is not resolved. |
A resolved Value Set Definition containing the Coding Scheme Version reference list that was used to resolve the Value Set Definition and an iterator for resolved concepts.
LexEVS Value Set Definition services uses org.LexGrid.LexBIG.Impl.loaders.MessageDirector to direct all fatal, error, warning, info messages with appropriate messages to the LexBIG log files in the 'log' folder of LexEVS install directory.
Along with MessageDirector, the services will also make use of org.LexGrid.LexBIG.exception.LBException to throw any fatal and error messages to the log file as well as to the console.
Following are the scripts that can be used to load value set definition that are in LexGrid XML format into the system :
The above scripts can be found under 'Admin' folder of LexEVS install directory.
Both scripts take in the following parameters:
-in Input <uri> URI or path specifying location of the source file. -v Validate <int> Perform validation of the candidate resource without loading data. Supported levels of validation include: 0 = Verify document is well-formed 1 = Verify document is valid |
Example:
sh LoadValueSetDefinition.sh -in "file:///path/to/file.xml" |
Below is a sample XML file containing Value Set Definitions in LexGrid format that can be loaded using LexEVS Value Set Definition Service.
<source>
<lgVD:valueSetDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://LexGrid.org/schema/2010/01/LexGrid/versions http://LexGrid.org/schema/2010/01/LexGrid/versions.xsd" xmlns="http://LexGrid.org/schema/2010/01/LexGrid/versions" xmlns:lgVer="http://LexGrid.org/schema/2010/01/LexGrid/versions" xmlns:lgCommon="http://LexGrid.org/schema/2010/01/LexGrid/commonTypes" xmlns:data="data" xmlns:lgVD="http://LexGrid.org/schema/2010/01/LexGrid/valueSets" xmlns:lgNaming="http://LexGrid.org/schema/2010/01/LexGrid/naming" valueSetDefinitionURI="SRITEST:AUTO:PropertyRefTest1-VSDONLY" valueSetDefinitionName="Property Reference Test 1" defaultCodingScheme="Automobiles" effectiveDate="2009-01-01T11:00:00Z" isActive="true" status="ACTIVE"> <lgVD:mappings> <lgNaming:supportedCodingScheme localId="Automobiles" uri="urn:oid:11.11.0.1"></lgNaming:supportedCodingScheme> <lgNaming:supportedConceptDomain localId="Autos">Autos</lgNaming:supportedConceptDomain> <lgNaming:supportedSource localId="GM">GM</lgNaming:supportedSource> <lgNaming:supportedSource localId="Ford">Ford</lgNaming:supportedSource> </lgVD:mappings> <lgVD:source role="role1" subRef="subRef1">GM</lgVD:source> <lgVD:source role="role2" subRef="subRef2">Ford</lgVD:source> <lgVD:representsRealmOrContext>Automobiles</lgVD:representsRealmOrContext> <lgVD:representsRealmOrContext>Ford</lgVD:representsRealmOrContext> <lgVD:representsRealmOrContext>GM</lgVD:representsRealmOrContext> <lgVD:properties> <lgCommon:property propertyName="textualPresentation"> <lgCommon:source role="PropRole1" subRef="PropSubRef1">GM</lgCommon:source> <lgCommon:source role="PropRole2" subRef="PropSubRef2">Ford</lgCommon:source> <lgCommon:usageContext>PropUsageContext GM</lgCommon:usageContext> <lgCommon:usageContext>PropUsageContext Ford</lgCommon:usageContext> <lgCommon:propertyQualifier propertyQualifierName="PropQual1Namuuuuu" propertyQualifierType="PQual Type 1"> <lgCommon:value dataType="text">PropQualValue GM</lgCommon:value> </lgCommon:propertyQualifier> <lgCommon:propertyQualifier propertyQualifierName="PropQual2Namuuuuu" propertyQualifierType="PQual Type 2"> <lgCommon:value dataType="text">PropQualValue Ford</lgCommon:value> </lgCommon:propertyQualifier> <lgCommon:value>All Automobiles nodes</lgCommon:value> </lgCommon:property> </lgVD:properties> <lgVD:definitionEntry ruleOrder="1" operator="OR"> <lgVD:propertyReference codingScheme="Automobiles"> <lgVD:propertyMatchValue matchAlgorithm="LuceneQuery">General</lgVD:propertyMatchValue> </lgVD:propertyReference> </lgVD:definitionEntry> </lgVD:valueSetDefinition> |
</source>
The System test case for the LexEVS Value Set Definition service is performed using the JUnit test suite:
org.LexGrid.LexBIG.Impl.testUtility.VDAllTests
This test suite will be run as part of regular LexEVS test suites AllTestsAllConfigs and AllTestsNormalConfigs.
Value Set Definition Services are integrated parts of core LexEVS API and are packaged and installed with other LexEVS services.
Visit LexEVS 6.0 Value Set GUI for detailed functionality and howto's about using Value Sets developer GUI tool
{scrollbar:icons=false} |