150 likes | 243 Vues
HL7 version 3. Transformation to v3 XML. Scope: transformation of non-v3 XML to v3 XML, HL7 v2.x transformation to v3. Slide contents published under the Creative Commons / Attribute-Share Alike license Source: www.ringholm.de/download/HL7v3_implementation.zip. Agenda.
E N D
HL7 version 3 Transformation to v3 XML Scope: transformation of non-v3 XML to v3 XML, HL7 v2.x transformation to v3. Slide contents published under the Creative Commons / Attribute-Share Alike license Source: www.ringholm.de/download/HL7v3_implementation.zip
Agenda • XML to XML transformation • HL7 v2.x to v3 tranforms • Implementation Experiences
Transformation to v3 XML Transforming v2.xml into v3 Slide contents published under the Creative Commons / Attribute-Share Alike license Source: www.ringholm.de/download/implementation_mechanics.ppt
Representation of „Reality“ in a standard • Dynamic: a subset of all „business cycle trigger events“ • Static: a subset of the objects and attributes which play a role Slide contents published under the Creative Commons / Attribute-Share Alike license
Migration scenario (v2 example) • Extensively document the HL7 v2 messages • Identify the corresponding HL7 v3 interactions • Create a mapping • Syntax • Semantic: Granularity, Vocabulary • Dynamic model (trigger events) Slide contents published under the Creative Commons / Attribute-Share Alike license
Key Step: Version 2 Message Profiles Version 2 Implementation Version 2 Message Profile („Version 3 Ready“) Version 3 Implementation Site Interface Info Registration OID Application Role Message Profiling (Analysis) proprietary, ad-hoc documentation Use Case Model Vendor Scenario Vendor Interface Info Dynamic Definition Interaction Model v2.x Message Structure Static Definition Message Slide contents published under the Creative Commons / Attribute-Share Alike license
„Granularity“ of v3 • The dynamic model in v3 is different than in v2: Trigger Events occur at different points in the business process. • v3 v2.x: Multiple v3 trigger events map to a v2 event • The static v3 models are „more granular“ than v2.x • v3 v2.x: details get lost • v2.x v3: missing information – if filled by defaults: significant risk of faulty interpretation Slide contents published under the Creative Commons / Attribute-Share Alike license
Concepts • Does v3 contain the same concepts as v2 ? • The RIM supports all administrative, financial and clinical concepts as present in v2. Therefore v3 is from a functional perspective fully backwards compatible with v2. • There is however not a guaranteed 1-to-1 mapping between fields or datatypes in v2 and classes/attributes in v3. Slide contents published under the Creative Commons / Attribute-Share Alike license
Don’t rely on a v2-v3 mapping • If your application already supports HL7 v2: HL7 v2-v3 migration by means of a mapping is problematic. • The main problem is not the mapping itself (although HL7 v3 is much more detailed than HL7 v2), but the behaviour of the application. This is mainly a business flow issue. The dynamic behaviour and trigger events in v2 and v3 are sufficiently different, that your application behaviour will need to map on to them differently. • If your application has to support both HL7 v3 as well as HL7 v2: create a new communication module for the HL7 v3 messages/documents, and use it in parallel to the HL7 v2 communication module. Slide contents published under the Creative Commons / Attribute-Share Alike license
Migration scenario - revisited • Avoid using mapping as a migration scenario • Ifyou have to rely on a translation: • Best practice recommendation • Extensively document the HL7 v2 messages • Identify the corresponding HL7 v3 interactions • Create a mapping • Syntax • Semantic: Granularity, Vocabulary • Kludge: (as a vendor) extend HL7 v2 messages with Z-segments [missing data & additional granularity] to allow for a translation to v3. • The long road: create proposals to extend new v2.x versions with v3 concepts, e.g. MoodCode, NullFlavor. Slide contents published under the Creative Commons / Attribute-Share Alike license
OHT Semantic Mapping Tool http://gforge.hl7.org/gf/project/v2v3-mapping/frs/
Why Semantic Mapping? To Handle Structure Clashes Message B • Most mapping tools only map data values (leaves). • Syntax to syntax mapping, e.g. XML to XML • Structure clashes (e.g. multiplicity) arise on non-leaf nodes, deep in the trees Message A mappings Slide (modified) courtesy of Rebort Worden
Structure Clashes Arise from Associations object Class X • Structure clash: example • ‘Deep’ message A represents the association X=>Y by nesting of elements • ‘Shallow’ message B represents the same association by shared key values • 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 • Syntax (message A) to class model transformation (v3 R-MIM as a class model) • Subsequently: class model to syntax (message B) mapping association association property Class Y Message A Message B UML Class Model Slide (modified) courtesy of Rebort Worden
Any Questions ? • Or: post your question/suggestions via • HL7 Wiki: http://bit.ly/d7tSsL • E-mail v3impl@ringholm.com