"
Author: Traci St.Martin/Craig Stancl
Email: stancl.craig@mayo.edu
Team: LexEVS
Contract: [Contract number]
Client: NCI CBIIT
National Institutes of Heath
US Department of Health and Human Services
Sign off |
Date |
Role |
CBIIT or Stakeholder Organization |
Reviewer's Comments (If disapproved indicate specific areas for improvement.) |
---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Solution Architecture
Proposed technical solution to satisfy the following requirements:
- Provide support for Value Sets.
- Develop within LexEVS the ability to provide local extensions to code sets and maps among code sets.
- Develop within LexEVS other capabilities called for in the CTS2 Specification.
High Level Architecture
Structure of the CTS 2 Service
The functional CTS 2 Model defines several functional profiles. These profiles are a focused subset of the functionality of a CTS 2 implementation.
CTS 2 Query Profile:
- Searching and querying terminologies
- Provide access to terminology content and representational structures (description logic) consistent with the terminology author's intent.
Terminology Administration Profile:
- Restricting administrative access
- Obtaining and loading terminologies
- Maintaining terminology access
- Control Content Access
Terminology Authoring Profile:
- functional terminology analysis/query
- direct terminology edits
Semantic Profiles
HL7 Profile:
- Functional coverage and specificity necessary for HL7 conformance
- Searching terminology content
- Interchange content in the the Model Interchange Format.
- Use of HL7 Datatypes
- (Model Interchange Format (MIF) Representation of terminology content
Mature Terminology Profile:
- Best practices conformance for the terminology
Developing Terminology Profile:
- ad hoc or degraded terminologies
High Level Design Diagram
CTS 2 Functional Profiles
CTS 2 Query Profile
List Code Systems |
The ability to provide a listing of the available code |
Return Code System Details |
The ability to retrieve a specific code system attributes |
List Code System Concepts |
The ability to retrieve a list of all of the concepts, |
Return Concept Details |
The ability to retrieve a specific concept, with |
List Value Sets |
The ability to determine what value sets are available to |
Return Value Set Details |
The ability to retrieve a specific value set, with |
List Value Set Contents |
The ability to see a listing of specific concepts, as well |
Check Concept Value Set Membership |
The ability to validate that a given concept exists in a |
List Concept Domains |
The ability to determine what concept domains are |
Return Concept Domain Details |
The ability to retrieve a specific concept domain, with |
List Concept Domain Bindings |
The ability to see a listing of specific value sets that |
Check Concept Domain Membership |
The ability to validate that a given concept code is bound |
List Usage Contexts |
The ability to determine what usage contexts are available |
Return Usage Context Details |
The ability to retrieve a specific usage context, with |
List Associations |
The ability to determine what associations are available |
Return Association Details |
The ability to retrieve metadata on available associations |
List Association Types |
Returns the details for the known attributes (metadata) of |
Return Association Type Details |
The ability to return all information for a Association |
Check Value Set Subsumption |
Determine whether one of the two supplied value sets |
Check Concept to Concept Domain Association |
Determine whether the supplied coded concept exists in a |
Determine Transitive Concept Relationship |
Determine whether there exists a transitive relationship between two |
Compute Subsumption Relationship |
Determine Whether One Concept Subsumes a Second |
Terminology Administration Profile
Import Code System |
Terminology content would be loaded into the terminology |
Import Code System Revision |
Terminology content would be loaded into the terminology |
Import Value Set Version |
Ability to import values sets |
Import Association version |
Ability to import Associations |
Export Association |
Ability to export Association Type instances |
Export Code System Content |
Terminology content would be exported either in whole or |
Change Code System Status |
Terminology content status would be changed, thus changing |
Register for Notification |
A client registers for notification so that an electronic |
Update Notification Registration |
Subscription notification information can be updated for a |
Update Notification Registration Status |
Updates the status of a notification registration. |
Terminology Authoring Profile
Create Code System |
The ability to create a new Code System to contain a set |
Maintain Code System Version |
The ability to maintain the content and metadata of a |
Update Code System Version Status |
The ability to modify the status of a code system. |
Create Concept |
The ability to define and add a new concept to a code |
Maintain Concept |
The ability to modify a concept that exists in a code |
Update Concept Status |
The ability to modify the status of a concept that exists |
Create Value Set |
The ability to create a dynamic value set that is defined |
Maintain Value Set |
Update properties or expression of a value set definition |
|
|
Update Value Set Status |
The ability to modify the status of a value set. |
Create Concept Domain |
The ability to define and add a new concept domain. |
Maintain Concept Domain |
The ability to modify a concept domain, including bindings |
Create Usage Context |
The ability to define and add a new usage context. |
Maintain Usage Context |
The ability to modify a usage context. |
Terminology Administration Profile |
The Terminology Administration profile is intended to |
Create Association |
The ability to create an association between concepts. |
Update Association Status |
The ability to update the status of an association between |
Create Association Type |
The ability to create a new Association type that may be |
Maintain Association Type |
The ability to modify or deprecate an existing Association |
Create Lexical Association Between Coded Concepts |
The ability to instantiate an association between two sets |
Create Rules Based Association Between Coded Concepts |
The ability to instantiate an association between two sets |
Create Code System Supplement |
Create a new Code System Supplement as a container of a |
Maintain Code System Supplement |
Update Code System Supplement meta-data properties and add |
A Sub Categorization of Services
CTS Services can be further categorized from the profile details above:
CTS Service Interfaces
Solution Architecture
Data Access Layer
LexEVS lacks a generalized Read/Write interface that can support Authoring and incremental Coding Scheme changes. Also, database access is not isolated. Database-specific code is intermixed with the Service Layer, as well as Extensions. To make LexEVS more able to handle Authoring, while at the same time providing a clean, centralized Database Access Layer, these are the requirements:
- Service Layer code should not call any JDBC code other than a Data Access Interface
- The Data Access Layer should allow connection pooling
- The Data Access Layer should expose 'Service' or 'Repository' Interfaces to the Service Layer.
- Transactions should be well defined
- Allow for Backwards Compatibility
- Inserts, Updates, Selects, and Deletes should cascade the Object hierarchy if desired
- Service-Exposed Interfaces should use the Castor-generated beans.
- Batch inserts should be supported
- Lucene access should be included in the Data Access Layer
- Registry accesss should be included in the Data Access Layer.
- Expose an Event-Driven framework to allow users to insert business rules to control access to the database
- In terms of System Resource responsibilities, the Data Access Layer should be responsible for:
- Detecting the LexGrid Schema version
- Detecting the Database Type (MySQL, Oracle... etc)
- Producing appropriate implementations of the Database Access code given the above
- Loading and initializing all schemas on install
- Tracking loaded Coding Schemes and other resources
- All database admin functions (remove Coding Scheme, index, compute transitivity, etc)