A Prototype for Executable and Portable eCQMs Using the KNIME Analytics
Platform
Huan Mo, MD MS Jennifer Pacheco, Luke Rasmussen, Peter Speltz, Jyotishman Pathak, PhD, Joshua Denny, MD, MS
William K Thompson, PhD
eCQMs: electronic clinical quality measures
KNIME: Konstanz Information Miner
Try it: http://projectphema.org
Twitter: @henryhmo
Disclosure
I disclose that neither I nor my partners have relevant financial relationships with commercial interests.
Introduction: A story of CMS30
• My (hypothetical) “in-law” had a heart attack (AMI) last month, and gratefully the friendly and smart doctors in our neighborhood hospital saved her life!
(One more thing)
• Did our doctors remember to prescribe her a statin medication at discharge to let my “in-law” live longer?
AMI: acute myocardial infarction
our healthcare system has a plan to answer…
But:
• Where is my doctor and hospital?
• Where am I?
• Where are my medical records?
Fine print: Your EHR needs to
be standardized and certified!
EHR: Electronic health records
But… I want to know it NOW!
Goals
• Create a transportable and executable artifact of CMS30 (titled: Statin Prescribed at Discharge)
• Measure patient populations in
– Vanderbilt University Medical Center
– Northwestern University Memorial HealthCare
• Help you to measure your own patient population.
Phenotype Modeling and Execution Architecture
Local, Local, Local!
QDM: Quality data model
VSAC: Value Set Authority Center
FHIR: Fast Healthcare Interoperability Resources
Background: CMS30
Acute myocardial infarction (AMI) patients who are prescribed a statin at hospital discharge. (Measure of the Proportion)
• Initial Patient Population/denominator: All hospital discharges (adults) for AMI.
• Denominator Exclusions: e.g., patient who expired, clinical trials
• Denominator Exceptions: e.g., Recent normal Low-density lipoprotein (LDL)
• Numerator: Statin prescribed!
Quality Data Model (QDM)
KNIME KNIME: Konstanz Information Miner
Phenotyping with KNIME (Colon Polyps, from PheKB.org)
Test file, can be replaced by a JDBC reader
Imported text processing classes from a NLP jar package
JDBC: Java database connectivity technology
NLP: Natural language processing
Methods Tasks of implementing of QDM
• Data Elements:
– "Diagnosis, Active: Hospital Measures - AMI" using "Hospital Measures - AMI Grouping Value Set (2.16.840.1.113883.3.666.5.3011)"
• Temporal Operators:
– Normal LDL-c test <= 24 hour(s) starts after start of Encounter Performed: Encounter Inpatient
• Logical Operators: AND, OR, (AND) NOT
QDM: Quality Data Model
AMI: Acute myocardial infarction
LDL: Low-density lipoprotein
To Implement Data Elements
• Data type (e.g., diagnosis active)
– Implies a table in your EHR data warehouse
– Attributes: implies columns in the table
• Value Set:
– WHERE CODE in ($${Scodes}$$) • $${Scodes}$$ = “'410.51', '410.60', '410.61', '410.70', ...”
– WHERE REGEXP_LIKE(DRUG_NAME, '$${Smed_regexp}$$', 'i') • $${Smed_regexp}$$=“advicor|altoprev|altoprev.{1,10}mevacor|amlo
dipine.{1,10}atorvastatin|aspirin.{1,10}pravastatin...”
• Output: relational table/spreadsheet
RegExp: Regular Expression
Retrieving and Transforming Value Sets
• VSAC RESTful API: – Value Set Authority Center
– OID -> codes (e.g., ICD9, RxNORM)
• RxNav (RxNORM API) Example: – “Amlodipine 5 MG / atorvastatin 40 MG Oral Tablet” (RxCUI:
597984 )
– Ingredients: amlodipine (RxCUI: 750199), atorvastatin (RxCUI: 750199)
– Regular Expression String: “amlodipine.{1,10}atorvastatin|atorvastatin.{1,10}amlodipine”
CUI: concept unique identifier
OID: Object identifier
Temporal Operations (in a Meta Node)
• Example: <= 30 day(s) start before start of
Left Events In
Right Events In
Left Events Out
Right Events Out
Difference
in Days
0 ~ 30 Inner join
two tables
Logical Operators
• AND (intersection)
– Inner join two inputs (on patients or patients + events?)
– Project to output table
• AND NOT (exclusion/subtraction)
– Left outer join, and keep only rows with null values on the right
• OR (union)
– Project both inputs to patients or patients + events
– concatenate these two tables
What do you mean by AND?
• "Patient Characteristic Birthdate: birth date" >= 18 year(s) starts before start of "Occurrence A of Encounter, Performed: Encounter Inpatient"
AND
• "Diagnosis, Active: Hospital Measures - AMI (ordinality: 'Principal')" starts during "Occurrence A of Encounter, Performed: Encounter Inpatient"
KNIME Workflow for CMS30
VSAC: Value Set Authority Center Try it: http://projectphema.org
Test Data
• Vanderbilt University: Synthetic Derivative(SD)
– De-identified EHR
– 35,842 genotyped patients
• Northwestern University:
– Northwestern Medicine Enterprise Data Warehouse (NMEDW)
– 4838 genotyped patients
• Measure Period: 2005-05-01 to 2012-04-30
Results: local customizations
• Laboratory (LDL-c)
– Neither Vanderbilt or Northwestern has mapped local code to LOINC
– Vanderbilt: a basic LOINC to local code mapping table (most common ~200 labs)
– Northwestern: like ‘%LDL%’
• Medication (Discharge, statin)
– Vanderbilt:
• DS (discharge summaries), PL (problem lists), inpatient order
• Regular Expression
– Northwestern:
• Source=‘Cerner’ (discharge, order, active)
• drug_class=‘Statin (HMG-CoA Reductase Inhibitors)’
• (As courtesy) regular expression of drug names
Result: Scores
• Vanderbilt: (By events)
– “Discharge Medication”: 300/762 = 39.4%
– Problem List: 515/840 = 61.3%
– Inpatient Order: 726/900 = 80.7%
– Combined: 788/917 = 85.9%
– Combined: (By patients) 657/766 = 85.7%
• Northwestern: (By patients)
– 85%
Try it: http://projectphema.org
Discussion: Problem addressed
You’ll have a really nice
engine, but no gas (right data)
Complaint #2: too much data
already
Last-mile solution
• Partition of eCQMs to:
– Major transportable computation for complex logic
– Minor ad-hoc adaptation to local environments and/or for each projects (last mile).
eCQM: electronic clinical quality measure
Next Steps
• An automatic translator for converting eCQMs to KNIME workflows. (Alpha version finished)
• To develop KNIME native nodes (instead of meta nodes) for QDM functions.
• You have a platform even better than KNIME for this solution (we are NOT selling KNIME).
• Let this solution solve your phenotyping and eCQM problems.
eCQM: electronic clinical quality measure Try it: http://projectphema.org
Teaser: Direct translate of
CMS30
Acknowledgement
• Funding: PhEMA (R01 GM105688)
• All PhEMA Members
+ Rick Kiefer
+ Guoqian Jiang
+…
Other PhEMA presentations:
CRI-02 (Wed): Modular Architecture
CRI-30 (Fri): Semantic Framework
Try it:
http://projectphema.org
Twitter: @henryhmo