Context-Specific Dashboards
This page is outdated and no longer receives updates!
Starting with version 1.15, the Core Apps module provides support for context-specific dashboards.
What they are
The reference application provides a clinician-facing dashboard that is highly configurable–it has two columns, and an implementer, via json, can configure a variety of different widgets to appear within these two columns.  However, previously only a single dashboard was available.  Context-specific dashboards allow implementer to define multiple dashboard configuration based on context.  The only concrete implementation at the moment are program-specific dashboards, but the functionality is meant to support a variety of different configurations in the future.
How they work
The standard clinical dashboard is configured via several extension points, including:
patientDashboard.firstColumnFragments
patientDashboard.secondColumnFragments
patientDashboard.overallActions
patientDashboard.visitActions
patientDashboard.otherActions
patientDashboard.includeFragments
This functionality has been extended so that the clinician-facing dashboard page controller takes in an optional parameter dashboard. If this parameter is present, the controller will look for a different set of extension points, with the "patientDashboard" component of the extension point name replaced with the parameter passed in to "dashboard". Â For example, if the page request included "dashboard=myFirstDashboard" then the controller will load any extensions it finds for the following extension points:
myFirstDashboard.firstColumnFragmentsÂ
myFirstDashboard.secondColumnFragments
myFirstDashboard.overallActions
myFirstDashboard.visitActions
myFirstDashboard.otherActions
myFirstDashboard.includeFragment
Additionally, if message property is defined in the format myFirstDashboard.custom.title, this title will be rendered at the top of the dashboard (below the patient header but above the two dashboard columns)
Program-Specific Dashboards
By using the context-specific dashboard in conjunction with the Programs List widget (see Patient Summary Widget Documentation) implementers are able to create dashboards customs to certain programs.
The Programs List widget can be configured to provide links to to a Program-Specific Dashboard by setting an "enableProgramDashboards" configuration to true. Â When this is set to true, the widget will create hyperlinks for each of the configured programs. Â This will link to the patient dashboard, but will pass in the uuid of the program as the dashboard parameter.
For example if the implementer has created an HIV program with the uuid "some-uuid-aaaa-bbbb" and configured that program to be listed as part of the Programs List, a custom dashboard could be defined for that program by adding extensions via the following extension points:
some-uuid-aaaa-bbbb.firstColumnFragmentsÂ
some-uuid-aaaa-bbbb.secondColumnFragments
some-uuid-aaaa-bbbb.overallActions
some-uuid-aaaa-bbbb.visitActions
some-uuid-aaaa-bbbb.otherActions
some-uuid-aaaa-bbbb.includeFragment
Note that the Program Status and Program History widgets (Patient Summary Widget Documentation)Â are specifically designed to appear on a Program-Specific dashboard to facilitate enrolling a patient in a specific program and managing patient program enrollment.
Â