There are two dimensions to DSS. The first refers to the process where the data is pooled into ElasticSearch and the second relates to the way the data is fetched, aggregated, computed, transformed and sent across.
The DSS processes are easily configurable and this enables users to configure new analytics insights using a wide range of data sets.
This document defines the configuration steps for fetching analytical insights on the DSS for the Birth & Death module.
Key Concepts
Analytics: Micro Service responsible for building, fetching, aggregating and computing the data on ElasticSearch to a consumable data response. This is used for visualizations and graphical representations.
Analytics Configurations: Analytics contains multiple configurations. Add the changes related to Birth& Death in the dashboard analytics configuration file.
File location : configs/egov-dss-dashboards/dashboard-analytics at qa · egovernments/configs
List of configurations that need to be changed to run FSM successfully.
Chart API Configuration
Master Dashboard Configuration
Role Dashboard Mappings Configuration
Chart API Configuration: Each visualization has its own properties. The visualization is derived from different data sources or a combination of data sources.
The Chart API Configuration Document is used to configure each visualization and its properties. The Visualization Code is the key and its properties are easily configurable.
Sample ChartApiConfiguration.json data for Birth and Death.
Master Dashboard Configuration: Master Dashboard Configuration is the main configuration that defines the key insights and visualizations to be painted on the screen. It includes all the visualizations, the groups, the charts embedded within them and even the dimensions in terms of height and width.
Role Dashboard Mappings Configuration: Master Dashboard configuration explained earlier contains the list of available dashboards. Map the roles to specific dashboard views based on the user role requirements. The configuration allows each role to be mapped to authorized dashboard views.
{
"_comment": "Holds mapping for each role with and its associated dashboards",
"roles" : [
{
"_comment":"This role is super role which can access all the available dashboards: [other/new roles are suppose to be added]",
"roleId": 6,
"roleName" : "Admin",
"isSuper" : "",
"orgId": "",
"dashboards": [
{
"name": "Birth Death",
"id": "birth-death"
}
]
}
]
}
Birth and Death - State DSS contains multiple graphs which represent the data of Birth and Death. Each graph has its own configuration which will describe the chart and its type.
State DSS contains the following charts in the Birth & Death module:
Birth and Death Page
Birth:
Overview
Certificates Download Trend
Downloads by Channel
Births by Gender
Certificate Downloads by Boundary
Overview: The overview graph contains multiple data information as below in the selected time period.
Total Certificate Downloads: This represents the total number of birth certificates downloaded.
Total Collection: Total revenue collected for downloading birth certificates for the applied date filter.
Certificates Download Trend: This is a line graph that shows the total birth certificates downloaded for a given month, the and total Birth Certificates downloaded for the applied date filter.
line - this graph/chart is data representation on date histograms or date groupings.
Downloads by Channel: This is a pie chart where total birth certificate downloads are bifurcated by channel (Mobile App, Web etc.)
Births by Gender: A pie chart illustrating the total births registered are bifurcated by gender
Certificate Downloads by Boundary: This tabular chart representation graph shows multiple Birth information like Total Downloads (Mobile App), Total Downloads (Web), Total Downloads, and Delayed Registrations. And this table shows the data at the DDR level and also has the drill-down chart for each state to ULB and from ULB to ward level data for the same.
xtable type adds multiple computed fields with the aggregated dynamic fields.
To add multiple computed columns -
provide the actionName in the following format - actionNameComputedField<T> interface
provide the fields [] names as it exists in the query key
provide the newField as a name to reflect the computed details
Clicking on any DDR name offers a drill-down chart that represents the specific state data.
Clicking on the ULB navigates to show the data at the ward level.
Death:
Overview
Certificates Download Trend
Downloads by Channel
Deaths by Age Category
Certificate Downloads by Boundary
Overview: The overview graph contains multiple data information as below in the selected time period.
Total Certificate Downloads: This represents the total number of death certificates downloaded.
Total Collection: Total revenue collected for downloading death certificates for the applied date filter.
Certificates Download Trend: A line graph that shows the total death certificates downloaded for a given month, and the total death Certificates downloaded for the applied date filter.
line - this graph/chart is data representation on date histograms or date groupings.
Downloads by Channel: This is a pie chart where total death certificate downloads are bifurcated by channel (Mobile App, Web etc.)
Deaths by Gender: This will be a split bar graph where total deaths registered will be bifurcated by age category (< 2 years, 2-15, 15-29, 30-44, 45-59, 60-74, >= 75) and each bar will show gender wise split
Clicking on any Category name drills down to charts that provide specific age group data.
Certificate Downloads by Boundary: This tabular chart representation graph shows multiple Birth information like Total Downloads (Mobile App), Total Downloads (Web), Total Downloads, and Delayed Registrations. And this table shows the data at the DDR level and also has the drill-down chart for each state to ULB and from ULB to ward level data for the same.
xtable type allows to add multiple computed fields with the aggregated fields dynamically added.
To add multiple computed columns, computedFields [] where actionName (IComputedField<T> interface), fields [] names as in exist in query key, newField as name to appear for computation must be defined.
Clicking on any DDR name provides the drill-down charts that represent state-specific data.
Clicking on the ULB navigates to wards under that specific ULB and each ward shows the specific data regarding that ward.
Newly Introduced Property
isRoundOff: This property is introduced to round off the decimal values. Ex: if the value is 25.43 by using the isRoundOff property in the configuration we will get it as 25. if the value is 22.56 round of value will be 23.
This can be used for insights configuration as well for overview graphs.
Common Properties Available
Key (eg: fsmTotalrequest): This is the Visualization Code. This key will be referred to in further visualization configurations.
This is the key which will be used by the client application to indicate which visualization is needed for display.
chartName: The name of the Chart which has to be used as a label on the Dashboard. The name of the Chart will be a detailed name.
In this configuration, the Name of the Chart will be the code of Localization which will be used by the Client Side.
queries: Some visualizations are derived from a specific data source. While some others are derived from different data sources and are combined together to get a meaningful representation.
The queries of aggregation which are to be used to fetch the right data in the right aggregated format are configured here.
queries.module: The module/domain level, on which the query should be applied on. Birth and Death are birth-death.
queries.indexName: The name of the index upon which the query has to be executed is configured here.
queries.aggrQuery: The aggregation query in itself is added here. Based on the Module and the Index name specified, this query is attached to the filter part of the complete search request and then executed against that index
queries.requestQueryMap: Client Request would carry certain fields which are to be filtered. The parameters specified in the Client Request are different from the parameters in each of these indexed documents.
In order to map the parameters of the request to the parameters of the ElasticSearch Document, this mapping is maintained.
queries.dateRefField: Each of these modules has separate indexes. And all of them have their own date fields.
When there is a date filter applied against these visualizations, each of them has to apply it against their own date reference fields.
In order to maintain what is the date field in which index, we have this configured in this configuration parameter.
chartType: As there are different types of visualizations, this field defines what is the type of chart/visualization that this data should be used to represent.
Available Chart Types
metric - this represents the aggregated amount/value for records filtered by the aggregate es query
pie - this represents the aggregated data on grouping. This is can be used to represent any line graph, bar graph, pie chart or doughnuts.
line - this graph/chart is data representation on date histograms or date groupings
perform - this chart represents groping data performance-wise.
table - represents a form of plots and values with headers as grouped on and a list of its key, values pairs.
xtable - represents an advanced feature of the table, it has the addition capabilities for adding dynamic header values.
valueType: In any case of data, the values which are sent to the plot, might be a percentage, sometimes an amount and sometimes it is just a count.
In order to represent them and differentiate the numbers from the amount from the percentage, this field is used to indicate the type of value that this Visualization will be sending.
action: Some of the visualizations are not just aggregations of data sources. There might be some cases where we have to do a post-aggregation computation.
For Example, in the case of the Top 3 Performing ULBs, the Target and Total Collection are obtained and then the percentage is calculated. In these kinds of cases, the action that has to be performed on the data obtained is defined in this parameter.
documentType: The type of document upon which the query has to be executed is defined here.
drillChart: If there is a drill down on the visualization, then the code of the Drill Down Visualization is added here. This will be used by Client Service to manage drill-downs.
aggregationPaths: All the queries will be having Aggregation names in them. In order to fetch the value out of each Aggregation Responses, the name of the aggregation in the query will be an easy bet. These aggregation paths will have the names of Aggregation in them.
insights: It is to show the data with the comparison of last year with arrow symbols, it will show the data in how much % is increased or decreased.
_comment: In order to display information on the “i” symbol of each visualization, Visualization Information is maintained in this field.
State Birth & Death- DSS: Index Properties
The index that contains data for State-Birth and Death are - birth-cert-v1, death-cert-v1
Death registration file link: frontend/mono-ui/web/rainmaker/dev-packages/egov-bnd-dev/src/ui-config/screens/specs/death-employee/newRegistration.js
Filename: newRegistrationFooter.js
It contains the logic related to the validation of the form, submission, and API call details.
APIsused -
Birth - Create and Update API
birth-death-services/common/saveBirthImport
birth-death-services/common/updateBirthImport
Death - Create and Update API
birth-death-services/common/saveDeathImport
birth-death-services/common/updateDeathImport
Search Certificate
The search certificate is the same for both employees and citizens.
The employee has a view option. Whereas citizens can download it for free for the first time. Second-time downloads requires the citizens to Pay & Download.
BIRTH_APPLICATION_CREATOR & DEATH_APPLICATION_CREATOR - the Birth Registration button is enabled on the search screen for this role.
Clicking on the Pay and download button - Generates demand for making a payment and after completing the payment it downloads the certificate automatically.
Citizens can download certificates and receipts from the My Applications screen.
How It Works Section
The How It Works section shows the configured pdf to help citizens download certificates. Similarly in other environments, the same file is added to the Asset folder.
This egov application helps and provides a digital interface, allowing employees/citizens to download Birth & Death certificates. Employees can register both birth and death applications, update and search. The citizen has the access to download the certificates. There are two processes while downloading the certificates - citizens can download the certificate free for the first time and it will be charged for the next downloads. The citizen has to pay the amount and download the certificates.
This page provides the configuration details for setting up the birth and death service.
Pre-Requisites
Knowledge of Java/J2EE(preferably Java 8 version)
Knowledge of Spring Boot and spring-boot microservices.
Knowledge of Git or any version control system.
Knowledge of RESTful Web services.
Knowledge of the Lombok library is helpful.
knowledge of eGov-mdms service, eGov-persister, eGov-idgen, eGov-sms, eGov-email,eGov-user, eGov-localization, eGov-workflow-service will be helpful.
Functionalities
The BnD module facilitates the citizen to search and download the certificate.
The BnD module enables the counter employee to enter the details of Birth and Death using
the Registration form.
The BnD module provides a facility for the counter employee to search the details of
registration and view the details of the registration.
The BnD module provides a facility for anyone who has downloaded the certificate, to check
the correctness of the certificate by scanning the QR Code.
Setup Details
The Application config file is available within the municipal services group of applications available in the eGov-services git repository with the folder name birth-death-services. The spring boot application needs the Lombok* extension added to your IDE to load it. Once the application is up and running API requests can be posted to the URL and ids can be generated.
in the case of IntelliJ, the plugin can be installed directly, for eclipse the Lombok jar location has to be added in the eclipse.ini file in this format javaagent:lombok.jar
{
"code": "BND_CEMP",
"name": "Birth and Death User",
"description": "Birth and Death User"
},
{
"code": "DASHBOARD_REPORT_VIEWER",
"name": "Birth and Death Dashboard User",
"description": "Birth and Death Dashboard User"
},
{
"code": "BIRTH_APPLICATION_CREATOR",
"name": "Birth Application Creator",
"description": "Birth User that can only create new applications"
},
{
"code": "DEATH_APPLICATION_CREATOR",
"name": "Death Application Creator",
"description": "Death User that can only create new applications"
},
{
"code": "BIRTH_APPLICATION_VIEWER",
"name": "Birth Application Viewer",
"description": "Birth User that can only search and view applications"
},
{
"code": "DEATH_APPLICATION_VIEWER",
"name": "Death Application Viewer",
"description": "Death User that can only search and view applications"
},
{
"code": "BIRTH_REPORT_VIEWER",
"name": "Birth Report Viewer",
"description": "Birth and Death User that can view tabular reports"
},
{
"code": "DEATH_REPORT_VIEWER",
"name": "Death Report Viewer",
"description": "Death User that can view tabular reports"
},
{
"code": "BIRTH_APPLICATION_EDITOR",
"name": "Birth Application Editor",
"description": "Birth User that can edit existing applications"
},
{
"code": "DEATH_APPLICATION_EDITOR",
"name": "DEATH Application Editor",
"description": "Death User that can edit existing applications"
}
There are 5 B&D Reports that exist viz. Birth Count Report, Birth Records Count Report By District, Birth and Death Certificate Payment Records, Death Count Report, Death Records Count Report by District.
Configuration Details
To configure the B&D Report, follow the steps below: