Presentation is loading. Please wait.

Presentation is loading. Please wait.

Model-Driven Health Tools (MDHT) CDA Tools Overview John T.E. Timm (IBM Research) and David A. Carlson (Veterans.

Similar presentations


Presentation on theme: "Model-Driven Health Tools (MDHT) CDA Tools Overview John T.E. Timm (IBM Research) and David A. Carlson (Veterans."— Presentation transcript:

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

2 31 August 2009MDHT CDA Tools Overview2 CDA Tools Objectives Accelerate and lower cost of adopting CDAr2 standard Define new CDA templates and implementation guides in UML Complete MDA lifecycle from UML to Java code Open source reference implementation with EPL license Author template constraints and implementation guides (IG)  UML structure and OCL constraints Reuse templates  As parent template with additional constraints  Include within new document or section templates Generate complete application-ready Java libraries Generate IG specification documentation (future)

3 31 August 2009MDHT CDA Tools Overview3 Generate Java APIs for CDA Transform UML and OCL to EMF Ecore models Generate complete application-ready Java libraries  Generate developer-friendly, domain-specific Java APIs  Design simplified “façade” API for application use cases Programmatic creation of CDA documents that conform to IG templates  e.g., EMR system adapters that export or import CDA Save CDA XML document  Template Java class (CCD ProblemAct) mapped to templateId via registry Parse/load CDA documents  templateId mapped to Java class, e.g. ProblemObservation, Medication Validate CDA document for template compliance  Goal: complete validation via Java, generated from UML, equivalent to current NIST schematron rules

4 31 August 2009MDHT CDA Tools Overview4 Current Approaches Low-level XML processing technologies  e.g. XPath, DOM  API is generic, not domain-specific  Instance validation through XML Schema and Schematron  Requires intimate knowledge of CDA XML structure XML binding technologies  e.g. JAXB, EMF-XSD, XMLBeans  Not suited for codegen with very complex schemas  If codegen succeeds, API is oriented towards base CDA XML structure Model-Driven Approach  Higher-level of domain specificity in modeling and generated API  May define classes and operations in such a way that number of method calls to produce an instance is reduced

5 31 August 2009MDHT CDA Tools Overview5 Domain Model (UML+OCL) Implementation Model (UML+OCL) Code generation CDA Instances (XML) Produce, consume, validate Implementation Model (EMF) Runtime API (Java) Implementation Guide (PDF) Model-to- Model Transformation

6 31 August 2009MDHT CDA Tools Overview6 CDA Template Modeling Types of constraints  UML Property Redefinition  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) Constraints are modeled using UML properties and directed associations HDF and CDA Profiles are used to specify additional information used in model-to-model transformation

7 31 August 2009MDHT CDA Tools Overview7 Template relationships Generalization/inheritance/”is-a”  Modeled using standard UML generalization  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

8 31 August 2009MDHT CDA Tools Overview8 CCD Template Model for Problems Section

9 31 August 2009MDHT CDA Tools Overview9 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).

10 31 August 2009MDHT CDA Tools Overview10 Modeling the conformance rule 1.Create classes: a.ContinuityOfCareDocument (extends cda::ClinicalStatement) b.ProblemSection (extends cda::Section) c.ProblemAct (extends cda::Act) d.ProblemObservation (extends cda::Observation) 2.Apply stereotypes to classes: a. > stereotype is applied to all classes b.templateId stereotype property value is specified 3.Create directed associations between classes: a.ContinuityOfCareDocument -> ProblemSection b.ProblemSection -> ProblemAct c.ProblemAct -> ProblemObservation d.Multiplicity (upper bound) of the association may be specified to indicate exactly one or more than one 4.Apply stereotypes to associations: a. > stereotype is applied to all associations b.severity (ERROR, WARNING, INFO) and message property values are specified

11 31 August 2009MDHT CDA Tools Overview11 Generated OCL constraints ContinuityOfCareDocument  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  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  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  ProblemObservation_templateId: self.hasTemplateId(‘2.16.840.1.113883.10.20.1.28’)

12 31 August 2009MDHT CDA Tools Overview12 Validation Severity and Message ContinuityOfCareDocument_templateId  Severity: ERROR  Message: The template identifier for continuity of care document is 2.16.840.1.113883.10.20.1 ContinuityOfCareDocument_problemSection  Severity: WARNING  Message Continuity of care document SHOULD include exactly one and SHALL NOT include more than one problem sections ProblemSection_templateId  Severity: ERROR  Message: The template identifier for problem section is 2.16.840.1.113883.10.20.1.11 ProblemSection_problemAct  Severity: WARNING  Message: Problem section SHOULD include one or more problem acts. ProblemAct_templateId  Severity: ERROR  Message: The template identifier for problem act is 2.16.840.1.113883.10.20.1.27 ProblemAct_problemObservation  Severity: WARNING  Message: Problem act SHOULD include one or more problem observations ProblemObservation_templateId  Severity: ERROR  Message: The template identifier for problem observation is 2.16.840.1.113883.10.20.1.28

13 31 August 2009MDHT CDA Tools Overview13 IHE Template Model (subset, work-in-progress)

14 31 August 2009MDHT CDA Tools Overview14 HITSP Template Model (C32 and C83)

15 31 August 2009MDHT CDA Tools Overview15 Domain Specific Java APIs for Templates 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);


Download ppt "Model-Driven Health Tools (MDHT) CDA Tools Overview John T.E. Timm (IBM Research) and David A. Carlson (Veterans."

Similar presentations


Ads by Google