CDR Project QA Testing

From OpenEMR Project Wiki
(Redirected from CDR Project QA/Testing)

CDR Project source location(s)

Is now in the official sourceforge OpenEMR codebase.

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. It is possible to create duplicate rule with the same name and add to the Rules list please see the attachment for more details.

  • Not a big deal. Very low priority.
  * 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

2. It is possible to create duplicate rule filters with the same name for a given rule.

  • Not a big deal. Very low priority.
  * No Warning message or Validations implemented while creating duplicate rule filters.
  * Go to Administration->Rules
    Click on any rule
    Add multiple duplicate filters under the  "Demographics filter criteria" section.
  * April 1, 2011
  * Who owns the fix action: Ram/Tony
  * Date Fixed
  * Where is the fix posted

3. Broken sorting.

  • Not a big deal. Very low priority.
  * Go to Administration->Rules
    Click on asc/desc sorting for any columns. Doesn't sort.
  * Go to Administration->Patient Reminders
    Click on asc/desc sorting for any columns. Always sorts in asc.
  * April 1, 2011
  * Who owns the fix action: Ram/Tony
  * Date Fixed
  * Where is the fix posted

CDR Official Branch

Layperson (user) summary of official branch features

Migrated this section to the CDR User Manual Wiki Page.

CDR Module Commits

(Note this is only for historical purposes and only includes commits before we merged this with main sourceforge codebase. Now that this feature is in the main OpenEMR codebase, we are no longer keeping track of these commits.) (in order of first to last)

http://github.com/openemr/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/openemr/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/openemr/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/openemr/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/openemr/openemr/commit/e7c227084b26de50f534bd0ed6ca838b0510de54
Clarified database filters/targets algorithm and data objects.


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


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


http://github.com/openemr/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/openemr/openemr/commit/10d0e0faca6de7d6a7dbb79fbbd437e9e9959f27
CDR module bug fix - user_settings label for patient_reminders_ps_expand fixed


http://github.com/openemr/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/openemr/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/openemr/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/openemr/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/openemr/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/openemr/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/openemr/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/openemr/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/openemr/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/openemr/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/openemr/openemr/commit/44bc3843721e44d3946ccb40bfcb1522753d214c
Added the <encounter-from-date> and <encounter-to-date> tags to the PQRI XML.


http://github.com/openemr/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/openemr/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.


http://github.com/openemr/openemr/commit/405a902c95b37507adcca18954352bd0dc30dab3
CDR Module: Added date completed validation to the custom data entry gui.


http://github.com/openemr/openemr/commit/ba98c6858a755ec8fc1c582d0dfab374234309e6
CDR Module: Administration GUI.
  --Can be found at Administration->Rules

Authors:
Aron Racho <aron@mi-squared.com>
Ken Chapple <ken.chapple@gmail.com>
rammohan <rammohan@ensoftek.com>


http://github.com/openemr/openemr/commit/ac14c016f8b07f5d598565b7aaf39d50cb1fafe6
CDR Module: Administration screen that allows quick
            toggling of rules.

  -Can be found at Administration->Alerts


http://github.com/openemr/openemr/commit/17df773b1836f0d3fb2fb429b47dc259cab50bd6
CDR Module: Bug Fixes.

 - Allow listing of rules that are not activated
 - Fix Adminstration->Rules browse screen to collect
   rules and rules titles correctly, and to only show
   Reminder as a type for now.


http://github.com/openemr/openemr/commit/b64714afdce8d1e8afaae52096878bdbab499429
CDR Module: Admin GUI fix of reminder interval field validations.


http://github.com/openemr/openemr/commit/5516e6006a7031ff8fd2ded23d44cd0c8e618ec1
CDR Module: Bug Fixes

 -Ensure rules are editable even if without a type setting.
 -Removed a erroneous htmlspcialchars call.


http://github.com/openemr/openemr/commit/84fd3b6d4e5e8e2af39cbbe1636bed1216591825
CDR Module: GUI Admin fixes when using list_options table


http://github.com/openemr/openemr/commit/e9ecb9dab2701478751750b4c95085fd49355dbe
CDR Module: Fixed broken headers in Admin GUI. No longer require output buffering.


http://github.com/openemr/openemr/commit/2f74c59b884bfd99a93dc54db97a6ed9d2110bc0
CDR Module: Created a mechanism for building CQM/AMC rules sets.

 -Unlike the standard rules, these rules are hard-code in:
  library/classes/rulesets/ruleSet.class.php
  (This allows much more flexibility and is much more robust)
 -This will allow multiple developers to work on
  building the CQM/AMC rulesets simultaneously.
 -As an example coded the first cqm rule:
  Hypertension: Blood Pressure Measurement(NQF:0013)


http://github.com/openemr/openemr/commit/98df8c95189f8137d625b8b2e6282765ac1ade72
CDR Module: Cleaned up some database.sql lines. Still TO DO before commit to sourceforge:

1) Optimize/finalize the standard rules.
2) Organize/standardize database
3) Create the sql upgrade code
4) Fix bugs in reports related to cqm/amc mechanism.
5) Ensure session restores in the admin gui.
6) Ensure simple bugs in admin gui are fixed.


http://github.com/openemr/openemr/commit/7073a1d466db20860106f3f8890b4e9d396498d9
CDR Module: Added CDR global options and secured the patient summary widgets with an acl.

 -CDR global options can be found at Adminsitraiton->Globals->CDR tab.
 -Both the Clinical Reminder and Patient Reminder widgets in the
   patient summary screen are protected by the patients->med aco.


http://github.com/openemr/openemr/commit/92d94c6faf6f6f5c7ecd7aba5174c0bfefdbbf7e
CDR Module: Fix for CQM framework.

  - Fix to collect patient dob.
  - Clarified code in using of patient id.
  - Fix htn rule bug to search for vitals of each patient (rather than all)


http://github.com/openemr/openemr/commit/ece9cf7c9faffff49616298a30c171ff0db79941
CDR Module: Finalized the standard rule sets.

TO DO before commit to sourceforge:
    1) sql upgrade script
    2) organize database.sql code
    3) allow non-continuous group ids in engine
    4) Ensure session restores in the admin gui.
    5) Ensure simple bugs in admin gui are fixed.
    6) Fix bugs in reports related to cqm/amc mechanism.


http://github.com/openemr/openemr/commit/d5fdc4911b0c42e56597d4b654cd2aa19c34a0e5
CDR Module: Finished organizing database.sql and upgrade sql script.

TO DO before commit to sourceforge:
 1) allow non-continuous group ids in engine
 2) Ensure session restores in the admin gui.
 3) Ensure simple bugs in admin gui are fixed.
 4) Fix bugs in reports related to cqm/amc mechanism.


http://github.com/openemr/openemr/commit/d65396a69dd69cc366030ca8aaf3db32669fd206
CDR Module: Incorporated restore session in admin gui scripts.

TO DO before commit to sourceforge:
 1) allow non-continuous group ids in engine
 2) Fix bugs in reports related to cqm/amc mechanism.


http://github.com/openemr/openemr/commit/660f22c6ff5cccab72d5f835072601ace83a35b5
CDR Module: Support non-continuous target/action group ids.

TO DO before commit to sourceforge:
 - Fix some simple bugs (age,allergies,surgeries) in admin gui.


http://github.com/openemr/openemr/commit/fa8c4f80da36de4e457be094044195dd7c0c781d
CDR Module: Ready for review by community.


http://github.com/openemr/openemr/commit/b45d022710a41184bbeaca8a9ca026e12f3f5b31
CDR Module: Fixed white screen of death bug when missing the Curl extension


http://github.com/openemr/openemr/commit/d94c6f86a642af279ff96c8ed5e1ba2968c868f4
CDR Module: Fixed restoreSession calls and converted redirect mechanism to javascript.


http://github.com/openemr/openemr/commit/7502ea46d6f08959346ca2f248d1322334b40bc5
CDR module: Incremented database indicator in version.php to prepare for merge of CDR module code into official codebase