4 Followers · 56 Posts

Multidimensional Expressions (MDX) is a query language for online analytical processing (OLAP) using a database management system. Much like SQL, it is a query language for OLAP cubes.

Article Julio Esquerdo · Nov 21, 2025 1m read

Hi,

When we open a terminal in IRIS, we are entering the ObjectScript shell. Within this shell, we can execute IRIS commands, such as:

In other words, the ObjectScript command is executed in the current shell. But it's always good to remember that IRIS has other shells

  • SQL
  • Python
  • TSQL
  • MDX

One very interesting aspect is shortcuts. We can access these shells through their calls or via shortcuts, as shown in the table below:

0
4 103
Question Elisa Pischedda · Nov 11, 2025

Hi everyone, on HealthShare Unified Care Record 2024.1.0 Build, we're using the Analytics section to create a dashboard containing a time chart showing a cumulative curve of the number of documents indexed in the registry for each documentSource of each repository. We tried the following steps: we created a cube whose dimensions are the CreationDate, SourceValue, and repositoryUniqueID of the HS_Registry.Document table; in the Analytics section, we created a pivot table that lists the document creation date on each row, along with as many columns as each repository's documentSources. However,

4
0 86
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.

I created a new Web Application on IRIS as shown in the screenshot:

2
0 128
Question Dmitrij Vladimirov · Mar 25, 2025

Hi!
I have question about MDX functionality in context of IRIS Analytics.

How does IRIS MDX distinct selection works? Is there any restruqtion when analyzing strings? Like special symbols or length?
Here is an example
I have this data:
 6 rows and 2 of them unique
Then we create data cube based on this model and examine it with Analyzer
 
Detailed listing
 
6 rows an ONE unique string. Which is obviously not true. 
This happed only with string with symbols in it
My task is to get the right amount of unique strings

2
0 129
Question Dmitrij Vladimirov · Nov 22, 2024

Hence the question: is there a way to do that?
The goal is to get data (from half a thousand to 3-4 thousands lines) from DB, calculate standart deviation  then use it as logical condition in analyzer. 
For example IF std > custom_value = show_the_result ELSE null
There is a STDDEV(MDX) method  used in Analyzer but it is a measure and it can not be used as logical condition (correct me if i am wrong)

2
0 162
Question Virat Sharma · Jun 18, 2024

Hi Community,

I seek your assistance for below scenario.

Scenario-1: How to add filter or where clause while displaying data with listing fields ( I have not used Custom SQL listing to display this data).

For below table, I have created a Cube Student and I have created listing fields of the columns mentioned in the table. Also I have created the pivot and  I am able to create the same table as shown below.

0
0 168
Question Jacinto Busquets · Apr 6, 2023

How can I create a calculated member in Analyzer using MDX for the following logic?

WHEN 'F' THEN 'FEMALE'
WHEN 'Female' THEN 'FEMALE'
WHEN  'M' THEN 'MALE'
WHEN 'Male' THEN 'MALE'
WHEN 'U' THEN UNDIFFERENTIATED'
WHEN 'UN' THEN UNDIFFERENTIATED'
WHEN 'Undifferentiated' THEN UNDIFFERENTIATED'
ELSE 'OTHER'
END

2
0 284
Question Colin Overton · Jan 19, 2023

Hi All,

I'm looking to write a 3rd party front end for BI cubes and have been directed towards the REST API here: https://docs.intersystems.com/iris20222/csp/docbook/DocBook.UI.Page.cls…

I've had quick test using postman and can use those fine, the issue I have is that there are some areas of metadata not exposed by the api that are essential to write a front end tool. I can list the cubes and measures using the /INFO/ paths, but that seems to be the limit of what is available.

6
0 377
Question Ahmad Bukhtiar · Oct 6, 2022

we have this container code where we want to create more CalcMember properties

<sharedCalcMember FullName="HSAAPATIENT||DEMOGRAPHICS||CITIZENSHIP.NATIONAL.sharedCalcMember" Dimension="Demographics" Name="Citizenship.National" Expression="[Demographics].[H10].[Citizenship].&amp;[USA]" SolveOrder="0" CubeName="HSAAPATIENT" UpperCaseDimension="DEMOGRAPHICS" UpperCaseName="CITIZENSHIP.NATIONAL"></sharedCalcMember>

So we need some syntax help how to use INLIST, NOTINLIST and CASE expressions. Anyone can help what should be the syntax for Expression to handle below 3 situations. 

3
0 314
Article Evgeniy Potapov · Aug 16, 2022 7m read

One of the most important tasks of dashboards is, on the one hand, to help you perceive data in an aggregated form, and, on the other hand, not to lose the depth of immersion in the data if you need this. One of the tools that help us achieve this result is drill down. It enables us to display several hierarchical levels of data, from aggregated to detailed.Our task is to make an analytical dashboard that will be able to drill down by time periods:  from months to weeks and days in each chart. The stack that we will use for work consists of IRIS as a data storage system, Adaptive Analytics for

0
0 615
Article Lydia Huang · Mar 11, 2016 4m read

The DeepSee Shell Best Practices Series - Run MDX queries in the DeepSee Shell

Introduction to DeepSee Shell

There is a basic introduction video about DeepSee shell on InterSystems video portal.

(http://video.intersystems.com/video/Video.Pages.VideoLibrary.cls?video=3449629690001&playlistid=3329216973001)

Key points in this video:

•Invoke DS shell command, generate MDX in Analyzer, copy in shell;

•Cube command, Select statement and Create statement

•Clauses: With, solve_order, Format_string

Why do you need DeepSee shell?

2
0 738
Question Evgenii Ermolaev · Apr 29, 2021

Let's say I have a persistent class Sales.
I need to create a report that shows the amount of sales for each branch.
By simply using the class Sales for the source of the cube, I can show what I want with one little exception - the branches that did not have any sales are not shown.
Is there a way around that that does not involve creating a whole new table just for this cube or using a Data connector (they have horrible documentation and I am unable to figure out how to use them properly)?

3
0 237
Article Peter Steiwer · Feb 25, 2020 1m read

Preview Mode was added to InterSystems IRIS Business Intelligence to give designers a quick view of what their resulting Pivot Table will look like without needing to wait for the results to fully execute. This can be beneficial when designing pivot tables because if you are dragging and dropping elements to see how they look/work in your pivot table and seeing if they have the desired data. Since you are exploring and designing, you don't necessarily care about the results at the moment, but you would still like to see how your table looks with the changes you have made.

0
0 438
Article Peter Steiwer · Jan 6, 2020 4m read

What is %SQLRESTRICT

%SQLRESTRICT is a special %FILTER clause for use in MDX queries in InterSystems IRIS Business Intelligence. Since this function begins with %, it means this is a special MDX extension created by InterSystems. It allows users to insert an SQL statement that will be used to restrict the returned records in the MDX Result Set. This SQL statement must return a set of Source Record IDs to limit the results by. Please see the documentation for more information.

Why is this useful?

This is useful because there are often times users want to restrict the results in their MDX Result Set based on information that is not in their cubes. It may be the case that this information may not make sense to be in the cube. Other times this can be useful when there is a large set of values you want to restrict. As mentioned before, this is not a standard MDX function, it was created by InterSystems to handle cases were queries were not performing well or cases that were not easily solved by existing functions.

0
2 732
Announcement Tony Coffman · Dec 2, 2019

BridgeWorks is pleased to announce a VDM, v9.1.0.1.  This release includes the following updates:

Updates

  • Historical Linking is now based off connection profile name
  • Saved Formatting is now based off connection profile name
  • Tables and Fields column headers no longer hide based on connection type

Bug Fixes

  • Cross tab would not load data correctly in Finished Reports Viewer if it was in a report footer
  • Fixed an issue where refreshing logs would not work correctly after viewing a SQL statement
  • Views were not visible for available schemas on the connection wizard

New

0
1 298
Announcement Tony Coffman · Nov 20, 2019

Hello InterSystems Community,

We're excited to announce that we've completed our first Open Exchange submission for InterSystems platforms.

BridgeWorks VDM is an ad hoc reporting and graphical SQL query builder application that was designed for any user who needs access to their SQL projections in InterSystems Caché, InterSystems IRIS, InterSystems IRIS for Health databases as well as access to InterSystems DeepSee and InterSystems IRIS BI Cubes with minimal SQL scripting experience.  

VDM features:

0
1 559
Question Stella Ticker · May 15, 2019

I want to have a generic PercentOfAll measure that can be used for any dimension of the cube. This PercentOfAll should act like Count, but instead of showing the number of rows in a cell, it will show the percentage  (100*number of rows for that member/all rows) .It should not matter what dimension is being viewed. Ex

There are a total of 100 rows in the source class.

1
0 429
Article Evgeny Shvarov · Mar 20, 2018 3m read

Hi, Community!

I’m sure you are using Developer Community analytics built with InterSystems Analytics technology DeepSee:

You can find DC analytics n InterSystems->Analytics menu.

DC Analytics shows interactive dashboards on key figures of DC entities: Posts, Comments, and Members. 

Since the last week, this analytics project is available for everyone with source code and data on DC Github!

1
1 698
Question Evgeny Shvarov · Mar 31, 2018

Hi, DeepSee experts!

I need to call a listing programmatically other than the default. 

I can do that with %LISTING keyword. E.g. in Samples:

SAMPLES>d $SYSTEM.DeepSee.Shell()
DeepSee Command Line Shell
----------------------------------------------------
Enter q to quit, ? for help.
>>DRILLTHROUGH SELECT FROM [HOLEFOODS] %LISTING [Listing]

   #  ID   Date City Chan Prod Unit Reve Disc Comm
   1: 475  01/1 Madr Reta Life 1    0.92 20%
   2: 843  01/1 Manc Onli Frui 1    4.95 0%
   3: 808  01/1 Osak Onli Bund 4    79.8 0%
9
0 559
Article Evgeny Shvarov · Feb 20, 2018 3m read

Hi, Community! 

This is the 3rd part of DeepSee Web story - Angular base UI for DeepSee Dashboards, see the beginning here.

By design, DSW provides an implementation for every widget in DeepSee library. But there are some extra features in DSW which make solutions built with DSW dashboards more functional.  This article describes it.

0
1 1083
Question Evgeny Shvarov · Apr 5, 2017

Hi, Community!

How can I manage to show in MDX query months where every month shows the value of the last month?

Say, in HoleFoods the query:

SELECT NON EMPTY [Measures].[Amount Sold] ON 0,NON EMPTY [DateOfSale].[Actual].[MonthSold].Members ON 1 FROM [HOLEFOODS]

will show me the sum of revenue per month.

This query:

SELECT NON EMPTY [Measures].[Amount Sold].MAX ON 0,NON EMPTY [DateOfSale].[Actual].[MonthSold].Members ON 1 FROM [HOLEFOODS]

will show the Max revenue in a day for the given month.

But what MDX will show the months with the revenue for the last day in a month?

11
0 2486