To understand something, visualize it!
Data visualization is important because it allows trends and patterns to be more easily seen. It plays a vital role in the decision-makers in exploring the data effectively and quickly understanding it.
This is the 3rd week of my GSoC Project. In the previous week, I was able to post data to the DHIS2 instance. But I wasn’t able to visualize them. I went through the DHIS2’s data visualizer app and did so many experiments, but it doesn’t work as I expected. Then I asked some questions regarding data visualizations in the DHIS2 community and then identified the way DHIS2 uses data for analytics.
The reason I was unable to display is, it hasn’t generated the analytics tables; which stores data to use for analytics. After generating them, YES!! The data is there on the visualizer!!
Then I tried to use create a data set with disaggregated Data elements. That’s where the categories and category options come to the story. We can use DHIS2’s categories to disaggregate data elements into individual atomic components.
Let’s say we need to store the “Number of cases of confirmed Coronavirus”. In order to make it more detailed, we can break it into smaller component parts such as Gender, Age, or Disease Status.
For instance, we can divide it into three age groups Under 20, 20–60, Over 60.
- Number of cases of confirmed Coronavirus (Under 20)
- Number of cases of confirmed Coronavirus (20–60)
- Number of cases of confirmed Coronavirus (Over 60)
To go further we can add the gender too.
- Number of cases of confirmed Coronavirus (Male, Under 20)
- Number of cases of confirmed Coronavirus (Female, Under 20)
- Number of cases of confirmed Coronavirus (Male, 20–60)
- Number of cases of confirmed Coronavirus (Female, 20–60)
- Number of cases of confirmed Coronavirus (Male, Over 60)
- Number of cases of confirmed Coronavirus (Female, Over 60)
So, “Number of cases of confirmed Coronavirus” is a Data Element, gender is a Category and “male” “female” would be the Category Options.
I tried to map the above structure with the OpenMRS’s DHIS2 Reporting Module, but we can’t do that. The module still doesn’t support that. We can only push data without these kinds of disaggregations. If you need to push only the Corona Patient count for a given period; then you can use this module. If you need to push complex disaggregated data, then you have to wait a few weeks; I’m working on that for you! ;)
So far I’ve designed the following Database structure to store the mapping between Data Sets, Data Elements, Category Combinations, and Category options.
This is not the finalized version, need to think more and get the inputs from the community to finalize this.
Let’s get connected
Follow/Connect with me anytime.
Github: https://github.com/jayasanka-sack
Linkedin: https://www.linkedin.com/in/jayasanka-sack
Facebook: https://www.facebook.com/jayasanka.sack