<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="KT2ActivityDefinition" />
  <language value="nl-NL" />
  <url value="http://koppeltaal.nl/fhir/StructureDefinition/KT2ActivityDefinition" />
  <version value="0.10.1" />
  <name value="KT2_ActivityDefinition" />
  <status value="draft" />
  <date value="2025-10-07" />
  <publisher value="VZVZ" />
  <contact>
    <name value="VZVZ" />
    <telecom>
      <system value="email" />
      <value value="standaardisatie@vzvz.nl" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="The (FHIR) ActivityDefinition (resource) describes an eHealth activity that is available for assignment to a patient. When assigning an eHealth activity to a patient, an eHealth Task is created, in which sub-activities are included as contained resources that refer to the main task via Task.partOf." />
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166" />
      <code value="NL" />
      <display value="Netherlands" />
    </coding>
  </jurisdiction>
  <copyright value="VZVZ" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="ActivityDefinition" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ActivityDefinition" />
  <derivation value="constraint" />
  <differential>
    <element id="ActivityDefinition">
      <path value="ActivityDefinition" />
      <short value="Description of an eHealth activity" />
      <comment value="The (FHIR) ActivityDefinition describes an eHealth activity available to assign to a patient. The assignment of an eHealth activity to a patient creates an eHealth Task (Task resource). This task can contain sub activities as contained resources which refer to the main task using the Task.partOf element." />
    </element>
    <element id="ActivityDefinition.extension">
      <path value="ActivityDefinition.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="ActivityDefinition.extension:resource-origin">
      <path value="ActivityDefinition.extension" />
      <sliceName value="resource-origin" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://koppeltaal.nl/fhir/StructureDefinition/resource-origin" />
      </type>
    </element>
    <element id="ActivityDefinition.extension:endpoint">
      <path value="ActivityDefinition.extension" />
      <sliceName value="endpoint" />
      <short value="Endpoint to the service application" />
      <definition value="Mandatory reference to the service application (endpoint) that provides the eHealth activity. Can be more than one endpoint." />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="http://koppeltaal.nl/fhir/StructureDefinition/KT2EndpointExtension" />
      </type>
    </element>
    <element id="ActivityDefinition.extension:publisherId">
      <path value="ActivityDefinition.extension" />
      <sliceName value="publisherId" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="http://koppeltaal.nl/fhir/StructureDefinition/KT2PublisherId" />
      </type>
    </element>
    <element id="ActivityDefinition.url">
      <path value="ActivityDefinition.url" />
      <min value="1" />
    </element>
    <element id="ActivityDefinition.title">
      <path value="ActivityDefinition.title" />
      <min value="1" />
    </element>
    <element id="ActivityDefinition.experimental">
      <path value="ActivityDefinition.experimental" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.subject[x]">
      <path value="ActivityDefinition.subject[x]" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.date">
      <path value="ActivityDefinition.date" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.publisher">
      <path value="ActivityDefinition.publisher" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.contact">
      <path value="ActivityDefinition.contact" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.useContext">
      <path value="ActivityDefinition.useContext" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="The context for the content of the eHealth activity" />
      <comment value="E.g. the activity is targeted to a certain age group, or requires specific technical features like relative participation" />
    </element>
    <element id="ActivityDefinition.useContext.code">
      <path value="ActivityDefinition.useContext.code" />
      <short value="Usage context type including Koppeltaal extensions" />
      <definition value="Standard FHIR usage context types plus Koppeltaal specific types like feature" />
      <binding>
        <strength value="required" />
        <description value="Standard usage context types extended with Koppeltaal specific context types" />
        <valueSet value="http://vzvz.nl/fhir/ValueSet/koppeltaal-use-context-type" />
      </binding>
    </element>
    <element id="ActivityDefinition.useContext:koppeltaal-expansion">
      <path value="ActivityDefinition.useContext" />
      <sliceName value="koppeltaal-expansion" />
      <short value="Optional expansion for the activity" />
      <definition value="Indicates an optional expansion for the activity, such as support for relative participation" />
      <min value="0" />
      <max value="*" />
    </element>
    <element id="ActivityDefinition.useContext:koppeltaal-expansion.code">
      <path value="ActivityDefinition.useContext.code" />
      <patternCoding>
        <system value="http://vzvz.nl/fhir/CodeSystem/koppeltaal-usage-context-type" />
        <code value="koppeltaal-expansion" />
      </patternCoding>
    </element>
    <element id="ActivityDefinition.useContext:koppeltaal-expansion.value[x]">
      <path value="ActivityDefinition.useContext.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="ActivityDefinition.useContext:koppeltaal-expansion.value[x]:valueCodeableConcept">
      <path value="ActivityDefinition.useContext.value[x]" />
      <sliceName value="valueCodeableConcept" />
      <short value="The specific expansion" />
      <definition value="The specific optional expansion for this activity" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <description value="Optional expansions for Koppeltaal activities" />
        <valueSet value="http://vzvz.nl/fhir/ValueSet/koppeltaal-expansion" />
      </binding>
    </element>
    <element id="ActivityDefinition.jurisdiction">
      <path value="ActivityDefinition.jurisdiction" />
      <definition value="This element is not used" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.purpose">
      <path value="ActivityDefinition.purpose" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.usage">
      <path value="ActivityDefinition.usage" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.copyright">
      <path value="ActivityDefinition.copyright" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.approvalDate">
      <path value="ActivityDefinition.approvalDate" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.lastReviewDate">
      <path value="ActivityDefinition.lastReviewDate" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.effectivePeriod">
      <path value="ActivityDefinition.effectivePeriod" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.topic">
      <path value="ActivityDefinition.topic" />
      <short value="E.g. Self-Treatment and Self-Assessment, etc." />
      <definition value="Descriptive topics related to the content of the activity. The topic is used to indicate that the activity is intended or suitable for initialization by patients." />
      <binding>
        <strength value="extensible" />
        <description value="High-level categorization of the definition, used for indicating special patient initialised activities" />
        <valueSet value="http://vzvz.nl/fhir/ValueSet/koppeltaal-definition-topic" />
      </binding>
    </element>
    <element id="ActivityDefinition.author">
      <path value="ActivityDefinition.author" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.editor">
      <path value="ActivityDefinition.editor" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.reviewer">
      <path value="ActivityDefinition.reviewer" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.endorser">
      <path value="ActivityDefinition.endorser" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.relatedArtifact">
      <path value="ActivityDefinition.relatedArtifact" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.library">
      <path value="ActivityDefinition.library" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.kind">
      <path value="ActivityDefinition.kind" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.profile">
      <path value="ActivityDefinition.profile" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.intent">
      <path value="ActivityDefinition.intent" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.priority">
      <path value="ActivityDefinition.priority" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.doNotPerform">
      <path value="ActivityDefinition.doNotPerform" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.timing[x]">
      <path value="ActivityDefinition.timing[x]" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.location">
      <path value="ActivityDefinition.location" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.product[x]">
      <path value="ActivityDefinition.product[x]" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.quantity">
      <path value="ActivityDefinition.quantity" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.dosage">
      <path value="ActivityDefinition.dosage" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.bodySite">
      <path value="ActivityDefinition.bodySite" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.specimenRequirement">
      <path value="ActivityDefinition.specimenRequirement" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.observationRequirement">
      <path value="ActivityDefinition.observationRequirement" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.observationResultRequirement">
      <path value="ActivityDefinition.observationResultRequirement" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.transform">
      <path value="ActivityDefinition.transform" />
      <max value="0" />
    </element>
    <element id="ActivityDefinition.dynamicValue">
      <path value="ActivityDefinition.dynamicValue" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>