Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Expand
titleVersiegeschiedenis...

Versie

Datum

Status

Wijzigingen

1.0.5

8 mei 2024

definitief

Plaatje aangepast, Tracing en Ketenlogging. X-Correlation_ID niet overgenomen uit de bovenliggende Trace_ID. Verwijzing naar de w3c standaard is verwijderd. Het voorgestelde mechanisme voor koppeltaal komt niet overeen met deze standaard. Daarnaast aantal beschrijvingen voor Entity en Agent aanduiding verbeterd.

1.0.4

26 mar 2024

definitief

Comments Joris verwerkt, aantal zaken omgezet in Backlog items.
- Entity.query, Entity.role & Entity.name worden niet gebruikt in de meeste events. De overige voorgestelde wijzigingen zijn neergelegd in product backlog items.

1.0.3

definitief

verbeterde beschrijving van gehele pagina
- HTI.jti als X-Trace-Id gebruiken

1.0.2

definitief

Aanpassingen tbh IDP

1.0.1

AuditEvent User Authentication toegevoegd

1.0.0

 

definitief


...

Koppeltaal maakt gebruik van de Trace Context standaard om de gebeurtenissen over verschillende systemen te kunnen volgen. Dit houdt in dat er drie headers worden gebruikt in elk request die het mogelijk maken een keten van AuditEvents te kunnen creëren die verschillende gebeurtenissen over systemen kunnen vastleggen, namelijk de X-Request-id, X-Trace-id en X-Correlation-id. Deze doen zich met name voor in de volgende situaties:

...

De X-Request-Id kan het beste gezien worden als een unieke request ID voor alle requests die in koppeltaal plaatsvinden. In asynchrone en/of notificaties kan er een hiërarchie van requests gemaakt worden door steeds een nieuw request ID voor elk request te maken, en de ontvangen request ID als bovenliggend request in het X-Correlation-Id in te vullenvulle. De X-Trace-id is ook een unieke identifier die aan een request wordt gegeven, deze wijkt af in hoe deze wordt doorgegeven; deze waarde moet, indien gevuld, ongewijzigd doorgegeven worden. 


Drawio sketch
simple0
zoom1
simpleinComment0
inCommentpageId027095009
custContentId534020158
pageIddiagramDisplayName27095009Trace Headers
lboxtruediagramDisplayNameTrace Headers
contentVer12
revision56
baseUrlhttps://vzvz.atlassian.net/wiki
diagramNameTrace Headers
pCenter0
width421420.99999999999994
linksauto
tbstyletop
height321320.99999999999994
Drawio sketch
simple0
zoom1simple0
inComment0custContentId533626980
pageId27095009
lboxcustContentIdtrue533626980
diagramDisplayNameTrace Header lazy
lboxtrue
contentVer12
revision67
baseUrlhttps://vzvz.atlassian.net/wiki
diagramNameTrace Header lazy
pCenter0
width421
linksauto
tbstyletop
height321

...

FHIR AuditEvent Resource


Element

Card

Omschrijving

extension.request-id

0..1

Om één interactie (request of response) eenduidig uniek te kunnen identificeren a.d.h.v. een identifier (X-Request-Id)

De waarde van het X-Request-Id veld, indien de waarde ontbreekt in het originele request moet deze zelf gegenereerd worden.

Code Block
"extension":  [
        {
            "url": "http://koppeltaal.nl/fhir/StructureDefinition/trace-id",
            "valueId": "8385f600-9bf7-4b96-8467-268070c27677"
        },
        {
            "url": "http://koppeltaal.nl/fhir/StructureDefinition/request-id",
            "valueId": "fd8f9c51-1807-43bf-ba08-fa55d4cba533"
        },
        {
            "url": "http://koppeltaal.nl/fhir/StructureDefinition/trace-id",
            "valueId": "71d21867-ed29-498d-913f-add467c09710"
        },
        {
            "url": "http://koppeltaal.nl/fhir/StructureDefinition/resource-origin",
            "valueReference": {
                "reference": "Device/67aca2ac-3ed3-4ec7-b912-640a5a88a883",
                "type": "Device"
            }
        }
    ]

extension.correlation-id

0..1

De waarde van het X-Correlation-Id veld in het voorgaande request, indien van toepassing.

extension.trace-id

0..1

Om een set interacties te groeperen en eenduidig uniek te kunnen identificeren onder een bepaalde (initiërende) type gebeurtenis a.d.h.v. een traceer identifier (X-Trace-Id).

De waarde van het X-Trace-id veld, indien van toepassing.

extension.resource-origin

0..1

De referentie naar de device van de aanvrager van het request. In het geval van de FHIR resource service wordt dit veld automatisch gevuld door de aanvrager van het request voor alle REST operaties op alle resources. 



Beschrijving van een gebeurtenis.

type

1..1

Identificatie van het type gebeurtenis. Coding met als waardeset het audit-event-type, waarvan met name de volgende sets (of een deel daarvan) worden gebruikt:

Code Block
"type": {
        "system": "http://terminology.hl7.org/CodeSystem/audit-event-type",
        "code": "rest",
        "display": "Restful Operation"
    }

subtype

0..*

Gedetailleerde beschrijving van het type gebeurtenis. Coding met als waardeset AuditEventSub-Type.

Afhankelijk van type gebeurtenis kan dit zijn:

Code Block
"subtype":  [
        {
            "system": "http://hl7.org/fhir/restful-interaction",
            "code": "create",
            "display": "create"
        }
    ]

action

0..1

Aanduiding van de AuditEventAction bij deze gebeurtenis.

  • C - Creëren van data 

  • R - Lezen van data

  • U - Wijzigen van data

  • D - Verwijderen van Data

  • E - Starten of stoppen van een proces

Code Block
"action": "C"

period

0..1

De periode waarbinnen de gebeurtenis plaatsvond. Het datatype is Period.

Code Block
"period": {
        "start": "2023-06-12T10:27:31.389+00:00",
        "end": "2023-06-12T10:27:33.456+00:00"
    }
  

recorded

1..1

Het tijdstip van de gebeurtenis wordt eenduidig en aan het begin van de gebeurtenis vastgelegd, het tijdstip wordt vastgelegd in de UTC tijdzone.

Code Block
"recorded": "2023-06-12T10:27:31.389+00:00"

outcome

0..1

Indicatie van het resultaat van de gebeurtenis van het type AuditEventOutcome

  • 0: Succes

  • 4: Kleine fout

  • 8: Serieuze fout

  • 12: Fataal

Code Block
"outcome": "4"

outcomeDesc

0..1

Beschrijving van de melding, indien een foutmelding.

Code Block
"outcomeDesc" : "Invalid value for recorded"




agent

1..*

Identificatie van een gebruiker. Dit kan een persoon, organisatie of applicatie instantie in een informatie systeem representeren. Bij elke gebeurtenis MOET tenminste één gebruiker geïdentificeerd worden.

Code Block
"agent":  [
        {
            "who": {
                "reference": "Device/ba33314a-795a-4777-bef8-e6611f6be645"
            },
            "type": {
                "coding":  [
                    {
                        "system": "http://dicom.nema.org/resources/ontology/DCM",
                        "code": "110153"
                    }
                ]
            },
            "requestor": true
        }

agent.who

1..1

Identificator van de gebruiker die de gebeurtenis initieert voor de bron van logging. De gebruiker is bij Koppeltaal is dit altijd een Reference naar een Device.

agent.role

0..*

De veiligheidsrol van de agent, met als waardeset SecurityRoleType, waaronder:

  • 110150 - Application

  • 110151 - Application Launcher

  • 110152 - Destination Role ID

  • 110153 - Source Role ID

agent.type

1..1

Rol van de gebruiker bij de gebeurtenis van het type ParticipationRoleType, waaronder:

  • 110150 - Application

  • 110151 - Application Launcher

  • 110152 - Destination Role ID

  • 110153 - Source Role ID

agent.requestor

1..1

Aanduiding dat deze gebruikers de initiator is van de gebeurtenis.

agent.network

0..1

Dit veld heeft de waarde van Subscription.channel.endpoint

entity

1..*

Identificatie van de betrokken objecten en typen objecten bij deze gebeurtenis. Verschillende typen objecten worden op verschillende wijzen geïdentificeerd. Ter identificatie van de betrokken objecten MOETEN het Identificatortype en Identificator van het object bepaald worden.

Code Block
"entity":  [
        {
            "what": {
                "reference": "Patient/f89f5013-4552-40e8-b0de-b217b9c15080/_history/1",
                "type": "Patient"
            },
            "type": {
                "system": "http://hl7.org/fhir/resource-types",
                "code": "Patient",
                "display": "Patient"
            }
        }
    ]

entity.type

0..1

Geef het type identificator van het betrokken object weer. Coding met als waardeset AuditEventEntityType.

Dit veld kan gevuld worden met de ResourceType, zoals

  • Patient

  • Practitioner

  • Task

  • ....




entity.what

0..1

Geeft een unieke identificator van een bij de gebeurtenis betrokken object weer, afhankelijk van het Identificatortype van het object.

Dit veld kan gevuld worden met de entity referentie, zoals:

  • Patient/e7b5f229-8b28-46f7-afef-49cbec94943a

  • Practitioner/d86d79aa-8dea-4bfc-8ea2-a247b9e97a7b

  • Task/c97e2000-e423-401d-9c25-a1b7e65e5b6d

entity.name

0..1

Nadere aanduiding van het betrokken object. Dit element komt te vervallen in de FHIR R5 Standaard en komt daarom ook in de huidige versie van Koppeltaal te vervallen

entity.description

0..1

Tekst die de entiteit in verder detail beschrijft, in het geval van een OperationOutcome kan hier de beschrijving in gezet worden.

entity.securityLabel

0..*

Toegangscontrole beleid dat specifiek is voor Koppeltaal, dat wordt gebruikt om één of meer autorisatiebeleidsregels af te dwingen.

Code Block
"type":  [
    {
        "system": "http://terminology.hl7.org/CodeSystem/v3-Confidentiality",
        "code": "U",
        "display": "unrestricted",
        "version": "4.3.0"
    }
]

entity.role

0..1

Code die de categorie (of rol) van het betrokken object weergeeft.

We gebruiken hiervoor de volgende code systemen:

Voorbeeld: waarde "Query" De inhoud van een query. Dit wordt gebruikt om de inhoud van elke soort query vast te kunnen leggen. Voor beveiligingstoezicht doeleinden is het erg belangrijk om te weten welke vragen er worden gesteld.

entity.lifecycle

0..1

Code die het stadium van het betrokken object weergeeft voor die objecten die een bepaalde levenscyclus kennen.

We gebruiken hiervoor de volgende code systemen:

Code Block
"type":  [
    {
        "system": "http://terminology.hl7.org/CodeSystem/dicom-audit-lifecycle",
        "code": "14",
        "display": "Logical deletion"
    }
]

entity.query

0..1

De feitelijke formulering van een "Query" in geval het betrokken object als categorie "Query" is.

source



Code Block
"source": {
        "site": "https://modules.mijnzggz.nl",
        "observer": {
            "reference": "Device/ba33314a-795a-4777-bef8-e6611f6be645",
            "type": "Device"
        },
        "type":  [
            {
                "system": "http://terminology.hl7.org/CodeSystem/security-source-type",
                "code": "4",
                "display": "Application Server"
            }
        ]
    },

source.site

0..1

Domeinnaam van de locatie waar gelogd is.

source.observer

1..1

Unieke identificatie van de bron in het informatiedomein waar de gebeurtenis is gelogd. Een referentie naar het Device, bijvoorbeeld: Device/5aa804f8-0b03-4f02-bbfe-53889893a4bb

source.type

0..*

Type (device) van de bron waar de gebeurtenis gelogd is.

...