140 likes | 308 Vues
This document discusses streamlining HL7 Version 3 message implementations by reducing the complexity of node structure. It highlights the costs associated with a large number of nodes, details a simplified approach that allows interoperability with a manageable subset of nodes, and describes the use of XML transformations for seamless conversions between simple and full messages. By collaborating on message simplification, suppliers and purchasers can facilitate easier implementations of V3 and Clinical Document Architecture (CDA), ultimately benefiting all stakeholders.
E N D
Message Simplification Making Version 3 as easy to implement as Version 2 – but with sound semantics rpworden@me.com
Leaf Node Counts • One measure of the cost and complexity of reading and writing a message • The number of distinct node (types) which can each carry a distinct piece of variable data • Nodes you might need to map to a field in an application database – or write a piece of application logic to handle
Node Counts - Version 2 • OBX segment – 225 • ADT^A03 – 1885 • ORU^R01 – 4412 • OMP^009 – 5225
Node Counts - Version 3 • To keep the numbers down: • No recursive nesting • No nesting of data types • Ignore data type ANY • XML Attributes only • Lab Result Event (POLB_RM004000UV01): 101,792 nodes • Medication Order (PORX_RM010120UV): 38,882 nodes • CCD: 10,284,480 nodes
Is This Message Size Useful? • No application database has 50,000 columns • No system has data to populate 50,000 nodes • If it did, the costs of mapping the data to 50,000 nodes would be prohibitive • The cost of writing business logic to handle the data would be prohibitive • Most example instances have at most a few hundred node types populated
Why HL7 V3 is Difficult • 50,000 node types is too many • Finding the right nodes to read or write is not easy • To get to those nodes, you need to pass through a large superstructure of semi-fixed stuff • V3 is technically intricate; knowledge about it is still scarce and debated • The defining material is spread across many places
All V3 Implementations are Partial V3: 50,000 + nodes Implementations V2: 3,000 nodes Interoperability happens in the overlaps between implementations
The Simpler Way to Implement V3 • Interoperability depends on a group of suppliers and purchasers agreeing which subset of a V3 message they need. • The subset probably has no more than 1000 leaf nodes • Once this subset is agreed, it can be packaged into a much simpler message • The semantics of the simple message are fully defined, by reference to V3 semantics • Simple messages can be reliably converted to full V3 Messages, and vice versa, by XSLT
Message Simplification – The Process V3 RMIM (MIF) Templated RMIM (ECore) Select Annotated RMIM (Ecore) Rename Press the Button Simple Message Schema Skeleton Simple Message Simple-Full Transforms (XSLT) Simple-Full Mappings Simple Class Model (Ecore)
Message Simplification Is Easy to Do • Select the nodes you want to retain in the simple message • Rename attributes and elements • Override automatic flattening rules (if you want) • Do these either with a special editor, or by annotating a message example • The tools do the rest automatically • The round-trip V3=>Simple=>V3 is easily tested
Using Simplified Messages Simple XML Simple XML V3 Application A Simple-to-Full Transform Full-to-Simple Transform Application B V3 Application C
Testing By Round Trips Full-to-Simple Transform V3 message Simple message Simple-to-Full Transform Should recover all you need of the V3 message, unchanged.
Potential • This approach can greatly reduce the costs of implementing Version 3 and CDA • It can make V3 as easy to implement as V2 – but with sound V3 semantics • It can greatly increase the takeup of V3 and CDA • This benefits everybody • Suppliers and purchasers can collaborate to define message simplifications, under the auspices of HL7 • HL7 can make transforms and other deliverables available to members