Logging interface
Aanvullende ketenmonitoring is een aanvulling op de reeds bestaande faciliteiten ten aanzien van logging van de deelnemers. Om aanvullende ketenmonitoring te kunnen uitvoeren moet Stichting MedMij beschikken over goede loggegevens van alle deelnemers. Met deze loggegevens kan Stichting MedMij eerder verstoringen in de keten signaleren en hier sneller op acteren. Uiteindelijk leidt dit tot een afname van de duur van verstoringen en zullen zorggebruikers minder problemen ervaren bij het gebruik van PGO's. Met de vastlegging van gebeurtenissen in het aanvullende ketenlog wordt ook de basis gelegd voor het verkrijgen van verschillende inzichten in de keten (bijvoorbeeld in de kwaliteit van uitwisseling en de volledigheid van uitwisseling). Dit alles verbetert de kwaliteit van gegevensuitwisseling en draagt daardoor bij aan de verhoging van gegevensuitwisselingen binnen de schakels van de MedMij keten.
Deze pagina beschrijft welke gebeurtenissen moeten worden vastgelegd, aan welke eisen logregels en verzamelingen van logregels moeten voldoen, hoe deze aangeleverd moeten worden en welke verantwoordelijkheden de verschillende rollen hebben.
Gebeurtenissen
In bovenstaande plaat staat de functie Verzamelen uitgewerkt, inclusief de momenten waarop iets gelogd moet worden. Voor Abonneren en Delen moeten dezelfde gebeurtenissen worden vastgelegd.
- send_authorization_request: de DVP logt het versturen van een authorization request naar de DVA.
- receive_authorization_request: de DVA logt het ontvangen van een authorization request van de DVP.
- show_landing_page: de DVA logt het tonen van de landingspagina.
- authorization_request_error & show_authorization_request_error_page: in plaats van het tonen van de landingspagina logt de DVA het ontvangen van een incorrecte client_id en/of redirect_uri en toont een foutpagina, ook dit wordt vastgelegd.
- send_authorization_request_error: in plaats van het tonen van de landingspagina logt de DVA het ontvangen van incorrecte parameters
- send_authentication_request: de DVA logt het versturen van een authentication request naar de DVAuthN.
- send_authorization_cancellation: in plaats van het sturen van een authentication request naar de DVAuthN stuurt de DVA een authorization cancellation naar de DVP. De DVA moet deze gebeurtenis vastleggen.
- receive_authentication_response: de DVA logt het ontvangen van een authentication response van de DVAuthN.
- receive_authorization_cancellation: in plaats van een authentication response ontvangt de DVA een authorization cancellation van de DVAuthN en logt deze gebeurtenis.
- receive_authentication_error: in plaats van een authentication response ontvangt de DVA een authentication error van de DVAuthn en logt deze gebeurtenis.
send_artifact_resolution_request: de DVA logt het versturen van een artifact resolution request naar de DVAuthN.
- receive_artifact_response: de DVA logt het ontvangen van een artifact response.
- receive_artifact_request_error & show_authentication_error_page: De DVA ontvangt een negatief resultaat op het authenticatie proces, logt dit en toont een foutpagina, ook dit wordt vastgelegd.
- result_availability_check: indien op dit moment de beschikbaarheids- of ontvankelijkheidstoets wordt uitgevoerd, dan logt de DVA het resultaat hiervan.
- availability_check_error & show_availability_check_error_page: De DVA logt een fout in de beschikbaarheids- of ontvankelijkheidstoets en toont een foutscherm met de mogelijkheid terug te keren naar de DVP. Ook het tonen van het scherm wordt gelogd.
- show_consent_page: de DVA logt het tonen van de toestemmings- of bevestigingsverklaring.
- receive_consent: de DVA logt het verkrijgen van de toestemming.
- send_authorization_response: de DVA logt het versturen van een authorization response.
- send_authorization_cancellation: in plaats van het sturen van een authorization response naar de DVP stuurt de DVA een authorization cancellation naar de DVP. De DVA moet deze gebeurtenis vastleggen.
- receive_authorization_response: de DVP logt het ontvangen van een authorization response.
- send_token_request: de DVP logt het versturen van een token request.
- receive_token_request: de DVA logt het ontvangen van een token request.
- result_availability_check: indien op dit moment de beschikbaarheids- of ontvankelijkheidstoets wordt uitgevoerd, dan logt de DVA het resultaat hiervan.
- availability_check_error & send_availability_check_error: De DVA logt de fout in de beschikbaarheids- of ontvankelijkheidstoets en logt ook dat het de fout naar de DVP stuurt.
- send_token_response: de DVA logt het versturen van een token response.
- send_token_request_error: in plaats van het sturen van een token response naar de DVP stuurt de DVA een token request error. De DVA moet deze gebeurtenis loggen.
- receive_token_response: de DVP logt het ontvangen van een token response.
- receive_availability_check_error: in plaats van een token response ontvangt de DVP een availability check error van de DVA en logt deze gebeurtenis.
- receive_token_request_error: in plaats van een token response ontvangt de DVP een token request error van de DVA en logt deze gebeurtenis.
- send_resource_request: de DVP logt het versturen van een resource request.
- receive_resource_request: de DVA logt het ontvangen van een resource request.
- result_availability_check: indien op dit moment de beschikbaarheids- of ontvankelijkheidstoets wordt uitgevoerd, dan logt de DVA het resultaat hiervan.
- availability_check_error & send_availability_check_error: De DVA logt de fout in de beschikbaarheids- of ontvankelijkheidstoets en logt ook dat het de fout naar de DVP stuurt.
- result_gathering_information: de DVA logt welke gegevens opgehaald konden worden en welke niet.
send_resource_response: de DVA logt het versturen van een resource response.
send_resource_request_error: Indien het request van de DVP niet correct is (inhoudelijk of technisch), stuurt de DVA in plaats van een resource response een resource request error naar de DVP. De DVA logt hiervoor een send_resource_request_error.
send_resource_error_response: Indien bij het opvragen van de resources bij de aanbieder een fout ontstaat, stuurt de DVA in plaats van een resource response een resource error response naar de DVP. De DVA logt dat de gegevens niet gevonden of verstuurd konden worden met behulp van een send_resource_error_response.
- receive_resource_response: de DVP logt het ontvangen van een resource response.
- receive_availability_check_error: in plaats van een resource response ontvangt de DVP een availability check error van de DVA en logt deze gebeurtenis.
- receive_resource_request_error: in plaats van een resource response ontvangt de DVP een resource request error van de DVA en logt deze gebeurtenis.
- receive_resource_error_response: in plaats van een resource response ontvangt de DVP een availability resource error response van de DVA en logt deze gebeurtenis.
Verantwoordelijkheden
Waar in deze uitwerking gesproken wordt over een UUID verwachten wij dat deelnemers UUIDv4 gebruiken.
1. | Verzamelingen van logregels worden in het JSON formaat bij MedMij aangeboden. De verzamelingen worden met een HTTP POST request naar de endpoint van MedMij gestuurd. | core.logint.200 |
2. | Alle aan te leveren logregels bevatten een event-object met een vaste set aan attributen:
| core.logint.201 |
3. | De logregels van alle verzonden en ontvangen verzoeken bevatten een request-object met een vaste set aan attributen:
| core.logint.202 |
4. | In aanvulling op core.logint.201 moeten bij een authorization request de volgende attributen aan het request-object worden toegevoegd:
| core.logint.203 |
5. | In aanvulling op core.logint.201 wordt bij een Artifact resolution request het volgende attribuut aan het request-object toegevoegd:
| core.logint.204 |
6. | In aanvulling op core.logint.201 worden bij een token request de volgende attributen aan het request-object toegevoegd:
Aanvullend legt alleen de DVP bij token requests de onderstaande attribuut vast:
| core.logint.205 |
7. | In aanvulling op core.logint.201 worden bij een resource request de volgende attributen aan het request-object toegevoegd:
Voorbeeld uit de GegevensdienstNamenLijst <Gegevensdienstnamenlijst xmlns="xmlns://afsprakenstelsel.medmij.nl/gegevensdienstnamenlijst/release1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="xmlns://afsprakenstelsel.medmij.nl/gegevensdienstnamenlijst/release1/"> <Tijdstempel>2020-05-04T18:13:51.0+01:00</Tijdstempel> <Volgnummer>50</Volgnummer> <Gegevensdiensten> <Gegevensdienst> <GegevensdienstId>1</GegevensdienstId> <Weergavenaam>Basisgegevens Zorg</Weergavenaam></Gegevensdienst> </Gegevensdiensten> </Gegevensdienstnamenlijst> | core.logint.206 |
8. | De logregels van alle verzonden en ontvangen antwoorden bevatten een response-object met een vaste set aan attributen:
| core.logint.207 |
9. | De logregels van alle fouten in het proces bevatten een error-object met een vaste set aan attributen:
| core.logint.208 |
10. | In aanvulling op core.logint.208 worden bij request errors de volgende attributen aan het error-object toegevoegd:
| core.logint.209 |
11. | De logregels van het type result_gathering_information bevatten een information-object met met daarin een lijst de namen van succesvol opgehaalde data-objecten, een lijst van opgehaalde data-objecten waarvan de waarde leeg is en een lijst van onsuccesvol opgehaalde data-objecten: | core.logint.210 |
Object Model Logregel
In onderstaand model wordt de samenstelling van een logregel schematisch weergegeven. Elke logregel bestaat uit een Event object, met daarbij optioneel één of meer van de andere objecten uit het schema. Zowel het Request- als het Response object hebben enkele afgeleiden welke additionele attributen toevoegen in specifieke situaties. Onder elk object is opgenomen bij welke gebeurtenis het object wordt verwacht.
Let op! Elk bericht bevat minimaal het event object.