<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="SpecimenSequence" />
  <url value="https://demis.rki.de/fhir/igs/StructureDefinition/SpecimenSequence" />
  <version value="2.0.2" />
  <name value="SpecimenSequence" />
  <title value="Sequenz-Probe" />
  <status value="active" />
  <date value="2025-11-04" />
  <publisher value="Robert Koch-Institut" />
  <contact>
    <telecom>
      <system value="email" />
      <value value="demis-support@rki.de" />
    </telecom>
  </contact>
  <description value="Die Sequenz-Probe umfasst Angaben zum Sequenzierungsisolat, zum Sequenzierungsprotokoll, zur Sequenzierungsstrategie, zu den Reagenzien der Verarbeitung (Primer-Schemes, die zur Amplicon-Sequenzierung verwendet wurden und die Adapter), sowie das Datum des Probeneingangs und das Probenentnahmedatum. Die IGS-ID (DEMIS-Identifier für die Sequenz), die beim Sequenzupload vergeben wird, wird in der entsprechenden Extension im processing-Element angegeben." />
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166" />
      <version value="ALPHA-2" />
      <code value="DE" />
    </coding>
  </jurisdiction>
  <copyright value="Copyright (C) 2021-2025 Robert Koch-Institut" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="true" />
  <type value="Specimen" />
  <baseDefinition value="https://demis.rki.de/fhir/StructureDefinition/Specimen" />
  <derivation value="constraint" />
  <differential>
    <element id="Specimen.meta">
      <path value="Specimen.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Specimen.meta.profile">
      <path value="Specimen.meta.profile" />
      <min value="1" />
      <max value="1" />
      <patternCanonical value="https://demis.rki.de/fhir/igs/StructureDefinition/SpecimenSequence" />
      <mustSupport value="true" />
    </element>
    <element id="Specimen.extension">
      <path value="Specimen.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="0" />
    </element>
    <element id="Specimen.extension:isolate">
      <path value="Specimen.extension" />
      <sliceName value="isolate" />
      <short value="Zur Sequenzierung verwendetes Isolat (Laborinterne Nummer/Name/Identifier)" />
      <definition value="Zur Sequenzierung verwendetes Isolat (Laborinterne Nummer/Name/Identifier)" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://demis.rki.de/fhir/igs/StructureDefinition/Isolate" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
    </element>
    <element id="Specimen.subject">
      <path value="Specimen.subject" />
      <short value="Betroffene Person (anonym)" />
      <definition value="Betroffene Person (anonym)" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://demis.rki.de/fhir/StructureDefinition/NotifiedPersonAnonymous" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="Specimen.processing">
      <path value="Specimen.processing" />
      <min value="1" />
    </element>
    <element id="Specimen.processing.description">
      <path value="Specimen.processing.description" />
      <short value="Name des Sequenzierungsprotokolls" />
      <definition value="Name des Sequenzierungsprotokolls" />
      <mustSupport value="true" />
    </element>
    <element id="Specimen.processing.procedure">
      <path value="Specimen.processing.procedure" />
      <short value="Sequenzierungsstrategie" />
      <definition value="Sequenzierungsstrategie" />
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="SpecimenProcessingProcedure" />
        </extension>
        <strength value="required" />
        <description value="Sequenzierungsstrategie" />
        <valueSet value="https://demis.rki.de/fhir/igs/ValueSet/sequencingStrategy" />
      </binding>
    </element>
    <element id="Specimen.processing.additive">
      <path value="Specimen.processing.additive" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="resolve().code.coding" />
        </discriminator>
        <rules value="closed" />
      </slicing>
    </element>
    <element id="Specimen.processing.additive:adapterSubstance">
      <path value="Specimen.processing.additive" />
      <sliceName value="adapterSubstance" />
      <short value="Adapter, die zur Library preparation verwendet wurden" />
      <definition value="Adapter, die zur Library preparation verwendet wurden" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://demis.rki.de/fhir/igs/StructureDefinition/AdapterSubstance" />
        <aggregation value="bundled" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Specimen.processing.additive:primerSubstance">
      <path value="Specimen.processing.additive" />
      <sliceName value="primerSubstance" />
      <short value="Primer-Schemes, die zur Amplicon-Sequenzierung verwendet wurden" />
      <definition value="Primer-Schemes, die zur Amplicon-Sequenzierung verwendet wurden" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://demis.rki.de/fhir/igs/StructureDefinition/PrimerSubstance" />
        <aggregation value="bundled" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Specimen.processing.time[x]">
      <path value="Specimen.processing.time[x]" />
      <short value="Verarbeitungsdatum z.B. Sequenzierungsdatum" />
      <definition value="Datum, an dem die Probe verarbeitet z.B. sequenziert wurde" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>