CQM priortization

johnbwilliams wrote on Wednesday, August 25, 2010:

Further drill down on CQM certification requirements … credit Selvi for pushing this issue the last couple of weeks … while implementation of all 44 CQMs is key to Meaningful Use of OpenEMR by a range of providers,  our latest reading of the NIST cert test spec indicates that only nine (ten if you count NQF 0028 a & b as two) CQMs are required for ONC certification.  These are:

1)  NQF 0013   Hypertension: Blood Pressure Measurement
2)  NQF 0028a  Tobacco Use Assessment
3)  NQF 0028b  Tobacco Cessation Intervention
4)  NQF 0421   Adult Weight Screening and Follow-Up
5)  NQF 0024   Weight Assessment and Counseling for Children and Adolescents
6)  NQF 0041   Influenza Immunization for Patients ≥ 50 Years Old
7)  NQF 0038   Childhood immunization Status
8)  Choice of remaining MU/PQRI CQMs
9)  Choice of remaining MU/PQRI CQMs
10) Choice of remaining MU/PQRI CQMs 

Focusing on these ten enables prioritization of the data model and UI implementation.

bradymiller wrote on Wednesday, August 25, 2010:

John,
Can you provide a list of all 44. Then can think about a mechanism that would support them all in the long run (although agreed just getting the 10 in short term for MU makes sense). This strategy could also lead us to a nice mechanism for patient reminders (ie. if uptodate on health maintenance).
thanks,
brady

johnbwilliams wrote on Wednesday, August 25, 2010:

Brady,

I’m unable to list all 44 in the space provided here.
For a summary description (& detailed specs),
See this file:   retooled_measure_titles_09JUL10  (MS Excel),
From the download:  EP Measure Specifications ,
at http://www.cms.gov/QualityMeasures/03_ElectronicSpecifications.asp
Note that my proposed DB model for OpenEMR is meant to support the  necessary data elements for the 44 CQMs, in addtion to the fully coded CCR & CCD patient summary reports.  Tony has volunteered to post the DB model & 44CQM summary on the OpenEMR Wiki.   Big unknown/need is a UI design supporting the CQMs/CCR/CCD.

John

tmccormi wrote on Thursday, August 26, 2010:

http://www.openmedsoftware.org/wiki/CMS_Quality_Reporting - I’ve started updating this page, I’ll add the rest as I go…
-Tony

bradymiller wrote on Thursday, August 26, 2010:

hey,

My suggestion is to work out a nice rules tables (columns for sex, age, dx codes, table pointers, action) and store list of generic actions in the list_options table (couple extra columns that can customized for them). Then can modify the the lists gui to manage the targets and can bastardize a copy of the layout gui to manage the rules table. When these rules and targets are in place, should then be relatively easy to do whatever we want (for gross reporting and also individual patient clinical decision support).

-brady

bradymiller wrote on Thursday, August 26, 2010:

here’s my quick thoughts on a database scheme to hold the rules and targets (just some quick thoughts):

table ‘rules_target’:
‘id’ (simple incrementing identifier id)
‘title’ (rule title)
‘target’ (maps to ‘id’ of target_actions table)
‘interval’ (probably best to have separate columns for years,months,weeks,hours,minutes)

table ‘rules’:
‘rule_id’ (maps to ‘id’ of rules_target table)
‘include_flag’ (flag to decide whether rule is for include/exclude)
‘method’ (string containing ‘min_age’, ‘max_age’, ‘sex’, ‘icd9’ etc.)
‘value’ (contains the data element)

table target_actions:
‘id’ (simple incrementing id)
‘category_title’ (holds category title of the action)
‘target_title’ (holds the title of the action)

table actions:
‘target_id’ (maps to ‘id’ of target_action table)
‘method’ (string containing method of the action)
‘value’ (depends on method)

I think this type of starting point would allow a very flexible rule system.

-brady

tmccormi wrote on Thursday, August 26, 2010:

Overlap and reuse for Clinical Decision Rules comes to mind here… hmm…
-Tony

bradymiller wrote on Thursday, August 26, 2010:

hey,

The last testing I did on the “Clinical Decisions Rules” (CDR) module was very dysfunctional; test it out extensively and you’ll likely see what I mean. Since rules may be a way to create this CMQ stuff, my thoughts are to redo the CDR module if the rules methodology works well for the CMQ.

Here’s my next iteration of tables:

table ‘rule’:
‘id’ (rule title taken from ‘list_options’ table)
‘interval’ (probably best to have separate columns for years,months,weeks,hours,minutes)

table ‘rule_item’:
‘rule_id’ (maps to ‘id’ of rule table)
‘include’ (flag to decide whether rule is for include/exclude)
‘method’ (string containing ‘min_age’, ‘max_age’, ‘sex’, ‘icd9’ etc.)
‘value’ (contains the data element)

table action:
‘rule_id’ (maps to ‘id’ of ‘rule’ table)
‘method’ (string containing method of the action)
‘value’ (depends on method)

My time’s currently a bit limited, but I’ll start playing around with this to see if I can get it to report the above 10 items.

-brady

johnbwilliams wrote on Thursday, August 26, 2010:

We’ve been working with “ARC”, an RDF system, as a CQM rules engine.
This is a project of the OpenEMR-WorldVistA cross-community collaboration that meets Tuesdays 9pm EST.
ARC ( http://arc.semsol.org/ )  is a flexible RDF system for semantic web and PHP practitioners, and  easy to bundle with existing PHP/MySQL software.

After playing with it, I wonder how much value a rules engine has for CQMs.  It seems pretty easy to express the rules and criteria directly in PHP.    As an example, below is pseudo code for the 1st (hypertension) CQM:

Begin
Initialize Denominator, Numerator = 0
MP = Measure period = Jan 1 through Dec 31 of current year;               
For all patients
{
     IncNum = No;
     If (  (patient age >= 18 before (not during) MP)    AND
            (Patient has active diagnosis of hypertension (match w/ code list)  )   Then

             {    initialize e-count = 0;
                   initialize encounter list;
                   For All of this Patient’s Encounters
                          if encounter = (outpatient OR nursing facility) AND encounter date <= MP inclusive;
                                 {  inc e-count; 
                                     append encounter to encounter list;
                                   }
                       
                  If e-count >=2 then     
                         {  Increment Denominator;
                             For  each encounter in encounter list
                                   For all physical exam findings for patient
                                          if systolic BP @  encounter =  specified code
                                             then if  diastolic BP @ encounter =  specified code
                                                then IncNum = Yes;
                                   
                          }
                 } 
    If IncNum = Yes,  then Increment Numerator;
}
Measure = Numerator/Denominator;
Write Measure Result to output file
End

http://arc.semsol.org/home

johnbwilliams wrote on Thursday, August 26, 2010:

List

For me, the toughest part to figure out is how to integrate the collection of CQM-required patient data into the clinical user interface of OpenEMR.     Any ideas on how to do this?

Thanks,
John

tmccormi wrote on Friday, August 27, 2010:

I have posted the list of 44 on the wiki: 
http://www.openmedsoftware.org/wiki/CQM_PQRI_Vendor_Required_Measures

bradymiller wrote on Saturday, August 28, 2010:

hey,

Developing rules seems better, because we can then leverage this in other parts of OpenEMR. I submitted the initial design of a clinical decision engine in the tracker (both a github branch and a patch), as proof of concept using the 7 CQM rules above. With the same rules, was able to have a clinical reminder widget on the patient summary and also produce the CQM report at Reports->Clinic->Quality Measures. It’s also 100% internationalized. Pretty cool, but still in early development. See the tracker item for the code/patch and more description:
http://sourceforge.net/tracker/?func=detail&aid=3055162&group_id=60081&atid=1245239#

-brady

bradymiller wrote on Sunday, September 19, 2010:

hey,

Here’s a screenshot of most recent CQM report from the most recent clinical decision engine. Still very early in development;most recent patch, github branch (http://github.com/bradymiller/openemr/tree/rules_5), and details can be found here:
http://sourceforge.net/tracker/?func=detail&aid=3055162&group_id=60081&atid=1245239#

-brady

johnbwilliams wrote on Monday, September 20, 2010:

Thats looks great, Brady.

Here is the list of ten CQMs the OpenEMR MU development group has chosen to implement for 2011 HHS certification requirements:

1. NQF 0013 Hypertension: Blood Pressure Measurement
2. NQF 0028a Tobacco Use Assessment
3. NQF 0028b Tobacco Cessation Intervention
4. NQF 0421 Adult Weight Screening and Follow-Up
5. NQF 0024 Weight Assessment and Counseling for Children and Adolescents
6. NQF 0041 Influenza Immunization for Patients = 50 Years Old
7. NQF 0038 Childhood immunization Status
8. NQF 0001 Asthma Assessment
9. NQF 0031 Breast Cancer Screening
10. NQF 0059 Diabetes: HbA1c Poor Control