Model-Driven Health Tools (MDHT) CDA Tools Overview

Slides:



Advertisements
Similar presentations
HL7 V2 Implementation Guide Authoring Tool Proposal
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
IHIC 2011 – Orlando, FL Amnon Shabo (Shvo), PhD HL7 Clinical Genomics WG Co-chair and Modeling Facilitator HL7 Structured Documents WG.
MDHT Update MDHT Next Steps MDHT MDMI Update MDMI Update MDMI Next Steps.
S&I Framework Testing HL7 V2 Lab Results Interface and RI Pilot Robert Snelick National Institute of Standards and Technology June 23 rd, 2011 Contact:
Green CDA Implementation Robert Worden Open Mapping Software Ltd HL7 UK
C-CDA Constraints FACA - Strategy Discussion June 23, 2014 Mark Roche, MD.
Clinical Documentation Architecture (CDA) S&I Framework One-Pager Series, Side 1 Background CDA is an XML-based standard prescribed by HL7 that specifies.
Electronic Submission of Medical Documentation (esMD) Clinical Document Architecture R2 and C-CDA Comparison April 24, 2013.
NIEM Healthcare Domain FHIM/S&I Framework Strategy 4/7/2011.
SRDC Ltd. 1. Problem  Solutions  Various standardization efforts ◦ Document models addressing a broad range of requirements vs Industry Specific Document.
Modeling with the ECCF SS ● UML Profile for ECCF ● UML Redefinition Semantics ● Compliance ● Consistency ● Conformance ● Validation ● Transformation ●
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
1 IHE Gazelle ObjectsChecker : Abderrazek Boufahja IHE-Europe, Gazelle team HL7 WGM Paris 2015 Eric Poiseau IHE-Europe,
IBM Software Group © 2005 IBM Corporation University of Nantes Eclipse dayMarch 2005 The Eclipse Modeling Framework and the IBM Model Transformation Framework.
MTEI Methods & Tools for Enterprise Integration
1 Copyright 2008 NexJ Systems Inc. Confidential and Proprietary - Not for Distribution. Open Source Strategy NexJ Systems Inc.
NIEM-UML Profile Justin Stekervetz, NIEM PMO
FHIM Overview How the FHIM can organize other information modeling efforts.
Guide to Using Message Maker Robert Snelick National Institute of Standards & Technology (NIST) December 2005
HL7 Version 3 – A new implementation direction Grahame Grieve CfH / Jiva / HL7 Australia co-chair Infrastructure & Messaging TS Project Lead, Eclipse OHF.
NHS CFH Approach to HL7 CDA Rik Smithies Chair HL7 UK NProgram Ltd.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Web Services and HL7v3 in IHE profiles Vassil Peytchev Epic.
Agenda Introduction to MDHT MDHT Capabilities MDHT support using Consolidated CDA 1.
December 15, 2011 Use of Semantic Adapter in caCIS Architecture.
© 2012 Health Level Seven ® International. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International.
Profiling Metadata Specifications David Massart, EUN Budapest, Hungary – Nov. 2, 2009.
National Institute of Standards and Technology Technology Administration U.S. Department of Commerce 1 Patient Care Devices Domain Test Effort Integrating.
CaBIG Semantic Infrastructure 2.0: Supporting TBPT Needs Dave Hau, M.D., M.S. Acting Director, Semantic Infrastructure NCI Center for Biomedical Informatics.
Tools for Diagrammatic Specifications Stian Skjerveggen Supervisors: Yngve Lamo, Adrian Rutle, Uwe Egbert Wolter.
Modeling Tools for Healthcare Technical Overview April 8, 2009.
Automating the production of CDA R2 artefacts using openEHR Archetypes and Templates. Making Health Compute December 5 th, 2007.
November 1, 2006IU DLP Brown Bag : Fall Data Integrity and Document- centric XML Using Schematron for Managing Text Collections Dazhi Jiao, Tamara.
Summary Report Project Name: Model-Driven Health Tools (MDHT) Brief Project Description: Support the complete lifecycle of designing CDA implementation.
L SERVICE DELIVERY Pharmacy Public Health Provider Interoperability Services Data Interchange Legacy System Adapters Simulator Health Service Bus Infrastructure.
Software Group / Emerging Technologies © 2005 IBM Corporation BICS V2.0 Business Information Conformance Statements ….d eclare YOUR exact information constraints.
MDHT Architecture Diagram Rama Ramakrishnan 1. Introduction The intent is to capture the high level architecture of the MDHT. The following diagrams are.
Virtual Medical Record Aziz Boxwala, MD, PhD March 12, 2013.
Networking and Health Information Exchange Unit 5b Health Data Interchange Standards.
From RIMBAA to SIMBAA ? Robert Worden Open Mapping Software Ltd
Summary Report Project Name: Model-Driven Health Tools (MDHT) Brief Project Description: Support the complete lifecycle of designing CDA implementation.
National Institute of Standards and Technology Technology Administration U.S. Department of Commerce 1 Patient Care Devices Domain Test Effort Integrating.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
1 Healthcare Information Technology Standards Panel Care Delivery - IS01 Electronic Health Record (EHR) Laboratory Results Reporting July 6, 2007.
Introduction to HL7 Version 3 W. Ed Hammond February 25, 2008.
S&I Framework – Transitions of Care Reference Implementation 0 Value Proposition For Using the Transitions of Care Reference Implementation For Consolidated.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
Dictionary based interchanges for iSURF -An Interoperability Service Utility for Collaborative Supply Chain Planning across Multiple Domains David Webber.
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
September 6, GJXDM Users Conference NCIC Schema Challenges Patrice A. Yuh
Summary Report Project Name: Model-Driven Health Tools (MDHT) Brief Project Description: Support the complete lifecycle of designing CDA implementation.
Summary Report Project Name: Model-Driven Health Tools (MDHT) Brief Project Description: Support the complete lifecycle of designing CDA implementation.
Helping the Cause of Medical Device Interoperability Through Standards- based Test Tools DoC/NIST John J. Garguilo January 25,
PIX/PDQ – Today and Tomorrow Vassil Peytchev Epic.
CDA Overview HL7 CDA IHE Meeting, February 5, 2002 Slides from Liora Alschuler, alschuler.spinosa Co-chair HL7.
CCD and CCR Executive Summary Jacob Reider, MD Medical Director, Allscripts.
1 Model Driven Health Tools Design and Implementation of CDA Templates Dave Carlson Contractor to CHIO
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
*** Draft *** Information architecture: meeting past and current HL7 requirements A project of OMG and HL7 Report May 27 th 2009 Dave Carlson and Jobst.
Model-Driven Health Tools (MDHT) CDA Tools Overview John T.E. Timm (IBM Research) and David A. Carlson (Veterans.
Healthcare-oriented Modeling Environment ( HoME ) Managed jointly by: Veterans Health Administration (VHA) IBM modeling-mdt.projects.openhealthtools.org.
Unit 4 Representing Web Data: XML
Summary Report Project Name: Model-Driven Health Tools (MDHT)
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
Templates & Implementation Guides
Execute your Processes
Graphical Modeling of INFOD applications
Software Architecture & Design
Presentation transcript:

Model-Driven Health Tools (MDHT) CDA Tools Overview http://mdht.projects.openhealthtools.org John T.E. Timm, IBM Research David A. Carlson, Contractor to the Veterans Health Administration

Motivation Healthcare interoperability standards for clinical documents have: A steep learning curve due to lengthy and complex specifications Lack of tooling to support template model design and implementation No formal methodology/best practices for developing templates and implementation guides Current implementation approaches are inadequate

Current Implementation Approaches Low-level XML processing technologies e.g. SAX, DOM, XPath API is generic, not domain-specific Instance validation through XML Schema and Schematron Requires intimate knowledge of CDA XML structure (and lots of code) XML binding techniques e.g. JAXB, EMF-XSD, XMLBeans Not suited for code generation with very complex schemas If code generation succeeds, API is oriented towards base CDA XML structure RIM-based approaches Take HL7 artifacts (e.g. MIF) as input RIM-based object model is taken together with instance data and serialized/deserialized to/from XML API is oriented towards abstract RIM structure

CDA Tools Objectives Accelerate and lower cost of adopting CDAr2 standard Provide standard OOAD-based methodology/tooling for modeling CDA templates Provide a model-driven framework for generating runtime API that supports: Domain specific API (e.g. BloodPressureReading instead of Observation) Construction of instances that conform to one or more templates Consumption of XML instances that deserialize into appropriate template Support the validation of instances against constraints defined in model

Users Healthcare IT Standards Developer/Publisher Create new models/templates Combine and extend existing models Publish Implementation Guides (IG), IHE Profiles, Data Dictionaries Healthcare IT Standards User/Implementer Use generated runtime API in healthcare data exchange applications (e.g. EMR adapters to export/import CDA instances) Minor modifications to existing models/templates

Standards user / implementer Implementation Guide (PDF) Model-to-Model Transformation Model-to-Model Transformation Code generation Domain Template Model (UML+OCL) Implementation Model (UML+OCL) Code Generation Model (EMF) Runtime API (Java) Produce, consume, validate CDA Instances (XML) Standards developer / publisher

UML Profile for CDA What is a UML Profile? Generic mechanism supported by most modeling tools to refine/customize a UML model Profiles are applied to models and contain stereotypes Stereotypes are applied to model elements and contain properties Allows the modeler to specify additional information (metadata) directly in the template model Metadata is used in the model-to-model transformation to: Generate OCL constraints that correspond to conformance rules in IG Attach various annotations used downstream during code generation and at runtime

CDA Template Modeling Constraints are modeled using UML properties and directed associations in conjunction with stereotypes from the CDA Profile Types of constraints: Property constraints Used to specify fixed or default value Used to restrict cardinality and/or data type Vocabulary constraints on coded attributes Used to restrict code, codeSystem, etc. Template-related constraints Template id Template relationships (is-a, has-a)

CDA Template Modeling - relationships Generalization/inheritance/”is-a” Modeled using standard UML generalization Examples: hitsp::Condition is a ihe::ProblemConcernEntry ihe::ProblemConcernEntry is a ihe::ConcernEntry ihe::ConcernEntry is a ccd::ProblemAct ccd::ProblemAct is a cda::Act Association/containment/”has-a” Modeled using UML directed association ccd::ContinuityOfCareDocument has a ccd::ProblemSection ccd::ProblemSection has a ccd::ProblemAct ccd::ProblemAct has a ccd::ProblemObservation

CDA Template Models We are currently working on implementations of the following CDA-based document types: Continuity of Care Document (CCD) IHE Content Profiles HITSP C32 Patient Summary Public Health Case Report (PHCR) IHE Lab Report Document HITSP C74 Personal Health Monitoring Report Essential Hypertension

IHE Template Model (subset, work-in-progress)

HITSP Template Model (C32 and C83)

CCD Example: Conformance Rule CONF-140: CCD SHOULD contain exactly one and SHALL NOT contain more than one Problem section (templateId 2.16.840.1.113883.10.20.1.11). The Problem section SHALL contain a narrative block, and SHOULD contain clinical statements. Clinical statements SHOULD include one or more problem acts (templateId 2.16.840.1.113883.10.20.1.27). A problem act SHOULD include one or more problem observations (templateId 2.16.840.1.113883.10.20.1.28).

CCD Example: Modeling the Conformance Rule Create classes that extend the CDA model (one for each template): ContinuityOfCareDocument (extends cda::ClinicalDocument) ProblemSection (extends cda::Section) ProblemAct (extends cda::Act) ProblemObservation (extends cda::Observation) Apply stereotypes from CDA profile to classes: <<cdaTemplate>> stereotype is applied to all classes templateId stereotype property value is specified Create directed associations between classes: ContinuityOfCareDocument -> ProblemSection ProblemSection -> ProblemAct ProblemAct -> ProblemObservation Multiplicity (upper bound) of the association may be specified to indicate exactly one or more than one Apply stereotypes to associations: <<associationValidation>> stereotype is applied to all associations severity (ERROR, WARNING, INFO) and message property values are specified

CDA Template Model for CCD Problem Section

Model-to-Model Transformation Input: domain template model (UML) Process UML model elements and produce: OCL constraints for validating template instance Annotations for instance population and validation support Additional directives to EMF for model import / code generation Output: implementation model (UML)

Generated OCL constraints ContinuityOfCareDocument_templateId: self.hasTemplateId(‘2.16.840.1.113883.10.20.1’) ContinuityOfCareDocument_problemSection: self.getSection()->one(sect : cda::Section | sect.oclIsKindOf(ccd::ProblemSection)) ProblemSection_templateId: self.hasTemplateId(‘2.16.840.1.113883.10.20.1.11’) ProblemSection_problemAct: self.getAct()->exists(act : cda::Act | act.oclIsKindOf(ccd::ProblemAct)) ProblemAct_templateId: self.hasTemplateId(‘2.16.840.1.113883.10.20.1.27’) ProblemAct_problemObservation: self.getObservation(obs : cda::Observation | obs.oclIsKindOf(ccd::ProblemObservation)) ProblemObservation_templateId: self.hasTemplateId(‘2.16.840.1.113883.10.20.1.28’)

Code generation Implementation model is imported into Eclipse Modeling Framework (EMF) Ecore model – contains annotations with constraints from original UML model Generator model – contains information on how to generate Java code from Ecore model Generator model with customized code generation templates used to generate Java classes/packages Code generation templates use annotations added in model-to-model transformation

Runtime API Comprised of: CDA, data types, and vocabulary runtime APIs Java classes/packages generated for template model Additional utility classes Convenience methods added to CDA implementation model to assist in building constraints and constructing documents Additional UML operations specified in the template model are carried through to the Java source code and can be implemented: Directly in the model using OCL By specifying the method body in the generated code Gives the modeler the ability to add convenience into runtime API at design-time Annotations generated from template model used to populate runtime instance for default/fixed values Reduces number of method calls required to build document Path Expression Support Ability to create/query parts of the document Transitional API for XML developers

Client Code for HITSP C32 Patient Summary PatientSummary doc = HitspFactory.eINSTANCE.createPatientSummary().init(); II id = DatatypesFactory.eINSTANCE.createII("2.16.840.1.113883.3.72",                 "CCD_HITSP_C32v2.4_16SectionsWithEntries_Rev6_Notes"); doc.setId(id); ActiveProblemsSection problemList = doc.createProblemListSection();        Condition condition = HitspFactory.eINSTANCE.createCondition().init(); problemList.addAct(condition);         ProblemObservation obs = CCDFactory.eINSTANCE.createProblemObservation().init(); condition.addObservation(obs); ProblemHealthStatus healthStatus = CCDFactory.eINSTANCE.createProblemHealthStatus().init(); obs.addObservation(healthStatus); CE healthStatusValue = DatatypesFactory.eINSTANCE.createCE("xyz", "2.16.840.1.113883.1.11.20.12", "ProblemHealthStatusCode", null); healthStatus.getValue().add(healthStatusValue);

Producing an XML instance (serialization) Client code uses runtime API to build instance of template model All template models get serialized according to the underlying CDA model EMF uses annotations at runtime to properly serialize Ecore model instance to XML document Serializer has been customized to omit xsi:type information and put all serialized elements into one namespace (as per CDA XML schema) CDA schema defines templateId element to identify places in the document where templates are used

Consuming an XML instance (deserialization) XML instance loaded from input stream into DOM XML instance contains template ids DOM handed to EMF deserializer Loading mechanism is intercepted to inject type information DOM gives us look ahead access to get template id Template id is used to look up Ecore package/class information from CDA registry (uses Eclipse plugin extension registry) xsi:type information is dynamically added to DOM element Augmented DOM element is then handed back to EMF to construct Ecore model instance of the correct type according to template model

Validation Constraints specified in the form of standard UML constructs such as cardinality are automatically validated as part of the EMF framework OCL constraints specified by the modeler or generated during the model-to-model transformation are carried through to the EMF model and Java source code EMF validation mechanism Uses OCL interpreter at run time to validate these constraints Each Ecore model gets a separate validator (e.g. datatypes, CDA, CCD, etc.) Validators work together to validate Ecore model instance Output of validation is a diagnostic tree Validation severity and message specified in the model are used at runtime Diagnostic tree can be processed using CDA utility class

Future Work Collaboration with other OHT Projects Publish Implementation Guide from template model Integration with Template Registry Integration with Terminology Services Extend approach to support all RIM derivations and serializations Integration with Semantic Web Technologies Model-driven design of services