A Prototype for Executable and Portable eCQMs Using the KNIME

A Prototype for Executable and Portable
eCQMs Using the KNIME Analytics
Platform
Try it: http://projectphema.org
Huan Mo, MD MS
Jennifer Pacheco, Luke Rasmussen, Peter Speltz,
Jyotishman Pathak, PhD, Joshua Denny, MD, MS
William K Thompson, PhD
[email protected]
Twitter: @henryhmo
eCQMs: electronic clinical quality measures
KNIME: Konstanz Information Miner
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
QDM: Quality data model
VSAC: Value Set Authority Center
FHIR: Fast Healthcare Interoperability Resources
Local, Local, Local!
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
Difference
in Days
Left Events Out
Left Events In
Inner join
two tables
Right Events In
0 ~ 30
Right Events Out
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)
Try it:
• All PhEMA Members
http://projectphema.org
+ Rick Kiefer
+ Guoqian Jiang
+…
Other PhEMA presentations:
CRI-02 (Wed): Modular Architecture
CRI-30 (Fri): Semantic Framework
[email protected]
Twitter: @henryhmo