Benennung definitorischer Artefakte
Definitorische FHIR-Ressourcen (z.B. StructureDefinition, OperationDefinition, CapabilityStatement, SearchParameter, ValueSet etc) verfügen über harmonisierte Metadaten. Da die korrekte Verwendung dieser Metadaten teilweise Auswirkungen auf das Verhalten und die Stabilität von Tools (z.B. Validatoren) haben kann, empfiehlt sich eine sorgfältige und konsequente Pflege der folgenden Elemente:
id
Die id des Artefaktes sollte stets vorhanden sein und identisch mit name
gesetzt werden.
Begründung: Artefakte ohne IDs lösen im Simplifier Quality Control eine Warnung, im IG Publisher einen Fehler aus. Die maximal erlaubte Länge von 64 Zeichen muss beachtet werden.
Tipp: Tools wie SUSHI verwenden name
eines Artefaktes um daraus automatisch die id
und canonical
zu generieren. In diesem Fall muss id
nicht manuell gesetzt werden.
url
Oft als "Canonical URL" bezeichnet: Weltweit eindeutiger, technischer Name des Artefaktes. Wird verwendet, um systemübergreifend auf ein Artefakt, unabhängig von dessen Speicherort, Bezug nehmen zu können. Weitere Hinweise siehe
name
Oft als "Computer friendly name" bezeichnet: Muss innerhalb eines Projektes eindeutig sein und einen prägnanten, lesbaren Namen für das Artefakt enthalten. Empfehlenswert ist es, stets der UpperCamelCase-Schreibweise zu folgen. Wenn name und id identisch gewählt werden sollen, muss die für ids maximal erlaubte Länge von 64 Zeichen beachtet werden.
Begründung:
Tools wie SUSHI verwenden den Namen eines Artefaktes um daraus automatisch die id
und canonical
zu generieren. Der name
sollte daher unter Berücksichtigung der Konventionen aller dieser Elemente gewählt werden. Eine konsequente CamelCase-Schreibweise erfüllt diese Bedingung.
Tipp: Differenzierung Namen mittels Suffixen
Die Festlegung eines projektweit eindeutigen Namens kann bei manchen Artefakten herausfordernd sein, weil diese semantisch das gleiche ausdrücken, z.B. bei CodeSystem und ValueSet, LogicalModel und Profil, Extension und SearchParameter.
Verhindert werden kann dies - wo sinnvoll und notwendig - beispielsweise durch die Verwendung von Suffixes, z.B.
- ValueSets:
VS - CodeSystems:
CS - Extension:
EX - SearchParameter:
SP
Weiter mögliche Suffixe:
- PR: StructureDefinition (Profile)
- EX: StructureDefinition (Extension)
- DT: StructureDefinition (DataType)
- LM: Logical Model
- VS: ValueSet
- CS: CodeSystem
- CM: ConceptMap
- SM: StructureMap
- NS: NamingSystem
- SP: SearchParameter
- CPS: CapabilityStatement
- OD: OperationDefinition
- IG: ImplementationGuide
- EXA: Example
version
Versionsnummer der Ressource in semVer-Syntax. Sollte mit der Versionsnummer der Packages übereinstimmen, in dem das Artefakt publiziert wird.
Begründung: Beim Parallelbetrieb mehrerer Versionen ist es nicht mehr/schwer möglich, das Artefakt einem Package-Kontext zuzuordnen. Eine separate semantisch korrrekte Versionierung jedes einzelnen Artefaktes erhöht darüber hinaus den Pflegeaufwand einer Spezifikation massiv.
Terminologien, die unabhängig von einer Spezifikation weiterentwickelt werden und daher in Ihren Versionen abweichen, sollten in separaten Packages publiziert und als Dependency in eine Spezifikation eingebunden werden.
title
Oft als "Human friendly name" bezeichnet: Unterliegt im Gegensatz zu name
keinen Beschränkungen und sollte die bestmögliche Auffindbarkeit des Artefaktes in einer Benutzeroberfläche gewährleisten. Wird in UIs (z.B in Simplifier) anstelle von name
zur Anzeige verwendet. Der title
sollte Projektweit eindeutig gewählt werden.