This is a software architecture document for the Ontology Management (ONT) cell. It identifies and explains important architectural elements. This document will serve the needs of stake holders to understand system concepts and give a brief summary of the use of the ONT message format.
The Ontology Management cell (ONT) is an i2b2 Hive core cell. This cell manages i2b2 vocabulary definitions and contains concepts and information about relationships between concepts for the entire hive. It is accessed by other cells to give semantic meaning to data.
Vocabularies in the ONT cell are organized in hierarchical structures that represent the relationships between terms. The top levels in the hierarchy are called the "parents" or "roots", with the lower levels being their "children". Elements occurring on the same level are known as "siblings". A level in a hierarchy is sometimes referred to as a "node", and a group of related data is called a "category".
A category is defined as a set of data for which there is a common rule or rules for querying against the Clinical Research Chart (CRC). A category is usually represented visually as a table of terms. An example of a category is the "Diagnoses" category shown in the diagram below, which consists of a table of diagnostic terms and uses a single rule to build all diagnostic queries.
Vocabularies in the ONT cell may originate as code from different sources. The ONT cell distinguishes these codes from one another by pre-pending a unique prefix to each code. Each distinct vocabulary and their associated codes are called a scheme.
In Release 1.6, we added modifiers to the ONT cell vocabulary. A modifier may be used to extend the meaning of a concept. An example of modifiers is shown below: the concept 'Smoker' has three modifiers that may be applied to it: 'Heavy', 'Light', and 'Moderate'.
ONT Definitions, Acronyms and Abbreviations
Vocabulary Data Object (VDO)
This object holds vocabulary definitions and information about the relationships between concepts.
Each distinct vocabulary and their associated codes is called a scheme. A distinction is made between codes from different sources by pre-pending a unique prefix to each code.
When and how data is presented to a user is based on their user roles, which are specified in the PM Cell. Each user will have at least two roles per user_id and product_id combination. These two roles can be further defined as a Data Protection role and a Hive Management role.
The data protection role establishes the detail of data the user can see while the hive managment role defines their level of functionality the user has in a project.The following tables summarize the roles in a hierarchical order of least to most access.
Data Protection Track
OBFSC = Obfuscated
AGG = Aggregated
LDS = Limited Data Set
DEID = De-identified Data
PROT = Protected
Hive Management Track
Can create queries and access them if he/she is the owner of the query.
Can create, delete or edit Ontology metadata terms
Can create queries and can access queries created by different users within the project.
Users may access ONT with a user-id and password combination, which is authorized through the Project Management Cell. The implementation detail of Project Management Cell is considered out-of scope to this document.
Scope of the system
Some other participants, currently outside the scope of ONT are:
The Ontology metadata database shall not contain protected health information.
The product is designed to run on the following platform:
The ONT system is transactional, leveraging the transaction management model of the J2EE platform.
The application must implement basic security behaviors:
This application utilizes JDBC calls to retrieve persisted data.
The user authentication with project management cell must be under 1 second.
The diagram below depicts common use cases a user may perform with the ONT cell.
The ONT service is designed as a collection of operations or use cases:
Returns a list of categories available for a given user. These categories are displayed in a tree format. The top level of the tree consists of all the categories a particular user has permission to see.
Expands any level of a vocabulary category, providing information about its children, for a given user.
Returns a list of schemes available in the system. This operation basically provides information about the different kinds of coding systems that exist.
Returns information needed about all nodes related to a given search keyword or name.
Returns information about a code, such as the name associated with a particular code.
Returns information about a particular node.
Adds a new Ontology term to the tree under the selected parent node.
Deletes a selected Ontology term.
Modifies content within an existing Ontology term
Notifies the Ontology cell to synchronize metadata terms with concept_dimension table
Returns status information about the concept_dimension synchronization process
Returns state information about the need to synchronize with the concept_dimension table
Notifies the Ontology cell to get patient count from CRC for this concept and then update the totalnum for this concept in the metadata table.
Returns list of modifiers for a concept if they exist.
Expands any level of a modifier folder, providing information about its children.
Returns information about a particular modifier.
Returns modifiers associated with a concept that meet a name search criteria
Returns modifiers associated with a concept that meet a code search criteria.
Adds a new Ontology modifier to the tree under the selected parent node or modifier.
Excludes an existing modifier from a concept lower in the hierarchy than the modifier's specified hierarchy level.
This section provides a description of the architecture as multiple views. Each view conveys the different attributes of the architecture.
Components and Connector View
A Component and Connector view represents the runtime instances and the protocols of connection between the instances. The connectors represent the properties such as concurrency, protocols and information flows. The diagram shown in the Primary Presentation section represents the Component and Connector view for the multi-user installation. As seen in the diagram, component instances are shown in more detail with specific connectors drawn in different notations.
The ONT system is represented using the components and connector client-server view.
184.108.40.206 Element Catalog
Webservice client submits the requests to ONT Server components and renders response XML.
Ontology Management Server
Provides Web Service Interface for the ONT system.
Project Management Server
ONT cell uses Project Management cell to authenticate user.
Data Repository Component
This repository is a database for i2b2 metadata.
SQL query used as a connector between the ONT System and the Metadata database.
REST protocol used to communicate with the external system.
Design Rationale, Constraints
The client-server style depicts an n-tier architecture that separates the presentation layer from the business logic and data access layer.
Module View Type
The module view shows how the system is decomposed into implementation units and how the functionality is allocated to these units. The layers show how modules are encapsulated and structured. The layers represent the "allowed-to-use" relation.
The following sections describe the module view using Decomposition and Uses Styles.
The Decomposition style presents system functionality in terms of manageable work pieces. It identifies modules and breaks them down into sub-modules and so on, until a desired level of granularity is achieved.
Ontology Management Server
This subsystem manages queries for ontology operations.
Operation ManagerOntology Management Server
The Uses style shows the relationships between modules and sub-modules. This view is very helpful for implementing, integrating and testing the system.
Ontology Management Server
Operation Manager Subsystem
Vocabulary Data Object
Authenticates user through PM Server System
Provides web service interface to ontology operations.
Delegates Ontology requests to Data Access Object layer to perform database operations.
Data Access Object
Supports database query operations.
Vocabulary Data Object
Object representation of persisted data