GSOC 2017 - Data Integrity Module 4.x Improvement Project

@ridmal You can look at a sample useage of the Data Integrity module at http://bit.ly/ugandaemr-demo with credentials admin/test.

This will help inform your proposal better.

Ok , Thanks i will .

In that site data integrity checked based on the uid.( according to what i experienced ) .So further enhancement is for adding that integrity check base on patient , program id.Correct ? And Other thing is Is that possible to mapp find patient module and data integrity module in openmrs system ?

@ridmal The Data Integrity module does not enforce validation checks at the time of entering data, but is used to check for violations after the data has been entered.

Yes , That’s right and for that we can used icon in the find patient UI which will add violation count after user searching a patient data ( for each data set).Then we can map data integrity module using that icon and user can get any action for that data set.

@ridmal Log into the site that I have provided to you above to see the current module in action…

ok @ssmusoke i will look on it and add modifications to my proposal.Is there any other comment you have about my proposal. ( Since full description is included in the open MRS wiki I included a small description about openMRS and data-integrity module. IS it ok ?? )

Thank You.

@ridmal

  1. On the filters - do look at the examples on the site that I have provided

  2. The SQL checks are not done during data entry - but after data has been entered.

  3. There is no validation check for unused locations at this time - its based on data entered for programs and patients only

  4. This page https://wiki.openmrs.org/display/docs/Data+Integrity+Module is currently out of date, so ignore it

  5. This is the background information for the new version of the module Data Quality Dashboard

Ok Thanks for providing this information. And i have some questions according to this comments.

  1. I saw only data is filtered base on the rule ,name and uid. So enhance the filtering means that add more attributes to the search paramter ? 2 . I mentioned in my proposal that SQL checks are done when user search the patient data. Not in data entry ? Is it possible to executeSQL query on patient data search.?
  2. According to Data Quality Dashboard this discussion it explained that current data-ingrity module said that true or false or every rule.( And not mentions where it need to be corrected).So is it also need to implemented in this stage ?

@ridmal

  1. This module does not run any validation on data as its being entered - and that is deliberate by design. The SQL queries are against the data that has already been entered.

  2. The results of execution are stored in the dataintegrity_result table along with a link to how the result can be fixed.

Have you looked over the demo site? Can you also read through this high level design document for the 4.x versions of the module https://docs.google.com/document/d/1oBOqCDRuhVfii3gNo9WRRvg-4bDQGLOErCnCopq39iI/edit#

Can you please explained more about this .I can’t clearly understood about this. Yes i looked the demo site.

Instead of writing Java/Groovy based rules like the examples given in https://github.com/openmrs/openmrs-module-dataintegrity/blob/master/README.md, the rules would be written in SQL and return similar results

So which means that in this project we need to create SQL queries which can directly add to the data_integrity rules database and add to the schedule task. Is it possible to run this DataIntegrityTask after any user action for violated data correction.?

@ridmal

  1. Yes the purpose of this task is to ensure that rules can be defined to run the validation rules.

  2. A single task can be run from the user interface, if you click on the DataIntegrity Rules link in the header of the results list.

Can’t it run form the search patient or program UI.( DataIntegrity Task ).Then we can add a query that search that particular patient id form that dataintegrity_result table and return the count of how many violations that having for each patient row.It can be more user friendly. ( I thought that A widget to display violations on a program (soon to have a page) and the patient dashboard is for that purpose.Please correct if i am wrong? )

@ridmal The widget has already been developed in a separate sprint …

You need to be able to develop SQL queries to provide the patient_id or program_id with violations

ok understood . In current module all the rules are executed in same time by DataIntegrityTask and create a result set.Correct ? So Improving the flow to run a single rule from the list of rules or even for a single patient objective is for do that scheduler task for each rule separately without doing every rule in same time.Is it correct ??

@ridmal Why not give me a Skype call - username same as my Talk ID in about 2 hours as it will be faster than all this typing. You can put together all your questions so that I answer them at once.

Sure . please add my contact.

Hi @ssmusoke and @dkayiwa ,

I have successfully submitted my proposal to the GSOC dashboard. Thank You very much for help and guidance which you provide.

Thank You. Ridmal.