<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="hr-prescription-audit-event" />
  <url value="http://fhir.cezih.hr/specifikacije/StructureDefinition/hr-prescription-audit-event" />
  <version value="0.1" />
  <name value="HRAuditPrescription" />
  <title value="Prescription Management service Audit Event" />
  <status value="active" />
  <experimental value="false" />
  <description value="Specifikacija strukture revizijskog zapisa usluge upravljanja receptima" />
  <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="pr-1" />
        <severity value="error" />
        <human value="Vrsta revizijskog zapisa mora odgovarati podvrsti" />
        <expression value="iif(subtype.code='4.1', type.code='originate', true) and iif(subtype.code='4.2' or subtype.code='4.3', 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.type.system">
      <path value="AuditEvent.type.system" />
      <min value="1" />
      <fixedUri value="http://dicom.nema.org/resources/ontology/DCM" />
    </element>
    <element id="AuditEvent.type.code">
      <path value="AuditEvent.type.code" />
      <min value="1" />
      <fixedCode value="110109" />
    </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 receptima" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.cezih.hr/specifikacije/ValueSet/prescription-management-message-types" />
      </binding>
    </element>
    <element id="AuditEvent.subtype.system">
      <path value="AuditEvent.subtype.system" />
      <min value="1" />
    </element>
    <element id="AuditEvent.subtype.code">
      <path value="AuditEvent.subtype.code" />
      <min value="1" />
    </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" />
      <min value="1" />
      <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)." />
      <definition value="Zdravstveni djelatnik koji je poslao poruku." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
      </type>
    </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" />
      <short value="eRecept (FHIR) information" />
      <definition value="Aplikacija upravljanja receptima na koju je poslana poruka." />
      <min value="1" />
      <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="Aplikacija upravljanja receptima" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Device" />
      </type>
    </element>
    <element id="AuditEvent.agent:destination.who.identifier">
      <path value="AuditEvent.agent.who.identifier" />
      <short value="Identifikator aplikacije upravljanja receptima" />
      <min value="1" />
    </element>
    <element id="AuditEvent.agent:destination.requestor">
      <path value="AuditEvent.agent.requestor" />
      <fixedBoolean value="false" />
    </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 receptima" />
      <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 receptima" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Device" />
      </type>
    </element>
    <element id="AuditEvent.source.observer.identifier">
      <path value="AuditEvent.source.observer.identifier" />
      <short value="Identifikator aplikacije koja je izradila revizijski zapis." />
      <min value="1" />
    </element>
    <element id="AuditEvent.entity">
      <path value="AuditEvent.entity" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type.code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Informacije o receptu na koji se odnosi revizijski zapis" />
      <min value="1" />
    </element>
    <element id="AuditEvent.entity.what">
      <path value="AuditEvent.entity.what" />
      <short value="Recept" />
      <definition value="Referenca na message bundle recepta spremljen u FHIR serveru na koji se odnosi AuditEvent poruka." />
      <min value="1" />
    </element>
    <element id="AuditEvent.entity.what.type">
      <path value="AuditEvent.entity.what.type" />
      <min value="1" />
      <fixedUri value="Bundle" />
    </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="MedicationRequest" />
        <display value="MedicationRequest" />
      </fixedCoding>
    </element>
    <element id="AuditEvent.entity:recept">
      <path value="AuditEvent.entity" />
      <sliceName value="recept" />
      <short value="Poruka recepta" />
      <definition value="Potpisana poruka recepta." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="AuditEvent.entity:recept.what">
      <path value="AuditEvent.entity.what" />
      <short value="Recept" />
      <definition value="Referenca na message bundle recepta spremljen u FHIR serveru na koji se odnosi AuditEvent poruka." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Bundle" />
      </type>
    </element>
    <element id="AuditEvent.entity:recept.what.reference">
      <path value="AuditEvent.entity.what.reference" />
      <min value="1" />
    </element>
    <element id="AuditEvent.entity:recept.type">
      <path value="AuditEvent.entity.type" />
      <min value="1" />
      <fixedCoding>
        <system value="http://hl7.org/fhir/resource-types" />
        <code value="Bundle" />
      </fixedCoding>
    </element>
    <element id="AuditEvent.entity:recept.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>
    <element id="AuditEvent.entity:pacijent">
      <path value="AuditEvent.entity" />
      <sliceName value="pacijent" />
      <short value="Pacijent" />
      <definition value="Pacijent za kojeg je propisan recept." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="AuditEvent.entity:pacijent.what">
      <path value="AuditEvent.entity.what" />
      <short value="Pacijent" />
      <definition value="Pacijent za kojeg je propisan recept." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
    </element>
    <element id="AuditEvent.entity:pacijent.what.identifier">
      <path value="AuditEvent.entity.what.identifier" />
      <short value="Identifikator pacijenta" />
      <min value="1" />
    </element>
    <element id="AuditEvent.entity:pacijent.type">
      <path value="AuditEvent.entity.type" />
      <min value="1" />
      <fixedCoding>
        <system value="http://hl7.org/fhir/resource-types" />
        <code value="Patient" />
      </fixedCoding>
    </element>
    <element id="AuditEvent.entity:pacijent.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>