CDR Project QA Testing

From OpenEMR Project Wiki

CDR Project source locations

  • Base Project (includes Projects 2, 3, 5, 6, 7 and 8):
http://github.com/bradymiller/openemr/commits/rules_develop
  • Admin GUI (project 1 and Project 4; this is merged to above Base Project rules_develop branch) --Bradymiller 09:13, 1 March 2011 (UTC)
http://github.com/rachoac/openemr/commits/aron_rules_develop4

CDR QA Issues/Questions

Put your questions for clarification here.

CDR Bugs

Put any bugs you find here, there is a cut/paste simple "Bug Tracking" template here Bug Tracking Template

1. New rule cancel

  * Cancelling out of the new rule page returns an error message
  * Go to Administration->Rules
    Click on <Add  new> button
    Cancel out by clicking the <Cancel> button
    Instead of going back to the main Rules page, an error is returned.
  * March 4, 2011
  * Who owns the fix action: Aron/Ram
  * Date Fixed
  * Where is the fix posted

2. It is possible to create duplicate rule with the same name and add to the Rules list please see the attachment for more details. (Is this really a bug? The actions were built in a way to allow duplications, so not really an issue unless I'm missing something. --Bradymiller 19:28, 16 March 2011 (UTC))

  * No Warning message or Validations implemented while creating duplicate rules.
  * Go to Administration->Rules
    Click on <Add  new> button
    Add a rule Named Rule 1
    Add another rule named Rule 1
    Review the rule list to verify a duplicate has been created
    Setup a reminder for both
  * March 15, 2011
  * Who owns the fix action: Ram
  * Date Fixed
  * Where is the fix posted

CDR Official Branch

Official branch is maintained here

http://github.com/bradymiller/openemr/commits/rules_develop

Layperson (user) summary of official branch features

This is essentially an engine that allows incorporation of rule sets to check/monitor/report clinical information (such as vitals, history information, medications, procedures, labs, etc.) in real time. It has been built in a fashion to be very flexible and support internationalization.

1) Clinical Decision Support ('Clinical Reminders') widget can be found in the top right of the patient summary screen.
  • Shows if an action is due soon, due now, or over due.
  • Some actions offer a link (this then shows a screen where results can be stored). Note these are to store action results that are not found elsewhere in the OpenEMR database.
  • 'Edit' button opens a screen:
  • 'Main' tab shows all pertinent actions (whether completed or due).
  • 'Plans' tab shows all pertinent actions (whether completed or due) organized by plan.
  • 'Admin' tab allows per patient customization of the plans and rules.
2) The patient reminder ('Patient Reminders') widget can be found in bottom left (above vitals widget) of the patient summary screen.
  • Shows if a reminder action is due soon, due now, or over due; and shows if a reminder has been sent.
  • 'Edit' button opens a screen:
  • 'Main' tab provides more details on when reminder was created and sent (and which medium it was sent).
  • 'Admin' tab allows per patient customization of the rules.
3) The reporting for the clinical rules module can be found at Reports->Clinic->Quality Measures.
  • Lots of options for reporting clinic-wide rules results.
  • Also place for creating the CQM and AMC results (note the AMC and CQM rules are still under development)
  • Can also produce PQRI (this is a way to show CQM results) formatted results.
4) Patient Reminder Admin page can be found at Administration->Patient Reminders.
  • Shows the active reminders.
  • The batch to send the reminders to patients can be run from this script by clicking the Send Reminder Batch button(only works for email so far).
5) An admin feature to modify/add rules for the CDR module is currently under development (see top of this page for details on the current github branch of the GUI development)
6) Currently supported Rules/Plan sets:
  • Plans
  • Preventative Care
  • Diabetes
  • PQRI Measure Groups (pending)
  • Rules
  • Hypertension: Blood Pressure Measurement
  • Tobacco Use Assessment
  • Tobacco Cessation Intervention
  • Adult Weight Screening and Follow-Up
  • Weight Assessment and Counseling for Children and Adolescents
  • Influenza Immunization for Patients >= 50 Years Old
  • Childhood immunization Status
  • Pneumonia Vaccination Status for Older Adults
  • Diabetes: Hemoglobin A1C
  • Diabetes: Urine Microalbumin
  • Diabetes: Eye Exam
  • Diabetes: Foot Exam
  • Cancer Screening: Mammogram
  • Cancer Screening: Pap Smear
  • Cancer Screening: Colon Cancer Screening
  • Cancer Screening: Prostate Cancer Screening
  • Coumadin Management - INR Monitoring
  • Clinical Quality MEasures(CQM) (pending)
  • Automated Measure Calculations(AMC) (pending)

Official Branch Commits

(in order of first to last)

http://github.com/bradymiller/openemr/commit/2d9fba1b92f323ecb6c4470fa61a39c3b8255bee
Interim development of a clinical decision making engine.

Engine depends on rules, filters, targets, and actions. Basically,
if a patient fits in the filter, and the target(s) is false, then the
action(s) happens. The current scheme allows one filter
and multiple targets and actions per rule, is very flexible, and supports
internationalization. Engine is used for clinical decision support,
clinical quality measures (CQM) and patient reminders.

FUNCTIONALITY:
1) Clinical Decision Support widget can be found in the top right
   of the patient summary screen.
2) Clinical Reminder widget can be found in bottom left (above vitals
   widget) of the patient summary screen.
3) Clinical Reminder page can be found at Administration->Patient
   Reminders. The batch to send the messages can be run from this script
   by clicking the Send REminder Batch button.
4) CQM report can be found at Reports->Clinic->Quality Measures.

TODO:
1. Finish rules for the 10 CQM rules (will require algorithm adjustments
   to deal with the encounter types and frequencies that are used in the
   CQM rules).
2. Ensure NIST is accomplished for CQM and clinical decision support.
3. Get the email and voice patient reminder mechanisms to work (may ask
   Visolve to help with testing the modified mavix//voice email scripts).
4. Ensure NIST is accomplished for the patient reminders.
5. Add a admin gui to allow per patient customization (note the
   mechanism to do this already exist, so just need a simple gui for it)
6. Add mechanism to allow multiple filters per rule.
7. Add a admin gui to allow rule modification and creation of new rules.
8. Add a mechanism for plans.


http://github.com/bradymiller/openemr/commit/74bb82a0c92e0dcb3f69575cfdb4d6e713e012d8
Added functionality to check the lists (which contains medications,
  allergies, diagnoses, surgeries, etc.), which means NIST functionality
  is almost done for clinical reminders and clinical decisions (just need to
  add a laboratory check). Also need to do more testing of this feature.


http://github.com/bradymiller/openemr/commit/7eec43964df701dcfc1acedf086214e2a6554ce1
Placed a medication filter (coumadin) and a procedure checking target in the procedure tables (INR).
 Done getting procedures checking algorithm in, however still need to test/debug (currently
   passes all procedure targets, so a mild error somewhere to work out)
 Will convert the database to same mechanism as procedure checking since it's much cleaner.
  (collect another comparison parameter)


http://github.com/bradymiller/openemr/commit/b62f335ad9cf4e8a68c5531e91fb0755e0557ffa
The procedure mechanism for filters and targets is now in place and working.
  To demonstrate NIST, put a medication filter (coumadin) that then checks
  for a procedure target (INR lab) with an interval of every 3 weeks.


http://github.com/bradymiller/openemr/commit/e7c227084b26de50f534bd0ed6ca838b0510de54
Clarified database filters/targets algorithm and data objects.


http://github.com/bradymiller/openemr/commit/c9cf6115a39100036d12e48a70d8dd42b50ac3d0
Incorporated a basic appointment reminder mechanism within rules engine.
To be useful will need some fine tuning, though.


http://github.com/bradymiller/openemr/commit/d9150f1af2adc02b88eebc0ba303c66b5946964e
Removed a debugging comment.


http://github.com/bradymiller/openemr/commit/8d5762ecc5cd2bacb4480ff8bb1855f586e2ad25
Added support for the Automatic Measure Calculation MU item.

Specifics:
1) Added support for the Automatic Measure Calculation MU item.
     -Added pertinent columns to the clinical_rules table.
     -Added mechanism to disallow patient specific customization
      in clinical_rules.php since these are standard rules. Also
      included the clinical quality measures in this mechanism.
     -Added a selector for this in the interface/reports/cqm.php
      report
2) Added some comments in sql/database.sql to clarify code.
3) Fixed some miscellaneous comment typos.


http://github.com/bradymiller/openemr/commit/10d0e0faca6de7d6a7dbb79fbbd437e9e9959f27
CDR module bug fix - user_settings label for patient_reminders_ps_expand fixed


http://github.com/bradymiller/openemr/commit/e036a346c519bd61b32f4dfc172ab1b70a46563f
Removed active column from clinical_rules table and:

1) Removed active column from clinical_rules table
    and algorithm in clinical_rules.php
2) To resolve_rules_sql function in clinical_rules.php added
    functionality to grab all per patient configurable
    (ie. not cmq or amc) rules for the admin gui.


http://github.com/bradymiller/openemr/commit/11bec010c560e195123fd7533ed61be2abfb2cb5
Several addition to the rules internals:
1. Entered in skeleton rules for the Autmated Measure Calculations (AMC)
2. Commented the AMC and Clinical Quality Measures (QMC) rules in
    the database.sql files so others could follow the progress.
    (can be found in lines 3514-3635 of sql/database.sql file)
    (Note all teh QMC and AMC rules are just skeletons at this
     point and are NOT functional, but you can still look at the pretty
     report of them in Reports->Clinic->Quality Measures)
3. Plan to work on the QMC/AMC rules one by one and changing the rules
    internals as needed. This will not affect any of the stuff that
    others are working on (admin gui, per patient gui, messenging
    connectors, etc.)


http://github.com/bradymiller/openemr/commit/12b33b6ced42215df5f14fda75ed4bc34f5fa319
Projects number 2 and 3 (per patient gui) of CDR module:

1) Patient Summary Screen Edit button of Clinical Reminder Widget.
2) Patient Summary Screen Edit button of Patient Reminder Widget.
   (in the Rules tab on this screen)

Unable to use the planned mechanism of dropping patient specific
clinical_rules entries when set to default, because then this
would wipe out other per patient flags. So, instead create a
persistent entry for the patient in clinical_rules, and use
NULL in flags to signify that the default setting should be
used rather than a patient specific setting. This should have
no effects on the Major Admin GUI or other features.

You will note the PAtient Summary Screen Clinical Reminder
Widget Edit button goes to a screen with one tab on it (Rules).
This screen will be future place to hold following tabs:
Main - More details on active/inactive rules and most recent
       associated results.
Plans - A future feature that will hold plan information (for
        exmaple aggregating all DM disease rules and results).


http://github.com/bradymiller/openemr/commit/6057eb0335fa2d29ccf3162479af1f0473db3bd9
CDR Module CMQ PQRI database addition.

Added a column in the clinical_rules table to hold the
PQRI id number for CMQ (if it even exists). Also updated current
CMQ entries to the PQRI id numbers.


http://github.com/bradymiller/openemr/commit/9241d1ea9fa64fba9b66818f5c82e37439fd4023
CDR module: Clinical plans feature added and more...

1. Clinical plans feature was added. Database tables and
   code added. Can be found in Patient Summary screen Edit
   button for Clinical Reminders at the Plans tab (recommend
   giving your patient a diabetes diagnosis to get a clearer
   idea of what this does). Also note the plan data was added to
   support "Measure Groups" for the CQM/PQMI stuff.
2. Added a feature that shows pertinent clinical reminders that
   are not due. This is not shown on the clinical widget in the
   patient summary screen, but can be seen in the Edit button
   for Clinical Reminders at the Main tab (note the Plans tab
   also shows this).

Both of the above features are useful, and are building blocks
towards support of CQM/PQRI.


http://github.com/bradymiller/openemr/commit/2181cda989204dd1b4e167d24f0062a91f675db5
CDR module work on the CQM report requirements:

1) Added ability to report by plan.
2) Added ability to report by all providers in a cumulative and collated report.
3) Added ability to report pertinent clinician NPI numbers, clinician TIN numbers,
   measure group plan codes, rule codes (both PQRI and NQF) into the report (preparing for an xml out feature).
4) Added ability to record number of Exclusions in report.

All of these features are in Reports=>Clinic=>Quality Measures. Now have the tools to build the xml report
and to build the CQM rules.


http://github.com/bradymiller/openemr/commit/bd8e23af6e90d9f3478add6e3227937928f2c9d4
CDR module feature add for the CQM report requirements:

Added ability to nest providers within plans on the reporting. Feature
can be found here at Reports=>Clinic=>Quality Measures with following
settings:
Rule Set: Show All
Plan Set: Official CQM Measure Groups (or select 'Active Plans')
Provider: All (Collated Format B)


http://github.com/bradymiller/openemr/commit/816cf8be6db258a73bf61b6f97a0f7419cdcaeac
CDR module to add per patient gui for plan:

At patient summary screen for edit button of clinical
reminders widget. Can set per patient plans off/on/default
in Admin tab. These settings are used to create the plans
output in the Plans tab of this same script.


http://github.com/bradymiller/openemr/commit/b9cdbd76be6a5fcdd65ab0aead657ccc92fa3226
CDR Module : Added feature for PQRI XML reports.

1) "Generate pqri report" button at "Reports->Clinic->Quality Measures"
   (note need to hit the Submit button to see it)
2) Added "Administration->Globals->PQRI Registry" tab to hold the registry
   name and id number.


http://github.com/bradymiller/openemr/commit/25fd754c001aac6dfe9c0e7a6802d5ed8510b91c
CDR Module: Some fixes/improvements to PQRI reporting.

1) Clarified creation of pqri reports in Reports->Clinic-> Quality Measures
   --Generate PQRI report buttons
     --Method A is per rule (need to support this for MU)
     --Method B is per measure group (not fully supported yet, and probably not needed for MU)


http://github.com/bradymiller/openemr/commit/44bc3843721e44d3946ccb40bfcb1522753d214c
Added the <encounter-from-date> and <encounter-to-date> tags to the PQRI XML.


http://github.com/bradymiller/openemr/commit/40a1d07471b93a66c87f3867db93110456a28f13
CDR Module: Minor cosmetic fix in the patient summary screen.

-Patient Reminder widget height is not fixed to a mininum height.


http://github.com/bradymiller/openemr/commit/b5c16abdd536e145cade8c65f165f2e8ae673b26
CDR Module: Fixed email reminders.

1. For now, generating message using action title and categories labels.
2. Showed authorization for Email and SMS in the reminders screens.