Data Quality Dashboard

@bharatak Will try them over the weekend and provide feedback. Thanks

@bharatak what app can I use to run the rules and view the results?

@ssmusoke The OMOD will add an OpenMRS scheduler task. You can tweak it to run at your interested frequency. Once the results are available, you can have a look at dataintegrity_result table. If you are using Bahmni, you can use the UI for viewing it.

@bharatak any plans to add a basic Ref App page to run different rules and show results within the omod? So that the module has basic self contained functionality

1 Like

Hi @ssmusoke We have built a simple UI in Bahmni. None of our customers are using Ref App. So, Bahmni team does not have any plans to build the UI in ref app.

@bharatak understood. Can you point me to the UI code in Bhamni so that I can look into how to port it to Ref App.

We have a feature called “Patient Listing Queues”. The UI for data integrity is just a patient listing page which is driven through a SQL query. The feature can be found here. The SQL query that is used to populate this page is available as a liquibase migration here. I don’t think there is a straight forward way to port it into ref app. This UI is not built specifically for Data Integrity. Its used as a tool for implementers to configure the views by themselves driven through a sql query.

@bharatak Just a headsup that I have configured a CI plan for the data integrity module that also automatically publishes snapshots to Nexus

1 Like


Hi Stephen, I can’t promise anything yet at this juncture but we could perhaps start work on this together later in September. As in: find a way to give a flexible UI to this module for the Ref App. Perhaps on the model of VDUI where everything is made of Angular components?

Just wanted to poke you about this since we will definitely need the Data Integrity module (actually because of VDUI…)

Cheers. D

@mksd I am happy to collaborate on any UI related work, that is one area that I am weak in that area. I will look over the model used in VDUI to leverage the work done with that.

Have also created for the UI

@bharatak I am working to build a couple of rules for the Uganda implementation and I would like your thoughts on some areas I seem to be hitting a wall.

  1. Saving the rules to the database - currently the rules are added using an SQL script, I was thinking of using OpenMRS Metadata to save the rules. How can I link a rule definition like to a Rule data object? Can the RuleDefn extend a rule in this case?

  2. The Evaluation service fires all rules, I would like to add a method and UI, to enable the execution of a single rule passed via a uuid (just like other entities) for implementors who are looking to fix the issues one rule at a time.

  3. The initial UI will not be an OWA for now but a Ref App gsp page with Angular components - will this raise any conflicts with Bhamni? Any ideas

  4. Why was the name RuleDefn used instead of RuleDefinition just my OCD here.

Hi @ssmusoke I"ll try to answer some questions and leave the rest to @sdeepak

  • The current approach of DataintegrityEvaluationServiceImpl.fireRules() executes all the data integrity rules and stores the results in DataintegrityResult table. i.e. we truncate this table and re-populate the rule result. If you want to just trigger one rule, you will have to remove the results for the rule_id in the table and re-populate with the latest result.
  • The gsp pages in dataintegrity omod will not conflict with Bahmni. Its safe and you can go-ahead with the changes.
  • The RuleDefn can be renamed to RuleDefinition. I also like it that way.

Hi @ssmusoke,

Currently the rule definition (with evaluate() logic) and rule data object ( to load rule definition ) are independent. RuleDefnLoader is the link between them. Would modifying the private method getRuleInstance() in a way to use OpenMRS meta data work for you ?

Thank you Deepak

@sdeepak My thinking is that there is a one to one mapping between a rule definition (with evaluate) and rule data object. So why not couple them together?

Are there any instances when this assumption does not hold?

@ssmusoke coupling them together would work. It would involve some refactoring around how rules are instantiated.

Thank you Deepak

@darius Is this functionality to be provided by the patient flags module? Is there any project that is tackling the display of notifications/messages on the patient dashboard

cc @wyclif @dkayiwa @mogoodrich (noticed your interest in patient flags module)

@ssmusoke am not aware of any one doing this for the patient flags module.

Just announcing a 4.2.0 release of the Data Integrity module, which has the following:

  1. GSP based UI to show rules and results from the validations

  2. Ability to run a single validation rule

  3. Refactoring to be consistent with OpenMRS module layout and guidelines.

Thanks @dkayiwa @bharatak @sdeepak hoping to have more goodies coming up


@ssmusoke / @dkayiwa, I notice that there is a 4.2.3 version of this module in Nexus and tagged in github. Is this stable and can it be released to the module repository?

@mseaton Yes its stable, we are using it in UgandaEMR - I have uploaded it to modulus