Klassenattribute
Dieses Material ist Teil des Leitfadens V3 Datentypen Release 1.
|
Inhaltsverzeichnis
XML Repräsentation von Klassen-Attributen
Klassen-Attribute und Datentypen
Die Attribute von Klassen in den HL7 Modellen werden auf eine bestimmte, fest vordefinierte Weise in die XML Repräsentation umgesetzt.
Beispiel:
In der vorstehenden Klasse “Patient” ist eine Reihe von Attributen aufgenommen, darunter der classCode (mit dem festen Wert “PAT”), id, addr und telecom.
Jedes dieser Klassen-Attribute hat unter anderem
- einen Namen, beispielsweise id,
- einen Datentyp, beispielsweise AD,
- sowie eine Kardinalität, beispielsweise [0..*].
Mit Ausnahme der strukturellen Attribute (siehe nachstehend) werden die Modell-Attribute als XML Elemente wiedergegeben. Die Elemente tragen den im Modell angegebenen Namen. Wenn z.B. ein Attribut den Namen id hat, ist der Name des XML Elements <id/>.
<id ... />
<addr ... />
<telecom ... />
In dem XML Schema ist die Kardinalität des Modellattributs aufgenommen. In dem vorstehenden Beispiel ist <id> Pflicht [1..1], <addr> [0..1] und <telecom> [0..*] sind optional.
Die XML Elemente haben XML Attribute, die durch den Datentyp selbst bestimmt werden. Die hier verwendete Notationsform für die Datentyp-Attribute lautet:
@ | Attribut | DT | Card | Conf | Beschreibung | |
---|---|---|---|---|---|---|
Bezeichnung | Datentyp | Kardinalität | Konformität | Beschreibung / Erklärung |
Für die Datentypen wurden Attribute definiert, welche die Daten tragen. So hat in dem Beispiel das id Modellattribut den Datentype II (Instance Identifier). Die zu diesem Datentyp gehörenden Attribute sind beispielsweise root und extension, die als XML Attribute beim Element wiedergegeben werden.
<id root="..." extension="..." />
Nähere Erläuterungen zu den Datentypen und den dazugehörenden Attributen sind in den folgenden Kapiteln pro Datentyp aufgenommen.
Ausnahmen mit Informationen als Element Content
Bei den meisten Datentypen werden die faktischen Informationen in den XML Attributen wiedergegeben. Es gibt allerdings ein paar Ausnahmen. Bei den Datentypen Binary, Encapsulated Data, Entity Name, Person Name, Organization Name, Trivial Name, Address und Character String werden die Informationen als Element Content wieder-gegeben.
Beispiel: Die Komponenten einer Adresse werden durch Kindelemente des addr Elements mit den Informationen als Element Content (im Beispiel rot markiert) aufgenommen.
<addr>
<streetName>Große Bleichen</streetName>
<houseNumber>23-25</houseNumber>
<postalCode>20354</postalCode>
<city>Hamburg</city>
</addr>
Zusammengesetzte Datentypen
Es gibt eine Reihe zusammengesetzter Datentypen, die eine Sammlung von Datenelementen darstellen. So wird beispielsweise in einem Intervall die Unter- und Obergrenze angegeben und eine Ratio stellt ein Verhältnis zweier Werte dar.
Bei zusammengesetzten Datentypen wird die Substruktur (beispielsweise <low> und <high> bei einem Intervall) immer als Kindelement des betreffenden Datentyp-Elements wiedergegeben.
<effectiveTime>
<low value="20040507"/>
<high value="20040909"/>
</effectiveTime>
<syntaxhighlight>
In den Beschreibungen der zusammengesetzten Datentypen werden die Kindelemente folgendermaßen notiert:
{{AttDesc | ae=elm | rim=act | name=Name Kindelement | desc=Beschreibung / Erklärung / Bedeutung | dt=Datentyp | conf=Konformanz| card=Kardinalität }}
=== Strukturelle Attribute ===
Es gibt eine Liste von Klassen-Attributen, die nicht als separate Elemente präsentiert werden, sondern als XML Attribute der Klassenelemente.
{| class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 style='margin-left:5.4pt;border-collapse:collapse;border:none'
| width=227 colspan=2 valign=top style='width:170.2pt;border:solid windowtext 1.0pt; background:silver;padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>RIM Klasse</p>
| width=385 valign=top style='width:288.4pt;border:solid windowtext 1.0pt; border-left:none;background:silver;padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>Attribut</p>
|-
| width=47 rowspan=4 valign=top style='width:35.45pt;border:solid windowtext 1.0pt; border-top:none;background:fuchsia;padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'> </p>
| width=180 rowspan=4 valign=top style='width:134.75pt;border-top:none; border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>Act</p>
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>moodCode</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>classCode</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>negationInd</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>levelCode</p>
|-
| width=47 rowspan=5 valign=top style='width:35.45pt;border:solid windowtext 1.0pt; border-top:none;background:#FF99CC;padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'> </p>
| width=180 rowspan=5 valign=top style='width:134.75pt;border-top:none; border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>ActRelationship</p>
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>typeCode</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>inversionInd</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>contextControlCode</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>contextConductionInd</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>negationInd</p>
|-
| width=47 rowspan=2 valign=top style='width:35.45pt;border:solid windowtext 1.0pt; border-top:none;background:lime;padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'> </p>
| width=180 rowspan=2 valign=top style='width:134.75pt;border-top:none; border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>Entity</p>
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>classCode</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>determinerCode</p>
|-
| width=47 rowspan=2 valign=top style='width:35.45pt;border:solid windowtext 1.0pt; border-top:none;background:#00CCFF;padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'> </p>
| width=180 rowspan=2 valign=top style='width:134.75pt;border-top:none; border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>Participation</p>
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>typeCode</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>contextControlCode</p>
|-
| width=47 rowspan=2 valign=top style='width:35.45pt;border:solid windowtext 1.0pt; border-top:none;background:yellow;padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'> </p>
| width=180 rowspan=2 valign=top style='width:134.75pt;border-top:none; border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>Role</p>
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>classCode</p>
|-
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>negationInd</p>
|-
| width=47 valign=top style='width:35.45pt;border:solid windowtext 1.0pt; border-top:none;background:#FFFF99;padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'> </p>
| width=180 valign=top style='width:134.75pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>RoleLink</p>
| width=385 valign=top style='width:288.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt' | <p class=BodyText22 style='margin-top:3.0pt;margin-right:0cm;margin-bottom:
3.0pt;margin-left:0cm'>typeCode</p>
|}
Beispiel: In der Klasse ''Observation'' gibt es zwei Attribute, ''classCode'' und ''moodCode'', die als strukturelle Attribute nicht als separate XML Elemente auftreten, sondern als XML Attribute des Klassenelements.
<syntaxhighlight lang="xml">
<observation classCode="OBS" moodCode="EVN"/>