This feature helps ensure data quality on chosen variables. Based on the rules defined for those variables, a run for the patients yields a list of patients for whom the data is incomplete/erroneous. The results are displayed as a list of all data inconsistencies on a dashboard called the Data Quality Dashboard.
The dashboard also provides the end user a link to fix those inconsistencies. After the inconsistency is fixed, it will no longer be visible in the data quality dashboard. In case a form is absent for the patient then this link will direct the user to the patient dashboard. Notes added to the variables will be visible under the notes column. In case the form for the variable isn't filled yet,then "X form is not filled" is displayed.
The rules can be customized by an implementer. These rules can be sometimes very complex and therefore the rules can be written in java/sql/groovy depending on the complexity. The Data Quality Dashboard columns can be Internationalized.
This feature is useful in a wide range of situations. For instance in case of a clinical trial of some newly discovered TB drugs, if the patient has been prescribed new TB drugs then they should have signed a consent form for being a part of the clinical trial. In the system the consent is recorded as an answer to a coded concept, which means if this answer is missing for any patient that has been given the drug, it might have been a miss from the data entry personnel. A rule for this variable will list out all the patients for whom the consent is missing or not recorded in the system.
Other examples could be that of rules for ensuring start of treatment date is not later than the end of treatment date, or missing SAE onset dates for SAE reports, or ensuring drugs that are not in treatment should not be entered for Adverse events, or to catch issues where Pregnancy data has been entered for male patients, etc.
Ensures data quality and accuracy across patient data
Data Quality Dashboard
The result of evaluation shown above are stored in dataintegrity_result table and is re-populated on every execution.