Page History
f
Scrollbar | ||
---|---|---|
|
Page info | ||||
---|---|---|---|---|
|
Panel | ||||
---|---|---|---|---|
| ||||
|
...
LexEVS stores information about Entities in this way. Property names and values, as well as Qualifiers, Language, and various other information about the Entity are held in Lucene indexes.
Backgroud Backgronud - Querying Lucene
Lucene provides a Query mechanism to search through the indexed documents. Given a search query, Lucene will provide the Document id and the score of the match (Lucene assigns every match a 'score', depending on the strength of the match given the query).
...
Here is a UML representation of Value Domain within LexGrid 200901 model.!value_domain_VDModel.jpg,alt="UML representation of Value Domain wihtin LexGrid 200901 model"!
Value Domain Definition
...
Here is a UML representation of Pick List within LexGrid 200901 model:!value_domain_PLModel.jpg,alt="UML representation of Pick List within LexGrid 200901 model"!
Pick List Definition
...
Class Name | Description |
---|---|
VDSServices | Class to handle list of Value Domain Definitions Object to and fro database |
VDServices | Class to handle individual Value Domain Definition objects to and fro database. |
VDEntryServices | Class to handle Value Domain Entry objects to and fro database. |
LexEVSValueDomainServices | Primary interface for LexEVS Value Domain API |
LexEVSValueDomainServicesImpl | Implementation of LexEVSValueDomainServices which is primary interface for LexEVS Value Domain API. |
LoadValueDomain | Imports the value Domain Definitions in the source file, provided in LexGrid canonical format, to the LexBIG repository. |
ResolvedValueDomainCodedNodeSet | Contains coding scheme version reference list that was used to resolve the value domain and the coded node set. |
ResolvedValueDomainDefinition | A resolved Value Domain definition containing the coding scheme version reference list that was used to resolve the value domain and an iterator for resolved concepts. |
!value_domain_VDClassDiagram.jpg,alt="value domain VDClassDiagram"!
Pick List Class Diagram
...
Method Name | Description |
---|---|
getValueDomainService() | Returns an interface to LexEVS Value Domain API |
getPickListService() | Returns an interface to LexEVS Pick List API. |
!value_domain_LexBIGServiceClassDiagram.jpg,alt="value domain LexBIGServiceClassDiagram"!
Main Service API
...
Information | listValueDomains(String valueDomainName) | ||
---|---|---|---|
Description: | Return the URI's for the value domain definition(s) for the supplied domain name. If the name is null, returns everything. If the name is not null, returns the value domain(s) that have the assigned name. | ||
Input: | java.lang.String | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="3ed5783a289b15ff-2405ab4f-440141f2-bc2896a8-dc43c57c5123a13abb9954e8"><ac:plain-text-body><![CDATA[ | Output: | java.net.URI[] | ]]></ac:plain-text-body></ac:structured-macro> |
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation: | ]]></ac:plain-text-body></ac:structured-macro> |
...
Information | getAllValueDomainsWithNoNames() | ||
---|---|---|---|
Description: | Return the URI's of all unnamed value domain definition(s). | ||
Input: | none | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="94b96c8e14df0a7c-a00dc887-40604e51-8e7d892f-9f9eb5e5446f794f45af3076"><ac:plain-text-body><![CDATA[ | Output: | java.net.URI[] | ]]></ac:plain-text-body></ac:structured-macro> |
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation: | ]]></ac:plain-text-body></ac:structured-macro> |
...
Information | getPickListDefinitionsForDomain(URI valueDomainURI) | ||
---|---|---|---|
Description: | Returns all the pickList definitions that represents supplied valueDomain URI. | ||
Input: | java.net.URI | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="3a2ccf17c07b8477-b11e5be7-4206461e-806389c7-45fddbc664133b8c5591ad63"><ac:plain-text-body><![CDATA[ | Output: | org.LexGrid.emf.valueDomains.PickListDefinition[] | ]]></ac:plain-text-body></ac:structured-macro> |
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation: | ]]></ac:plain-text-body></ac:structured-macro> |
...
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="84444cf3a81bca1f-2e4d288a-4ec04ffe-82e490ce-7cf1fe106dad1ffce4357427"><ac:plain-text-body><![CDATA[ | Information | resolvePickListForTerm(String pickListId, String term, String matchAlgorithm, String language, String[] context, boolean sortByText) | ]]></ac:plain-text-body></ac:structured-macro> |
---|---|---|---|
Description: | Resolves pickList definition by applying supplied arguments. | ||
Input: | java.lang.String, | ||
Output: | org.lexgrid.valuedomain.dto.ResolvedPickListEntryList | ||
Exception: | org.LexGrid.LexBIG.Exceptions.LBException | ||
Implementation Details: | Implementation: |
...
Database structure
Value Domain Tables
!value_domain_VDTablesDiagram.jpg,alt='value domain VDTablesDiagram"!
Table Name | Description |
---|---|
valueDomain | Will contain Value Domain Definition information |
vdEntry | Contains Value Domain Entries information and its rules |
entryState | Contains entry state details of every entry |
mappings | Contains supported mapping information for a Value Domain Definition |
property | Contains Property informations for Value Domain Definition |
Pick List Tables
!value_domain_PLTablesDiagram.jpg,alt="value domain PLTablesDiagram"!
Table Name | Description |
---|---|
pickList | Will contain Pick List Definition information |
plEntry | Contains Pick List Entry Nodes information |
entryState | Contains entry state details of every entry |
mappings | Contains supported mapping information for a Pick List Definition |
property | Contains Property informations for Pick List Definition and its Nodes |
...
The Loader Framework utilizes Spring Batch for managing its Java objects to improve performance and Hibernate provides the mapping to the LexGrid database.
!loader_image003.gif,alt="diagram of major components of the Loader Framework"!
Assumptions
- None
...
Enter Spring. The Loader Framework uses Spring Batch to manage the reading, processing and writing of data. Spring provides classes and interfaces to help do this work and the Loader Framework also provides utilities to help loader developers. In our example, we will write a class that will use the Spring ItemReader interface. It will take a line of text and return an ICD9SourceObject (1 and 2). Next we'll want to process that data into a LexEVS object such as an Entity object. So we'll write class that implements Spring's ItemProcessor interface. It will take our ICD9SourceObject and output a LexEVS Entity object (3,4). Finally, we'll want to write the data to the database (5). Note that the LexEVS model objects provided in the Loader Framework are generated by Hibernate and utilize Hibernate to write the data to the database. This will free us from having to write SQL.
!loader_image004.jpg,alt="diagram of loader framework"!
Spring
You will need to configure Spring to be aware of your objects and how to manage them. This is done via a XML configuration file. More details on the Spring config file below.
...
From the Maven documentation:
!Eclipse_Project.gif,alt="Eclipse project illustration"!
For more information on the Maven project refer to the documentation on apache.org.
...
Spring is a lightweight bean management container and among other things it contains a batch function which is utilized by the Loader Framework. A loader using the framework will need to work closely with Spring Batch and the way it does that is through Spring's configuration file where you configure beans (your loader code) and how the loader code should be utilized by Spring Batch (by configuring a Job, Step and other Spring Batch stuff in the spring config file). What follows is a brief overview of those tags related to the LoaderFramework. For more detail refer to the Spring documentation.
!loader_image005.gif,alt="loader diagram"!
Beans
The 'beans:beans' tag is the all-encompassing tag. You define all your other tags in here. You can also define an import within this tag to import an external Spring config file. Not shown in figure 3.
...