Target server: https://staging.ephi.gov.et/

Metadata issues

Checks which could not be run

Users

  • Total users: 3437
  • Total disabled users: 194
  • Total users logged in within 7 days: 66
  • Total users logged in within 30 days: 230
  • Total users logged in within 90 days: 521
  • Total users logged in within a year: 1065
  • Users who have never logged in: 998
  • Percentage of users who are disabled: 6 %
  • Number of users who have superuser: 63
  • Percentage of users who have superuser: 2 %

Distribution of last user logins

Distribution of users within the hierarchy

Guidance section

This section of the report contains guidance information which provide more context and expiation of each of the checks.

Categories

Categories with no category options

Level: Warning

Issue count: 0 (0%)

Introduction

Categories should always have at least one category option.

Recommendation

Any categories without category options should either be removed from the system if they are not in use. Otherwise, appropriate category options should be added to the category.

Details

Only one “default” category should exist

Level: Severe

Issue count: NA (NA%)

Introduction

There should only exist one category with name and code “default”.

Recommendation

Only the category with UID “GLevLNI9wkl” should be named “default” and have code “default”. Either rename the conflicting category or move all references to category “GLevLNI9wkl” and then remove the unused conflicting category.

Details

Only one “default” category combo should exist

Level: Severe

Issue count: NA (NA%)

Introduction

There should only exist one category combo with name and code “default”.

Recommendation

Only the category combo with UID “bjDvmb4bfuf” should be named “default” and have code “default”. Either rename the conflicting category combo or move all references to category combo “bjDvmb4bfuf” and then remove the unused conflicting category combo.

Details

Category options with no categories.

Level: Warning

Issue count: 5 (5.5555555555555556%)

Introduction

All category options should belong to at least one category.

Recommendation

Category options which are not part of any category should be removed or alternatively should be added to an appropriate category.

Details

Only one “default” category option should exist

Level: Severe

Issue count: NA (NA%)

Introduction

There should only exist one category option with name and code “default”.

Recommendation

Only the category option with UID “xYerKDKCefk” should be named “default” and have code “default”. Either rename the conflicting category option or move all references to category option “xYerKDKCefk” and then remove the unused conflicting category option.

Details

Only one “default” category option combo should exist

Level: Severe

Issue count: NA (NA%)

Introduction

There should only exist one category option with name and code “default”.

Recommendation

Only the category option combo with UID “HllvX50cXC0” should be named “default” and have code “default”. Either rename the conflicting category option combo or move all references to category option combo “HllvX50cXC0” and then remove the unused conflicting category option combo.

Details

Category option combinations with disjoint associations.

Level: Severe

Issue count: 0 (0%)

Introduction

Under certain circumstances, category option combinations may exist in the system, but not have any direct association with category options which are associated with their category combination. This situation usually occurs when category options have been added to a category and then the category is added to a category combination. New category option combinations are created in the system at this point. If any of the category options are then removed in one of the underlying categories, a so-called disjoint category option combination may result. This is a category option combination which has no direct association with any category options in any of the categories associated with the category combination.

Recommendation

The disjoint category option combinations should be removed from the system if possible. However, if any data is associated with the category option combination, a determination will need to be made in regards of how to deal with this data.

Details

Category option combinations with incorrect cardinality.

Level: Severe

Issue count: 0 (0E-20%)

Introduction

All category option combinations should have exactly the same number of category option associations as the number of categories in the category combination. If there are two categories in a category combination, then every category option combination should have exactly two category options. Category option combinations with the incorrect cardinality are usually the result of a category combination having been created, and then modified later. Suppose that two categories are used to create a category combination. Each category option combination of this category combo will have two category options. If an additional category is added to the category combination later, new category option combinations with three category options will be created and associated with this category combo. The original category option combinations would be considered to be invalid.

Recommendation

Category option combinations which have an incorrect cardinality will be ignored by the DHIS2 analytics system and should be removed.

Details

Categories with the same category options

Level: Warning

Issue count: 4 (14.8148148148148148%)

Introduction

Categories with the exact same category options should be considered to be merged. Categories with the exact same category options may be easily confused by users in analysis. The details view will provide a list of categories which have the exact same category options. For each duplicated category a number in parentheses such as (1) will indicate which categories belong to duplicated groups.

Recommendation

If category combinations have already been created with duplicative categories, it is recommended that you do not take any action, but rather ensure that users understand that there may be two category combinations which are duplicative.

If you choose to merge the duplicative category combinations, you would need to remap all category option combinations from the category combo which you wish to remove, to the one which you wish to keep.

If one of the categories is not in use in any category combination, it should consider to be removed from the system.

Details

Category combinations not used by other metadata objects

Level: Warning

Issue count: 3 (9%)

Introduction

Category combinations which are unused in any datasets, data elements, programs or data approval workflows may be safe to delete. In some cases, category combinations may be created, but never actually used for anything. This may lead to situations where users and implementers are confused about which category combination should actually be used. In general, it should be safe to delete unused category combinations, except in situations where existing data has been associated with them.

Recommendation

Check to see if any data is associated with the category combination before attempting to delete it. Category combinations which are not currently used in any metadata objects may still be valid for legacy reasons, but they should be reviewed to be sure they are still needed. Otherwise, it should be safe to remove them from the system.

Details

Category combinations with categories which share the same category options.

Level: Severe

Issue count: 0 (0E-20%)

Introduction

As a general rule, category options should be reused where possible between categories. The exception to this rule however, is when you have a category combo with multiple categories, and within those categories, a category option is shared. As a simple example, lets say you have a category called “Sex” with options “Male”“,”Female” and “Unknown”. There is also a second category called “Age” with options “<15”, “15+”, and “Unknown”. A category combination called “Age/Sex” is then created with these two categories, which share the option “Unknown”. This situation should be avoided, as it creates issues when analyzing data.

Recommendation

The recommended approach to dealing with this situation is to create a new category combination, using two new categories. Using the example from the introduction, you should create two new category options called “Unknown age” and “Unknown sex”. A new category combination can then be created with these new categories, which do not share category options. All data which is potentially associated with the old category combinations, would need to be reassigned to the new category option combinations. Any analytical objects which use the categories to be removed would also need to be updated.

Details

Category options combinations with no category combination.

Level: Warning

Issue count: 0 (0E-20%)

Introduction

All category option combinations should be associated with a category combo. In certain cases, when category combinations are deleted,the linkage between a category option combination and a category combination may become corrupted.

Recommendation

Check if any data is associated with the category option combination in question. Likely, the data should either be deleted or migrated to a valid category option combination. Any data which is associated with any of these category option combinations will not be available through either the data entry modules or any of the analytical apps.

Details

Different category combinations should not have the exact same combination of categories.

Level: Severe

Issue count: 4 (12%)

Introduction

Category combinations should be a unique combination of categories. If two or more category combinations contain the exact same set of categories, this would be considered to be duplicative and potentially confusing to users.

Recommendation

One category combo is kept, all references are updated to use this combo and other combos are removed.

Details

Category options which belong to multiple groups in a category option group set.

Level: Severe

Issue count: NA (0%)

Introduction

Category options should belong to exactly one category option group which are part of a category option group set. If the category option belongs to multiple groups, this will lead to unpredictable results in analysis.

Recommendation

Using the maintenance app, assign the category option in the details list to exactly one category option group within each group set.

Details

Category option group sets which which do not contain all category options.

Level: Warning

Issue count: 0 (NA%)

Introduction

Category option group sets are composed of multiple category option groups, which are in turn composed of various category options. Category option group sets are often used to group related category options together for analytical purposes. Categories are also composed of category options. In general, but not always, category option group sets should contain all category options of related categories. Suppose we have the following two age categories. Age coarse: <15, 15+ Age fine: <1, 1-10, 10-14,15-19,20-24,25-29,30-34,35-39,40-44,45+ In many cases, related data elements may be disaggregated differently. This may be to differences in the way in which the data is collected, or as is often the case, the disaggregation has changed over time. If we wish to analyze data for two different data elements (one of which uses Age coarse and the other Age fine), we can create a category option group set consisting of two category option groups which should consist of the following category options from above. <15: <15, <1, 1-10, 10-14 15+: 15+, 15-19,20-24,25-29,30-34,35-39,40-44,45+ Suppose that we happen to omit the category option “<1” from the “<15” category option group. This would result in potential aggregation errors in when using this category option group set in any analytical objects. The details of this metadata check would return the UID and name of the category option group set. The category and category option would also be provided. Using the previous example, we would see “Age fine:{<1}” in the metadata check details section, to indicate that the <1 category option which is part of the “Age fine” category, is missing from the category option group set. There may exist specific analytical reasons why specific category options are omitted from a category option group set. However,these should usually be special cases. This metadata check will identify cases where category option group sets appear to be incomplete, however you should carefully review any groups which appear in the details. This check may also produce a number of issues which may at first glance appear to be false positives. In some cases, category options may be added to a category by mistake. When category option group sets are created, this extraneous option may be omitted and thus appear as missing from the group set. Another observed situation is where an option like “Unknown” is used across unrelated categories. Suppose you have two categories “Age (<15, 15+, Unknown)” and “Sex (Male,Female,Unknown)”. Similar to above, we create category option group sets like: <15: <15 15+: 15+ Unknown: Unknown This metadata check will report that “Male” and “Female” are missing from the group set. This is because the same “Unknown” option is shared between two different, unrelated categories. It is recommended that if this situation occurs, that you create two separate “Unknown” category options like “Unknown sex” and “Unknown age”.

Recommendation

Using the maintenance app, assign the missing category options to an appropriate category option group within the affected category option group set.

Details

Dashboards

Dashboards with no items.

Level: Info

Issue count: 1713 (34%)

Introduction

All dashboards should have content on them. Dashboards without any content do not serve any purpose, and can make it more difficult to find relevant dashboards with content.

Recommendation

Dashboards without content that have not been modified in the last 14 days should be considered for deletion.

Details

Data elements (aggregate)

Aggregate data elements not used in any favourites (directly or through indicators)

Level: Warning

Issue count: 97 (24%)

Introduction

All aggregate data elements that are captured in DHIS2 should be used to produce some type of analysis output (charts, maps, tables). This can be by using them directly in an output, or by having them contribute to an indicator calculation that is used an output.

Recommendation

Data elements that are not routinely being reviewed in analysis, either directly or indirectly through indicators, should be reviewed to determine if they still need to be collected. If these are meant to be used in routine review, then associated outputs should be created using them. If these data elements are not going to be used for any type of information review, consideration should be made to either archive them or delete them.

Details

Aggregate data elements not in any data element groups.

Level: Warning

Issue count: 153 (37%)

Introduction

All data elements should be in a data element group. This allows users to find the data elements more easily in analysis apps and also contributes to having more complete data element group sets. Maintenance operations can also be made more efficient by applying bulk settings (ex. sharing) to all data elements within a data element group.

Recommendation

Data elements that are not in a data element group should be added to a relevant data element group. If the data elements are not needed, they should be deleted.

Details

Aggregate data elements which belong to datasets with different period types.

Level: Severe

Issue count: 5 (0%)

Introduction

Data elements should not belong to datasets with different period types.

Recommendation

If you need to collect data with different period types (e.g. weekly and monthly) you should use different data elements for each period type. In general, it is not recommended to collect data with different frequencies, since in general, data collected at higher frequencies (e.g. weekly) can be aggregated to data with lower frequencies (e.g yearly).

Details

Non-numeric data elements which have an aggregation operator other than NONE.

Level: Warning

Issue count: 250 (14%)

Introduction

Data elements which are not numeric (text, dates, etc) should have an aggregation operator set to NONE. Data elements which are able to be aggregated (numbers, integers, etc) should have an aggregation operator set to something other than NONE, most often SUM.

Recommendation

Open the affected data elements in the Maintenance App and change their aggregation type to an appropriate type. Alternatively, these can be altered via the API.

Details

Data sets

Datasets with no data elements.

Level: Warning

Issue count: 1 (5%)

Introduction

All datasets should have data elements assigned to them.

Recommendation

Remove empty datasets, or alternatively, assign data elements to them.

Details

Group size

Data element groups should have at least two members.

Level: Warning

Issue count: 5 (6%)

Introduction

All data element groups should be composed of at least two data elements.

Recommendation

Considering removing groups with a single member, or alternatively, add additional members to the group to make it more useful.

Details

Organisation unit groups should have at least two members.

Level: Warning

Issue count: 17 (18%)

Introduction

Generally, organisation unit groups should be composed of multiple organisation units.

Recommendation

Considering removing groups with zero or one organisation units, or alternatively, add additional members to the group to make it more useful.

Details

Indicator groups sets should have at least two members.

Level: Warning

Issue count: 0 (0%)

Introduction

All indicator group set should be composed of at least two indicators groups.

Recommendation

Considering removing indicator group sets with less than two indicator groups, or alternatively, add additional indicator groups to the indicator group set to make it more useful.

Details

Indicator groups should have at least two members.

Level: Warning

Issue count: 0 (0%)

Introduction

All indicator groups should be composed of at least two indicators.

Recommendation

Considering removing groups with zero or one groups, or alternatively, add additional members to the group to make it more useful.

Details

Validation rule should have at least two members.

Level: Warning

Issue count: 1 (25%)

Introduction

Generally validation rule groups should be composed of multiple validation rules.

Recommendation

Considering removing groups which are empty or which have a single member. Alternatively, add additional members to the group to make it more useful.

Details

Program indicator groups should have at least two members.

Level: Warning

Issue count: 1 (100%)

Introduction

Program indicator groups should generally be composed of two or more program indicators.

Recommendation

Considering removing groups with a single member, or alternatively, add additional members to the group to make it more useful.

Details

Category option groups should have at least two members.

Level: Warning

Issue count: 0 (NA%)

Introduction

Generally, category option group sets should be composed of at least two category option groups.

Recommendation

Considering removing groups with zero or one category option groups, or alternatively, add additional category option groups to the group set to make it more useful.

Details

Category option group sets should have at least two members.

Level: Warning

Issue count: 0 (NA%)

Introduction

Generally, category option groups should be composed of at least two category options. There can however be legitimate cases when a single category option is part of a group, especially in cases where there is a direct mapping between age bands and category options.

Recommendation

Considering removing groups with zero or one category options, or alternatively, add additional category options to the group to make it more useful.

Details

User groups should have at least two members.

Level: Warning

Issue count: 8 (12%)

Introduction

Generally, user groups should contain two or more users.

Recommendation

Considering removing user groups with less than two users, or alternatively, add additional users to the group to make it more useful.

Details

Indicators

Indicators not in any groups.

Level: Warning

Issue count: 46 (25%)

Introduction

All indicators should be in an indicator group. This allows users to find the indicators more easily in analysis apps and also contributes to having more complete indicators group sets. Maintenance operations can also be made more efficient by applying bulk settings (ex. sharing, filtering) to all indicators within an indicator group.

Recommendation

Indicators that are not in a indicator group should be added to a relevant indicator group. If the indicators are not needed, they should be deleted.

Details

Indicators not used in analytical objects.

Level: Warning

Issue count: 50 (27%)

Introduction

Indicators should be used to produce some type of analytical output (charts, maps, pivot tables). Note: indicators used in datasets to provide feedback during data entry are not counted as being used in analytical objects.

Recommendation

Indicators that are not routinely being used for analysis should be reviewed to determine if they are useful and needed. If these are meant to be used for routine review, then associated outputs should be created using them. If these indicators are not going to be used for any type of information review, and are not used in data sets for feedback during data entry, consideration should be made to delete them.

Details

Indicator types with the same factor.

Level: Warning

Issue count: 0 (0%)

Introduction

Indicators can be assigned a factor which is multiplied by the indicator’s value. For example, if you create a percentage based indicator, you can assign the indicator a factor of 100, which would be multiplied by the actual value of the indicator calculated by DHIS2. In general, having multiple indicator types with the same factor is not recommended. It is duplicative, and may lead to confusion.

Recommendation

Duplicated indicator types should consider to be removed from the system. Consider choosing one of the duplicated indicator types as the one to keep, and then update all indicators which share the same factor to this indicator type. The duplicated indicator types can then be removed from the system.

Details

Indicators with the same terms.

Level: Warning

Issue count: NA (3%)

Introduction

Indicators should generally have unique formulas. This metadata check attempts to identify indicators with the same formulas, regardless of the order of their their terms. Suppose you have an indicator which calculates total ANC attendance: ANC Total = ANC1 + ANC2 + ANC3 Suppose then another indicator exists in the system, which has been defined as: ANC Totals = ANC3 + ANC2 + ANC1 These two indicators are equivalent, and will produce the same result, and are thus considered to be duplicated.

Recommendation

Duplicative indicators should be considered to be removed from the system, since they may cause confusion on the part of users as to which one should be used. Considered deleting all but one of the duplicated indicators using the maintenance app.

Details

Indicators with the same formula.

Level: Warning

Issue count: NA (3%)

Introduction

Indicators should generally have unique formulas. This metadata check shows indicators which have the exact same formulas. Spaces which are present are removed prior to comparison.

Recommendation

Duplicative indicators should be considered to be removed from the system, since they may cause confusion on the part of users as to which one should be used. Consider deleting all but one of the duplicated indicators using the maintenance app.

Details

Option sets

Option sets which are not used

Level: Warning

Issue count: 32 (13%)

Introduction

Option sets should be used for some purpose. The may be used by data elements, comments, attributes, or tracked entity attributes.

Recommendation

Consider deleting unused option sets, or alternatively, ensure that they have been properly assigned.

Details

Empty option sets

Level: Warning

Issue count: 2 (0%)

Introduction

All option sets should generally include at least two items. Empty option sets serve no purpose.

Recommendation

Options should either be added to the option set, or the option set should be deleted.

Details

Option sets with possibly wrong sort order.

Level: Severe

Issue count: 0 (0%)

Introduction

Option sets contain options which should be ordered sequentially. The sort_order property should always start with 1 and have a sequential sequence. If there are three options in the option set, then the sort order should be 1,2,3. In certain circumstances, options may be deleted from an option set, and the sort order may become corrupted. This may lead to a situation where it becomes impossible to update the option set from the maintenance app, and may lead to problems when attempting to using the option set in the data entry app.

Recommendation

If it is possible to open the option set in the maintenance app, you can resort the option set, which should correct the problem. Another possible solution is to directly update the sort_order property of in the optionset table in the database, ensuring that a valid sequence is present for all options in the option set.

Details

Organisation units

Orgunits that are not in all compulsory orgunit group sets

Level: Severe

Issue count: NA (99%)

Introduction

If any organisation unit groups have been marked as compulsory, each and every organisation unit should belong to exactly one group within each compulsory organisation unit group set. Assume we have created a group set called “Ownership” with two groups “Public” and “Private”. Each and every organisation unit contained in the hierarchy must belong to either Public or Private (but not both). When organisation unit are not part of a group set, results in the analytics apps will not be correct if the organisation unit group set is used for aggregation.

Recommendation

For each of the organisation units identified in the details query, you should assign the appropriate organisation unit group within the group set. Alternatively, if the group set should not be compulsory, you should change this attribute.

Details

Organisation units should not have trailing spaces.

Level: Warning

Issue count: 1733 (4%)

Introduction

Trailing spaces in organisation units are superfluous.

Recommendation

If the number of affected organisation units is small, the easiest remedy is to correct them directly from the user interface. Another possible option would be to replace all of the trailing spaces using SQL.

Details

Organisation units which have an opening date later than the closed date.

Level: Severe

Issue count: NA (0%)

Introduction

If a closing date has been defined for an organisation unit, it should always be after the opening date (if one has been defined).

Recommendation

Alter either the opening or closing date of all affected organisation units so that the closing date is after the opening date.

Details

Organisation units with point coordinates should be contained by their parent.

Level: Warning

Issue count: 923 (4.6487030974565601%)

Introduction

Facilities are often represented as points in the DHIS2 hierarchy. Their parent organisation units geometry should contain all facilities which have been associated with them.

Recommendation

Often boundary files are simplified when they are uploaded into DHIS2. This process may result in facilities which are located close to the border of a given district to fall outside of the district when the boundary is simplified. This is considered to be more of a cosmetic problem for most DHIS2 installations, but could become an issue if any geospatial analysis is attempted using the boundaries and point coordinates.

In cases where the facility falls outside of its parent’s boundary you should confirm that the coordinates are correct. If the location is close to the boundary, you may want to reconsider how the boundary files have been simplified. Otherwise, if the location of the facility is completely incorrect, it should be rectified.

Details

Organisation units located within 100 km of Null Island (0,0).

Level: Severe

Issue count: NA (4.3946210032409423%)

Introduction

A common problem when importing coordinates is the inclusion of coordinates situated around the point of Null Island. This is the point on the Earth’s surface where the Prime Meridian and Equator intersect with a latitude of 0 and a longitude of 0. The point also happens to be situated currently in the middle of the ocean. This query identifies any points located within 100 km of the point having latitude and longitude equal to zero.

Recommendation

Update the coordinates of the affected organization unit to the correct location.

Details

Organisation units should not have multiple spaces in their names or shortnames.

Level: Warning

Issue count: 1273 (3%)

Introduction

Names and/or shortnames of organisation units should not contain multiple spaces. They are superfluous and may complicate the location of organisation units when they are searched.

Recommendation

If the number of affected organisation units is small, the easiest remedy is to correct them directly from the user interface. Another possible option would be to replace all of the multiple spaces using SQL.

Details

Organisation units with invalid geometry.

Level: Warning

Issue count: 1 (0.00490196078431372549%)

Introduction

DHIS2 uses the PostGIS database extension to manage the geographical information associated with organisation units. There are various reasons why geometries may be considered to be invalid including self-inclusions, self-intersections, and sliver polygons. Please see the PostGIS documentation for a more in-depth discussion on this topic.

Invalid geometry is not always a problem and may be able to be ignored, however, it has been observed in certain systems that this can lead to problems in analytics. If you are experiencing issues when generating analytics tables, and see errors related to invalid geometries, you will need to either remove the invalid geometry, or fix it.

Recommendation

Update the geometry of the affected organisation units to a valid geometry. It may be possible to use the PostGIS function ST_MakeValid to automatically fix the problem. However, in other cases the geometry may need to be edited in a GIS tool, and then updated again in DHIS2.

Details

The organisation unit hierarchy should have a single root.

Level: Critical

Issue count: NA (0E-24%)

Introduction

Every DHIS2 system should have a single root organisation unit. This means a single organisation unit from which all other branches of the hierarchy are descendants.

Recommendation

Once you have decided which organisation unit should be the real root of the organisation unit hierarchy, you should update the parent organisation unit. This can be done by using the DHIS2 API or my updating the value directly in the organisationunit table.

Details

Organisation units with no coordinates.

Level: Warning

Issue count: 20946 (50.6602815266289363%)

Introduction

Ideally, all organisation units contained in the DHIS2 hierarchy should have a valid set of coordinates. Usually for all organisation units above the facility level, these coordinates should be a polygon which provides the boundary of the organisation unit. For facilities, these are usually represented as point coordinates.

There can obviously be exceptions to this rule. Mobile health facilities may not have a fixed location. Community health workers or wards below the facility level may also not have a defined or definable coordinate.

This check is intended to allow you to review all organisation units which do not have any coordinates and make a determination as to whether they should be updated.

Recommendation

Where appropriate, update the geometry of each organisation unit with a valid geometry. You may need to contact the appropriate local government office to obtain a copy of district boundaries, commonly referred to as “shape files”. Another possibility is to use freely available boundary files from GADM (https://gadm.org)

If facilities are missing coordinates, it may be possible to obtain these from the facility staff using their smart phone to get the coordinates. Images from Google Maps can also often be used to estimate the position of a facility, assuming that you have good enough resolution and local knowledge of where it is located.

Details

Orphaned organisation units.

Level: Critical

Issue count: 0 (0%)

Introduction

Orphaned organisation units are those which have neither parents nor any children. This means that they have no relationship to the main organisation unit hierarchy. These may be created by faulty metadata imports or direct manipulation of the database.

Recommendation

The orphaned organisation units should be assigned a parent or removed from the system. It is recommended to use the DHIS2 API for this task if possible. If this is not possible, then they may need to be removed through direct SQL on the DHIS2 database.

Details

Organisation units which belong to multiple groups in a group set.

Level: Severe

Issue count: NA (0%)

Introduction

Organisation units should belong to exactly one group within each organisation unit group set of which they are a member. If the organisation unit belongs to multiple groups, this will lead to unpredictable results in analysis.

Recommendation

Using the maintenance app, assign the organisation units in the details list to exactly one group within each group set membership.

Details

Organisation units should not have the same name and parent.

Level: Warning

Issue count: 98 (0.23702413776423354133%)

Introduction

Organisation units may have exactly the same name. This may become confusing to users, particularly if the organisation unit has the same name and same parent. This can easily lead to data entry or analysis mistakes as users have no way to distinguish between the two organisation units.

Recommendation

Rename identically named organisation units which share the same parent using the maintenance app.

Details

Periods

Periods with the same start and end dates

Level: Critical

Issue count: 0 (0E-20%)

Introduction

Different periods should not have exactly the same start and end date.

Recommendation

All references to the duplicate periods should be removed from the system and reassigned. It is recommended to use the period with the lower periodid.

Details

Periods which are more than three years in the future.

Level: Warning

Issue count: 0 (0E-20%)

Introduction

Periods in DHIS2 are automatically generated by the system. As new data is entered into the system, new periods are automatically created. In some cases, periods may mistakenly be created when data is sent to DHIS2 for periods which are in the far future. Different data entry clients may not properly validate for periods which are in the future, and thus any periods in the future should be reviewed. In some cases, data may be valid for future dates, e.g. targets which are set for the next fiscal year.

Recommendation

If any periods exist in the system in the future, you should review the raw data either directly in the datavalue table, or alternatively though the pivot tables to ensure that this data is correct.

In many cases, clients may mean to transmit data for January 2021, but due to data entry errors, January 2031 is selected. Thus, any data in the far future should be investigated to ensure it does not result from data entry errors.

Details

Periods which are in the distant past.

Level: Warning

Issue count: 0 (0E-20%)

Introduction

Periods in DHIS2 are automatically generated by the system. As new data is entered into the system, new periods are automatically created. In some cases, periods may mistakenly be created when data is sent to DHIS2 for periods which are in the distant past. Different data entry clients may not properly validate for periods which are in the distant past, and thus these periods should be triaged to ensure that data has not been entered against them by mistake.

Recommendation

If any periods exist in the system in the distant past, you should review the raw data either directly in the datavalue table, or alternatively though the pivot tables to ensure that this data is correct.

Details

Program rules

Program rules with no action.

Level: Severe

Issue count: 3 (0.32119914346895074946%)

Introduction

All program rules should have an action.

Recommendation

Using the DHIS2 user interface, assign an action to each of the program rules which is missing one. Alternatively, if the program rule is not in use, then consider removing it.

Details

Program rules with no expression.

Level: Warning

Issue count: 1 (0.10706638115631691649%)

Introduction

All program rules should have an expression. Expressions are used by program rules to determine when they should be triggered. Program rules with no expression have no purpose.

Recommendation

Using the DHIS2 user interface, assign an expression to each of the program rules which is missing one. Otherwise, if it is safe to delete the program rule with no expression, it is recommended to remove it.

Details

Program rules actions which should send or schedule a message without a message template.

Level: Severe

Issue count: 0 (0E-20%)

Introduction

Program rule actions of type “Send message” or “Schedule message” should have an associated message template.

Recommendation

Using the DHIS2 user interface, assign a message template to each of the program rule actions which send or schedule messages but which does not have an association with a message template.

Details

Validation rules

All validation rule expressions should have a missing value strategy.

Level: Severe

Issue count: 0 (0E-20%)

Introduction

Validation rules are composed of a left and right side expression. In certain systems the missing value strategy may not be defined. This may lead to an exception during validation rule analysis. The affected validation rules should be corrected to with an appropriate missing value strategy.

Recommendation

Using the results of the the details SQL view, identify the affected validation rules and which side of the rule the missing value strategy has not been specified. Using the maintenance app, make the appropriate corrections and save the rule.

Details

Visualizations

Maps which have not been viewed in the past 12 months

Level: Warning

Issue count: 584 (95%)

Introduction

Maps should be regularly viewed in the system. In many cases, users may create maps for temporary purposes and then never delete them. This can eventually lead to a lack of tidiness in the system and being difficult to find in the Maps app.

Recommendation

Unused maps can be removed directly using the Maps app by a user with sufficient authority. If maps are a part of any dashboard however, they will also need to be removed from the dashboard first.

Details

Visualizations which have not been viewed in the past 12 months

Level: Warning

Issue count: 8886 (78%)

Introduction

Visualizations should be regularly viewed in the system. In many cases, users may create charts for temporary purposes and then never delete them. This can eventually lead to a lack of tidiness in the system. This can lead to charts being difficult to find in the visualization app.

Recommendation

Unused charts can be removed directly using the data visualization app by a user with sufficient authority. If charts are a part of any dashboard however, they will also need to be removed from the dashboard first.

Details

Dashboards which have not been actively viewed in the past 12 months

Level: Warning

Issue count: 4588 (92%)

Introduction

Dashboards should be regularly viewed in the system. In many cases, users may create dashboards for temporary purposes and then never delete them. This can eventually lead to a lack of tidiness in the system. This can lead to useful dashboards being difficult to find. This check identifies any dashboards which have not been viewed in the past year.

Recommendation

Unused dashboards can be deleted in the entirety from the main dashboard app by clicking on the “Edit” button and choosing “Delete”. Note that this process cannot be undone! Another option would be to alter the sharing of the dashboard so that it is not visible to any user.

Details

data_elements

Data elements which belong to multiple groups in a group set.

Level: Severe

Issue count: NA (1%)

Introduction

Data elements should belong to exactly one group within each data element group set of which they are a member. If the data element belongs to multiple groups, this will lead to unpredictable results in analysis.

Recommendation

Using the maintenance app, assign the data elements in the details list to exactly one data element group within each group set.

Details

DHIS2 Integrity Checks