#InterSystems IRIS BI (DeepSee)

17 Followers · 325 Posts

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. Specifically, your application can include dashboards, which can include the following:

  • Interactive widgets that execute queries designed for specific user roles or for specific areas of your user interface.
  • Controls such as drop-down lists and data choosers that enable users to modify these queries.
  • Interactive drill options that enable users to view the displayed data in different ways.
  • Options to export, print, and send alerts to other users.
  • An option to launch the Mini Analyzer, which supports free-form analysis.
  • Execute custom actions that are provided as buttons or other controls.

In contrast to traditional BI systems that use static data warehouses, Business Intelligence is kept closely in synchronization with the live transactional data, as required for your business.

Learn more.

Question Ashok Kumar T · Dec 15, 2025

Hello Community,

What is the correct way to import and compile .dfi files when using zpm load? Do .dfi files need to be defined in module.xml?

I have code that imports the .dfi file successfully; however, when I run
zpm "load /home/irisowner/dev/ -v"

I get the message: Unknown file type. Skipping file: .pivot.DFI

    zpm "install isc-dev"
    do ##class(dev.code).workdir(dir)
    do ##class(dev.code).import("*.DFI")

Thank you!

30
0 229
Article Dmitrij Vladimirov · Dec 1, 2025 5m read

In this article, we will discuss all the debugging tools included in the Microsoft Visual Studio Code IDE.

What will be covered:

  • Breakpoints
  • Watch window
  • Call Stack

Let's start by learning about debugging requirements!

Prerequisites

There are two plugins (extensions) for debugging ObjectScript:

The first is part of the InterSystems ObjectScript Extension Pack. The second is Serenji, a standalone plugin that provides an editor, file manager, and debugging functionality. Both plugins can be installed from the plugin store. To activate key functionality, Serenji requires a license. For this article, we'll use the InterSystems ObjectScript Extension Pack to reduce the learning curve. After you've mastered the basics, you can consider purchasing a paid license for Serenji.

2
5 318
Question Dmitrij Vladimirov · Nov 26, 2025

I use $SELECT() in Architect to aggregate various data conditions into a single dimension.

I have a data table like this: id, user, userData1, userData2...

Where each user action is the %Integer ID of that action from some source. Then in expression field i use: $SELECT(userAction1:"This user action", userAction2:"That user action".) and so on, up to 14 conditions, excluding the default placeholder 1:"Other" (which is always empty because there is a condition with 100% chance).

21
0 238
Question Rodolfo Pscheidt Jr · Nov 6, 2025

Hi community
I have a persistent data class where there are some properties that contain underscores in their names, for example:
Property "client_name" As %String(MAXLEN = 250) [ SqlFieldName = client_name ];
In Architect, I would like to use this property in an expression, in this field:

But I can't figure it out. If I use %source.client_name, it gives a compilation error. If I use %source."client_name", it treats it as the string "client_name" instead of getting the value from the field. Any suggestions on how to do this?

9
0 152
Question Giulia Ghielmi · Oct 30, 2025

Hello everyone! 👋

I have a question regarding roles and resources. 

To give you some context: I have a user who has been assigned only the role %HS_UsageDashboard_Access.This allows them to access the dashboards correctly (by giving the direct URL). Then,  if I try to access the Management Portal with this same user, I can log in with no access to any resources within it (as expected).

The point is that I would like to completely deny him access to the Management Portal, while allowing him to view only the dashboards, as expected from the %HS_UsageDashboard_Access role.

3
0 123
Announcement Larry Finlayson · Nov 3, 2025
  • Using InterSystems Embedded Analytics – Virtual December 1-5, 2025
    • Embed analytics capabilities in applications and create the supporting business intelligence cubes.
    • This 5-day course teaches developers and business intelligence users how to embed real-time analytics capabilities in their applications using InterSystems IRIS® Business Intelligence.
0
0 68
Question Dmitrij Vladimirov · Oct 16, 2025

Hi community.
I have a query:

SELECT
nameField,
dateField,
anotherDateField
FROM
(      
SELECT
MIN(someDate) as dateField,       
nameField,
anotherDateField
FROM $$$SOURCE
WHERE $$$RESTRICT               
GROUP by someOtherField    
)
WHERE dateField >= anotherDateField

This query should filter the data by the minimum value of the somDate field, but it doesn't. It displays all values ​​together, regardless of the external filter. The exact same query (without the $$$ tokens, of course) works fine in a regular SQL runtime.
My guess is that the $$$RESTRICT does this

WHERE source.
3
0 116
Question Dmitrij Vladimirov · Aug 21, 2025

I work a lot with IRIS BI, but some features are still a mystery to me. There is a great feature here that allows you to create expressions in Architect.
 
I'm already very familiar with it, but I still don't quite understand what environment it uses.

It can execute system classes like $SYSTEM.SQL,  $PIECE(), %cube, %source(), it can do string concatenation, call methods from another classes.
I have two questions actually.
What environment it uses to execute this? Is it ObjectScript, SQL, MDX or maybe even its own?

7
0 192
Announcement Michael Braam · Aug 29, 2025

#InterSystems Demo Games entry


⏯️ Copilot for InterSystems Embedded BI

The Co-Pilot enables you to leverage InterSystems BI without deep knowledge in InterSystems BI. You can create new cube, modify existing cubes or leverage existing cubes to plot charts and pivots just by speaking to the copilot.

Presenters:
🗣 @Michael Braam, Sales Engineer Manager, InterSystems
🗣 @Andreas Schuetz, Sales Engineer, InterSystems
🗣 @Shubham Sumalya, Sales Engineer, InterSystems

2
0 134
Announcement Tomo Okuyama · Aug 28, 2025

#InterSystems Demo Games entry


⏯️ Autonomous Business Intelligent Clerk (ABiC) - Combining InterSystems BI and Generative AI

Our Autonomous Business Intelligent Clerk, or ABiC for short, is a prototype revolutionizing how companies process data and make decisions. Normally, to get insights from data, you’d need IT knowledge or expertise in statistics. But with ABiC, that’s no longer necessary. All you have to do is ask your question in plain language. ABiC understands your interests and intentions, then shows a clear dashboard to guide your decisions. With ABiC, complex data is autonomously analyzed and turned into answers that support users, helping to accelerate business processes. This demo sends the metadata of InterSystems BI cubes to LLM. How does it work? Check out the video for more details!

Presenters:
🗣 @Tomo Okuyama, Sales Engineer, InterSystems
🗣 @Nobuyuki Hata, Sales Engineer, InterSystems
🗣 @Tomoko Furuzono, Sales Engineer, InterSystems
🗣 @Mihoko Iijima, Training Sales Engineer, InterSystems

0
0 113
Question Georgia Gans · Aug 11, 2025

Hi everyone,

I am trying to create a treeMapChart in IRIS BI that will then be displayed on my DeepSeeWeb dashboard. In the IRIS BI User Portal, this is an example of what my treeMapChart looks like:

I know there is a huge amount of rectangles in this graphic - I care most about the common components (the largest boxes) but I still want all of the boxes to show. However, it projects to my DeepSeeWeb dashboard as the following: 

The labels do not show, even if I hover over the boxes.

7
0 137
Question Kanishk Mittal · Jul 28, 2025

We’re building out a data lake in IRIS 2025.1 that aggregates data across multiple business systems and departments. I’m trying to establish best practices for schema design and separation.

Right now, I’m thinking of using a separate schema for each distinct system of record feeding into the data lake - for example, one schema per upstream source system, rather than splitting based on function (e.g. staging, raw, curated). The idea is that this would make it easier to manage source ownership, auditing, and pipeline logic, especially when multiple domains are contributing data.

0
0 113
Question Riccardo Villa · Jul 15, 2025

Hello,

I need to expose InterSystems HealthInsight dashboards over the internet to external operators. The authentication flow is managed externally. When a user is authenticated, our system receives an HTTP request with specific headers (e.g., operator’s fiscal code and hospital identifier) that we need to extract in order to:

  • Authorize the user to access the dashboards.
  • Apply row-level security on the dashboards, filtering the data by hospital and user role.
2
0 142
Article Stephen Canzano · Jun 28, 2025 3m read

Maybe this is well known but wanted to help share.

Consider that you have the following persistent class defintions

An Invoice Class with a property reference to Provider

Class Sample.Invoice Extends (%Persistent, %Populate)
{
Parameter DSTIME = "AUTO";
Property InvoiceNumber As %Integer(MINVAL = 100000) [ Required ];
Property ServiceDate As %Date(MINVAL = "+$h-730") [ Required ];
Index InvoiceNumber On InvoiceNumber;
Property Provider As Sample.
0
2 253
Announcement Larry Finlayson · Jun 23, 2025
  • Using InterSystems Embedded Analytics – Virtual July 14-18, 2025
    • Embed analytics capabilities in applications and create the supporting business intelligence cubes.
    • This 5-day course teaches developers and business intelligence users how to embed real-time analytics capabilities in their applications using InterSystems IRIS® Business Intelligence.
0
0 83
Question Dmitrij Vladimirov · May 19, 2025

I have a widget that uses "choose Data source" control option. Termlist for the control consist of the two data sources and i want to set one of them by default. For example: I have two data sources, one is grouped by month, the other by year. I need to set the one that is grouped by year by default 

Using default value at the bottom return an error

How can i achive that?

2
0 118