<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="gene-variant" />
  <url value="https://fhir.gsilab.id//StructureDefinition/gene-variant" />
  <name value="GeneticVariant" />
  <title value="Gene Variant" />
  <status value="draft" />
  <description value="Base profile that defines characteristics shared by all gene variant observations." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="https://fhir.gsilab.id//StructureDefinition/variant" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation.meta.profile">
      <path value="Observation.meta.profile" />
      <fixedCanonical value="http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/variant" />
    </element>
    <element id="Observation.category">
      <path value="Observation.category" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="coding" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="2" />
    </element>
    <element id="Observation.category:laboratory">
      <path value="Observation.category" />
      <sliceName value="laboratory" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.category:laboratory.coding">
      <path value="Observation.category.coding" />
      <min value="1" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/observation-category" />
        <code value="laboratory" />
        <display value="Laboratory" />
      </patternCoding>
    </element>
    <element id="Observation.category:genetics">
      <path value="Observation.category" />
      <sliceName value="genetics" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.category:genetics.coding">
      <path value="Observation.category.coding" />
      <min value="1" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/v2-0074" />
        <code value="GE" />
        <display value="Genetics" />
      </patternCoding>
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="69548-6" />
          <display value="Genetic variant assessment" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
    </element>
    <element id="Observation.component.code">
      <path value="Observation.component.code" />
      <definition value="Description of the genomic (gDNA) sequence change using a valid HGVS-formatted string." />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="81290-9" />
          <display value="Genomic DNA change (gHGVS)" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component.value[x]">
      <path value="Observation.component.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <type>
        <code value="Quantity" />
      </type>
      <type>
        <code value="CodeableConcept" />
      </type>
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="Range" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueCodeableConcept" />
      <short value="A valid HGVS-formatted 'g.' string, e.g. NC_000016.9:g.2124200_2138612dup" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept.coding.system">
      <path value="Observation.component.value[x].coding.system" />
      <fixedUri value="https://varnomen.hgvs.org" />
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept.coding.code">
      <path value="Observation.component.value[x].coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept.coding.display">
      <path value="Observation.component.value[x].coding.display" />
      <min value="1" />
    </element>
  </differential>
</StructureDefinition>