<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="uicc-tnm" />
  <url value="https://www.vision-zero-oncology.de/fhir/StructureDefinition/uicc-tnm" />
  <name value="UICC_TNM" />
  <title value="Profile UICC TNM" />
  <status value="draft" />
  <publisher value="VISION ZERO E.V." />
  <contact>
    <telecom>
      <system value="url" />
      <value value="https://www.vision-zero-oncology.de/" />
    </telecom>
  </contact>
  <description value="Profile for the tumor classification using TNM stage groups (I, II, III, or IV) and TNM staging elements (T, N, and M)." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="sct-concept" />
    <uri value="http://snomed.info/conceptdomain" />
    <name value="SNOMED CT Concept Domain Binding" />
  </mapping>
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="sct-attr" />
    <uri value="http://snomed.org/attributebinding" />
    <name value="SNOMED CT Attribute Binding" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.code.coding:snomed">
      <path value="Observation.code.coding" />
      <sliceName value="snomed" />
      <min value="0" />
      <max value="*" />
      <patternCoding>
        <system value="http://snomed.info/sct" />
        <code value="258235000" />
      </patternCoding>
    </element>
    <element id="Observation.code.coding:loinc">
      <path value="Observation.code.coding" />
      <sliceName value="loinc" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-classification-type-loinc" />
      </binding>
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-stage-group-uicc" />
      </binding>
    </element>
    <element id="Observation.hasMember">
      <path value="Observation.hasMember" />
      <slicing>
        <discriminator>
          <type value="profile" />
          <path value="resolve()" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.hasMember:R-classification">
      <path value="Observation.hasMember" />
      <sliceName value="R-classification" />
      <short value="Residual Tumor (R) Classification" />
      <definition value="The absence or presence of residual tumour after treatment is described by the symbol R." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.vision-zero-oncology.de/fhir/StructureDefinition/uicc-tnm-r-classification" />
      </type>
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:y-symbol">
      <path value="Observation.component" />
      <sliceName value="y-symbol" />
      <short value="y Symbol" />
      <definition value="In those cases in which classification is performed during or following multimodality therapy, the cTNM or pTNM category is identified by a y prefix." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:y-symbol.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://snomed.info/sct" />
          <code value="277649004" />
          <display value="y - During therapy/following treatment (tumor staging)" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:y-symbol.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <patternCodeableConcept>
        <coding>
          <system value="urn:oid:2.16.840.1.113883.15.16" />
          <code value="y" />
          <display value="y" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:r-symbol">
      <path value="Observation.component" />
      <sliceName value="r-symbol" />
      <short value="r Symbol" />
      <definition value="Recurrent tumours, when classified after a disease free interval, are identified by the prefix r." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:r-symbol.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://snomed.info/sct" />
          <code value="277647002" />
          <display value="r - Tumor recurrence (tumor staging)" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:r-symbol.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <patternCodeableConcept>
        <coding>
          <system value="urn:oid:2.16.840.1.113883.15.16" />
          <code value="r" />
          <display value="r" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:a-symbol">
      <path value="Observation.component" />
      <sliceName value="a-symbol" />
      <short value="a Symbol" />
      <definition value="The prefix a indicates that classification is first determined at autopsy." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:a-symbol.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://snomed.info/sct" />
          <code value="277646006" />
          <display value="a - At autopsy (tumor staging)" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:a-symbol.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <patternCodeableConcept>
        <coding>
          <system value="urn:oid:2.16.840.1.113883.15.16" />
          <code value="a" />
          <display value="a" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:T-code">
      <path value="Observation.component" />
      <sliceName value="T-code" />
      <short value="T - Primary Tumor" />
      <definition value="The T-category describes the extent of the primary tumor." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:T-code.extension">
      <path value="Observation.component.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:T-code.extension:cpuPrefix">
      <path value="Observation.component.extension" />
      <sliceName value="cpuPrefix" />
      <short value="Clinical or pathological classification" />
      <definition value="How the TNM-values are determined: clinically, by ultrasound or pathologically." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.vision-zero-oncology.de/fhir/StructureDefinition/uicc-tnm-prefix-cpu" />
      </type>
    </element>
    <element id="Observation.component:T-code.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-t-staging-type-loinc" />
      </binding>
    </element>
    <element id="Observation.component:T-code.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-t-category-uicc" />
      </binding>
    </element>
    <element id="Observation.component:m-symbol">
      <path value="Observation.component" />
      <sliceName value="m-symbol" />
      <short value="m Symbol" />
      <definition value="The suffix m, in parentheses, is used to indicate the presence of multiple primary tumors at a single site." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:m-symbol.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://snomed.info/sct" />
          <code value="277650004" />
          <display value="m - Multiple tumors (tumor staging)" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:m-symbol.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-t-multiplicity-uicc" />
      </binding>
    </element>
    <element id="Observation.component:N-code">
      <path value="Observation.component" />
      <sliceName value="N-code" />
      <short value="N - Regional Lymph Nodes" />
      <definition value="The N-category describes the absence or presence and extent of regional lymph node metastasis." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:N-code.extension">
      <path value="Observation.component.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:N-code.extension:cpuPrefix">
      <path value="Observation.component.extension" />
      <sliceName value="cpuPrefix" />
      <short value="Clinical or pathological classification" />
      <definition value="How the TNM-values are determined: clinically, by ultrasound or pathologically." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.vision-zero-oncology.de/fhir/StructureDefinition/uicc-tnm-prefix-cpu" />
      </type>
    </element>
    <element id="Observation.component:N-code.extension:itcSuffix">
      <path value="Observation.component.extension" />
      <sliceName value="itcSuffix" />
      <short value="Isolated Tumor Cells" />
      <definition value="Isolated tumor cells (ITC) are single tumor cells or small clusters of cells not more than 0.2 mm in greatest extent that can be detected by routine H and E stains or immunohistochemistry." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.vision-zero-oncology.de/fhir/StructureDefinition/uicc-tnm-suffix-itc" />
      </type>
    </element>
    <element id="Observation.component:N-code.extension:snSuffix">
      <path value="Observation.component.extension" />
      <sliceName value="snSuffix" />
      <short value="Sentinel Lymph Node" />
      <definition value="The sentinel lymph node is the first lymph node to receive lymphatic drainage from a primary tumor. If it contains metastatic tumor this indicates that other lymph nodes may contain tumor." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.vision-zero-oncology.de/fhir/StructureDefinition/uicc-tnm-suffix-itc-sn" />
      </type>
    </element>
    <element id="Observation.component:N-code.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-n-staging-type-loinc" />
      </binding>
    </element>
    <element id="Observation.component:N-code.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-n-category-uicc" />
      </binding>
    </element>
    <element id="Observation.component:M-code">
      <path value="Observation.component" />
      <sliceName value="M-code" />
      <short value="M - Distant Metastasis" />
      <definition value="The M-category describes the absence or presence of distant metastasis." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:M-code.extension">
      <path value="Observation.component.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:M-code.extension:cpuPrefix">
      <path value="Observation.component.extension" />
      <sliceName value="cpuPrefix" />
      <short value="Clinical or pathological classification" />
      <definition value="How the TNM-values are determined: clinically, by ultrasound or pathologically." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.vision-zero-oncology.de/fhir/StructureDefinition/uicc-tnm-prefix-cpu" />
      </type>
    </element>
    <element id="Observation.component:M-code.extension:itcSuffix">
      <path value="Observation.component.extension" />
      <sliceName value="itcSuffix" />
      <short value="Isolated Tumor Cells" />
      <definition value="Isolated tumor cells (ITC) are single tumor cells or small clusters of cells not more than 0.2 mm in greatest extent that can be detected by routine H and E stains or immunohistochemistry." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.vision-zero-oncology.de/fhir/StructureDefinition/uicc-tnm-suffix-itc" />
      </type>
    </element>
    <element id="Observation.component:M-code.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-m-staging-type-loinc" />
      </binding>
    </element>
    <element id="Observation.component:M-code.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-m-category-uicc" />
      </binding>
    </element>
    <element id="Observation.component:L-descriptor">
      <path value="Observation.component" />
      <sliceName value="L-descriptor" />
      <short value="L - Lymphatic Invasion" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:L-descriptor.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="33739-4" />
          <display value="Lymphatic.small vessel.invasion [Identifier] in Specimen by CAP cancer protocols" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:L-descriptor.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-l-lymphatic-invasion-uicc" />
      </binding>
    </element>
    <element id="Observation.component:V-descriptor">
      <path value="Observation.component" />
      <sliceName value="V-descriptor" />
      <short value="V - Venous Invasion" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:V-descriptor.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="33740-2" />
          <display value="Venous.large vessel.invasion [Identifier] in Specimen by CAP cancer protocols" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:V-descriptor.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-v-venous-invasion-uicc" />
      </binding>
    </element>
    <element id="Observation.component:Pn-descriptor">
      <path value="Observation.component" />
      <sliceName value="Pn-descriptor" />
      <short value="Pn - Perineural Invasion" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:Pn-descriptor.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="92837-4" />
          <display value="Perineural invasion [Presence] in Cancer specimen" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:Pn-descriptor.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-pn-perineural-invasion-uicc" />
      </binding>
    </element>
    <element id="Observation.component:S-symbol">
      <path value="Observation.component" />
      <sliceName value="S-symbol" />
      <short value="Serum Tumor Markers" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:S-symbol.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://snomed.info/sct" />
          <code value="399424006" />
          <display value="Serum tumor marker category (observable entity)" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:S-symbol.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.vision-zero-oncology.de/fhir/ValueSet/tnm-s-serum-tumor-markers-uicc" />
      </binding>
    </element>
    <element id="Observation.component:numberOfNodesAffected">
      <path value="Observation.component" />
      <sliceName value="numberOfNodesAffected" />
      <short value="Number of regional lymph nodes positive" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:numberOfNodesAffected.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="21893-3" />
          <display value="Regional lymph nodes positive [#] Specimen" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:numberOfNodesAffected.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.component:numberOfNodesAffected.value[x].system">
      <path value="Observation.component.value[x].system" />
      <patternUri value="http://unitsofmeasure.org" />
    </element>
    <element id="Observation.component:numberOfNodesAffected.value[x].code">
      <path value="Observation.component.value[x].code" />
      <patternCode value="1" />
    </element>
    <element id="Observation.component:numberOfNodesExamined">
      <path value="Observation.component" />
      <sliceName value="numberOfNodesExamined" />
      <short value="Number of regional lymph nodes examined" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:numberOfNodesExamined.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="21894-1" />
          <display value="Regional lymph nodes examined [#] Specimen" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:numberOfNodesExamined.value[x]">
      <path value="Observation.component.value[x]" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.component:numberOfNodesExamined.value[x].system">
      <path value="Observation.component.value[x].system" />
      <patternUri value="http://unitsofmeasure.org" />
    </element>
    <element id="Observation.component:numberOfNodesExamined.value[x].code">
      <path value="Observation.component.value[x].code" />
      <patternCode value="1" />
    </element>
  </differential>
</StructureDefinition>