The Model Driven Health Tools (MDHT) open source project was started in 2008 with the goal of using industry standard modeling languages and tools to design and implement healthcare interoperability standards. The project was formed as part of the Open Health Tools (OHT) organization and we now wish to migrate into Eclipse. From the beginning, MDHT was developed as Eclipse plugins using UML, EMF, and OCL as our foundation. Becoming an Eclipse project is a natural fit for our technology and will open new opportunities to expand our community of developers and users for heathcare data interoperability.
HL7 is the dominant international healthcare standards organization. MDHT use is not limited to HL7 specifications, but our team has focused most attention on designing and implementing HL7 standards, especially the Clinical Document Architecture (CDA) standard and its many implementation guide specifications. The HL7 Consolidated CDA (C-CDA) standard is an essential part of Meaningful Use certification requirements that are required for Electronic Health Record (EHR) vendors in the United States, and CDA is widely used for exchange of healthcare data within and outside of the U.S. The U.S. Office of the National Coordinator for Health IT (ONC) and the National Institute for Standards and Technology (NIST) use Java runtime libraries generated from MDHT's UML model of the C-CDA standard for certification testing and verifying that CDA XML documents satisfy all rules specified in the Meaningful Use rules.
Heathcare data interoperability is currently in the midst of rapid change due to an emerging new standard from HL7, called Fast Healthcare Interoperable Resources (FHIR)®©. The primary focus of our MDHT project team for the next two years will be developing complete support for designing and implementing FHIR standards and derived profiles.
Another closely related project proposal will be submitted to Eclipse in the near future, Model Driven Message Interoperability (MDMI). The MDMI project was set up as a sub-project of MDHT within our previous home at OHT, but they are proposed to become peer projects within Eclipse.
MDHT supports the specification and implementation of healthcare interoperability standards by creating UML profiles, model transformations, publication, code generation, and model editing tools for clinical informatics users. The project scope includes:
- Model editing tools designed for use by clinical informatics specialists (often not software developers)
- UML profiles and associated Eclipse UI designed to support healthcare modeling methodology and required extensions
Model transformation and Java code generation tools, using EMF and OCL
- Transform UML models to Ecore models
- Transform custom UML profile extensions to Ecore structures and OCL expressions (e.g. constraints for terminology binding)
Model publication tools
- UML model-to-text transformation to the DITA publication standard XML format
- Sample projects and wizards to assist with publishing models as formal specifications and as developer implementation guides
UML models created for healthcare standards
- e.g., C-CDA and FHIR
- Java code generated from UML models, released as JARs that are the primary download for most health IT developers
MDHT delivers a standard object-oriented alternative to proprietary development methodologies and tooling used to specify and implement most healthcare industry standards. There are three primary categories of users for MDHT tools: authors of healthcare industry interoperability standards, certification or testing authorities who validate that an Electronic Health Record (EHR) system produces XML or JSON files that comply with the standard, and software developers that implement adapters or applications that produce and consume healthcare data. MDHT defines healthcare-specific UML profiles to specify the interoperability standards and delivers model editing tools that are optimized for clinical informatics users, including a customized interface for the UML profile extensions. MDHT also delivers UML publishing tools that are used to generate specification documents that are ready for submission to standards organizations. Finally, the tooling includes model transformations that leverage EMF and OCL to generate Ecore models and Java code used by healthcare implementers.
What makes healthcare information models different? Why don't we simply use general-purpose UML tools?
Constraint-based modeling approach
- Most healthcare standards create a base "reference model" and then define templates/profiles/archetypes with lists of constraints on a class from the reference model. For example, in the C-CDA implementation guide, a Vital Sign template includes constraints on the base CDA Observation class. We model this template using a UML subclass, but many constraints cannot be represented using standard UML, especially terminology constraints for coded attributes.
- Creating clinical information models usually involves searching very large and complex terminology systems (i.e. ontologies) such as SNOMED CT or LOINC, creating or evaluating value sets of terminology codes, and assigning these as constraints on attributes in a UML class. MDHT includes specialized editing tools for using these terminology systems, and transformation to runtime Java libraries that support application developers and constraint validation.
Generate domain-specific Java classes for templates/profiles/archetypes
- For example, generate a VitalSign class for implementers, but serialize/deserialize XML or JSON instance data that conforms to the base reference model schema type for CDA or FHIR Observation.
- Annotate the generated Ecore model to enable customized serialization and deserialization of instances, and validate that instances of the base reference model satisfy constraints indicated by the assigned template ID.
Users of modeling tools are often clinical informatics specialists, not familar with UML or software engineering
- The modeling tools must enable users to edit and review clinical information models, with terminology value set constraints, while remaining focused on the clinical content and not overwhelmed by model formalisms.
Becoming an Eclipse project is a natural fit for our technology (UML, EMF, and OCL) and will open new opportunities to expand our community of developers and users for heathcare data interoperability. There is complementary synergy with other Eclipse modeling tool projects and we expect that some of the techniques and tools developed for the healthcare industry can be generalized and integrated with other Eclipse modeling projects.
Trademark for project name, MDHT, must be transferred from the Open Health Tools organization. There are no known issues related to source code licensing or prior contributions. Previous releases of MDHT tooling have passed rigorous IP review by IBM legal staff. All source code and models are licensed as EPL 1.0.
All current MDHT source code is managed using github and is available for immediate transition into Eclipse. See https://github.com/mdht
We expect to do some refactoring of the repository structure and move old code (from previous generation of HL7 standards) into deprecated folders. We currently build using Maven and Tycho, so it should be relatively straightforward to adjust for Eclipse build conventions and produce an initial build.
- Our primary focus over the next 12-18 months is to implement tooling and define model development processes for the emerging new standard from HL7, Fast Healthcare Interoperable Resources (FHIR)®©. We will draw on lessons learned from our work with HL7 CDA standards to generalize or extend MDHT for full support of FHIR profiles that constrain or extend base resources, and to generate runtime libraries for application developers in Java and other languages.
- Our specification publishing tools were originally written to support UML models for HL7 CDA standards. We will generalize these publishing tools, using DITA, to support any UML class model and allow specialized formatting for CDA, FHIR, or other specification publishing requirements.
- We will improve MDHT model editing capabilities to enable a more user-friendly experience for clinical informatics users.
- We will begin integration with Eclipse Papyrus UML editing tools, especially to enable support for class diagrams.