Using KPIs

23 views
Skip to first unread message

Reinaldo_Junior

unread,
Dec 7, 2009, 7:29:06 AM12/7/09
to InterSystems: DeepSee Community
Hi all!

I want to create a dashboard where I can see the % of patients growth
in a station. Each station has a number of patients, and I need to see
the % of new patients in a given date. Do I need to use a KPI to do
this? Where can I store this value (%)? In a class property? I need to
do this and I don't know where to start :(

Lexi Hayden

unread,
Dec 7, 2009, 12:46:52 PM12/7/09
to InterSystems: DeepSee Community
Easy to do.

If you need to perform a date-to-date comparison, you must create a
computation.

So your pivot table is filtered to a station, for example. The rows
are dates. One column is the number of patients added to that station
on that date (and you can hide this column if you like). The next
column is the % change from one date to the next. The formula is
something like this:

100 * (cell to my left - cell to my left in previous row)/(cell to my
left in previous row)

There are a couple examples like this in the Analyzer guide. I *just*
added them, so please be sure to download the latest PDF.
***************************
You can't store this value (computations are not stored). Nor can you
use it as a KPI. Computations make sense only within the pivot table
that defines them. If you need this metric to have an independent
existence apart from a pivot table -- that's a lot trickier.

When DeepSee builds its fact table, it considers each row of your base
class in total isolation from other rows of the base class. It could,
however, use that row in combination with precomputed summary data
that you had stored in some other table. If you need this, write again
and maybe we can cook something up.

Reinaldo_Junior

unread,
Dec 8, 2009, 5:33:06 AM12/8/09
to InterSystems: DeepSee Community
Ok, and what if I want to have a limit % for each station. For
example, the limit of station 1 is 15%, I'll need to create another
property, won't I? I'll need to store this value somewhere.
> > do this and I don't know where to start :(- Ocultar texto das mensagens anteriores -
>
> - Mostrar texto das mensagens anteriores -
Message has been deleted
Message has been deleted

Lexi Hayden

unread,
Dec 8, 2009, 10:30:36 AM12/8/09
to InterSystems: DeepSee Community
You can do this, and you'll have to edit your classes to add a
property. You would also need to make sure the data gets into place.
E.g., if the limit% for station ABC is 10, then where does that data
come from?

Here you are talking about a "member property"--data that has a
specific value for each member of a dimension/level but that is not
typically meaningful when aggregated. OLAP languages like MDX support
this concept directly: when you define a dimension/level, you can
include a property that is based on some source data. Then the
language provides functions for accessing that property and displaying
it in pivot tables.

In our case, we don't support properties in a specific manner like
that. Instead, what you do is to define a measure called Limit% and it
is based on your property. This approach works, but there are two
drawbacks:

1) This measure is meaningful ONLY when used at the station level. So
take care only to use it in that context.
2) You will need another subject area because this measure is not one-
to-one with the patients.

I assume that your base class is patients. Any measure value must have
a one-to-one correspondence with the base class. This measure (Limit
%) has a one-to-one correspondence with stations. This tells us that
you must define another subject area--one that uses stations as the
base class.

Your patients subject area and stations subject areas will have at
least one dimension/level in common: the station. This enables you to
use the subject areas with each other. The basic guidelines for this
are described in the DeepSee developer tutorial and/or the Architect
guide. The tutorial also has a basic demonstration of the technique.

************
> > - Mostrar texto das mensagens anteriores -- Hide quoted text -
>
> - Show quoted text -

Reinaldo_Junior

unread,
Dec 8, 2009, 12:02:15 PM12/8/09
to InterSystems: DeepSee Community
And to determine this % dinamically?

I have created a dashboard to monitor our business performance
(patient attendance, for example).
This monitoring is done by each station (hospital).
I know I can determine the number of my KPIs during design of the
dashboard. (for example, growth of 10 %, stays green, from -9 to +9
stays blue and below 10% goes to red).
How can I determine these parameters in a variable way? Should I
created a CLASS (file) of KPIs and design a ZEN Page for the user to
determine their markers? Or is there a way of doing this (and filling
on a class using DeepSee itself?)
What is the best way to implement this? (In other words, I want to get
from a file the parameter (KPI) of each different hospital/clinic for
a specific measure of performance.
> > - Show quoted text -- Ocultar texto das mensagens anteriores -

Lexi Hayden

unread,
Dec 8, 2009, 12:42:56 PM12/8/09
to InterSystems: DeepSee Community
This is a complex question. Before I hazard an answer, there is a
detail I want to clarify.

First, let's distinguish two things:
1) A KPI (which is determined dynamically from the data -- that data
may or may not change, but it is the source of the value).

2) A static value to which that KPI is compared. You use these static
values as range boundaries in KPI display rules.

My question: Are these static values the same for all stations or are
they station-dependent?

Reinaldo_Junior

unread,
Dec 9, 2009, 5:16:46 AM12/9/09
to InterSystems: DeepSee Community
Yes, we are talking about the static value to which that KPI is
compared. These static values are station-dependent.

For example:
I have the following static values

Station A
Poor: < 10
Average: 10 to 20
Good: > 20

Station B
Poor: < 50
Average: 50 a 100
Good: > 100

And so forth.

As we compare the values of the Data of each station we get the
“dashboard” results.
Let´s say that Station A for a given period, is 34, therefore it is
GOOD, and Station B for a GIVEN PERIOD is 45, therefore its
performance is POOR.
We may have n-stations.
> > > - Mostrar texto das mensagens anteriores -- Ocultar texto das mensagens anteriores -

Lexi Hayden

unread,
Dec 9, 2009, 12:11:17 PM12/9/09
to InterSystems: DeepSee Community
OK, thanks for making sure I didn't go off in the wrong direction--
well, because you want to display these comparison values on a
dashboard, we're going to have to use a measure or a KPI, even though
these value really are member properties rather than a "real" measures
or KPIs.

There are several parts to this:
1) Add two properties to your station class to contain the data. (Or
put it in another class that is one-to-one with your station class.)
You have two cutoff points, so maybe call these properties
LowestAveragePerformance and HighestAveragePerformance.

You said before that users need to edit these values. You could create
a Zen page for that or any other user interface. DeepSee won't care
where the data comes from.

2) In the Architect, BI-enable the station class and create two
measures, one based on each of these properties. As I commented
before, these measures make sense ONLY when used at the station level;
they are meaningless when aggregated across stations, so we won't use
them that way.

Now that we have the raw ingredients...
I don't know exactly how you want to use the data in a dashboard, but
here's a possible scenario:

3) In the Analyzer, create a string-valued measure or a computation
(as needed) called Performance Rating. The definition uses this logic:
$SELECT
(performance<LowestAveragePerformance:"Poor",performance<HighestAveragePerformance:"Average",:"Good")
or something like that.

Or create a numeric measure or computation that equals either 1, 2, or
3. Display this in your pivot table and attach an alert to it.

If it's a measure, you can create a KPI based on it and attach display
rules to that KPI. Use this KPI only when displaying one station at a
time (e.g., one station on the dashboard or one station per row in a
pivot table).

Reinaldo_Junior

unread,
Dec 10, 2009, 6:01:57 AM12/10/09
to InterSystems: DeepSee Community
I still have a doubt.

Where can I execute this statement?

$SELECT
(performance<LowestAveragePerformance:"Poor",performance<HighestAveragePerformance:"Average",:"Good")

And this "performance", is it a metric or a dimension?
> (performance<LowestAveragePerformance:"Poor",performance<HighestAveragePerf­ormance:"Average",:"Good")

Lexi Hayden

unread,
Dec 10, 2009, 10:35:54 AM12/10/09
to InterSystems: DeepSee Community
First, "performance" is your measure of performance.

Second this expression ($SELECT
(performance<LowestAveragePerformance:"Poor",performance<HighestAveragePerformance:"Average",:"Good") )
is the definition of another measure.

Reinaldo_Junior

unread,
Dec 11, 2009, 11:56:49 AM12/11/09
to InterSystems: DeepSee Community
I can't seem to find my measures in the Metrics Editor. Should I type
the formula even if my measures are not showing up?

On 10 dez, 13:35, Lexi Hayden <l...@intersystems.com> wrote:
> First, "performance" is your measure of performance.
>
> Second this expression ($SELECT
> (performance<LowestAveragePerformance:"Poor",performance<HighestAveragePerf­ormance:"Average",:"Good") )
> is the definition of another measure.
>
> On Dec 10, 6:01 am, Reinaldo_Junior <reina...@shift.com.br> wrote:
>
>
>
> > I still have a doubt.
>
> > Where can I execute this statement?
>
> > $SELECT
> ...
>
> mais »- Ocultar texto das mensagens anteriores -

Lexi Hayden

unread,
Dec 11, 2009, 12:04:16 PM12/11/09
to InterSystems: DeepSee Community
No, if your measures don't up here, you can't use them.

It's important to understand that there are two kinds of measures:
ones defined in the Architect (I call these base measures) and ones
defined in the Analyzer (calculated measures).

A calculated measure cannot be used in another calculated measure.
This, I suspect, is the issue.

You might have to reorganize where you are computing what. The book
Overview of DeepSee has a table that compares measures, computations,
and KPIs, and you might find this useful here.
> ...
>
> read more »
Reply all
Reply to author
Forward
0 new messages