About the HIEBus Model

These tables reflect the comprehensive data model used by the HIEBus™ data platform to store transactional health data. These tables are organized in a highly normalized and highly expressive structure that captures an enormous portfolio of health data concepts and relationships. As a result, many common queries will require multiple unions and joins. Most analytics use cases will rely on the tables of enriched concepts represented in the simplified models described below. The HIEBus model is provided to ensure that all data concepts that have been integrated into HIEBus can be made accessible via the Bulk Data API.

Core Concepts

The patients Table and Patient Data

The HIEBus patients table manages one row per unique individual within the context of a data source. The patients table contains a demographic_id column that can be joined to demographic tables such as demographics, demographicnames, and demographicaddresses to obtain all demographic information that was provided by a data source to describe a patient.

All clinical and administrative data that is stored in HIEBus is related to a patient. Tables that manage these data (such as encounters, claims, problems, and procedures, etc.) will include a patient_id column that can be joined to patients.id.

The personrecord View

The personrecord view provides a catalog of all unique human individuals (also referred to as persons or HIEBus recordgroups) and has a row for every patient_id that should be used to assemble a comprehensive view of data for a person. A unique human individual may be described by many rows in the patients table if the person has data from multiple source systems. HIEBus provides a person_id to represent a unique person. The personrecord view relates the person_id to the many patient_id values that can be used to obtain all the clinical and administrative data related to the person.

Coded Values, the terms Table, and the termmap View

All coded values that describe the properties of clinical and administrative data that is stored in HIEBus are represented by terms. Terms encapsulate the code, name and code system related to the coded value. Data tables (such as encounters, claims, problems, and procedures, etc.) will have many columns that end in term_id- these columns refer to a term that is used to represent the coded value for that column.

The HIEBus terms table includes both source terms and reference terms. Source terms are coded values that are received from data sources. For source terms, the terms table stores the code and name provided by the source system. Reference terms are coded values that are obtained from code system authorities (such as ICD-10 or HCPCS).

HIEBus maps source terms to reference terms. Join any column ending in term_id to the termmap view using termmap.term_id to obtain the code, name, and code system of the source term provided by the data source as well as the code, name, and code system of all reference terms to which the source term is mapped.

Archive Tables

Most data tables will have an adjacent table with the suffix _archive and an identical column structure. For example, the HIEBus model has an encounters table for all encounters managed by HIEBus and a encounters_archive table that manage historical data for rows that have been fully deleted from the encounters table.

If you are querying the HIEBus model for current data you should ignore all _archive tables. The _archive tables are only useful if you are using a downstream ETL process to extract data from the HIEBus model. In this ETL case, the _archive tables can be useful to identify data that you may have previously extracted from the HIEBus model that should be deleted.