<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="sgp-referral-audit-events" />
  <url value="http://fhir.cezih.hr/specifikacije/StructureDefinition/sgp-referral-audit-events" />
  <version value="0.1" />
  <name value="SGPReferralAuditEvent" />
  <title value="SGP Referral Audit Event" />
  <status value="active" />
  <experimental value="false" />
  <description value="Specifikacija strukture revizijskog zapisa usluge uupućivanja pacijenata na specijalno gensko profiliranje." />
  <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="SGP-1" />
        <severity value="error" />
        <human value="Vrsta revizijskog zapisa mora odgovarati podvrsti" />
        <expression value="iif(subtype.code='3.2' or subtype.code='3.3' or subtype.code='3.4' or subtype.code='3.5' or subtype.code='3.6' or subtype.code='3.12', type.code='amend', true) and iif(subtype.code='3.1', type.code='originate', true) and iif(subtype.code='3.7' or subtype.code='3.8' or subtype.code='3.9' or subtype.code='3.10' or subtype.code='3.13', type.code='destroy', true) and iif(subtype.code='3.11', type.code='access', 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 je jednaka vrsti poruke koja je poslana usluzi upravljanja SGP uputnicom" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.cezih.hr/specifikacije/ValueSet/specialist-referral-message-types" />
      </binding>
    </element>
    <element id="AuditEvent.action">
      <path value="AuditEvent.action" />
      <min value="1" />
      <mustSupport value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/audit-event-action" />
      </binding>
    </element>
    <element id="AuditEvent.recorded">
      <path value="AuditEvent.recorded" />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.outcome">
      <path value="AuditEvent.outcome" />
      <short value="Informacija da li je zahtjev za koji se sprema revizijski zapis uspješno odrađen ili ne" />
      <min value="1" />
      <mustSupport value="false" />
    </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" />
      <short value="SGP Referral Client information" />
      <max value="1" />
      <mustSupport value="false" />
    </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>
      <mustSupport value="false" />
    </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" />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.agent:source.who.reference">
      <path value="AuditEvent.agent.who.reference" />
      <max value="0" />
    </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="ENC-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>
      <mustSupport value="true" />
    </element>
    <element id="AuditEvent.agent:source.who.identifier">
      <path value="AuditEvent.agent.who.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="AuditEvent.agent:source.requestor">
      <path value="AuditEvent.agent.requestor" />
      <fixedBoolean value="true" />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.agent:source.network">
      <path value="AuditEvent.agent.network" />
      <min value="1" />
      <mustSupport value="false" />
    </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" />
      <mustSupport value="true" />
    </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" />
      <mustSupport value="true" />
    </element>
    <element id="AuditEvent.agent:destination">
      <path value="AuditEvent.agent" />
      <sliceName value="destination" />
      <short value="SGP Referral Service information" />
      <max value="1" />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.agent:destination.type">
      <path value="AuditEvent.agent.type" />
      <min value="1" />
      <fixedCodeableConcept>
        <coding>
          <system value="http://dicom.nema.org/resources/ontology/DCM" />
          <code value="110152" />
          <display value="Destination Role ID" />
        </coding>
      </fixedCodeableConcept>
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.agent:destination.who">
      <path value="AuditEvent.agent.who" />
      <short value="ID usluge SGP uputnice" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.agent:destination.who.reference">
      <path value="AuditEvent.agent.who.reference" />
      <max value="0" />
    </element>
    <element id="AuditEvent.agent:destination.who.identifier">
      <path value="AuditEvent.agent.who.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="AuditEvent.agent:destination.requestor">
      <path value="AuditEvent.agent.requestor" />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.agent:destination.network">
      <path value="AuditEvent.agent.network" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.agent:destination.network.address">
      <path value="AuditEvent.agent.network.address" />
      <short value="ID usluge SGP uputnice" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="AuditEvent.agent:destination.network.type">
      <path value="AuditEvent.agent.network.type" />
      <min value="1" />
      <fixedCode value="5" />
      <mustSupport value="true" />
    </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 SGP uputnice" />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.source.observer.reference">
      <path value="AuditEvent.source.observer.reference" />
      <max value="0" />
    </element>
    <element id="AuditEvent.source.observer.identifier">
      <path value="AuditEvent.source.observer.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="AuditEvent.entity">
      <path value="AuditEvent.entity" />
      <short value="Informacije o SGP uputnici na koju se odnosi revizijski zapis" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.entity.what">
      <path value="AuditEvent.entity.what" />
      <short value="Jedinstveni identifikator SGP uputnice" />
      <definition value="Jedinstveni identifikator SGP uputnice. Ne koristi se u slučaju tranzicije '3.11' (Pretraga uputnice)." />
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.entity.what.reference">
      <path value="AuditEvent.entity.what.reference" />
      <max value="0" />
    </element>
    <element id="AuditEvent.entity.what.type">
      <path value="AuditEvent.entity.what.type" />
      <min value="1" />
      <fixedUri value="ServiceRequest" />
      <mustSupport value="true" />
    </element>
    <element id="AuditEvent.entity.what.identifier">
      <path value="AuditEvent.entity.what.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </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="ServiceRequest" />
        <display value="ServiceRequest" />
      </fixedCoding>
      <mustSupport value="false" />
    </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>
      <mustSupport value="false" />
    </element>
    <element id="AuditEvent.entity.query">
      <path value="AuditEvent.entity.query" />
      <short value="Query parametri" />
      <definition value="Sadrži b64 enkodireni Parameters resource koji ide u requestu kod tranzicije '3.11' (Pretraga uputnice)." />
    </element>
  </differential>
</StructureDefinition>