Title: HL7 V3 Model Driven Software Development
1HL7 V3 Model Driven Software Development
- René Spronk (Ringholm bv, HL7 International
RIMBAA Committee Chair) - Charlie McCay (Ramsey Systems Ltd, HL7
International Technical Steering Committee Chair)
2Traditional Software Development
Gather requirements
Build
Image credits Johan den Haan, Mendix.nl
3Model Driven Software Development
Model
Generate
Image credits Johan den Haan, Mendix.nl
4MDD for ImplementersRIMBAA
- Rene Spronk
- Rene.Spronk_at_ringholm.com
5RIM - Abstract Data Model
6Use of V3 artefacts - RIMBAA
RIMBAA
7Information Models for MDD
MIF
Software application
MIF
MIF
XSLT
XML Schemas
Software application
8Code Generators
- Code (class) generation
- MIF - the code generator has to be aware of the
structure of the MIF - Purpose-build code generator, e.g. Marc HI
Everest toolkit for .net - UML/EMF (derived from the MIF) - the code
generator has to know UML/EMF, including the v3
specific extensions - Standard cross-industry tools, with extension
OHT Eclipse tools (Java), MDHT tool for CDA
(Java) - XML Schema
- Standard cross-industry tools e.g. JAXB
9MDD - Application Generation
Generic Software Components -Terminology -Data
types
MIF
Software application
Persistence
e.g. UML/XMI
RIM coreMIF
10MDD for Application Developers
- The RIM and RIM-based models have a value within
an application, not just in a message or document - HL7 v3 offers information object models created
by domain experts - Code generation tools, driven by HL7 v3 and other
models, can be used to create software
applications
11MDD for Specification DevelopersDomain Specific
Languagesfor Healthcare
- Charlie McCay
- charlie_at_ramseysystems.co.uk
12Technology Outreach Report
- How does HL7 fit into mainstream tools?
- How do we simplify our specifications?
- Why do we have so much HL7 specific technical
terms? - Defining Languages is what HL7 does
13Example Literal Instance
14Example Logical Instance
15Statement Flavors
16Specification Mapping
17Usable specifications
- Must be easy for the specification users
- Examples
- Be short
- Have testing tools
- Be unambiguous
- Use terms that are familiar
- Work with current toolset
- Covered by books from Waterstones / Amazon
- Affordable
18Specification Users
Interface Engineer
User Community
19Does it all need to be so complex?
- We are dealing with a difficult problem
- BUT
- Tried to meet all specification users needs with
one language - Major emphasis on Semantic Coherence
- Too many acronyms and new terms
- INSTEAD
- Plain English wherever possible
- Give specification users what they want and need
- Semantic Coherence will be reached in steps
- Specification Compliance testing tools
20Examples of DSLs
- Configuration files
- In-house import scripting languages
- Middleware mapping languages
- Healthcare data
- CDA defines a language for clinical documents
- RIM defines a language for Healthcare Information
- Pharmacy DMIM defines a language
- XML ITS defines one possible syntax for an HL7
language - HL7 Specifications
- Visio, Schema, Table views are different forms of
the language used by HL7 to define healthcare
langauges
21Conclusions References
- MDD is a new buzzword, HL7 v3 has effectively
always been MDD in nature, and always defined
Domain Specific Languages - RIMBAA/MDD
- http//wiki.hl7.org/index.php?titleRIMBAA
- DSL
- http//wiki.hl7.org/index.php?titleITS