Allgemeine Richtlinien für die Implementierung des e-Impfpasses

Aus HL7 Austria MediaWiki
Wechseln zu: Navigation, Suche
[gesichtete Version][Markierung ausstehend]
K (Maximum-Set)
(Legende der Konformitätskriterien (Optionalität))
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 24: Zeile 24:
 
* NICHT ERLAUBT formuliert ein verpflichtend einzuhaltendes Verbot. Entspricht dem Konformitätskriterium '''''[NP]'''''.
 
* NICHT ERLAUBT formuliert ein verpflichtend einzuhaltendes Verbot. Entspricht dem Konformitätskriterium '''''[NP]'''''.
 
* SOLL oder EMPFOHLEN steht für eine pragmatische Empfehlung. Es ist gewünscht und empfohlen, dass die Anforderung umgesetzt wird, es kann aber Gründe geben, warum dies unterbleibt. Entspricht dem Konformitätskriterium '''''[R 0..*]'''''.
 
* SOLL oder EMPFOHLEN steht für eine pragmatische Empfehlung. Es ist gewünscht und empfohlen, dass die Anforderung umgesetzt wird, es kann aber Gründe geben, warum dies unterbleibt. Entspricht dem Konformitätskriterium '''''[R 0..*]'''''.
* KANN oder OPTIONAL (engl. MAY, OPTIONAL) Die Umsetzung der Anforderung ist optional, sie kann auch ohne zwingenden Grund unterbleiben. Entspricht dem Konformtätskriterium '''''[O]'''''.
+
* KANN oder OPTIONAL (engl. MAY, OPTIONAL) Die Umsetzung der Anforderung ist optional, sie kann auch ohne zwingenden Grund unterbleiben. Entspricht dem Konformitätskriterium '''''[O]'''''.
  
 
===Legende der Konformitätskriterien (Optionalität)===
 
===Legende der Konformitätskriterien (Optionalität)===
Zeile 34: Zeile 34:
 
| '''''[M]''''' || 1..1<br/> 1..* || ''nicht erlaubt'' || Das Element MUSS mit einem korrekten "echten" Wert angegeben werden. NullFlavor oder "Dummy"-Werte sind NICHT ERLAUBT.
 
| '''''[M]''''' || 1..1<br/> 1..* || ''nicht erlaubt'' || Das Element MUSS mit einem korrekten "echten" Wert angegeben werden. NullFlavor oder "Dummy"-Werte sind NICHT ERLAUBT.
 
|- style="background:#FFFFFF"
 
|- style="background:#FFFFFF"
| '''''[NP]''''' || 0..0 || ''nicht erlaubt'' || Das Element ist NICHT ERLAUBT.
+
| '''''[NP]''''' || 0..0 || ''nicht erlaubt'' || Das Element oder Attribut ist NICHT ERLAUBT.
 
|- style="background:#FFFFFF"
 
|- style="background:#FFFFFF"
| rowspan="2" | '''''[R]''''' || 1..1<br /> 1..* || ''erlaubt'' || Das Element MUSS in der Instanz vorhanden sein. Wenn nicht bekannt, ist die Verwendung eines NullFlavors vorgeschrieben, "Dummy"-Werte sind NICHT ERLAUBT.
+
| rowspan="2" | '''''[R]''''' || 1..1<br /> 1..* || ''erlaubt'' || Das Element oder Attribut MUSS in der Instanz vorhanden sein. Wenn ein Element nicht bekannt ist, ist die Verwendung eines NullFlavors vorgeschrieben, "Dummy"-Werte sind NICHT ERLAUBT.
 
|- style="background:#FFFFFF"
 
|- style="background:#FFFFFF"
| 0..1<br /> 0..* || ''nicht erlaubt'' || Das Element SOLL in der Instanz vorhanden sein, sofern bekannt. Wenn nicht bekannt, darf es nicht in der Instanz codiert sein. NullFlavor ist NICHT ERLAUBT.
+
| 0..1<br /> 0..* || ''nicht erlaubt'' || Das Element oder Attribut SOLL in der Instanz vorhanden sein, sofern bekannt. Wenn nicht bekannt, darf es nicht in der Instanz codiert sein. NullFlavor ist NICHT ERLAUBT.
 
|- style="background:#FFFFFF"
 
|- style="background:#FFFFFF"
| '''''[O]''''' || 0..1<br /> 0..* || ''erlaubt'' || Das Element ist OPTIONAL. Sender können das Element angeben. Leere optionale Elemente sind nicht zugelassen, sofern kein nullFlavor angewandt wird.  
+
| '''''[O]''''' || 0..1<br /> 0..* || ''erlaubt'' || Das Element oder Attribut ist OPTIONAL. Sender können das Element angeben. Leere optionale Elemente sind nicht zugelassen, sofern kein nullFlavor angewandt wird. Nur die jeweils im Template explizit angegebenen nullFlavors sind erlaubt. Ist kein nullFlavor angegeben, darf kein nullFlavor angewendet werden.
 
|- style="background:#FFFFFF"
 
|- style="background:#FFFFFF"
| '''''[F]''''' || 1..1||  || Für das Element ist ein fixer Wert vorgeschrieben.  
+
| '''''[F]''''' || 0..1<br /> 1..1||  || Für das Attribut ist ein fixer Wert vorgeschrieben.
 
|- style="background:#FFFFFF"
 
|- style="background:#FFFFFF"
 
| '''''[C]''''' ||  || || KONDITIONALES Konformitätskriterium. Die Konformität des Elements variiert in Abhängigkeit von anderen Elementen, Situationen oder Zuständen. Die konkreten Abhängigkeiten sind in Folge angegeben.
 
| '''''[C]''''' ||  || || KONDITIONALES Konformitätskriterium. Die Konformität des Elements variiert in Abhängigkeit von anderen Elementen, Situationen oder Zuständen. Die konkreten Abhängigkeiten sind in Folge angegeben.
 
|-
 
|-
 
|}
 
|}
''Tabelle 2: Legende der Optionalitäten''
+
''Tabelle 2: Legende der Optionalitäten. Attribute dürfen höchstens ein mal pro Element vorkommen''
  
 
===Kardinalität===
 
===Kardinalität===
Zeile 53: Zeile 53:
  
 
===Maximum-Set===
 
===Maximum-Set===
Das CDA Modell beschreibt ein höchst umfangreiches Schema von Informationselementen und bietet in manchen Bereichen über rekursive, beliebig tief verschachtelbare Elemente eine theoretisch unendlich hohe Anzahl von Möglichkeiten, Informationen abzulegen. Die vollständige Beschreibung und Definition aller Elemente in einem Implementierungsleitfaden wäre daher äußerst aufwändig und kann im vorliegenden Implementierungsleitfäden nicht erfolgen.
+
Das CDA Modell beschreibt ein höchst umfangreiches Schema von Informationselementen und bietet in manchen Bereichen über rekursive, beliebig tief verschachtelbare Elemente eine theoretisch unendlich hohe Anzahl von Möglichkeiten, Informationen abzulegen. Die vollständige Beschreibung und Definition aller Elemente in einem Implementierungsleitfaden wäre daher äußerst aufwändig und kann im vorliegenden Implementierungsleitfaden nicht erfolgen.
  
 
Vielmehr werden lediglich jene Elemente, für die es Vorgaben gibt beschrieben. Die Verwendung aller nicht angegebenen Elemente und Attribute ist NICHT ERLAUBT. Die e-Impfpass Templates sind daher „closed templates“.
 
Vielmehr werden lediglich jene Elemente, für die es Vorgaben gibt beschrieben. Die Verwendung aller nicht angegebenen Elemente und Attribute ist NICHT ERLAUBT. Die e-Impfpass Templates sind daher „closed templates“.
Zeile 128: Zeile 128:
  
 
===Größenbeschränkung von eingebetteten Objekten===
 
===Größenbeschränkung von eingebetteten Objekten===
In CDA Dokumenten können verschiedene Objekte (z.B. PDF-Dokumente, Bilder) eingebettet werden (siehe „[[ILF:Allgemeiner Implementierungsleitfaden#ELGA_EingebettetesObjekt-Entry|ELGA EingebettetesObjekt-Entry]]“).
+
In CDA Dokumenten können verschiedene Objekte (z.B. PDF-Dokumente, Bilder) eingebettet werden (siehe „[[#Eingebettetes_Objekt_Entry|Eingebettetes Objekt Entry]]“).
  
 
Dieser Implementierungsleitfaden schreibt keine Größenbeschränkung für diese Objekte vor, es wird allerdings EMPFOHLEN, diese in Bezug auf Anzahl und Speicherbedarf so klein wie möglich zu halten. Es liegt in der Verantwortung des Erstellers, die Größe der über ELGA bereitgestellten CDA-Dateien etwa durch Verringerung der Auflösung oder der Anzahl der Einzelbilder auf eine sinnvolle und angemessene Größe zu beschränken.
 
Dieser Implementierungsleitfaden schreibt keine Größenbeschränkung für diese Objekte vor, es wird allerdings EMPFOHLEN, diese in Bezug auf Anzahl und Speicherbedarf so klein wie möglich zu halten. Es liegt in der Verantwortung des Erstellers, die Größe der über ELGA bereitgestellten CDA-Dateien etwa durch Verringerung der Auflösung oder der Anzahl der Einzelbilder auf eine sinnvolle und angemessene Größe zu beschränken.
 
+
{{BeginYellowBox}}
 
Damit beim Download keine unnötigen Verzögerungen verursacht werden, SOLL die Gesamtgröße der Datei 20 MB nicht überschreiten.<sup>6</sup>
 
Damit beim Download keine unnötigen Verzögerungen verursacht werden, SOLL die Gesamtgröße der Datei 20 MB nicht überschreiten.<sup>6</sup>
 
+
{{EndYellowBox}}
 
<sup>6</sup> Aktuell wird von ELGA die Größe von Doumenten auf 20MB beschränkt.
 
<sup>6</sup> Aktuell wird von ELGA die Größe von Doumenten auf 20MB beschränkt.
  
 
===Verbot von CDATA===
 
===Verbot von CDATA===
 
Die Verwendung von CDATA-Abschnitten (<![CDATA[…]]>), also von Zeichenketten, die vom Parser nicht als XML-Quellcode interpretiert werden können, ist für ELGA CDA Dokumente generell '''NICHT ERLAUBT'''.
 
Die Verwendung von CDATA-Abschnitten (<![CDATA[…]]>), also von Zeichenketten, die vom Parser nicht als XML-Quellcode interpretiert werden können, ist für ELGA CDA Dokumente generell '''NICHT ERLAUBT'''.

Aktuelle Version vom 4. März 2020, 10:56 Uhr

1 Allgemeine Richtlinien für die Implementierung des e-Impfpasses

1.1 Verwendung von Schlüsselwörtern

Wenn im Text die Verbindlichkeit von Vorgaben angegeben wird, wird das durch Schlüsselwörter gekennzeichnet [gemäß RFC 2119], die in Majuskeln (Großbuchstaben) geschrieben werden. Die Angabe der Verbindlichkeit ersetzt nicht die Angabe von Kardinalität oder Nullwerten (die in HL7 Version 3 als NullFlavors ausgedrückt werden).

  • MUSS bedeutet eine verpflichtend einzuhaltende Vorschrift (Gebot). Entspricht den Konformitätskriterien [R 1..*] und [M].
  • NICHT ERLAUBT formuliert ein verpflichtend einzuhaltendes Verbot. Entspricht dem Konformitätskriterium [NP].
  • SOLL oder EMPFOHLEN steht für eine pragmatische Empfehlung. Es ist gewünscht und empfohlen, dass die Anforderung umgesetzt wird, es kann aber Gründe geben, warum dies unterbleibt. Entspricht dem Konformitätskriterium [R 0..*].
  • KANN oder OPTIONAL (engl. MAY, OPTIONAL) Die Umsetzung der Anforderung ist optional, sie kann auch ohne zwingenden Grund unterbleiben. Entspricht dem Konformitätskriterium [O].

1.2 Legende der Konformitätskriterien (Optionalität)

Siehe auch “Umgang mit optionalen Elementen“.

Konformitäts-Kriterium Mögliche Kardinalität Verwendung von NullFlavor Beschreibung
[M] 1..1
1..*
nicht erlaubt Das Element MUSS mit einem korrekten "echten" Wert angegeben werden. NullFlavor oder "Dummy"-Werte sind NICHT ERLAUBT.
[NP] 0..0 nicht erlaubt Das Element oder Attribut ist NICHT ERLAUBT.
[R] 1..1
1..*
erlaubt Das Element oder Attribut MUSS in der Instanz vorhanden sein. Wenn ein Element nicht bekannt ist, ist die Verwendung eines NullFlavors vorgeschrieben, "Dummy"-Werte sind NICHT ERLAUBT.
0..1
0..*
nicht erlaubt Das Element oder Attribut SOLL in der Instanz vorhanden sein, sofern bekannt. Wenn nicht bekannt, darf es nicht in der Instanz codiert sein. NullFlavor ist NICHT ERLAUBT.
[O] 0..1
0..*
erlaubt Das Element oder Attribut ist OPTIONAL. Sender können das Element angeben. Leere optionale Elemente sind nicht zugelassen, sofern kein nullFlavor angewandt wird. Nur die jeweils im Template explizit angegebenen nullFlavors sind erlaubt. Ist kein nullFlavor angegeben, darf kein nullFlavor angewendet werden.
[F] 0..1
1..1
Für das Attribut ist ein fixer Wert vorgeschrieben.
[C] KONDITIONALES Konformitätskriterium. Die Konformität des Elements variiert in Abhängigkeit von anderen Elementen, Situationen oder Zuständen. Die konkreten Abhängigkeiten sind in Folge angegeben.

Tabelle 2: Legende der Optionalitäten. Attribute dürfen höchstens ein mal pro Element vorkommen

1.3 Kardinalität

Die Kardinalität beschreibt, wie oft ein Element innerhalb einer Struktur auftreten kann. Die Kardinalität wird durch ein Intervall zwischen der minimalen und maximalen Anzahl angegeben, getrennt durch „..“. Eine unbegrenzte Anzahl wird durch ein „*“ angegeben. Daraus ergeben sich mindestens folgende Möglichkeiten: 0..1; 0..*; 1..1; 1..*

1.4 Maximum-Set

Das CDA Modell beschreibt ein höchst umfangreiches Schema von Informationselementen und bietet in manchen Bereichen über rekursive, beliebig tief verschachtelbare Elemente eine theoretisch unendlich hohe Anzahl von Möglichkeiten, Informationen abzulegen. Die vollständige Beschreibung und Definition aller Elemente in einem Implementierungsleitfaden wäre daher äußerst aufwändig und kann im vorliegenden Implementierungsleitfaden nicht erfolgen.

Vielmehr werden lediglich jene Elemente, für die es Vorgaben gibt beschrieben. Die Verwendung aller nicht angegebenen Elemente und Attribute ist NICHT ERLAUBT. Die e-Impfpass Templates sind daher „closed templates“.

Elemente oder Attribute, die nicht im e-Impfpass Implementierungsleitfaden definiert wurden, sind NICHT ERLAUBT.

Diese beschreiben daher ein sogenanntes „Maximum-Set“. Für diese Regel existieren nur die im Folgenden genannten Ausnahmen:

1.4.1 Ausnahme: Fixierte Attribute

Attribute, die gem. CDA-Schema mit default („fixed“) angegeben sind, haben einen festen Wert, daher können diese Attribute auch weggelassen werden. Diese Attribute werden daher üblicherweise nicht beschrieben und angegeben. Die Angabe von fixierten Attributen oder Attributen mit ihrem gem. CDA-Schema definierten Default-Wert ist erlaubt, auch wenn diese nicht explizit im Leitfaden beschrieben sind.

1.4.2 Hinweis zur Implementierung weiterverarbeitender Software

CDA-Dokumente können unter Umständen „fremde“ Elemente oder Attribute enthalten, die der „Maximum-Set“ Vorschrift dieses Dokumentleitfadens widersprechen (z.B. aufgrund von Software-Fehlern). Sollten derartige Elemente oder Attribute im CDA-Dokument vorhanden sein, soll weiterverarbeitende Software so implementiert sein, dass dies nicht zu Fehlern in der Weiterverarbeitung der Dokumente führt.

1.4.3 Umgang mit Ausnahmen bei der Konformitätsprüfung

Nur Elemente, die im „Maximum-Set“ beschrieben sind, können zuverlässig geprüft werden. „Fremde“ Elemente oder Attribute werden daher von den Konformitätsprüfmechanismen im Sinne der „closed templates“ grundsätzlich als falsch erkannt. Zusätzliche Entries oder TemplateIds können daher Fehlermeldungen auslösen. Attribute, die im CDA-Schema als „fixed“ definiert sind oder mit ihrem Default-Wert angegeben sind, dürfen angegeben werden und werden auch nicht als Fehler bewertet.

1.5 Umgang mit optionalen Elementen

Sind Elemente bzw. Attribute als „optional“ gekennzeichnet ([O]) so ist ihre Verwendung OPTIONAL, aber es ist NICHT ERLAUBT, dass sie, wenn sie verwendet werden, leer sind. Möchte man ein optionales Element explizit mit einem leeren Wert angeben, so hat dies durch Kennzeichnung mit nullFlavor zu erfolgen, zum Beispiel:

  • NI: wenn es keine Informationen gibt
  • UNK: wenn es Informationen gibt, diese aber unbekannt sind

Zur genauen Definition und Verwendung siehe Der nullFlavor.

1.6 Value Sets

Ein Value Set ist eine eindeutig identifizierbare und versionierte Sicht auf ein oder mehrere Codesysteme. Es kann als Zusammenstellung von einem oder mehreren Codes aus einem oder mehreren Codesysteme gesehen werden. Ein Value Set enthält die Codes selbst und die Information über die Herkunft des Codes (das Source-Codesystem).

Beispiele für Value-Sets: „ELGA_NullFlavor“, „ELGA_Dokumentenklassen“.

Wo immer in den CDA Implementierungsleitfäden eine Werteauswahl getroffen werden kann, wird ein passendes Value Set mit einem eindeutigen Namen angegeben. Sämtliche in den Implementierungsleitfäden verwendeten Value Sets werden am österreichischen Terminologieserver publiziert: https://termpub.gesundheit.gv.at/.

Value Sets sind nicht nur durch einen eindeutigen Namen, sondern auch durch eine OID, und eine Versionsnummer gekennzeichnet. Weiters werden Gültigkeitsstatus und ein "Gültig ab"-Datum angegeben.

Hinweise zum korrekten Umgang mit Terminologien finden sich im „Leitfaden für den Umgang mit Terminologien in ELGA“ [TERMLEIT].

1.6.1 Änderbarkeit von Value Sets

Inhalte von Value Sets können sich ändern, der Name und die OID eines Value Sets bleiben aber gleich. Bei neuen Versionen werden Versionsnummer, Änderungsdatum und „Gültig ab“-Datum (effectiveDate) angegeben. Damit kann die Gültigkeit zu einer bestimmten Zeit rekonstruiert werden.

In Ausnahmen kann bei der Definition eines Value Sets angegeben werden, dass es nicht geändert oder versioniert werden darf (Property „Immutability“).

1.6.2 Value Set Binding

Für ELGA gilt grundsätzlich eine DYNAMISCHE Bindung an Value Sets. Das bedeutet, dass immer die aktuell am Terminologieserver publizierte Version eines Value Sets anzuwenden ist. (Das Setzen des entsprechenden Schlüsselworts DYNAMIC ist daher in den Leitfäden optional).

Für jedes Value Set ist auch ein Zeitpunkt angegeben, an dem es Gültigkeit erlangt („Gültig ab“), das ist für Value Sets wichtig, die schon vor ihrem Inkrafttreten veröffentlicht werden.

Value Sets können auch STATISCH an ein Code-Element gebunden werden. Das wird gekennzeichnet durch die Angabe des Value Sets mit Name, OID, Version und "Gültig ab"-Datum (effectiveDate) sowie dem Schlüsselwort STATIC.

1.7 Der nullFlavor

Das Attribut @nullFlavor dient zur Kennzeichnung, wenn das Element nicht seiner Entsprechung gemäß befüllt werden kann.

Obwohl dieses Attribut vom CDA-Schema bei prinzipiell jedem CDA-Element erlaubt wäre, ist die konkrete Anwendung des @nullFlavor Attributs im Rahmen dieser Implementierungsleitfäden nur eingeschränkt erlaubt. Ein entsprechender Vermerk ist im jeweiligen Abschnitt angeführt.

Beispiel für ein Element, welches mit dem @nullFlavor versehen wurde:

<id nullFlavor="UNK" />

Zulässig sind Werte gemäß Value-Set „ELGA_NullFlavor“, solange nicht eine weitere Einschränkung beim jeweiligen Element angegeben wird.

Wenn in einem Element ein NullFlavor angegeben wurde, kann nicht gleichzeitig ein anderes Attribut eingetragen werden.


1.8 PDF Format-Vorschrift

PDF-Attachments kommen im e-Impfpass nicht zur Anwendung.

1.9 Größenbeschränkung von eingebetteten Objekten

In CDA Dokumenten können verschiedene Objekte (z.B. PDF-Dokumente, Bilder) eingebettet werden (siehe „Eingebettetes Objekt Entry“).

Dieser Implementierungsleitfaden schreibt keine Größenbeschränkung für diese Objekte vor, es wird allerdings EMPFOHLEN, diese in Bezug auf Anzahl und Speicherbedarf so klein wie möglich zu halten. Es liegt in der Verantwortung des Erstellers, die Größe der über ELGA bereitgestellten CDA-Dateien etwa durch Verringerung der Auflösung oder der Anzahl der Einzelbilder auf eine sinnvolle und angemessene Größe zu beschränken.

Damit beim Download keine unnötigen Verzögerungen verursacht werden, SOLL die Gesamtgröße der Datei 20 MB nicht überschreiten.6

6 Aktuell wird von ELGA die Größe von Doumenten auf 20MB beschränkt.

1.10 Verbot von CDATA

Die Verwendung von CDATA-Abschnitten (<![CDATA[…]]>), also von Zeichenketten, die vom Parser nicht als XML-Quellcode interpretiert werden können, ist für ELGA CDA Dokumente generell NICHT ERLAUBT.