Designing the EER for the DHIS2 Reporting Module (MVP)

Tags: #<Tag:0x00007f8283cb0a68> #<Tag:0x00007f8283cb09a0> #<Tag:0x00007f8283cb07c0>

Hi all, As per the discussion happened in 2020-09-02: COVID Squad call: Updates on base DHIS2 Reporting module requirements, these are the proposed EERs for the module.

EER 1

Assumptions:

  1. The module allows importing a Dataset along with relevant Data Elements from DHIS2
  2. The module stores the name, code and the period type of a Dataset
  3. A Dataset can be mapped with a Period Indicator Report Definition of OMRS
  4. A Dataset has multiple DHIS2 Data Elements
  5. A Data Element has multiple Datasets
  6. Data Value Templates are generated from the module when importing a Dataset according to the possible combinations of Categories and Category Options (Similar to Category Option Combos in DHIS2, but not the same)
  7. A Data Value Template can be mapped with one report indicator from the mapped Period Indicator Report to the Dataset
  8. A Data Value Template has one Dataset
  9. A Dataset has multiple Data Value Templates
  10. A Data Value Template has one Data Element
  11. A Data Element has multiple Data Value Templates
  12. A Data Value Template has one possible combination of Category - Category Option code pairs stored as a comma-separated string (disaggregations). ex: GENDER=FMLE,HIV_AGE=AGE0-14

EER 2

Assumptions:

Same assumptions in EER 1 except assumption number 11 and the following,

  1. The module allows importing a Dataset along with relevant Data Elements, Categories, and Category Options from DHIS2
  2. A Category has multiple Category Options
  3. A Category Option has multiple Categories
  4. A Disaggregation has one Category
  5. A Disaggregation has one Category Option
  6. A Dissaggreation has multiple Data Value Templates
  7. A Data Value template has multiple Disaggregations

Let me know about your idea to continue the development of the DHIS2 Reporting module.

By the way, I saw most of the MySQL tables in the OMRS DB uses VARCHAR(38) to store UUIDs. Isn’t it should be VARCHAR(36)?

3 Likes