CMS Quality Reporting
MU Requirements
Meaningful Use Measures:
Report ambulatory quality measures to CMS or the States. For 2011, provide aggregate numerator and denominator through attestation as discussed in section II(A)(3) of this proposed rule. For 2012, electronically submit the measures as discussed in section II(A)(3) of this proposed rule.
Certification Criteria for EHR:
- Calculate and electronically display quality measure results as specified by CMS or states.
- Enable a user to electronically submit calculated quality measures in accordance with the standard specified in Table 2A row 5.(CMS PQRI 2008
Registry XML Specification#,+). see: PQRI XML Output for CQM
- ICSA says the we need to choose 9 to pass certification. We had 6 listed as mandatory, I added 3 --Tony - www.mi-squared.com 06:08, 14 March 2011 (UTC)
- NQF 0013 Hypertension: Blood Pressure Measurement
- NQF 0028 Tobacco Use Assessment / Tobacco Cessation Intervention
- NQF 0024 Weight Assessment and Counseling for Children and Adolescents
- NQF 0038 Childhood immunization Status
- NQF 0041 Influenza Immunization for Patients ≥ 50 Years Old
- NQF 0043 Pneumonia Vaccination
- NQF 0059 Diabetes Control: Hemoglobin A1C >9.0%
- NQF 0064 Diabetes Control: LDL < 100mg/dl
- NQF 0421 Adult Weight Screening and Follow-Up
Provider Requirements
The following at the minimum needed by a Provider to use a certified system. There are a total of 44 needed by the Vendor (us ...)
- NQF 0013 Hypertension: Blood Pressure Measurement
- NQF 0028 Tobacco Use Assessment / Tobacco Cessation Intervention
- NQF 0421 Adult Weight Screening and Follow-Up
- NQF 0024 Weight Assessment and Counseling for Children and Adolescents
- NQF 0041 Influenza Immunization for Patients ≥ 50 Years Old
- NQF 0038 Childhood immunization Status
- Choice of remaining MU/PQRI CQMs (from remaining 32)
- Choice of remaining MU/PQRI CQMs (from remaining 32)
- Choice of remaining MU/PQRI CQMs (from remaining 32)
Details
- CQM PQRI Vendor Required Measures - This is a summary of the measure titles required (44 in all). Details of each measure (specs, etc) should be added there.
Data Mapping Project
- Mapping OpenEMR Data for CCD/CCR and CQM - This page has several spreadsheets that will be used to map MU defined data elements to their source in OpenEMR
Proposed Solution
1. Select a number of reports from CMS PQRI 2008 list, which has a total of 119 reports. Based on SF discussions, we selected 5 quality measures. See the listing.
2. Analyze the selected reports to see if the data is already available in OpenEMR. We propose the creation of a new section in Reports to pull the reports.
3. Determine how to prepare the reports. A number of changes are required in OpenEMR to make the data available for reporting use.
4. Prepare a test set based on the reporting requirements.
5. Build reporting structure in Administrator section.
Effected Code, Tables, etc
For all quality measures, CPT Category II codes are required. These codes are non-billable. Currently, all CPT codes are stored in "codes" table with a code type of 1. We propose to assign a new code type to Category II codes. There is no change to the table itself.
-- -- Table structure for table `codes` --
DROP TABLE IF EXISTS `codes`; CREATE TABLE `codes` (
`id` int(11) NOT NULL auto_increment, `code_text` varchar(255) NOT NULL default , `code_text_short` varchar(24) NOT NULL default , `code` varchar(10) NOT NULL default , `code_type` tinyint(2) default NULL, `modifier` varchar(5) NOT NULL default , `units` tinyint(3) default NULL, `fee` decimal(12,2) default NULL, `superbill` varchar(31) NOT NULL default , `related_code` varchar(255) NOT NULL default , `taxrates` varchar(255) NOT NULL default , `cyp_factor` float NOT NULL DEFAULT 0 COMMENT 'quantity representing a years supply', `active` TINYINT(1) DEFAULT 1 COMMENT '0 = inactive, 1 = active', PRIMARY KEY (`id`), KEY `code` (`code`)
) ENGINE=MyISAM AUTO_INCREMENT=1 ;
We propose that Category II codes be mapped to the straight codes in procedure_type table using a procedure_panel category for two reasons:
- We need the code for reporting and
- Make it easier for the provider to order them together. See http://www.openmedsoftware.org/wiki/Computer_Physician_Order_Entry for table details.
CQM Report Development
--Ken Chapple 18:30, 22 April 2011 (UTC)
Setup:
Do a fresh install of openemr.
Here is the wiki link for the essential rules for MU certification:
http://www.openmedsoftware.org/wiki/CMS_Quality_Reporting
See the list of 9 NFQs under the heading "MU Requirements." These are the reports we must implement.
The goal is to implement the list of 9 rules from the wiki link above.
The file, File:EP MeasureSpecifications.zip contains specifications for the reports. The folder names correspond to the NFQ numbers of the reports. The PDF file contains the human-readable specification for the report (ie: what you have to implement). The spread sheet contains codes that may or may not be required to check for in the report.
TODO ITEMS (CQM):
- Allergy.php 50: // TODO check for allergy (wherever it exists... lists 'allergy' type probably.)
- Pretty much use the same function as doPatientCheck in your Diagnosis.php (based on exist_lists_item() from library/clinical_rules.php) with the 'allergy' medical type.
- Characteristic.php 27: // TODO check for terminal illness
- Communication.php 23: // TODO read from referrals to check for ditary consult
- Helper.php 20: // TODO append options array
- LabResult.php 25: // TODO where to check for lab result ???
- There are two example. One in clinical_rules.php which isn't that useful since it relies on knowing the title of the lab (plan to allow search by procedure/lab code but not time yet. Ram actually already built a query that will find labs by their procedure/lab code in the old library/ruleset/ruleSet.class.php file, which can be found in Ram's commit (not the sql query near the end): https://github.com/openemr/openemr/commit/1b6220b06efdd69c7478a795589f0e913c918274
- PhysicalExam.php 23: return "medical_problem"; // TODO this may not be the correct type for BMI icd9 codes
- AbstractAmcReport.php 85: // TODO calculate results
- DiabetesDenominator.php 18: // TODO how to check for these medication types?
- NFQ_0041/Denominator.php 18: // TODO check logic
- NFQ_0041/Exclusions.php 18: // TODO check logic
- NFQ_0041/Numerator.php 18: // TODO check logic
- Need to add ICD9 diagnosis codes for all constants in Diagnosis.php in codes.php
- There are some immunization codes missing in list_options that should be added, and to codes.php
- codes.php 78: Medication::MEASLES_VAC => array( // TODO
- codes.php 86: Medication::MUMPS_VAC => array( // TODO
- codes.php 94: Medication::RUBELLA_VAC => array( // TODO
- Need to add enc mappings for a couple new encounter types see ClinicalTypes/sql/list_options.sql
- May need to check other place for med types than list_options in ClinicalTypes/Medication.php
"Development (CQM):"
The principal files of interest are:
- openemr/library/classes/rulesets/RuleTypes.php
- contains skeletons or rules to be implemented
- maps a rule id to a report class to be instantiated:
- 1. create a file in /reports
- 2. create a directory in /reports with the SAME as the file (this is important for class autoloading)
- 3. add classes for your numerators, denominator, exclusions, initial patient population specified in the pdf for the NFQ you're implementing
- 4. the PopulationCriteria class organizes these. the top-level report class organizes your population criteria.
- 5. use ClinicalTypes and Helper wherever possible to separate report logic from report data.
- openemr/library/clinical_rules.php
- "engine" code
- openemr/library/patient.inc
- contains helper functions to gather data for implementing reports
- openemr/library/forms.inc
- contains helper functions to gather data for implementing reports
Use the already implemented rules as a guide for implementing new rules.
Testing:
Create test patient data to trigger report generation based on the rule's criteria. This may involve creating encounters, entering "vitals" and creating history and lifestyle data.
I recommend saving an export of your database schema and data after you have completed testing for a particular rule.
"TODO items:"
"Odd Elements:"
Title | NFQ number element initially found | Function (ruleSet.class.php) | Notes/Actions |
---|---|---|---|
Care goal: follow-up plan BMI management | 0421 | rule_adult_wt_screen_fu_cqm() | ... |
Communication provider to provider: dietary consultation order | 0421 | rule_adult_wt_screen_fu_cqm() | ... |
Patient characteristic: Terminal illness | 0421 | rule_adult_wt_screen_fu_cqm() | Is there a flag, or diagnosis mapping to terminal diagnosis? |
Diagnosis active: Pregnancy | 0421 | rule_adult_wt_screen_fu_cqm() | (DONE) can't find a field for pregnancy in 'form_ros' or 'form_reviewofs' |
Physical exam not done: patient reason | 0421 | rule_adult_wt_screen_fu_cqm() | ... |
Physical exam not done: medical reason | 0421 | rule_adult_wt_screen_fu_cqm() | ... |
Physical rationale physical exam not done: system reason | 0421 | rule_adult_wt_screen_fu_cqm() | ... |
Weight Assessment and Counseling for Children and Adolescents | 0024 | rule_wt_assess_couns_child_cqm() | numerator 1: Physical exam finding: BMI percentile (where to get data) |
Weight Assessment and Counseling for Children and Adolescents | 0024 | rule_wt_assess_couns_child_cqm() | numerator 2: Communication to patient: counseling for nutrition (where to get data) |
Weight Assessment and Counseling for Children and Adolescents | 0024 | rule_wt_assess_couns_child_cqm() | numerator 3: Communication to patient: counseling for physical activity (where to get data) |
Owner and Status
Ken
Links
- CCHIT_MU_2011_Project
- CMS PQRI 2008 Specifications
- AMA Quality Measures for 2008 PQRI
- Associated with Sourceforge forum thread: http://sourceforge.net/projects/openemr/forums/forum/202506/topic/3517899
- Ten_Most_Expensive_Diseases