<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="fiphr-sd-selfcareplan-r4" />
  <url value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-selfcareplan-r4" />
  <version value="1.0.0" />
  <name value="FIPHRSDCarePlan" />
  <title value="Finnish PHR SelfCarePlan profile" />
  <status value="active" />
  <experimental value="false" />
  <date value="2023-03-02" />
  <description value="StructureDefinition for FinnishPHR SelfCarePlan resource." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="CarePlan" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/CarePlan" />
  <derivation value="constraint" />
  <snapshot />
  <differential>
    <element id="CarePlan">
      <path value="CarePlan" />
      <short value="Self-care plan for patient" />
    </element>
    <element id="CarePlan.meta.profile">
      <path value="CarePlan.meta.profile" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="FinnishPHR: fiphrProfile SHALL be used. Other profiles MAY be used.&#xD;&#xA;A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)." />
      <min value="1" />
    </element>
    <element id="CarePlan.meta.profile:fiphrProfile">
      <path value="CarePlan.meta.profile" />
      <sliceName value="fiphrProfile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-selfcareplan-r4" />
    </element>
    <element id="CarePlan.language">
      <path value="CarePlan.language" />
      <min value="1" />
      <binding>
        <strength value="required" />
        <description value="Finnish PHR: A code of human language." />
      </binding>
    </element>
    <element id="CarePlan.text">
      <path value="CarePlan.text" />
      <definition value="Narrative contains clinically relevant information of the resource in a human-readable format. The following fields are used: CarePlan.title, CarePlan.status, CarePlan.period, CarePlan.category, CarePlan.goal, CarePlan.description. If available, a text representation of SelfCareGoal resource is included in the narrative." />
      <min value="1" />
    </element>
    <element id="CarePlan.contained">
      <path value="CarePlan.contained" />
      <max value="0" />
      <type>
        <code value="Resource" />
        <profile value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-selfcaregoal-r4" />
      </type>
    </element>
    <element id="CarePlan.extension">
      <path value="CarePlan.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="CarePlan.extension:creatingApplication">
      <path value="CarePlan.extension" />
      <sliceName value="creatingApplication" />
      <short value="Additional Content defined by implementations" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://phr.kanta.fi/StructureDefinition/fiphr-ext-creatingapplication" />
      </type>
    </element>
    <element id="CarePlan.identifier">
      <path value="CarePlan.identifier" />
      <min value="1" />
    </element>
    <element id="CarePlan.identifier.use">
      <path value="CarePlan.identifier.use" />
      <definition value="The purpose of this identifier. &#xD;&#xA;Finnish PHR: The code 'official' SHALL be only used if the given identifier value is truly globally unique (e.g. an uuid as the value and 'urn:ietf:rfc:3986' as the system)." />
      <comment value="This is labeled as &quot;Is Modifier&quot; because applications should not mistake a temporary id for a permanent one. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary." />
    </element>
    <element id="CarePlan.identifier.system">
      <path value="CarePlan.identifier.system" />
      <min value="1" />
    </element>
    <element id="CarePlan.identifier.value">
      <path value="CarePlan.identifier.value" />
      <definition value="The portion of the identifier typically relevant to the user and which is unique within the context of the system. &#xD;&#xA;Finnish PHR: At least one of the identifiers SHALL be truly globally unique (e.g. an uuid as the value and 'urn:ietf:rfc:3986' as the system)." />
      <comment value="If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986.  The value's primary purpose is computational mapping.  As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.)  A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html)." />
      <min value="1" />
    </element>
    <element id="CarePlan.identifier.assigner">
      <path value="CarePlan.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="CarePlan.instantiatesCanonical">
      <path value="CarePlan.instantiatesCanonical" />
      <max value="0" />
    </element>
    <element id="CarePlan.instantiatesUri">
      <path value="CarePlan.instantiatesUri" />
      <max value="0" />
    </element>
    <element id="CarePlan.basedOn">
      <path value="CarePlan.basedOn" />
      <max value="0" />
    </element>
    <element id="CarePlan.replaces">
      <path value="CarePlan.replaces" />
      <max value="0" />
    </element>
    <element id="CarePlan.partOf">
      <path value="CarePlan.partOf" />
      <max value="0" />
    </element>
    <element id="CarePlan.status">
      <path value="CarePlan.status" />
      <short value="In Finnish PHR completed is the only accepted value." />
      <fixedCode value="completed" />
    </element>
    <element id="CarePlan.intent">
      <path value="CarePlan.intent" />
      <fixedCode value="plan" />
    </element>
    <element id="CarePlan.category">
      <path value="CarePlan.category" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="extensible" />
        <description value="Identifies what &quot;kind&quot; of self-care plan this is to support differentiation between multiple co-existing plans." />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-careplancategory" />
      </binding>
    </element>
    <element id="CarePlan.category.coding">
      <path value="CarePlan.category.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="FinnishPHR: fiphrCategory SHALL be used. Other categories MAY be used.&#xD;&#xA;A reference to a code defined by a terminology system." />
      <min value="1" />
    </element>
    <element id="CarePlan.category.coding:fiphrCoding">
      <path value="CarePlan.category.coding" />
      <sliceName value="fiphrCoding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="CarePlan.category.coding:fiphrCoding.system">
      <path value="CarePlan.category.coding.system" />
      <min value="1" />
      <fixedUri value="http://phr.kanta.fi/CodeSystem/fiphr-cs-careplancategory" />
    </element>
    <element id="CarePlan.category.coding:fiphrCoding.code">
      <path value="CarePlan.category.coding.code" />
      <min value="1" />
    </element>
    <element id="CarePlan.category.coding:fiphrCoding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="CarePlan.category.coding.display" />
      <min value="1" />
    </element>
    <element id="CarePlan.title">
      <path value="CarePlan.title" />
      <min value="1" />
    </element>
    <element id="CarePlan.description">
      <path value="CarePlan.description" />
      <min value="1" />
    </element>
    <element id="CarePlan.subject">
      <path value="CarePlan.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-patient" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="CarePlan.subject.reference">
      <path value="CarePlan.subject.reference" />
      <min value="1" />
    </element>
    <element id="CarePlan.subject.identifier.assigner">
      <path value="CarePlan.subject.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="CarePlan.encounter">
      <path value="CarePlan.encounter" />
      <max value="0" />
    </element>
    <element id="CarePlan.author">
      <path value="CarePlan.author" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-patient" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="CarePlan.author.reference">
      <path value="CarePlan.author.reference" />
      <min value="1" />
    </element>
    <element id="CarePlan.author.identifier.assigner">
      <path value="CarePlan.author.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="CarePlan.contributor">
      <path value="CarePlan.contributor" />
      <max value="0" />
    </element>
    <element id="CarePlan.careTeam">
      <path value="CarePlan.careTeam" />
      <max value="0" />
    </element>
    <element id="CarePlan.addresses">
      <path value="CarePlan.addresses" />
      <max value="0" />
    </element>
    <element id="CarePlan.supportingInfo">
      <path value="CarePlan.supportingInfo" />
      <definition value="Identifies portions of the patient's record that specifically influenced the formation of the plan.  These might include co-morbidities, recent procedures, limitations, recent assessments, etc. Links also symptom check questionnaire responses to the careplan" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-questionnaireresponse-r4" />
      </type>
    </element>
    <element id="CarePlan.supportingInfo.reference">
      <path value="CarePlan.supportingInfo.reference" />
      <min value="1" />
    </element>
    <element id="CarePlan.supportingInfo.identifier.assigner">
      <path value="CarePlan.supportingInfo.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="CarePlan.goal">
      <path value="CarePlan.goal" />
      <max value="0" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-selfcaregoal-r4" />
        <aggregation value="contained" />
      </type>
    </element>
    <element id="CarePlan.goal.reference">
      <path value="CarePlan.goal.reference" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity">
      <path value="CarePlan.activity" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail">
      <path value="CarePlan.activity.detail" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.kind">
      <path value="CarePlan.activity.detail.kind" />
      <definition value="High-level categorization of the type of activity in a self-care plan." />
    </element>
    <element id="CarePlan.activity.detail.code">
      <path value="CarePlan.activity.detail.code" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/care-plan-activity" />
      </binding>
    </element>
    <element id="CarePlan.activity.detail.code.coding">
      <path value="CarePlan.activity.detail.code.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="CarePlan.activity.detail.code.coding.system">
      <path value="CarePlan.activity.detail.code.coding.system" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.code.coding.version">
      <path value="CarePlan.activity.detail.code.coding.version" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.code.coding.code">
      <path value="CarePlan.activity.detail.code.coding.code" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.code.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="CarePlan.activity.detail.code.coding.display" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.code.coding.userSelected">
      <path value="CarePlan.activity.detail.code.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.code.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="CarePlan.activity.detail.code.text" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.reasonCode">
      <path value="CarePlan.activity.detail.reasonCode" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/activity-reason" />
      </binding>
    </element>
    <element id="CarePlan.activity.detail.reasonCode.coding">
      <path value="CarePlan.activity.detail.reasonCode.coding" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.reasonCode.coding.system">
      <path value="CarePlan.activity.detail.reasonCode.coding.system" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.reasonCode.coding.version">
      <path value="CarePlan.activity.detail.reasonCode.coding.version" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.reasonCode.coding.code">
      <path value="CarePlan.activity.detail.reasonCode.coding.code" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.reasonCode.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="CarePlan.activity.detail.reasonCode.coding.display" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.reasonCode.coding.userSelected">
      <path value="CarePlan.activity.detail.reasonCode.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.reasonCode.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="CarePlan.activity.detail.reasonCode.text" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.reasonReference">
      <path value="CarePlan.activity.detail.reasonReference" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.goal">
      <path value="CarePlan.activity.detail.goal" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.status">
      <path value="CarePlan.activity.detail.status" />
      <short value="not-started | in-progress | completed | cancelled" />
    </element>
    <element id="CarePlan.activity.detail.statusReason">
      <path value="CarePlan.activity.detail.statusReason" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.performer">
      <path value="CarePlan.activity.detail.performer" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-patient" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="CarePlan.activity.detail.performer.reference">
      <path value="CarePlan.activity.detail.performer.reference" />
      <min value="1" />
    </element>
    <element id="CarePlan.activity.detail.performer.type">
      <path value="CarePlan.activity.detail.performer.type" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.performer.identifier">
      <path value="CarePlan.activity.detail.performer.identifier" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.performer.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="CarePlan.activity.detail.performer.display" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.product[x]">
      <path value="CarePlan.activity.detail.product[x]" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.dailyAmount">
      <path value="CarePlan.activity.detail.dailyAmount" />
      <max value="0" />
    </element>
    <element id="CarePlan.activity.detail.quantity">
      <path value="CarePlan.activity.detail.quantity" />
      <max value="0" />
    </element>
    <element id="CarePlan.note">
      <path value="CarePlan.note" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>