<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="AuditEventAccesslogSe" />
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-category">
    <valueString value="Foundation.Security" />
  </extension>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-security-category">
    <valueCode value="not-classified" />
  </extension>
  <url value="https://fhir.cambio.se/StructureDefinition/AuditEventALSe/v1" />
  <version value="1.0.0" />
  <name value="AuditEventALSe" />
  <status value="active" />
  <description value="Profile to represent a accesslog events and shared with log service" />
  <purpose value="To enable creating access event logs and exchange of already stored event logs" />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="dicom" />
    <uri value="http://nema.org/dicom" />
    <name value="DICOM Tag Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="w3c.prov" />
    <uri value="http://www.w3.org/ns/prov" />
    <name value="W3C PROV" />
  </mapping>
  <mapping>
    <identity value="fhirprovenance" />
    <uri value="http://hl7.org/fhir/provenance" />
    <name value="FHIR Provenance Mapping" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="AuditEvent" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/AuditEvent" />
  <derivation value="constraint" />
  <differential>
    <element id="AuditEvent.subtype">
      <path value="AuditEvent.subtype" />
      <min value="0" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://example.org/ValueSet/ActivityTypes" />
      </binding>
    </element>
    <element id="AuditEvent.purposeOfEvent">
      <path value="AuditEvent.purposeOfEvent" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://example.org/ValueSet/ActivityPurpose" />
      </binding>
    </element>
    <element id="AuditEvent.agent.type">
      <path value="AuditEvent.agent.type" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/contractsignertypecodes" />
          <code value="SOURCE" />
          <display value="Source" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="AuditEvent.agent.who">
      <path value="AuditEvent.agent.who" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent.altId">
      <path value="AuditEvent.agent.altId" />
      <max value="0" />
    </element>
    <element id="AuditEvent.agent.name">
      <path value="AuditEvent.agent.name" />
      <max value="0" />
    </element>
    <element id="AuditEvent.agent.location">
      <path value="AuditEvent.agent.location" />
      <max value="0" />
    </element>
    <element id="AuditEvent.agent.policy">
      <path value="AuditEvent.agent.policy" />
      <max value="0" />
    </element>
    <element id="AuditEvent.agent.media">
      <path value="AuditEvent.agent.media" />
      <max value="0" />
    </element>
    <element id="AuditEvent.agent.network">
      <path value="AuditEvent.agent.network" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity">
      <path value="AuditEvent.entity" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="type" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="2" />
    </element>
    <element id="AuditEvent.entity:patient">
      <path value="AuditEvent.entity" />
      <sliceName value="patient" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="AuditEvent.entity:patient.what">
      <path value="AuditEvent.entity.what" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
    </element>
    <element id="AuditEvent.entity:patient.type">
      <path value="AuditEvent.entity.type" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type" />
        <code value="1" />
        <display value="Person" />
      </patternCoding>
    </element>
    <element id="AuditEvent.entity:patient.role">
      <path value="AuditEvent.entity.role" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/object-role" />
        <code value="1" />
        <display value="Patient" />
      </patternCoding>
    </element>
    <element id="AuditEvent.entity:patient.lifecycle">
      <path value="AuditEvent.entity.lifecycle" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity:patient.securityLabel">
      <path value="AuditEvent.entity.securityLabel" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity:patient.name">
      <path value="AuditEvent.entity.name" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity:patient.query">
      <path value="AuditEvent.entity.query" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity:patient.detail">
      <path value="AuditEvent.entity.detail" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity:data">
      <path value="AuditEvent.entity" />
      <sliceName value="data" />
      <min value="1" />
      <max value="*" />
    </element>
    <element id="AuditEvent.entity:data.what">
      <path value="AuditEvent.entity.what" />
      <min value="1" />
    </element>
    <element id="AuditEvent.entity:data.type">
      <path value="AuditEvent.entity.type" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type" />
        <code value="2" />
        <display value="System Object" />
      </patternCoding>
    </element>
    <element id="AuditEvent.entity:data.role">
      <path value="AuditEvent.entity.role" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/object-role" />
        <code value="4" />
        <display value="Domain Resource" />
      </patternCoding>
    </element>
    <element id="AuditEvent.entity:data.lifecycle">
      <path value="AuditEvent.entity.lifecycle" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity:data.securityLabel">
      <path value="AuditEvent.entity.securityLabel" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity:data.name">
      <path value="AuditEvent.entity.name" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity:data.query">
      <path value="AuditEvent.entity.query" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity:data.detail">
      <path value="AuditEvent.entity.detail" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>