<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ISiKCodeSystem" />
  <url value="https://gematik.de/fhir/isik/StructureDefinition/ISiKCodeSystem" />
  <version value="6.0.0-rc" />
  <name value="ISiKCodeSystem" />
  <status value="active" />
  <experimental value="false" />
  <date value="2026-04-02" />
  <publisher value="gematik GmbH" />
  <description value="Dieses Profil beschreibt die maschinenlesbare Repräsentation von &#xA;system-spezifischen Kodierungen in ISiK-Szenarien.  &#xA;&#xA;**Motivation**&#xA;&#xA;ISiK erlaubt in diversen Kontexten die Erweiterung der Kodierung durch Krankenhaus-/System-interne Kodierungen. Das Profil ISiKKatalog (CodeSystem) als Profil erlaubt die Repräsentation der dazugehörigen Codes und Display-Werte. &#xA;&#xA;Eine maschinenlesbare Repräsentation dieser Kodierungen erlaubt es Clients, dazugehörige Anzeigetext und Definitionen zu verarbeiten.&#xA;&#xA;Ein Codesystem eignet sich auch dazu, auf dessen Basis definierte ValueSets zu expandieren (https://hl7.org/fhir/R4/valueset-operation-expand.html).&#xA;Da ISiKValueSet expandierte Valuesets vorsieht, ist eine dynamische Expansion in der Regel nicht erforderlich.&#xA;Darüber hinausgehend ist ein Use Case im Kontext der Katalogabfrage folgender: Ein Client möchte eine Expansion neu generieren (z.B. mit anderen Expansionen-Parametern), um das ValueSet beispielsweise in einer anderen Sprache auszugeben." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="CodeSystem" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/CodeSystem" />
  <derivation value="constraint" />
  <differential>
    <element id="CodeSystem.id">
      <path value="CodeSystem.id" />
      <short value="serverseitige, interne ID des Datensatzes" />
      <comment value="**bedingtes Pflichtfeld/bedingtes MS:** Alle von einem Server bereitgestellten Ressourcen MÜSSEN über eine `id` verfügen.&#xA;  Von Clients erzeugte Ressourcen, die im Kontext einer CREATE-Interaktion übermittelt werden, MÜSSEN NICHT über eine `id`verfügen." />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.meta.versionId">
      <path value="CodeSystem.meta.versionId" />
      <short value="Eindeutiger Name der serverseitigen Version des Datensatzes" />
      <comment value="Alle von einem Server bereitgestellten Ressourcen SOLLEN über eine `versionID` verfügen.&#xA;  Von Clients erzeugte Ressourcen, die im Kontext einer CREATE-Interaktion übermittelt werden, MÜSSEN NICHT über eine `versionID`verfügen." />
    </element>
    <element id="CodeSystem.meta.lastUpdated">
      <path value="CodeSystem.meta.lastUpdated" />
      <short value="Zeitpunkt der letzten Änderung" />
      <comment value="Alle von einem Server bereitgestellten Ressourcen SOLLEN über ein `lastUpdate` verfügen.&#xA;  Von Clients erzeugte Ressourcen, die im Kontext einer CREATE-Interaktion übermittelt werden, MÜSSEN NICHT über ein `lastUpdate`verfügen." />
    </element>
    <element id="CodeSystem.implicitRules">
      <path value="CodeSystem.implicitRules" />
      <short value="Verweis auf die Regeln, nach denen die Ressource erstellt wurde" />
      <comment value="Begründung Constraint: In ISiK existiert kein Use-Case für dieses Element. Da es sich um ein Modifying Element handelt, wird es daher ausgeschlossen.&#xA;  Darüber hinaus werden die Regeln als URI vorgehalten. Dies führt dazu, dass sich hinter der URI eine beliebige Menge an Regeln befinden kann; wodurch  nicht sichergestellt werden kann, dass alle Clients die Regeln korrekt interpretieren können." />
      <max value="0" />
    </element>
    <element id="CodeSystem.url">
      <path value="CodeSystem.url" />
      <short value="Kanonische URL" />
      <comment value="**Bedeutung:** Eindeutige Url zur Identifizierung des CodeSystems. Absolute Url sind zu bevorzugen.  &#xA;    **Hinweise:** OIDs SOLLTEN als weitere Identifier des CodeSystems verwendet werden. In jedem Fall SOLLTE eine Canonical Url vergeben werden." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.version">
      <path value="CodeSystem.version" />
      <short value="Version" />
      <comment value="**Bedeutung:** Version des CodeSystems  &#xA;    **Hinweise:** Jede Änderung des CodeSystems MUSS eine Änderung in der Version des CodeSystems und gebundenen ValueSets nach sich ziehen. Die Versionierung SOLLTE auf dem Konzept von [Semantic Versioning](https://semver.org) basieren." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.name">
      <path value="CodeSystem.name" />
      <short value="Name des Codesystems" />
      <comment value="**Bedeutung:** Maschinenlesbarer Name des CodeSystems  &#xA;    **Hinweise:** Der Constraint [cps-0](https://www.hl7.org/fhir/R4/codesystem.html#invs) ist hierbei zu beachten." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.status">
      <path value="CodeSystem.status" />
      <short value="Status" />
      <comment value="Zeigt den aktuellen Status der Ressource an.     &#xA;  **WICHTIGER Hinweis für Implementierer:**    &#xA;  * Alle server-seitigen Implementierungen MÜSSEN in der Lage sein, &#xA;  die systemintern möglichen Statuswerte korrekt in FHIR abzubilden, mindestens jedoch 'active' und 'retired''.&#xA;  * Alle client-seitigen Implementierungen MÜSSEN in der Lage sein, sämtliche Status-Codes zu interpretieren und dem Anwender in angemessener Form darstellen zu können, &#xA;  beispielsweise durch Ausblenden/Durchstreichen von Ressourcen mit dem status `entered-in-error` und Ausgrauen von Ressourcen, die einen Plan- oder Entwurfs-Status haben." />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.content">
      <path value="CodeSystem.content" />
      <short value="Vollständigkeit der Repräsentation" />
      <comment value="**Bedeutung:** Angabe, ob es sich um eine vollständige Repräsentation des CodeSystems oder nur um einen Auszug handelt.&#xA;    **Hinweise:** Alle in einem System möglichen Status-Werte müssen über FHIR korrekt repräsentiert werden können, mindestens jedoch die Status-Werte `fragment` und `complete`. Deren korrekte Abbildung wird im Rahmen des Bestätigungsverfahrens überprüft." />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept">
      <path value="CodeSystem.concept" />
      <short value="Konzept" />
      <comment value="**Bedeutung:** Angabe der Konzepte, aus denen sich das CodeSystem zusammensetzt.  &#xA;     **Hinweise:** Es MUSS mindestens ein Code und ein Anzeigetext spezifiziert werden." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.code">
      <path value="CodeSystem.concept.code" />
      <short value="Code" />
      <comment value="Der eindeutige Code, der das Konzept im CodeSystem identifiziert." />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.display">
      <path value="CodeSystem.concept.display" />
      <short value="Anzeigetext" />
      <comment value="Die menschlich lesbare Darstellung des Konzepts." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.definition">
      <path value="CodeSystem.concept.definition" />
      <short value="Definition" />
      <comment value="Eine ausführliche Beschreibung oder Definition des Konzepts." />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>