health level seven experience report paul v. biron [email protected] kaiser permanente w3c xml...
TRANSCRIPT
Health Level SevenExperience Report
Paul V. [email protected]
Kaiser Permanente
W3C XML Schema User Experience Workshop, Jun 21-22, 2005
2HL7 Schema Experience Report W3C XML Schema User Experience Workshop, Jun 21-22, 2005
Intro• HL7: Healthcare messaging and documents
• Things We Like
• Interoperability Problems
• Expressiveness Problems
3HL7 Schema Experience Report W3C XML Schema User Experience Workshop, Jun 21-22, 2005
Things We Like• XML Syntax
– easier to generate and reuse
• Separation of Elements and Types– the fuel that drives binding tools– can’t wait for XPath 2.0’s type-aware matching
(independent of element/attribute names)
• Type derivation– extension and restriction– almost identical to our abstract UML-based model
4HL7 Schema Experience Report W3C XML Schema User Experience Workshop, Jun 21-22, 2005
Interoperabiltiy Problems• Complicated Writing Style
– makes it very difficult for the “average” person to understand the spec
– feel this is largely responsible for the disagreements that various processors have about the spec
• Features Incorrectly (or Not At All) Implenented– chameleon include (validators, editors) – mixed content (data binding) – failure to signal UPA violations (editors) – regular expression/pattern matching (validators) – abstract types (validators) – element/type name to programming language identifier
mapping problems (data binding)
5HL7 Schema Experience Report W3C XML Schema User Experience Workshop, Jun 21-22, 2005
Expressiveness Problems• Extend Only At End
– complex types generated from UML classes– extension is used for one class specializing another– we serialize UML attributes before UML associations– extend only at end made out instances “ugly”, hence we
don’t use it much
6HL7 Schema Experience Report W3C XML Schema User Experience Workshop, Jun 21-22, 2005
Expressiveness Problems• Extend only at end
<person> <name/> <!-- Entity --> <birthTime/> <!-- Living Subject --> <desceasedTime/><!-- Living Subject --> <address/> <race/> <player> <!-- Entity --> ... </player> <scoper> <!-- Entity --> ... </scoper> </person>
<person> <name/> <!-- Entity --> <player> <!-- Entity --> ... </player> <scoper> <!-- Entity --> ... </scoper> <birthTime/> <!--Living Subject-->
<desceasedTime/><!--Living Subject--> <address/> <!-- Person --> <race/> <!-- Person --></person>
7HL7 Schema Experience Report W3C XML Schema User Experience Workshop, Jun 21-22, 2005
Expressiveness Problems
• Lack Of Co-Occurance Constraints– Almost every type we define as co-occurance
constraints• as a result, we’ve had to make everything optional
– occurance-based vs. value-based co-occurance– HL7 would be satisfied if XML Schema had occurance-
based constraints, although we have a few use cases for value-based
8HL7 Schema Experience Report W3C XML Schema User Experience Workshop, Jun 21-22, 2005
Expressiveness Problems• Wildcards deficiencies
– need <xs:any type=‘foo’/>• similar to substitution groups, but doesn’t require global
elements– interaction with UPA
• “weak wildcards” would be a big win
• Component Identity Vagueness– can’t derive by restriction from a type which uses
anonymous types – hence, we’ve had to name types we would not
otherwise
9HL7 Schema Experience Report W3C XML Schema User Experience Workshop, Jun 21-22, 2005
Expressiveness Problems• Limitations On All Groups
<xs:complexType name='Person'> <xs:sequence> <xs:all> <xs:element name='name'/> <xs:element name='birthTime'/> <xs:element name='desceasedTime'/> <xs:element name='address'/> <xs:element name='race'/> </xs:all> <xs:all> <xs:element name='scopes'/> <xs:element name='plays'/> </xs:all> </xs:sequence> </xs:complexType>
... and answers
<?Questions?>