<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ehe-hi-management-audit-event" />
  <meta>
    <versionId value="48" />
    <lastUpdated value="2026-01-26T10:16:55.2909597+00:00" />
    <source value="#l75sfFphrVnbXuQo" />
    <security>
      <system value="https://trifolia-fhir.lantanagroup.com/security" />
      <code value="everyone^read" />
    </security>
    <security>
      <system value="https://trifolia-fhir.lantanagroup.com/security" />
      <code value="everyone^write" />
    </security>
  </meta>
  <url value="http://ent.hr/fhir/StructureDefinition/ehe-hi-management-audit-event" />
  <version value="0.1" />
  <name value="EHEHealthIssueManagementAuditEvent" />
  <title value="Health Issue Management service Audit Event" />
  <status value="active" />
  <experimental value="false" />
  <description value="Specifikacija strukture revizijskog zapisa usluge upravljanja zdravstvenim slučajevima pacijenta" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="AuditEvent" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/AuditEvent" />
  <derivation value="constraint" />
  <differential>
    <element id="AuditEvent">
      <path value="AuditEvent" />
      <constraint>
        <key value="hi-1" />
        <severity value="error" />
        <human value="Vrsta revizijskog zapisa mora odgovarati podvrsti" />
        <expression value="iif(subtype.code='2.3' or subtype.code='2.4' or subtype.code='2.5' or subtype.code='2.6'  or subtype.code='2.8'  or subtype.code='2.9', type.code='amend', true) and iif(subtype.code='2.1' or subtype.code='2.2', type.code='originate', true) and iif(subtype.code='2.7', type.code='destroy', true)" />
      </constraint>
    </element>
    <element id="AuditEvent.type">
      <path value="AuditEvent.type" />
      <short value="Vrsta revizijskog zapisa" />
      <binding>
        <strength value="required" />
      </binding>
    </element>
    <element id="AuditEvent.subtype">
      <path value="AuditEvent.subtype" />
      <short value="Podvrsta revizijskog zapisa" />
      <definition value="Podvrsta revizijskog zapisa odgovara vrsti poruke zahtjeva koji je poslan usluzi za upravljanje slučajevima" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://ent.hr/fhir/ValueSet/health-issue-management-message-types" />
      </binding>
    </element>
    <element id="AuditEvent.action">
      <path value="AuditEvent.action" />
      <min value="1" />
    </element>
    <element id="AuditEvent.outcome">
      <path value="AuditEvent.outcome" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent">
      <path value="AuditEvent.agent" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="AuditEvent.agent:source">
      <path value="AuditEvent.agent" />
      <sliceName value="source" />
      <max value="1" />
    </element>
    <element id="AuditEvent.agent:source.type">
      <path value="AuditEvent.agent.type" />
      <min value="1" />
      <fixedCodeableConcept>
        <coding>
          <system value="http://dicom.nema.org/resources/ontology/DCM" />
          <code value="110153" />
          <display value="Source Role ID" />
        </coding>
      </fixedCodeableConcept>
    </element>
    <element id="AuditEvent.agent:source.who">
      <path value="AuditEvent.agent.who" />
      <short value="Identifikator autenticiranog korisnika (JWT token). Može biti krajnji korisnik (Zdravstveni djelatnik) ili Informacijski sustav" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:source.who.type">
      <path value="AuditEvent.agent.who.type" />
      <short value="Upisuje se samo u slučaju krajnjeg korisnika (zdravstveni djelatnik ili pacijent) u slučaju informacijskog sustava se ne upisuje" />
      <constraint>
        <key value="hi-2" />
        <severity value="error" />
        <human value="Tip može biti samo zdravstveni djelatnik (Practitioner) ili pacijent (Patient)" />
        <expression value="iif($this='Patient' or $this='Practitioner', true, false)" />
      </constraint>
    </element>
    <element id="AuditEvent.agent:source.who.identifier">
      <path value="AuditEvent.agent.who.identifier" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:source.requestor">
      <path value="AuditEvent.agent.requestor" />
      <fixedBoolean value="true" />
    </element>
    <element id="AuditEvent.agent:source.network">
      <path value="AuditEvent.agent.network" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:source.network.address">
      <path value="AuditEvent.agent.network.address" />
      <short value="Identifikator aplikacije/servisa ili IP adresa vanjskog sustava" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:source.network.type">
      <path value="AuditEvent.agent.network.type" />
      <short value="“5&quot; (URI) or &quot;2&quot; (IP address)" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:destination">
      <path value="AuditEvent.agent" />
      <sliceName value="destination" />
      <max value="1" />
    </element>
    <element id="AuditEvent.agent:destination.type">
      <path value="AuditEvent.agent.type" />
      <fixedCodeableConcept>
        <coding>
          <system value="http://dicom.nema.org/resources/ontology/DCM" />
          <code value="110152" />
          <display value="Destination Role ID" />
        </coding>
      </fixedCodeableConcept>
    </element>
    <element id="AuditEvent.agent:destination.who">
      <path value="AuditEvent.agent.who" />
      <short value="ID usluge Upravljanje slučajevima" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:destination.who.identifier">
      <path value="AuditEvent.agent.who.identifier" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:destination.network">
      <path value="AuditEvent.agent.network" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:destination.network.address">
      <path value="AuditEvent.agent.network.address" />
      <short value="ID usluge Upravljanje slučajevima" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:destination.network.type">
      <path value="AuditEvent.agent.network.type" />
      <min value="1" />
    </element>
    <element id="AuditEvent.source">
      <path value="AuditEvent.source" />
      <short value="Aplikacija koja je izradila revizijski zapis" />
    </element>
    <element id="AuditEvent.source.observer">
      <path value="AuditEvent.source.observer" />
      <short value="Identifikator aplikacije upravljanja slučajevima" />
    </element>
    <element id="AuditEvent.source.observer.identifier">
      <path value="AuditEvent.source.observer.identifier" />
      <min value="1" />
    </element>
    <element id="AuditEvent.entity">
      <path value="AuditEvent.entity" />
      <short value="Informacije o slučaju na koji se odnosi revizijski zapis" />
    </element>
    <element id="AuditEvent.entity.what">
      <path value="AuditEvent.entity.what" />
      <short value="Jedinstveni identifikator slučaja (ID kojeg dodjeljuje usluga)" />
      <min value="1" />
    </element>
    <element id="AuditEvent.entity.what.type">
      <path value="AuditEvent.entity.what.type" />
      <min value="1" />
      <fixedUri value="Condition" />
    </element>
    <element id="AuditEvent.entity.what.identifier">
      <path value="AuditEvent.entity.what.identifier" />
      <min value="1" />
    </element>
    <element id="AuditEvent.entity.type">
      <path value="AuditEvent.entity.type" />
      <min value="1" />
      <fixedCoding>
        <system value="http://hl7.org/fhir/resource-types" />
        <code value="Condition" />
        <display value="Condition" />
      </fixedCoding>
    </element>
    <element id="AuditEvent.entity.role">
      <path value="AuditEvent.entity.role" />
      <min value="1" />
      <fixedCoding>
        <system value="http://terminology.hl7.org/CodeSystem/object-role" />
        <code value="4" />
        <display value="Domain Resource" />
      </fixedCoding>
    </element>
  </differential>
</StructureDefinition>