<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/soteluovutuslupa" />
  <version value="1.0" />
  <name value="SoTeConsent" />
  <status value="active" />
  <publisher value="Kela / Kanta" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Consent" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Consent" />
  <derivation value="constraint" />
  <differential>
    <element id="Consent">
      <path value="Consent" />
      <constraint>
        <key value="TIP-CON-2" />
        <severity value="error" />
        <human value="Category arvo voi olla koodistosta https://gen.kanta.fi/figen-vs-consentcategory 1 tai 2." />
        <expression value="category.coding.code = '1' or '2'" />
      </constraint>
      <constraint>
        <key value="TIP-CON-3" />
        <severity value="error" />
        <human value="Jos lupa perutaan eli status-elementissä annetaan &quot;rejected&quot;, provision rakenteita ei tuoteta." />
        <expression value="status != 'rejected'  or provision.empty()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-4" />
        <severity value="error" />
        <human value="Jos provision.type annetaan, sen pitää olla permit tai deny" />
        <expression value="provision.type.exists() implies (provision.type = 'permit' or 'deny')" />
      </constraint>
      <constraint>
        <key value="TIP-CON-5" />
        <severity value="error" />
        <human value="Jos provision.type on permit, provision.provision-rakennetta ei pidä tuoda." />
        <expression value="provision.type = 'permit' implies provision.provision.exists().not()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-6" />
        <severity value="error" />
        <human value="Jos provision.type on deny, provision.provision-rakenne pitää tuoda." />
        <expression value="(provision.type.exists() and provision.type = 'deny')  implies provision.provision.exists()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-7" />
        <severity value="error" />
        <human value="Jos provision.provision annetaan, pitää alta löytyä myös jokin tarkennus luovutuslupaan" />
        <expression value="provision.provision.exists() implies (provision.provision.actor.exists() or provision.provision.class.exists() or provision.provision.period.exists() )" />
      </constraint>
      <constraint>
        <key value="TIP-CON-8" />
        <severity value="error" />
        <human value="Jos provision.provision.actor annetaan, pitää sen alta löytyä ProvisionActorOrganizationTypeExtension." />
        <expression value="provision.provision.actor.exists() implies provision.provision.actor.extension.where(url='https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/ProvisionActorOrganizationTypeExtension').exists()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-9" />
        <severity value="error" />
        <human value="Kun on kyse luovutusluvasta sosiaalihuollosta terveydenhuoltoon, organisaaatiotyypin code voi olla 4, 5 tai 6." />
        <expression value="provision.provision.actor.extension.where(url='https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/ProvisionActorOrganizationTypeExtension').value.where(code = '4' or code = '5' or code = '6').exists() implies category.coding.where(code = '2').exists()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-10" />
        <severity value="error" />
        <human value="Kun on kyse luovutusluvasta terveydenhuollosta sosiaalihuoltoon, organisaaatiotyypin code voi olla 1, 2 tai 3." />
        <expression value="provision.provision.actor.extension.where(url='https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/ProvisionActorOrganizationTypeExtension').value.where(code = '1' or code = '2' or code = '3').exists() implies category.coding.where(code = '1').exists()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-11" />
        <severity value="error" />
        <human value="Kun kyseessä on luovutuslupa sosiaalihuollosta terveydenhuoltoon, voi koodistosta figen-cs-ProvisionClassDataType käyttää vain koodiarvoa 4." />
        <expression value="provision.provision.class.where(code='4').exists() implies category.coding.code = '2'" />
      </constraint>
      <constraint>
        <key value="TIP-CON-12" />
        <severity value="error" />
        <human value="Kun kyseessä on luovutuslupa terveydenhuollosta sosiaalihuoltoon, voi koodistosta figen-cs-ProvisionClassDataType käyttää vain koodiarvoja 1-3." />
        <expression value="provision.provision.class.where(code='1' or code='2' or code='3').exists() implies category.coding.code = '1'" />
      </constraint>
      <constraint>
        <key value="TIP-CON-13" />
        <severity value="error" />
        <human value="Kun koodistosta figen-cs-ProvisionClassDataType on valittu arvo 4, pitää FunctionCodeen antaa Palvelutehtävän tiedot." />
        <expression value="provision.provision.class.where(code='4').exists() implies Consent.provision.provision.class.extension.where(url='https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/FunctionCode').exists()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-16" />
        <severity value="error" />
        <human value="Luovutettavan aikavälin päivämäärät annetaan sote-luovutusluvalla päivän tarkkuudella." />
        <expression value="provision.provision.period.start.exists() implies provision.provision.period.start.toString().matches('^\\d{4}-\\d{2}-\\d{2}$').allTrue()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-17" />
        <severity value="error" />
        <human value="Luovutettavan aikavälin päivämäärät annetaan sote-luovutusluvalla päivän tarkkuudella." />
        <expression value="provision.provision.period.end.exists() implies provision.provision.period.end.toString().matches('^\\d{4}-\\d{2}-\\d{2}$').allTrue()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-18" />
        <severity value="error" />
        <human value="Annetun luovuttamisen aikavälin loppuajan pitää olla alkuajan jälkeen" />
        <expression value="(provision.provision.period.end.exists() and provision.provision.period.start.exists()) implies (provision.provision.period.end &gt;= provision.provision.period.start)" />
      </constraint>
      <constraint>
        <key value="TIP-CON-19" />
        <severity value="error" />
        <human value="Luvan antopäivä annetaan päivän tarkkuudella." />
        <expression value="dateTime.exists() implies dateTime.toString().matches('^\\d{4}-\\d{2}-\\d{2}$').allTrue()" />
      </constraint>
      <constraint>
        <key value="TIP-CON-20" />
        <severity value="error" />
        <human value="FunctionCode-laajennosta ei pidä tuoda, jos koodistosta figen-cs-ProvisionClassDataType ei ole valittu arvoa 4." />
        <expression value="Consent.provision.provision.class.extension.where(url='https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/FunctionCode').exists() implies provision.provision.class.where(code='4').exists()" />
      </constraint>
    </element>
    <element id="Consent.id">
      <path value="Consent.id" />
      <short value="Sote-luovutusluvan yksilöivä tunnus" />
      <definition value="Sote-luovutusluvan globaalisti yksilöivä tunnus.&#xD;&#xA;&#xD;&#xA;Sote-luovutusluvan tallennuksen yhteydessä Kanta-palvelut tuottaa Sote-luovutusluvalle yksilöivän tunnuksen, jota on käytettävä Sote-luovutusluvan päivityksessä. Luvalla luovutukseen soriaalihuollosta terveydenhuoltoon on oma yksilöivä tunnuksensa ja luvalla luovutukseen terveydenhuollosta sosiaalihuoltoon on omansa." />
    </element>
    <element id="Consent.meta">
      <path value="Consent.meta" />
    </element>
    <element id="Consent.meta.profile">
      <path value="Consent.meta.profile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/soteluovutuslupa" />
    </element>
    <element id="Consent.language">
      <path value="Consent.language" />
      <short value="Luvan kieli" />
      <definition value="Kieli, jota luvan tallennuksessa käytetään." />
      <min value="1" />
      <binding>
        <strength value="required" />
        <description value="Luvan kieli" />
        <valueSet value="https://gen.kanta.fi/fhir/tahdonilmaisut/ValueSet/figen-vs-languages-soteconsent" />
      </binding>
    </element>
    <element id="Consent.text">
      <path value="Consent.text" />
      <short value="Luvan teksti" />
      <definition value="Teksti, jolla kerrotaan mihin henkilö on suostumuksensa antanut tai vaihtoehtoisesti peruuttanut." />
      <min value="1" />
    </element>
    <element id="Consent.text.status">
      <path value="Consent.text.status" />
      <definition value="Kiinteä teksti, joka vaihtelee sen mukaan onko lupa annettu vai peruttu, siksi käytössä kiinteänä arvona &quot;additional&quot;." />
      <fixedCode value="additional" />
    </element>
    <element id="Consent.text.div">
      <path value="Consent.text.div" />
      <short value="Luvan tai perumisen teksti luvan kielellä" />
      <definition value="Teksti, joka vaihtelee sen mukaan, onko lupa annettu vai peruttu. Tekstistä on Simplifierissa saatavissa sekä suomen- että ruotsinkieliset versiot. Huomioi kielen xml tagit esimerkin mukaisesti." />
    </element>
    <element id="Consent.status">
      <path value="Consent.status" />
      <short value="active | rejected" />
      <definition value="Luovutusluvan status:&#xD;&#xA;active= luovutuslupa on voimassa, joko kaikkeen tai kohdistuksin&#xA;rejected= luovutuslupa on peruttu &#xD;&#xA;muut tilat ei käytössä" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gen.kanta.fi/fhir/tahdonilmaisut/ValueSet/figen-vs-consent-state" />
      </binding>
    </element>
    <element id="Consent.scope">
      <path value="Consent.scope" />
      <short value="Luvan kohdistuminen" />
      <definition value="Consent-resurssin pakollinen tieto. Sote-luovutusluvassa käytetään tässä vakioarvoa." />
      <binding>
        <strength value="required" />
      </binding>
    </element>
    <element id="Consent.scope.coding.system">
      <path value="Consent.scope.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/consentscope" />
    </element>
    <element id="Consent.scope.coding.code">
      <path value="Consent.scope.coding.code" />
      <min value="1" />
      <fixedCode value="patient-privacy" />
    </element>
    <element id="Consent.scope.coding.display">
      <path value="Consent.scope.coding.display" />
      <min value="1" />
      <fixedString value="Privacy Consent" />
    </element>
    <element id="Consent.category">
      <path value="Consent.category" />
      <short value="Luovutusluvan tunniste" />
      <definition value="Luovutusluvan tunniste, jonka avulla tiedetään mistä luvasta on kysymys." />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gen.kanta.fi/fhir/tahdonilmaisut/ValueSet/figen-vs-consentcategory-soteconsent" />
      </binding>
    </element>
    <element id="Consent.category.coding">
      <path value="Consent.category.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Consent.category.coding.system">
      <path value="Consent.category.coding.system" />
      <min value="1" />
    </element>
    <element id="Consent.category.coding.code">
      <path value="Consent.category.coding.code" />
      <min value="1" />
    </element>
    <element id="Consent.category.coding.display">
      <path value="Consent.category.coding.display" />
      <min value="1" />
    </element>
    <element id="Consent.patient">
      <path value="Consent.patient" />
      <short value="Henkilö, jonka luvasta on kyse" />
      <definition value="Henkilö, jonka luvasta on kyse. Henkilöllä on oltava virallinen henkilötunnus." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://gen.kanta.fi/fhir/StructureDefinition/KantaPatientOfficialID" />
        <aggregation value="contained" />
      </type>
    </element>
    <element id="Consent.dateTime">
      <path value="Consent.dateTime" />
      <short value="Luvan käsittelyajankohta" />
      <definition value="Luvan käsittelyajankohta päivän tarkkuudella" />
      <min value="1" />
    </element>
    <element id="Consent.performer">
      <path value="Consent.performer" />
      <slicing>
        <discriminator>
          <type value="profile" />
          <path value="resolve()" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Luovutusluvan asettaja" />
      <definition value="Luovutusluvan asettajana voi olla asiakas itse tai laillinen edustaja" />
      <min value="1" />
      <max value="5" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://gen.kanta.fi/fhir/StructureDefinition/KantaPatientOfficialID" />
        <targetProfile value="https://gen.kanta.fi/fhir/StructureDefinition/KantaRelatedPerson" />
        <aggregation value="contained" />
      </type>
    </element>
    <element id="Consent.performer:PatientPerformer">
      <path value="Consent.performer" />
      <sliceName value="PatientPerformer" />
      <short value="Luvan asettajan tiedot" />
      <definition value="Tahdonilmaisun asettajana henkilö itse." />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://gen.kanta.fi/fhir/StructureDefinition/KantaPatientOfficialID" />
        <aggregation value="contained" />
      </type>
    </element>
    <element id="Consent.performer:PatientPerformer.reference">
      <path value="Consent.performer.reference" />
      <short value="Viittaus käytettävään resurssiin" />
      <min value="1" />
    </element>
    <element id="Consent.performer:RelatedPersonPerformer">
      <path value="Consent.performer" />
      <sliceName value="RelatedPersonPerformer" />
      <short value="Luvan asettaja" />
      <definition value="Tahdonilmaisun tallentajana puolesta-asioija" />
      <max value="5" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://gen.kanta.fi/fhir/StructureDefinition/KantaRelatedPerson" />
        <aggregation value="contained" />
      </type>
    </element>
    <element id="Consent.performer:RelatedPersonPerformer.reference">
      <path value="Consent.performer.reference" />
      <short value="Viittaus käytettävään resurssiin" />
      <min value="1" />
    </element>
    <element id="Consent.organization">
      <path value="Consent.organization" />
      <max value="0" />
    </element>
    <element id="Consent.source[x]">
      <path value="Consent.source[x]" />
      <max value="0" />
    </element>
    <element id="Consent.policy">
      <path value="Consent.policy" />
      <max value="0" />
    </element>
    <element id="Consent.policyRule">
      <path value="Consent.policyRule" />
      <short value="Viittaus lakiin, mistä tarve luvalle tulee" />
      <definition value="Consent-resurssin vaihtoehtoisesti pakollinen tieto Policy-tiedon kanssa. Sote-luovutusluvalla käytetään tässä vakioarvona viittausta Asiakastietolakiin." />
      <min value="1" />
    </element>
    <element id="Consent.policyRule.text">
      <path value="Consent.policyRule.text" />
      <min value="1" />
      <fixedString value="Laki sosiaali- ja terveydenhuollon asiakastietojen käsittelystä 703/2023" />
    </element>
    <element id="Consent.verification">
      <path value="Consent.verification" />
      <max value="0" />
    </element>
    <element id="Consent.provision">
      <path value="Consent.provision" />
      <short value="Onko lupa annettu kaikkeen vai kohdistaen" />
      <definition value="Lupa voidaan antaa kaikkeen tai lupaa voidaan kohdistaa" />
      <comment value="deny = ei anneta luovutuslupaa kaikkeen, jokin rajaus löytyy provision.provision -rakenteesta&#xA;permit = luovutuslupa kaikkeen mitään kohdistamatta" />
    </element>
    <element id="Consent.provision.type">
      <path value="Consent.provision.type" />
      <definition value="deny = ei annettu luovutuslupaa kaikkeen, jokin kohditus pitää olla asetettu&#xA;permit = luovutuslupa on kaikkeen, ei kohdistuksia" />
    </element>
    <element id="Consent.provision.period">
      <path value="Consent.provision.period" />
      <max value="0" />
    </element>
    <element id="Consent.provision.actor">
      <path value="Consent.provision.actor" />
      <max value="0" />
    </element>
    <element id="Consent.provision.action">
      <path value="Consent.provision.action" />
      <max value="0" />
    </element>
    <element id="Consent.provision.securityLabel">
      <path value="Consent.provision.securityLabel" />
      <max value="0" />
    </element>
    <element id="Consent.provision.purpose">
      <path value="Consent.provision.purpose" />
      <max value="0" />
    </element>
    <element id="Consent.provision.class">
      <path value="Consent.provision.class" />
      <max value="0" />
    </element>
    <element id="Consent.provision.code">
      <path value="Consent.provision.code" />
      <max value="0" />
    </element>
    <element id="Consent.provision.dataPeriod">
      <path value="Consent.provision.dataPeriod" />
      <max value="0" />
    </element>
    <element id="Consent.provision.data">
      <path value="Consent.provision.data" />
      <max value="0" />
    </element>
    <element id="Consent.provision.provision">
      <path value="Consent.provision.provision" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Luvassa annetut kohdistukset" />
      <definition value="Kun Consent.provision.type arvoksi on asetettu &quot;deny&quot;, tulee Consent.provision.provision rakenteeseen asettaa luvan kohdistukset." />
      <max value="1" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset">
      <path value="Consent.provision.provision" />
      <sliceName value="Kohdistukset" />
      <max value="1" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.type">
      <path value="Consent.provision.provision.type" />
      <short value="Sote-luvassa käytössä vain &quot;permit&quot;" />
      <definition value="Sote-luvassa käytössä vain arvo &quot;permit&quot; eli voi kohdistaa mitä tietoja tai mille vastaanottajalle voi luovuttaa." />
      <min value="1" />
      <fixedCode value="permit" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.period">
      <path value="Consent.provision.provision.period" />
      <short value="Alku- ja/tai loppuaika" />
      <definition value="Aikarajaus milta ajanjaksolta tietoja saa luovuttaa" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor">
      <path value="Consent.provision.provision.actor" />
      <short value="Organisaatiot, joille tietoja saa luovuttaa" />
      <definition value="Organisaatiot, joille tietoja saa luovuttaa. Luokittelut lain asettamalla tavalla." />
      <constraint>
        <key value="TIP-CON-14" />
        <severity value="error" />
        <human value="Jos on annettu lupa luovuttaa tietoja hyvinvointialue-valinnalla, ei saa tuoda organisaatiotietoja erikseen." />
        <expression value="reference.identifier.value.exists() implies extension.where(url='https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/ProvisionActorOrganizationTypeExtension').value.where(code = '2' or code = '3' or code = '5' or code = '6')" />
      </constraint>
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.extension">
      <path value="Consent.provision.provision.actor.extension" />
      <min value="1" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.extension:provisionActorOrganizationTypeExtension">
      <path value="Consent.provision.provision.actor.extension" />
      <sliceName value="provisionActorOrganizationTypeExtension" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/ProvisionActorOrganizationTypeExtension" />
      </type>
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.role">
      <path value="Consent.provision.provision.actor.role" />
      <short value="Pakollinen elementti" />
      <definition value="Consent-resurssin pakollinen tieto. Sote-luovutusluvalla käytetään vakioarvona koodia &quot;AGNT&quot;. Mallia voi katsoa esimerkistä." />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.role.coding.system">
      <path value="Consent.provision.provision.actor.role.coding.system" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v3-RoleClass" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.role.coding.code">
      <path value="Consent.provision.provision.actor.role.coding.code" />
      <fixedCode value="AGNT" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.role.coding.display">
      <path value="Consent.provision.provision.actor.role.coding.display" />
      <fixedString value="agent" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.reference">
      <path value="Consent.provision.provision.actor.reference" />
      <short value="Organisaatio, joille saa luovuttaa tietoja" />
      <definition value="Organisaatio, jolle saa luovuttaa tietoja. Ilmaistaan organisaation OID-tunnuksella tai codesystemin figen-cs-ProvisionActorOrganizationType mukainen teksti, jos valittu arvo 1 tai 4." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
      </type>
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.reference.identifier.system">
      <path value="Consent.provision.provision.actor.reference.identifier.system" />
      <min value="1" />
      <fixedUri value="urn:ietf:rfc:3986" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.reference.identifier.value">
      <path value="Consent.provision.provision.actor.reference.identifier.value" />
      <short value="OID Sote-organisaatiokoodistosta tai Valvira - Terveydenhuollon itsenäiset ammatinharjoittajat  -koodistosta" />
      <definition value="Sosiaali- ja terveydenhuollon organisaation yksilöivänä tunnuksena THL - SOTE-organisaatiorekisterin (1.2.246.537.6.202.2008) mukainen yksilöintitunnus. Itsenäisen ammatinharjoittajan organisaation yksilöivänä tunnuksena Valvira - Terveydenhuollon itsenäiset ammatinharjoittajat -rekisterin (1.2.246.537.6.203.2014) mukainen yksilöintitunnus (tämä koodisto käytettävissä vain Sosiaalihuollon asiakastietoja koskeva luovutusluvalla)." />
      <min value="1" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.actor.reference.display">
      <path value="Consent.provision.provision.actor.reference.display" />
      <short value="Organisaation nimi" />
      <definition value="Organisaation nimi tai codesystemin figen-cs-ProvisionActorOrganizationType mukainen teksti, jos valittu arvo 1 tai 4." />
      <min value="1" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.action">
      <path value="Consent.provision.provision.action" />
      <max value="0" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.securityLabel">
      <path value="Consent.provision.provision.securityLabel" />
      <max value="0" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.purpose">
      <path value="Consent.provision.provision.purpose" />
      <max value="0" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.class">
      <path value="Consent.provision.provision.class" />
      <short value="Tiedot, joiden luovutus on sallittu" />
      <definition value="Luovutettavien tietojen kohdistus laista tulevien luokittelujen mukaisesti." />
      <max value="3" />
      <binding>
        <strength value="required" />
        <description value="Luovutettavien tietojen kohdistus" />
        <valueSet value="https://gen.kanta.fi/fhir/tahdonilmaisut/ValueSet/figen-vs-ProvisionClassDataType" />
      </binding>
    </element>
    <element id="Consent.provision.provision:Kohdistukset.class.extension:functionCode">
      <path value="Consent.provision.provision.class.extension" />
      <sliceName value="functionCode" />
      <type>
        <code value="Extension" />
        <profile value="https://gen.kanta.fi/fhir/tahdonilmaisut/StructureDefinition/FunctionCode" />
      </type>
    </element>
    <element id="Consent.provision.provision:Kohdistukset.class.system">
      <path value="Consent.provision.provision.class.system" />
      <min value="1" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.class.code">
      <path value="Consent.provision.provision.class.code" />
      <min value="1" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.class.display">
      <path value="Consent.provision.provision.class.display" />
      <min value="1" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.code">
      <path value="Consent.provision.provision.code" />
      <max value="0" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.dataPeriod">
      <path value="Consent.provision.provision.dataPeriod" />
      <max value="0" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.data">
      <path value="Consent.provision.provision.data" />
      <max value="0" />
    </element>
    <element id="Consent.provision.provision:Kohdistukset.provision">
      <path value="Consent.provision.provision.provision" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>