Semantic Mapping and HL7
Why Mapping? HL7 have built UML semantic models of healthcare (RIM, RMIMs, CDA…) If everybody migrated to these models, many interoperability problems would be solved Suppliers cannot do this; they have big commitments to other models and structures They could map to the HL7 models; mapping is much easier than migrating So HL7 needs to publish shareable mappings to existing standards and data structures
Why Semantic Mapping? To Handle Structure Clashes Most mapping tools only map data values These are the leaves of message trees Structure clashes (e.g. multiplicity) arise on non-leaf nodes, deep in the trees Most mapping tools dont address them Therefore the translations dont work So people drop the tools and hand-code Message A Message B mappings
Structure Clashes Arise from Associations Deep message A represents the association X=>Y by nesting of elements Shallow message B represents the same association by shared key values This causes a structure clash You cannot translate from A to B without knowing how they each represent the same association Therefore semantic mapping is needed, to drive accurate translations Message A Message B Class X Class Y UML Class Model object association property association
Mappings in Progress Pharmacy V2-V3 (Pharmacy TC) Various V2-V3 (ItalTBS) HIPAA X12 to V3 (FM TC) CCR – CCD (various vendors) Relational database – V3 (basic demonstrator)
Example: CCR and CCD CCD and CCR are complex structures (typical nesting depth: 6 – 12) They have many structure clashes (CCR uses shared keys) They have both been mapped to a CCD semantic model (a few days work for CCR) The mappings give accurate translations and round trips – translating thousands of data items Mapping exposes the problems in CCR
Mappings for ARRA/HITECH CCR V Application Database Application Database Application Database NCPDP HIPAA X12 Application Data Model CDA + Templates V3 RMIM
Benefits and Issues Mappings reveal the problems clearly and early Any-to-any translations can be generated from the mappings (=>rapid testing) By mapping an application data model to CDA, you will get translations to and from CDA, V2.5.1, CCR …. Managing templates is a big problem Versions are a big problem
Semantic Mappings - Summary Declarative, simple where they can be simple, viewable (e.g. Excel) A specification for semantic interoperability Auto-generate runnable transformations N*(N-1) transformations from N sets of mappings Rapidly testable (=> test-driven mapping) Mapping exposes semantic problems (gaps, ambiguities)