Skip to main content

Overview of InterSystems IRIS Business Intelligence Models

This topic introduces InterSystems IRIS® data platform Business Intelligence models.

Be sure to consult InterSystems Supported Platforms for information on system requirements for Business Intelligence.

Purpose of Business Intelligence

InterSystems Business Intelligence enables you to embed business intelligence (BI) into your applications so that your users can ask and answer sophisticated questions of their data. Your application can include dashboards like the following example:

A dashboard, Basic Dashboard Demo, with two widgets: 1. Patient Counts and Allergy Counts, 2. Patients by Favorite Color.

The widgets on a dashboard are driven by pivot tables and KPIs (key performance indicators). For a pivot table, a user can display a listing, which displays source values.

Pivot tables, KPIs, and listings are queries and are executed at runtime:

  • A pivot table can respond to runtime input such as filter selections made by the user. Internally it uses an MDX (MultiDimensional eXpressions) query that communicates with a cube.

    A cube consists of a fact table and its indexes. A fact table consists of a set of facts (rows), and each fact corresponds to a base record. For example, the facts could represent patients or departments.

    Depending on your configuration and implementation, the system detects changes in your transactional tables and propagates them to the fact tables as appropriate.

    The system generates an MDX query automatically when a user creates the pivot table in the Analyzer.

  • A KPI can also respond to runtime user input. Internally, it uses either an MDX query (with a cube) or an SQL query (with any table or tables).

    In either case, you create the query manually or copy it from elsewhere.

  • A listing displays selected values from the source records used for the rows of the pivot table that the user has selected. Internally, a listing is an SQL query.

    You can specify the fields to use and let the system generate the actual query. Or you can specify the entire query.

Introduction to Business Intelligence Models

A model includes some or all of the following elements:

  • At least one cube definition. A cube describes ways that you can query a set of specific base elements (such as patients or transactions). A cube includes levels, which enable you to group records from the base set, and measures, which show aggregate values of those records. It also defines listings and other items.

    When you create pivot tables, you use levels and measures. Consider the following pivot table:

    A pivot table with rows for the Patient Groups (Group A, Group B, and None) and a column for Average Test Score.

    In this pivot table, the rows correspond to the members of the Patient Group level; each member is shown as one row. The data column displays the aggregate value of the Avg Test Score measure for each of these members; for this measure, the system computes the average value. Notice that the Avg Test Score is null for the None patient group.

  • Any number of subject areas. A subject area is a subcube that enables users to focus on smaller sets of data without the need for multiple cubes. A subject area also enables you to customize captions and defaults of the cube.

  • Any number of KPIs.

    In Business Intelligence, a KPI is an interactive data set that can be displayed on a dashboard. The KPI can define actions, which a user can launch and which execute your custom code. (Note that actions are discussed in Defining Custom Actions.)

You use these elements to create dashboards as follows:

  • Within the Analyzer, you create pivot tables.

    Each pivot table is a query that you create by drag and drop actions. The query runs against a cube or subject area.

  • Within the Dashboard Designer, you add pivot tables and KPIs to dashboards, along with any filter controls or other needed controls.

Basic Concepts provides an overview of cubes and subject areas. A model can contain many additional elements. See Summary of Model Options for a complete comparison of the options.

Introduction to the Model Development Process

The model development process typically is as follows:

  1. Create, compile, and build a basic cube with only a few items.

  2. Use the Analyzer or the Business Intelligence shell to examine the results and to identify changes to make.

    For information on the Analyzer, see Using the Analyzer.

    For information on the shell, see Introduction to InterSystems Business Intelligence.

  3. Repeat the preceding steps as necessary.

  4. When the cube is finalized or nearly finalized, define subject areas based on the cube.

Note that you might need multiple cubes.

Introduction to the Architect

You use the Architect to create cubes and subject areas.

To access the Architect, do the following:

  1. Click the InterSystems Launcher and then click Management Portal.

    Depending on your security, you may be prompted to log in with an InterSystems IRIS® data platform username and password.

  2. Switch to the appropriate namespace as follows:

    1. Click the name of the current namespace to display the list of available namespaces.

    2. From the list, click the appropriate namespace.


    Certain InterSystems products provide out-of-the-box namespaces intended for customized classes, such as the HSCUSTOM namespace provided with HealthShare products. InterSystems strongly recommends against deploying cubes in any such namespaces.

  3. Click Analytics and then click Architect.

    When you first display the Architect, you see the following:

    The Architect screen, prompting the user to click the Open button to select a model definition.

  4. Click Open, click Cubes, click the name of a cube, and then click OK.

    Now the system displays something like the following:

    The Architect screen after a cube has been opened, where the source class is called BI.Study.Patient.

The top area contains navigation links and buttons to perform different tasks.

Below that, the page consists of the following areas, when the Architect is displaying a cube.

Class Viewer

The left area is the Class Viewer, and it shows the properties in the base class used by the cube; this area is not shown for a subject area. For example:

The left panel of the Architect screen, showing that this class has properties including %ID, Age, Allergies, and BirthDate.

You can resize this area. To do so, drag the vertical divider on the right edge of this area.

The following rules control the display of a class in the Architect:

  • All properties are shown except for relationship properties, private properties, and transient properties.

  • This display is recursive; that is, properties of properties are shown.

  • If a property is a collection (a list or an array) or a relationship, it is shown as a folder that displays the properties of the class used in the collection or relationship.

  • If a property is of type %ListOpens in a new tab (which is the object equivalent of $LISTBUILD), it is not shown as a folder.

    For example, see the DiagnosesAsLB property, which is included in the Patients sample to illustrate this point.

  • If a class is not accessible from the base class via cascading dot syntax, it is not shown.

  • The Architect displays properties inherited from superclasses. (The sample does not demonstrate this.)

All core cube elements are based either on a source property or on a source expression (which is an ObjectScript expression) that can use properties of any class.


The Architect provides a useful view of the class properties, which makes it very easy to create Business Intelligence elements based on those properties. It is important, however, to know that although this view provides a convenient way to access some properties, you can also use a source expression to access any data. These source expressions are evaluated when the cube is built and thus do not affect your runtime performance.

Model Viewer

The center area is the Model Viewer, and it shows the current contents of the cube. For example:

The Model Viewer area of the screen, showing several measures (including Age and Avg Age) and a dimension called AgeD.

You can resize this area. To do so, drag the vertical divider on the left edge of this area.

The links at the top include Add Element, which you can use to add measures, dimensions, and other items to the cube. In the area below the links, you can select items for editing, including the cube itself in the first row. You can also delete an item by clicking the X button in the row for that item.

Details Area

The right area is the Details Area, and it shows details for the element that is currently selected in Model Viewer (if any), or for the cube (if nothing is selected).

For example:

The right panel of the screen, showing the Details tab open an element with display name Patients in the Patients cube.

To hide this area, click the Hide Details button . If you do so, the Model Viewer is widened.

Then, to display this area again, click the Show Details button .

In this area, you primarily work on the Details tab.

Accessing the Samples


Support for delimited identifiers must be enabled in order to build the cubes in the sample packages which are described in this section. This is because the build process executes SQL queries which include reserved words. See Delimited Identifiers for more information.

Most of the samples in this documentation are part of the Samples-BI sample ( in a new tab) or the Samples-Aviation sample ( in a new tab).

InterSystems recommends that you create a dedicated namespace called SAMPLES (for example) and load samples into that namespace. For the general process, see Downloading Samples for Use with InterSystems IRIS.

FeedbackOpens in a new tab