Using Terminology Concepts Mapped By Rosetta
Tables in the Unified Model have several columns that represent coded terminology concepts. These concepts are integrated from the originating data source using coded references in a terminology code system that is provided by the data source. After integration into HIEBus, these concepts are mapped to reference terminologies by the Rosetta Terminology Service. A complex schema in the HIEBus Model retains all information about the coded representation and terminology used by the source system as well as multiple mappings to reference terminologies and value sets that are determined by Rosetta.
Terminology in the Unified Data Model
The Unified Model attempts to simplify this terminology representation for common analytics use cases. Most terminology concepts are represented in the Unified Model with a primary mapped term using the following pattern:
- code: Exactly one code from a reference code system to represent the preferred, mapped terminology concept. The Rosetta Terminology Service determines this mapped concept. If the concept remains unmapped, the original code provided by the source system is used. If Rosetta determines multiple mapped concepts, a single preferred concept is selected using a prioritization algorithm in order to retain a simple 1:1 mapping for analytics use cases. The prioritization algorithm is described in documentation for each table.
- display: The description for the selected code. This column is denormalized from terminology tables in order to avoid a join and simplify analytics use cases.
- termid: An internal identifier (named with the pattern *termid) for the original term provided by the source system. If the denormalized primary mapped code and description are insufficient for a use case, this termid reference can be used to join to terminology-related tables to determine all information about the source term and all mappings determined by Rosetta. It can also be used to reference all value sets related to mapped reference terms.
Examples of this pattern:
The condition table has the following columns:
- code: The prioritized mapped terminology code determined to represent the diagnosis. The default prioritization is by code system: ICD-10-CM, SNOMED, ICD-9-CM. The code sent by data source will be used if no mappings are available.
- display: Human-readable label to describe the diagnosis. The description of the term associated with the code column.
- termid: A HIEBus terminology id. Reference to the original primary term (usually from a data source namespace) received by HIEBus that can be used to show the original code or obtain alternative mappings. Use this column to join to the valueset or sourceterm tables.
The encounter table has the following columns:
- classcode: Coded value to describe the encounter patient class. This represents a primary mapped term in a reference code system.
- class: Human-readable label to describe the patient class. This represents a primary mapped term in a reference code system.
- classtermid: A HIEBus terminology id. Reference to the original primary term (usually from a data source namespace) received by HIEBus that can be used to show the original code or obtain alternative mappings. Use this column to join to the valueset or sourceterm tables.
Common Joins Using *termid Columns
The following usage patterns join a *termid column to another table.
- Obtain value sets related to the term by joining termid to valueset.termid. This table relates termid to value sets that contain the term or reference terms to which the term is mapped.
- Obtain all term mappings related to the term by joining the termid to sourceterm.termid. This table contains all term mappings for the source term.