A Model Driven Approach to using Mural/MDM
By Swen-Helge Huber on Jul 01, 2008
In the context of my work for the OeHF an interesting idea came up from the foundation partners. OeHF is about building an open source framework for Healthcare applications. The core of such a framework is a lot of patient related data from diverse sources like e.g. patient demographics, visit data, medical records.
All of these sources apply their own local patient identifier and patient specific data - somehow all these bits of data need to be matched and merged. The framework therefore requires to have some kind of Single Patient View tieing together all of this information. Sounds like Mural is a very good fit for these requirements.
So we were discussing how we could integrate Mural/MDM into the
architecture and the question came up if it is possible to drive Mural from UML
diagrams. Since we don't want to pass MDM objects all around our application the idea is to model the business objects and then derive a mural application from the classes.
As a consequence there's a requirement for a Single Patient View adapter implementing a domain object centric interface and mapping the domain objects into the mural data model.
That potentially means a lot of Java mappings on quite similar and possibly complex data structures (in the case of OeHF the data structures will be aligned to the HL7 data model). So avoiding to code and maintain these mappings manually became another motivating factor for looking into how model driven development could be applied to Mural/MDM.
The Road Ahead
In a nutshell we'll need to come up with a way of generating Java code and XML configuration files from a NetBeans UML model. Ideally the resulting artefacts should be propagated into the appropriate projects and integrating the build cycles of these projects would be another nice to have.
Here's what we'd need to find out and do in order to make this happen:
- Understand the UML code generation mechanism
- Understand the MDM configuration files and which of these can be generated from the model
- Develop a sample UML model and define required conventions for additional MDM related information required by the configuration files
- Implement templates for the configuration files
- Design and implement a solution to also generate the Java mappings from object model to MDM and vice versa
- Possibly integrate generated component into build processes of the relevant projects