Title: Health Level Seven Experience Report
1Health Level SevenExperience Report
- Paul V. Bironpaul.v.biron_at_kp.org
- Kaiser Permanente
W3C XML Schema User Experience Workshop, Jun
21-22, 2005
2Intro
- HL7 Healthcare messaging and documents
- Things We Like
- Interoperability Problems
- Expressiveness Problems
3Things We Like
- XML Syntax
- easier to generate and reuse
- Separation of Elements and Types
- the fuel that drives binding tools
- cant wait for XPath 2.0s type-aware matching
(independent of element/attribute names) - Type derivation
- extension and restriction
- almost identical to our abstract UML-based model
4Interoperabiltiy 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)
5Expressiveness 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 dont use it much
6Expressiveness Problems
ltpersongt ltname/gt lt!-- Entity --gt
ltbirthTime/gt lt!-- Living Subject --gt
ltdesceasedTime/gtlt!-- Living Subject --gt
ltaddress/gt ltrace/gt ltplayergt lt!-- Entity
--gt ... lt/playergt ltscopergt lt!--
Entity --gt ... lt/scopergt lt/persongt
ltpersongt ltname/gt lt!-- Entity --gt
ltplayergt lt!-- Entity --gt ...
lt/playergt ltscopergt lt!-- Entity --gt
... lt/scopergt ltbirthTime/gt lt!--Living
Subject--gt ltdesceasedTime/gtlt!--Living
Subject--gt ltaddress/gt lt!-- Person --gt
ltrace/gt lt!-- Person --gtlt/persongt
7Expressiveness Problems
- Lack Of Co-Occurance Constraints
- Almost every type we define as co-occurance
constraints - as a result, weve 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
8Expressiveness Problems
- Wildcards deficiencies
- need ltxsany typefoo/gt
- similar to substitution groups, but doesnt
require global elements - interaction with UPA
- weak wildcards would be a big win
- Component Identity Vagueness
- cant derive by restriction from a type which
uses anonymous types ? - hence, weve had to name types we would not
otherwise
9Expressiveness Problems
- Limitations On All Groups
ltxscomplexType name'Person'gt ltxssequencegt
ltxsallgt ltxselement name'name'/gt
ltxselement name'birthTime'/gt
ltxselement name'desceasedTime'/gt
ltxselement name'address'/gt
ltxselement name'race'/gt lt/xsallgt
ltxsallgt ltxselement name'scopes'/gt
ltxselement name'plays'/gt lt/xsallgt
lt/xssequencegt lt/xscomplexTypegt
10lt?Questions?gt