Häufig gestellte Fragen, Tipps und Tricks zum Thema OIDs

Aus Hl7wiki
Version vom 13. Februar 2012, 15:20 Uhr von Mvaclavik (Diskussion | Beiträge) (12. Wie entscheidet man bei einem Objekt, ob es als Instanz oder als Code abzubilden ist?)
Wechseln zu: Navigation, Suche

Einleitung

Das vorliegende Dokument schlägt eine Ergänzung der Web-Seite „Frequently Asked Questions“ (FAQs) zum Thema OID des DIMDI vor. Die FAQ sollen im HL7 Wiki veröffentlicht und von der DIMDI Webseite verlinkt werden.

Die ersten beiden Teile der FAQs enthalten allgemeine Information zum Thema OID, mit Schwerpunkt auf Begriffsdefinitionen und Verwendung von ISO OID unter HL7 Version 3.

Der dritte Teil gibt eine Hilfestellung für OID-Vergabestellen im Gesundheitswesen, wie z.B. für Krankenhäuser oder medizinische Versorgungszentren, bei der Erstellung eigener OID-Konzepte. Besondere Aufmerksamkeit wird der Vergabe von Instanzenidentifikatoren gewidmet.

Der Text liegt auf Deutsch vor. Eine englische Sprachversion kann nach der Finalisierung der deutschen Sprachversion erstellt werden.

Diese Einleitung ist kein Gegenstand der Kommentierung.

Redaktion:

  • Marek Václavík (InterComponentWare AG)
  • Annett Bonkaß (InterComponentWare AG)

Grundlegendes über OIDs

1. Was ist eine OID?

Das Kürzel „OID“ steht für „Object Identifier“ und bezeichnet einen Identifikator für ein Objekt. Die ISO hat zur Vergabe und Verwaltung dieser weltweit eindeutigen und dauerhaften Identifikatoren ein Verfahren standardisiert. Ein konkreter Identifikator, der durch ein solches Verfahren entstanden ist, wird ebenfalls als „OID“ (Mehrzahl: „OIDs“) bezeichnet. Die Regeln für die Vergabe und Registrierung von OIDs sind in den Normen ISO/IEC 9834 und DIN 66334 festgelegt.

2. Was kann man alles mit einer ISO OID versehen?

Im Sinne der Norm ASN.1 ist ein Objekt “a well-defined piece of information, definition or specification which requires a name in order to identify its use in an instance of communication”. Da eine OID ein eindeutiger Identifikator ist, kann somit theoretisch alles, was in der Informationstechnik modelliert wird, mit einer OID verknüpft werden. Bei der Vergabe muss jedoch berücksichtigt werden, dass eine OID einem Objekt dauerhaft zugeordnet wird. Bei den Objekten, denen eine OID zugewiesen wird, kann es sich sowohl

  • um konkrete Objekte wie einzelne Personen oder Gruppen von Personen als auch
  • um abstrakte Objekte wie Kategorien, Klassen, Konzepte oder Typen handeln.

Eine OID kann entweder einem einzelnen Objekt zugeordnet werden, oder einer ganzen Gruppe von Objekten. Wird nur die Gruppe von Objekten eindeutig über eine OID identifiziert, werden die einzelnen Objekte innerhalb der Gruppe über einen anderen Identifizierungsmechanismus unterschieden. Nehmen wir das Beispiel des Diagnosenkatalogs: Der Diagnosenkatalog „ICD10 German Modification 2006“ wird über die OID "1.2.276.0.76.5.311" eindeutig identifiziert, nicht die einzelnen Diagnosen in diesem Katalog. Die Diagnose "Akute rheumatische Perikarditis" wird wiederum über die OID des Diagnosenkatalog „ICD10 German Modification 2006“ zusammen mit dem Code „I01.0“ global eindeutig identifiziert. In der XML-Notation von HL7 Version 3 wird die Diagnose wie folgt dargestellt:

<....
codeSystem="1.2.276.0.76.5.311" 
codeSystemName="icd10gm2006" 
code="I01.0" 
displayName="Akute rheumatische Perikarditis" />

3. Was ist ein OID-Baum?

ISO OIDs sind in einer hierarchischen Baumstruktur angeordnet. Diese Struktur wird von einem Netzwerk aus Vergabeorganisationen verwaltet. Wird eine Organisation für einen bestimmten Knoten des Baums zuständig, so ist sie anfangs auch für alle seine Unterknoten zuständig. Die Vergabeorganisation darf dann einen Knoten aus ihrem Zuständigkeitsbereich entweder mit einem Objekt verknüpfen (Definition der Bedeutung) oder aber in die Obhut einer anderen Vergabeorganisation übergeben (Delegation). Für die Wurzel der gesamten Baumstruktur („abstract root“) und die ersten zwei Ebenen gelten besondere Regeln. Knoten, welche keine Unterknoten besitzen, werden als Blattknoten („leaf node“) bezeichnet. Einen Ausschnitt des globalen OID-Baums zeigt die nachstehende Abbildung.

 Bild

4. Wie sieht eine ISO OID aus?

Die häufigste Schreibweise für eine ISO OID ist die sog. „Zahlen-Punkt-Notation“ („dot notation“) nach IETF RFC 1778. In dieser Repräsentation wird die OID als eine Folge von positiven Dezimalganzzahlen ohne führende Nullen dargestellt. Die Zahlen sind durch Punkte getrennt. So ist beispielweise „1.2.276.0.76“ eine syntaktisch zulässige ISO OID, „1.02.3X“ jedoch nicht. Die Zahlenfolge, von links nach rechts gelesen, entspricht dem Pfad im OID-Baum, mit der Root an der ersten Stelle. So wird z. B. die OID des DIMDI {iso(1) member-body(2) de(276) din-certco(0) gesundheitswesen(76)} in der Zahlen-Punkt-Notation durch „1.2.276.0.76“ dargestellt.

5.Was unterscheidet die ISO OID von anderen globalen Identifikatoren aus?

  • Die ISO OID ist unabhängig von technischen „low-level“ Informationen, wie die Adresse der Netzwerkkarte (MAC-Adresse), Systemuhren oder Generatoren von Pseudozufallszahlen.
  • Bei korrekter Anwendung ist die Wahrscheinlichkeit, eine ID zweimal zu generieren nicht nur „vernachlässigbar klein“, sondern gleich Null.
  • In ihrem Zuständigkeitsbereich hat die Vergabeorganisation die Kontrolle über die Identifikatoren und damit die Möglichkeit, sie gemäß einer eigenen Semantik aufzubauen.
  • Die Herkunft einer OID kann verfolgt werden, ohne dass die OID selbst datenschutzrelevante Information preisgibt.
  • Durch die Registrierung von OIDs besteht die Möglichkeit, zu den vergebenen OIDs Metadaten zu erfassen und in OID-Registern zu veröffentlichen.

Die letzten beiden Eigenschaften helfen, Redundanzen in der OID-Vergabe zu vermeiden, d. h. sicherzustellen, dass jedes Objekt einen global eindeutigen Identifikator erhält. Sie stellen den wesentlichen Mehrwert der Verwendung von ISO OID dar.

6. Repräsentiert die OID eine Klassifikation?

Im Allgemeinen repräsentiert der OID-Baum keine Klassifikation im Sinne einer Terminologie. Einzelne Knoten können mit solchen Objekten verknüpft sein (z. B. steht 1.2.276.0.76.5.311 für die Klassifikation von Diagnosen im deutschen Gesundheitswesen), aber die OID-Hierarchie an sich besitzt keinerlei Semantik. Zur Erleichterung der OID-Verwaltung darf eine Vergabeorganisation für ihren Teil des OID-Baums eine (Semantik-basierte) Vergabekonvention festlegen. Diese ist jedoch ausschließlich intern und besitzt außerhalb der Vergabeorganisation keinerlei normative Verbindlichkeit.

7. Dürfen bei maschineller Verarbeitung Teile einer OID interpretiert werden, um daraus auf die Bedeutung der OID zu schließen?

Bei dieser Frage ist vorab zu klären,

  • in welchem Anwendungsfall die OID verwendet wird und
  • ob es sich um eine OID aus dem eigenen Zuständigkeitsbereich handelt.

Die nachstehende Tabelle führt die vier möglichen Kombinationen auf.

Anwendungsfall/

Ursprung der OID

OID aus fremdem Zuständigkeitsbereich OID aus eigenem Zuständigkeitsbereich
Vergabe und Verwaltung einer OID <kommt nicht vor> Semantische Interpretation notwendig. Die verwaltende Anwendung (z. B. eine OID-Registry) muss die OID interpretieren, um die OIDs zu administrieren.
Verwendung einer freigegebenen OID Semantische Interpretation nicht zulässig. Siehe auch HL7 Version 3, Data Types - Abstract Specification, 2.14.1. Semantische Interpretation nicht zulässig. „Eigene“ OIDs sind auf die gleiche Weise zu nutzen wie „fremde“ OIDs.

8. Wo kommt ISO OID auf dem Gebiet der Healthcare-IT zum Einsatz?

In der Healthcare-IT wird ISO OID in den Standards HL7 2.x und in HL7 Version 3, inkl. CDA verwendet. Auf diese Kommunikationsstandards wird in mehreren Domains und mehreren Profilen der Interoperabilitätsinitiative IHE (Integrating Healthcare Enterprise) referenziert. Während in HL7 2.x eine OID nur als Kennzeichner eines Namensraumes (Assigning Authority) eingesetzt wird, ist die Verwendung unter HL7 Version 3 umfassender und wird dort zum Beispiel auch zur Identifikation von „internen“ Objekten des Standards genutzt.

Der DICOM-Standard zur Bildübertragung und -speicherung verwendet sog. UIDs (Unique Identifier), um Objekte eindeutig zu identifizieren. Eine UID enthält typischerweise eine OID als festes Präfix und ein „variables“ Suffix.

ISO OID und HL7 Version 3

9. Welche Rolle spielt ISO OID im Standard HL7 Version 3?

ISO OID ist in HL7 Version 3 als Basis-Datentyp „OID“ definiert und wird verwendet, um Instanzen über den Datentyp II (Instance Identifier) und Konzepte über den Datentyp CD (Concept Descriptor) zu identifizieren.

Für die Identifikation von Konzepten werden in HL7 Version 3 mehrere vom Datentyp CD abgeleitete Spezialisierungen definiert: CV (Coded Value), CWE (Coded With Exceptions) und CNE (Coded With No Exceptions).

Diese HL7 Version 3 Datentypen werden ebenfalls im Clinical Document Architecture Release 2 (CDA R2) verwendet und somit in CDA- und CCD-Dokumenten genutzt.

10. Was ist ein Instanzenidentifikator?

Ein Instanzenidentifikator bezeichnet eine konkrete Objektinstanz, wie eine Person, ein IT-System oder eine Organisation. In HL7 Version 3 besteht ein Instanzenidenfikator aus einer Root und einer optionalen Extension. Er wird auf eine der folgenden Weisen gebildet:

  • Wird ein Instanzenidenfikator eindeutig durch eine OID definiert, so wird diese OID als Root angegeben. Ist in diesem Fall gibt es keine Extension. Beispiel für ein IT-System: <id root="2.16.840.1.113883.3.37.4.1.1.2.0"/>.
  • Wird ein Instanzenidentifikator eindeutig durch die Kombination einer OID und einer Zusatzinformation definiert, so wird die OID als Root angegeben und die Zusatzinformation als Extension. Beispiel: Patientennummer <id root="1.3.6.1.4.1.21367.2005.1.1" extension="PDQ113XX05" />.

11. Was ist der Unterschied zwischen einem Konzept und einem Code?

Konzepte bezeichnen abstrakte Konstrukte wie Klassen, Zustände, Begriffe und Normen. Konzepte werden durch Codes abgebildet und identifiziert. Idealerweise wird ein Konzept nur durch einen Code abgebildet. In der Praxis wird jedoch ein und dasselbe Konzept durch Codes in verschiedenen Codesystemen definiert. So wird beispielsweise das Konzept „Weibliches Geschlecht“ in den Codesystem HL7 2.x, HL7 Version 3 und SNOMED CT durch die folgenden Codes definiert.

  • HL7 2.x:
codeSystem="2.16.840.1.113883.12.1" 
codeSystemName="AdministrativeSex" 
code="F" 
  • HL7 Version 3:
codeSystem="1.2.276.0.76.5.1" 
codeSystemName="AdministrativeGenderCode" 
code="F"
  • SNOMED CT:
codeSystem="2.16.840.1.113883.19.6.96" 
codeSystemName="SNOMED CT" 
code="248152002"

Damit ist der Code nur in Kombination mit der OID seines Codesystems eindeutig.

12. Wie entscheidet man bei einem Objekt, ob es als Instanz oder als Code abzubilden ist?

In den Domainmodellen innerhalb von HL7 Version 3 wurde die entsprechende Designentscheidung bereits getroffen. So wird der Benutzer des Standards mit der oben gestellten Frage nur bei der Erstellung völlig neuer Domainmodelle konfrontiert.

Objekte, die öffentlich bekannt, in ihrer Zahl begrenzt und von ihrer Lebensdauer langlebig bis dauerhaft sind, können grundsätzlich sowohl auf Instanzen als auch auf Konzepte abgebildet werden, z. B. Länder oder globale Organisationen.

So definiert z. B. das Dokument „Festlegung von OIDs“ der Gematik Berufsgruppen im Sinne von Kategorien als einzelne OIDs. Dagegen vergibt das „OID-Konzept“ von eFA OIDs für Code-Systeme und listet die zulässigen Werte einzelner Code-Systeme auf, z. B. für Therapie. Die Vertauschbarkeit beider Herangehensweisen zeigt sich auch in HL7 Version 3 selbst. HL7 3.0 weist historisch bedingte Unregelmäßigkeit bei „internen“ Artefakten wie interactionId oder templateId auf - sie entsprechen zwar semantisch einer Klasse, sind dennoch als Instanzen abgebildet.

Der formale Unterschied zwischen Code und Instanz zeigt sich bei der Veröffentlichung der betroffenen OID: Um einen Instanzenidentifikator bekannt zu machen, ist lediglich die entsprechende OID in eine öffentliche OID-Registry einzustellen. Um dagegen einen Code bekannt zu machen, muss man zum einen die OID des Codesystems in einer OID-Registry veröffentlichen, zum anderen den Code selbst einer Liste (Katalog) hinzufügen und den aktualisierten Katalog publizieren.

13. Wann muss für ein Kodiersystem eine neue ISO OID vergeben werden?

Eine ISO OID verfügt über keinen Versionierungsmechanismus. Wenn sich ein Codesystem ändert, ist zu prüfen, ob dieses Codesystem immer noch dasselbe Konzept darstellt. Ändert sich die Semantik oder handelt es sich um eine nicht „abwärts kompatible“ Änderungen (s. Tabelle), ist für das geänderte Codesystem eine neue OID zu vergeben. Ein Beispiel dafür ist die jährliche Überarbeitung der deutschen Diagnosenklassifikation. Da es möglich ist, Codes aus diesem Katalog zu löschen, wird vom DIMDI für den überarbeiteten Katalog jedes Jahr eine neue OID vergeben.