This chapter introduces InterSystems IRIS Business Intelligence models.
Be sure to consult the online InterSystems Supported Platforms document for this release 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:
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 indices. 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:
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” in Implementing InterSystems Business Intelligence.)
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.
The chapter “Basic Concepts” provides an overview of cubes and subject areas. A model can contain many additional elements. See the chapter “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:
Create, compile, and build a basic cube with only a few items.
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.
Repeat the preceding steps as necessary.
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:
Click the InterSystems Launcher and then click Management Portal.
Depending on your security, you may be prompted to log in with an InterSystems IRIS® username and password.
Switch to the appropriate namespace as follows:
Click the 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.
Click Analytics and then click Architect.
When you first display the Architect, you see the following:
Click Open, click Cubes, click the name of a cube, and then click OK.
Now the system displays something like the following:
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.
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:
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:
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 window (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.
The center area is the Model Viewer, and it shows the current contents of the cube. For example:
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.
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).
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.
The Tools tab provides quick access to other tools, not documented this book.
Accessing the Samples Shown in This Book
Most of the samples in this book are part of the Samples-BI sample (https://github.com/intersystems/Samples-BIOpens in a new window) or the Samples-Aviation sample (https://github.com/intersystems/Samples-AviationOpens in a new window).
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.