...
Running
...
Reports
...
All
...
reports
...
run
...
through
...
the
...
reporting
...
module
...
support
...
the
...
following
...
inputs:
...
Parameter
...
values
...
Values
...
for
...
each
...
of
...
the
...
parameters
...
that
...
the
...
Report
...
Definition
...
requires.
...
These
...
values
...
may
...
be
...
either
...
fixed,
...
or
...
may
...
be
...
specified
...
as
...
compatible
...
runtime
...
expressions.
...
Runtime
...
expressions
...
are
...
currently
...
limited
...
to
...
the
...
following:
...
Name | Description |
---|---|
${now} |
...
The |
...
exact |
...
date/time |
...
that |
...
the |
...
report |
...
actually |
...
runs |
...
$ |
...
{start_of_today} |
...
The |
...
same |
...
as |
...
$ |
...
{now}, |
...
except |
...
with |
...
the |
...
time |
...
set |
...
to |
...
midnight |
...
at |
...
the |
...
start |
...
of |
...
the |
...
day |
...
$ |
...
{end_of_today} |
...
The |
...
same |
...
as |
...
$ |
...
{now}, |
...
except |
...
with |
...
the |
...
time |
...
set |
...
to |
...
the |
...
last |
...
millisecond |
...
of |
...
the |
...
day |
...
$ |
...
{start_of_last_month} |
...
Relative |
...
to |
...
$ |
...
{now}, |
...
this |
...
is |
...
midnight |
...
on |
...
the |
...
first |
...
day |
...
of |
...
the |
...
preceeding |
...
month |
...
$ |
...
{end_of_last_month} |
...
Relative |
...
to |
...
$ |
...
{now}, |
...
this |
...
is |
...
the |
...
last |
...
millisecond |
...
of |
...
the |
...
last |
...
day |
...
of |
...
the |
...
preceeding |
...
month |
...
$ |
...
{generatedBy} |
...
The |
...
user |
...
who |
...
requested |
...
that |
...
the |
...
report |
...
be |
...
run |
...
$ |
...
{generationDate} |
...
The |
...
date |
...
that |
...
the |
...
report |
...
was |
...
generated, |
...
usually |
...
the |
...
same |
...
as |
...
$ |
...
{now} |
...
Any
...
of
...
the
...
above
...
expressions
...
that
...
return
...
Dates
...
can
...
also
...
contain
...
date
...
"arithmetic".
...
For
...
example,
...
let's
...
say
...
you
...
have
...
a
...
report
...
that
...
takes
...
in
...
2
...
parameters
...
named
...
"startDate"
...
and
...
"endDate".
...
If
...
you
...
want
...
to
...
run
...
a
...
Report
...
that
...
covers
...
the
...
previous
...
week,
...
you
...
could
...
specify:
...
startDate
...
=
...
$
...
{start_of_today-7d}
...
and
...
endDate
...
=
...
$
...
{end_of_today-1d}.
...
The
...
arithmetic
...
supports
...
expressions
...
in
...
the
...
format
...
of
...
either
...
"+"
...
or
...
"-",
...
followed
...
by
...
a
...
number,
...
followed
...
by
...
the
...
units
...
(either
...
d
...
(days),
...
w
...
(weeks),
...
m
...
(months),
...
y
...
(years),
...
h
...
(hours).
...
You
...
can
...
also
...
have
...
multiple
...
expressions
...
together.
...
So,
...
you
...
could
...
have
...
$
...
{now-5d+2w-5m+6h}
...
and
...
this
...
would
...
evaluate
...
to
...
a
...
particular
...
date.
...
Rendering
...
mode
...
Here
...
you
...
would
...
choose
...
the
...
way
...
that
...
you
...
want
...
to
...
render
...
the
...
Report.
...
Base
...
Cohort
...
Here
...
you
...
can
...
choose
...
the
...
base
...
set
...
of
...
patients
...
that
...
you
...
wish
...
to
...
run
...
the
...
report
...
on
...
When
...
the
...
report
...
should
...
be
...
run
...
Here,
...
you
...
can
...
either
...
leave
...
the
...
default,
...
which
...
will
...
request
...
the
...
report
...
to
...
be
...
run
...
immediately,
...
or
...
you
...
can
...
set
...
the
...
schedule
...
to
...
run
...
this
...
report
...
at
...
some
...
future
...
point
...
in
...
time,
...
or
...
on
...
a
...
recurring
...
basis.
...
Scheduling the report
All reports in the reporting framework UI are run asynchronously. Each request to run a report, following the above steps, results in a Report Request being saved to the database. A scheduled process will then pick up this report request and evaluate the report, when appropriate. Under normal operations, this should happen close to immediately. However, there may be times when it a report is Queued for several minutes, particularly if many reports are requested at the same time. The setting "reporting.maxReportsToRun",
...
which
...
has
...
a
...
default
...
value
...
of
...
1,
...
is
...
one
...
way
...
to
...
influence
...
this
...
behavior.
...
Setting
...
this
...
to
...
a
...
higher
...
value
...
may
...
shorten
...
the
...
amount
...
of
...
time
...
a
...
report
...
is
...
queued
...
before
...
it
...
is
...
processed.
...
However,
...
increasing
...
this
...
number
...
too
...
high
...
should
...
be
...
done
...
with
...
caution,
...
as
...
several
...
large
...
reports
...
running
...
simultaneously
...
could
...
hurt
...
server
...
performance.