<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Role" />
  <url value="http://hl7.org/fhir/StructureDefinition/Role" />
  <version value="0.1" />
  <name value="Role" />
  <status value="draft" />
  <publisher value="Synapxe" />
  <copyright value="Copyright (C) 2024 Synapxe" />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Role" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
  <derivation value="specialization" />
  <differential>
    <element id="Role">
      <path value="Role" />
      <constraint>
        <key value="dom-3" />
        <severity value="error" />
        <human value="If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource" />
        <expression value="contained.where(((id.exists() and ('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url)))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(uri) = '#').exists()).not()).trace('unmatched', id).empty()" />
      </constraint>
    </element>
    <element id="Role.name">
      <path value="Role.name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Role.code">
      <path value="Role.code" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Role.description">
      <path value="Role.description" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Role.isPredefined">
      <path value="Role.isPredefined" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="integer" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Role.createdBy">
      <path value="Role.createdBy" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Role.creationDateTime">
      <path value="Role.creationDateTime" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Role.modifiedBy">
      <path value="Role.modifiedBy" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Role.isDeleted">
      <path value="Role.isDeleted" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Role.modificationDateTime">
      <path value="Role.modificationDateTime" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
  </differential>
</StructureDefinition>