A Prototype for Executable and Portable eCQMs Using the KNIME
Transcription
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