Versions Compared

Key

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

Voor het uitvoeren van monitoring en het opstellen van rapportages moet 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. 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

Image Removed

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.

...

  1. 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.
  2. send_authorization_request_error: in plaats van het tonen van de landingspagina logt de DVA het ontvangen van incorrecte parameters

...

  1. 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.

...

  1. receive_authorization_cancellation: in plaats van een authentication response ontvangt de DVA een authorization cancellation van de DVAuthN en logt deze gebeurtenis.
  2. 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.

...

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

Drawio
mVer2
simple0
zoom1
inComment0
custContentId737443881
pageId244976009
diagramDisplayNameLogginginterface.drawio
lbox1
contentVer1
revision1
baseUrlhttps://vzvz.atlassian.net/wiki
diagramNameLogginginterface.drawio
pCenter0
width1179.4999999999993
links
tbstyle
height731.0000000000001

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.

  1. send_authorization_request: de DVP logt het versturen van een authorization request naar de DVA.
  2. receive_authorization_request: de DVA logt het ontvangen van een artifact responseauthorization request van de DVP.
  3. receive_artifactshow_landing_page: de DVA logt het tonen van de landingspagina.
    1. authorization_request_error & show_authorization_authenticationrequest_error_page: De DVA ontvangt een negatief resultaat op het authenticatie proces, logt dit 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 , ook dit wordt vastgelegd.
    result
    1. send_authorization_
    availability
    1. request_
    check: indien op dit moment de beschikbaarheids- of ontvankelijkheidstoets wordt uitgevoerd, dan
    1. error: in plaats van het tonen van de landingspagina logt de DVA het
    resultaat hiervan.
    1. 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 gelogt.
  4. show_consent_page: de DVA logt het tonen van de toestemmings- of bevestigingsverklaring.
  5. receive_consent: de DVA logt het verkrijgen van de toestemming.
  6. send_authorization_response: de DVA logt het versturen van een authorization response.
    1. send_authorization_cancellation:  ontvangen van incorrecte parameters
  7. send_authentication_request: de DVA logt het versturen van een authentication request naar de DVAuthN.
    1. send_authorization_cancellation: in plaats van het sturen van een authorization response authentication request naar de DVP DVAuthN stuurt de DVA een authorization cancellation naar de DVP. De DVA moet deze gebeurtenis vastleggen.
  8. receive_authorizationauthentication_response: de DVP DVA logt het ontvangen van een authorization authentication response van de DVAuthN.
    send
    1. receive_
    token
    1. authorization_
    request: de DVP logt het versturen van een token request.receive_token
    1. cancellation: in plaats van een authentication response ontvangt de DVA een authorization cancellation van de DVAuthN en logt deze gebeurtenis.
    2. receive_authentication_error: in plaats van een authentication response ontvangt de DVA een authentication error van de DVAuthn en logt deze gebeurtenis.
  9. send_artifact_resolution_request: de DVA logt het

    ontvangen

    versturen van een

    token request.

     artifact resolution request naar de DVAuthN.

  10. receive_artifact_response: de DVA logt het ontvangen van een artifact response.
    1. 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.
  11. result_availability_check: indien op dit moment de beschikbaarheids- of ontvankelijkheidstoets wordt uitgevoerd, dan logt de DVA het resultaat hiervan.
    1. availability_check_error & sendshow_availibilityavailability_check_error_page: De DVA logt de een fout in de beschikbaarheids- of ontvankelijkheidstoets en logt ook dat het de fout naar de DVP stuurttoont een foutscherm met de mogelijkheid terug te keren naar de DVP. Ook het tonen van het scherm wordt gelogd.
  12. show_consent_page: de DVA logt het tonen van de toestemmings- of bevestigingsverklaring.
  13. receive_consent: de DVA logt het verkrijgen van de toestemming.
  14. send_tokenauthorization_response: de DVA logt het versturen van een token authorization response.
    1. send_tokenauthorization_request_errorcancellation:  in plaats van het sturen van een token authorization response naar de DVP stuurt de DVA een token request errorauthorization cancellation naar de DVP. De DVA moet deze gebeurtenis loggenvastleggen.
  15. receive_tokenauthorization_response: de DVP logt het ontvangen van een token authorization response.
    1. receive_availibility_check_error: in plaats van een token response ontvangt de DVP een availibility check error van de DVA en logt deze gebeurtenis.
    2. receive_token_request_error:  in plaats van een token response ontvangt de DVP een token request error van de DVA en logt deze gebeurtenis.
  16. send_resource_send_token_request: de DVP logt het versturen van een resource token request.
  17. receive_resourcetoken_request: de DVA logt het ontvangen van een resource token request.
  18. result_availability_check: indien op dit moment de beschikbaarheids- of ontvankelijkheidstoets wordt uitgevoerd, dan logt de DVA het resultaat hiervan.
    1. availability_check_error & send_availibilityavailability_check_error:  De 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
    1. .
  19. send_resourcetoken_response: de DVA logt het versturen van een resource token response.
    1. send_resourcetoken_request_error: in plaats van het sturen van een resource token response naar de DVP stuurt de DVA een resource token request error naar de DVP. De DVA moet deze gebeurtenis vastleggen.send_resource_error_responseloggen.
  20. receive_token_response: de DVP logt het ontvangen van een token response.
    1. receive_availability_check_error: in plaats van het sturen van een resource token response naar ontvangt de DVP stuurt de DVA een resource error response naar de DVP. De DVA logt dat de gegevens niet gevonden of verstuurd konden wordeneen availability check error van de DVA en logt deze gebeurtenis.
    2. receive_
    resource_response: de DVP logt het ontvangen van een resource response.
    1. receive_availibility_checktoken_request_error:  in plaats van een resource token response ontvangt de DVP een availibility check token request error van de DVA en logt deze gebeurtenis.receive
  21. send_resource_request_error: in plaats van een resource response ontvangt de DVP logt het versturen van een resource request error van .
  22. receive_resource_request: de DVA en logt deze gebeurtenislogt het ontvangen van een resource request.receive
  23. result_resourceavailability_error_response: in plaats van een resource response ontvangt de DVP een availibility resource error response van de DVA en logt deze gebeurtenis.

Verantwoordelijkheden

...

Alle aan te leveren logregels bevatten een event-object met een vaste set aan attributen:

  • type
    een vaste code per gebeurtenis, te kiezen uit de lijst hierboven.
  • location
    De hostname van deelnemer die de logregel vastlegt.
  • datetime
    De datum, het tijdstip en de tijdzone van de gebeurtenis, vastgelegd in het formaat "2023-03-28T22:14:23.618+01:00".
  • session_id
    Het identificerende kenmerk van de sessie bij de deelnemer, bij voorkeur een UUID.
  • trace_id
    Het identificerende kenmerk van het proces waarbinnen de stap wordt uitgevoerd, vastgelegd als UUID.
Code Block
languagejs
themeEmacs
titleVoorbeeld event-object binnen logregel
linenumberstrue
collapsetrue
{
	"event": {
  		"type": "send_authorization_request",
  		"location": "mijn.pgo.nl",
  		"datetime": "2023-03-28T22:14:23.618+01:00",
  		"session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
  		"trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
  	 }
 }

...

  1. check: indien op dit moment de beschikbaarheids- of ontvankelijkheidstoets wordt uitgevoerd, dan logt de DVA het resultaat hiervan.
    1. 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.
  2. result_gathering_information: de DVA logt welke gegevens opgehaald konden worden en welke niet.
  3. send_resource_response: de DVA logt het versturen van een resource response.

    1. 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.

    2. 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.

  4. receive_resource_response: de DVP logt het ontvangen van een resource response.
    1. receive_availability_check_error:  in plaats van een resource response ontvangt de DVP een availability check error van de DVA en logt deze gebeurtenis.
    2. receive_resource_request_error: in plaats van een resource response ontvangt de DVP een resource request error van de DVA en logt deze gebeurtenis.
    3. 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

Note

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.

Anchor
core.logint.200
core.logint.200
core.logint.200

2.

Alle aan te leveren logregels bevatten een event-object met een vaste set aan attributen:

  • id
    Het unieke identificerende kenmerk (UUID) van het verzoek dat door versturende en ontvangende partij gebruikt wordt.
  • method
    De gebruikte http method.
  • client_id
    De hostname van de verzender van het verzoek.
  • server_id
    De hostname van de ontvanger van het verzoek.
  • uri
    De URI waar het verzoek naartoe wordt gestuurd.
Code BlocklanguagejsthemeEmacstitleVoorbeeld request-object binnen logregel
  • type
    een vaste code per gebeurtenis, te kiezen uit de lijst hierboven.
  • location
    De hostname van deelnemer die de logregel vastlegt.
  • datetime
    De datum, het tijdstip en de tijdzone van de gebeurtenis, vastgelegd in het formaat "2023-03-28T22:14:23.618+01:00".
  • session_id
    Het identificerende kenmerk van de sessie bij de deelnemer, bij voorkeur een UUID.
  • trace_id
    Het identificerende kenmerk van het proces waarbinnen de stap wordt uitgevoerd, vastgelegd als UUID. Deze waarde is eenzelfde en gelijk aan de waarde van de parameter X-Correlation-ID in het request, zoals beschreven in de interface specificaties voor de Authorization interface , Token interface en Resource interface .
Code Block
languagejs
themeEmacs
titleVoorbeeld event-object binnen logregel
linenumberstrue
collapsetrue
{
	"event": {
  		"type": "send_authorization_request",
  		"location": "mijn.pgo.nl",
  		"datetime": "2023-03-28T22:14:23.618+01:00",
  		"session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
  		"trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
},
  	
"request":
 
{ "id": "8b5d6cb2-a2c0-4893-bd97-240621c3e488", "method": "get", "client_id": "mijn.pgo.nl", "server_id": "as.dva.nl", "uri": "https://api.as.dva.nl/2.0.0/authorize" } } Anchorcore.logint.202core.logint.202core.logint.2024.

In aanvulling op core.logint.201 worden bij een authorization request de volgende attributen aan het request-object toegevoegd:

  • provider_id
    Het identificerende kenmerk (MedMij Aanbiedersnaam) van de betrokken aanbieder.
  • response_type
    Deze heeft, zolang binnen het MedMij netwerk alleen gebruikgemaakt wordt van de OAuth2 Authorization Code Grant, altijd de waarde 'code'.
  • redirect_uri
    De URI waar het resultaat naartoe gestuurd moet worden. Deze wordt gebruikt voor de redirect terug naar de DVP.
  • state
    De OAuth2 state parameter.
Code Block
languagejs
themeEmacs
titleVoorbeeld Authorization request-object binnen logregel
linenumberstrue
collapsetrue
{ "event": { "type": "send_
}
 }


Anchor
core.logint.201
core.logint.201
core.logint.201

3.

De logregels van alle verzonden en ontvangen verzoeken bevatten een request-object met een vaste set aan attributen:

  • id
    Het unieke identificerende kenmerk (UUID) van het verzoek dat door versturende en ontvangende partij gebruikt wordt.
  • method
    De gebruikte http method.
  • client_id
    De hostname van de verzender van het verzoek.
  • server_id
    De hostname van de ontvanger van het verzoek.
  • uri
    De URI waar het verzoek naartoe wordt gestuurd.
Code Block
languagejs
themeEmacs
titleVoorbeeld request-object binnen logregel
linenumberstrue
collapsetrue
{
	"event": { 
		"type": "send_authorization_request", 
		"location": "mijn.pgo.nl", 
		"datetime": "2023-03-28T22:14:23.618+01:00", 
		"session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb", 
		"trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
	}, 
	"request": { 
		"id": "8b5d6cb2-a2c0-4893-bd97-240621c3e488", 
		"method": "get", 
		"client_id": "mijn.pgo.nl", 
		"server_id": "
api
as.dva.nl", 
		"uri": "https://api.as.dva.nl/2.0.0/authorize"
,

	 
"provider_id": "een.huisarts@medmij", "response_type": "code", "redirect_uri": "https://mijn.pgo.nl/medmij",
}
 }


Anchor
core.logint.202
core.logint.202
core.logint.202

4.

In aanvulling op core.logint.201 moeten bij een authorization request de volgende attributen aan het request-object worden toegevoegd:

  • provider_id
    Het identificerende kenmerk (MedMij Aanbiedersnaam) van de betrokken aanbieder.
  • response_type
    Deze heeft, zolang binnen het MedMij netwerk alleen gebruikgemaakt wordt van de OAuth2 Authorization Code Grant, altijd de waarde 'code'.
  • redirect_uri
    De URI waar het resultaat naartoe gestuurd moet worden. Deze wordt gebruikt voor de redirect terug naar de DVP.
  • state
    De OAuth2 state parameter.
Code Block
languagejs
themeEmacs
titleVoorbeeld Authorization request-object binnen logregel
linenumberstrue
collapsetrue
{
  "event": {
    "
state
type": "
ipcxyhlbjtvduydtneoaflwiismwxfmj
send_authorization_request",
  
} } Anchorcore.logint.203core.logint.203core.logint.2035.

In aanvulling op core.logint.201 wordt bij een Artifact resolution request het volgende attribuut aan het request-object toegevoegd:

  • request_type
    Altijd de waarde 'SAML_assertion'
Code Block
languagejs
themeEmacs
titleVoorbeeld Authentication request-object binnen logregel
linenumberstrue
collapsetrue
{ "event": {
  "location": "mijn.pgo.nl",
    "datetime": "2023-03-28T22:14:23.618+01:00",
    "session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
    "
type
trace_id": "
send_artifact_resolution_request",
79dc6181-6239-4fdd-ad98-594312aeac71"
  },
  "
location
request": 
"api.dva.nl",
{
    "
datetime
id": "
2023-03-28T22:14:23.618+01:00
8b5d6cb2-a2c0-4893-bd97-240621c3e488",
    "
session_id
method": "
c6a27d45-4316-464e-81e0-48d5dbccacbb
get",
    "
trace
client_id": "
79dc6181-6239-4fdd-ad98-594312aeac71" }, "request": {
mijn.pgo.nl",
    
"server_id": "
8b5d6cb2-a2c0-4893-bd97-240621c3e488
api.dva.nl",
    "
method
uri": "
get
https://api.dva.nl/2.0.0/authorize",
    "
client
provider_id": "
api
een.
dva.nl
huisarts@medmij",
    "
server
response_
id
type": "
digid.nl
code",
    "redirect_uri": "https://
api
mijn.
as.dva
pgo.nl/
2.0.0/authorize
medmij",
    "
request_type
state": "
SAML_assertion
ipcxyhlbjtvduydtneoaflwiismwxfmj"
  }
}


Anchor
core.logint.

204

203
core.logint.

204

203
core.logint.

204

203

6
5.

In aanvulling op core.logint.201

worden

wordt bij een

token

Artifact resolution request

de

het volgende

attributen

attribuut aan het request-object toegevoegd:

grant
  • request_type
De
  • Altijd de waarde
moet
  • '
authorization
  • SAML_
code' of 'refresh_token' zijn, waarbij de laatste alleen gebruikt mag worden bij het uitvoeren van een langdurige toestemming.
  • initiated_by
    De waarde moet 'person' of 'machine' zijn, waarbij de laatste alleen gebruikt mag worden bij automatisch verzamelen.
  • Code BlocklanguagejsthemeEmacstitleVoorbeeld Token
    • assertion'
    Code Block
    languagejs
    themeEmacs
    titleVoorbeeld Authentication request-object binnen logregel
    linenumberstrue
    collapsetrue
    {
      "event": {
        "type": "send_
    token
    artifact_resolution_request",
        "location": "
    mijn
    api.
    pgo
    dva.nl",
        "datetime": "2023-03-28T22:14:23.618+01:00",
        "session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
        "trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
      },
      "request": {
        "id": "8b5d6cb2-a2c0-4893-bd97-240621c3e488",
        "method": "get",
        "client_id": "
    mijn
    api.
    pgo
    dva.nl",
        "server_id": "
    api.dva
    digid.nl",
        
    "uri": "https://api.as.dva.nl/2.0.0/authorize",
      
     
     
     
     "
    grant
    request_type": "
    authorization_code", "initiated_by": "person"
    SAML_assertion"
      }
    }


    Anchor
    core.logint.

    205

    204
    core.logint.

    205

    204
    core.logint.

    205

    204

    7
    6.

    In aanvulling op core.logint.201 worden bij een

    resource

    token request de volgende attributen aan het request-object toegevoegd:

    provider
    • grant_
    id
    Het identificerende kenmerk (MedMij Aanbiedersnaam) van de betrokken aanbieder.service_id
    Het identificerende kenmerk (nummer) van de opgevraagde gegevensdienst
    • type
      De waarde moet 'authorization_code' of 'refresh_token' zijn, waarbij de laatste alleen gebruikt mag worden bij het uitvoeren van een langdurige toestemming.

    Aanvullend legt alleen de DVP bij token requests de onderstaande attribuut vast:

    • initiated_by
      De waarde moet 'person' of 'machine' zijn, waarbij de laatste alleen gebruikt mag worden bij automatisch verzamelen.
    Code Block
    languagejs
    themeEmacs
    titleVoorbeeld
    Resource
    Token request-object voor DVP binnen logregel
    linenumberstrue
    collapsetrue
    {
      "event": {
        "type": "send_
    resource
    token_request",
        "location": "mijn.pgo.nl",
        "datetime": "2023-03-28T22:14:23.618+01:00",
        "session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
        "trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
      },
      "request": {
        "id": "8b5d6cb2-a2c0-4893-bd97-240621c3e488",
        "method": "get",
        "client_id": "mijn.pgo.nl",
        "server_id": "api.dva.nl", 
        "uri": "https://api.dva.nl/2.0.0/authorize",
      
     
     
     
     "
    provider
    grant_
    id
    type": "
    een.huisarts@medmij
    authorization_code",
        "
    service
    initiated_
    id
    by": 
    49
    "person"
      }
    }
    
    


    Code Block
    Anchorcore.logint.206core.logint.206core.logint.2068.

    De logregels van alle verzonden en ontvangen antwoorden bevatten een response-object met een vaste set aan attributen:

    • request_id
      De id van het request waar het antwoord bij hoort.
    • status
      De HTTP status code.
    Code BlocklanguagejsthemeEmacstitleVoorbeeld response-object binnen logregellinenumberstrue
    languagejs
    themeEmacs
    title Voorbeeld Token request-object voor DVA binnen logregel
    linenumberstrue
    collapsetrue
    {
      "event": {
        "type": "
    send
    receive_
    authorization
    token_
    response
    request",
        "location": "
    as
    api.dva.nl",
        "datetime": "2023-
    03
    09-28T22:14:
    23
    36.618+01:00",
        "session_id": "
    c6a27d45
    d7382884-
    4316
    865e-
    464e
    4185-
    81e0
    8347-
    48d5dbccacbb
    2c4922d8ef73",
        "trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
      },
      "
    response
    request": {
        "
    request_
    id": "
    8b5d6cb2
    1p5d6cb2-a2c0-4893-bd97-
    240621c3e488
    240621c3e582",
        "
    status
    method": 
    200
    "get",
        
    } } Anchorcore.logint.207core.logint.207core.logint.2079.

    De logregels van alle fouten in het proces bevatten een error-object met een vaste set aan attributen:

    • code
      De waarde van het OAuth2.0 attribuut 'error' worden overgenomen.
    • description
      Omschrijving van de geregistreerde fout. Bij de problemen in de beschikbaarheids- of ontvankelijkheidstoets moeten de waarden no_information_available (bij geen behandelrelatie), invalid_age of blocked worden gebruikt.
    Code Block
    languagejs
    themeEmacs
    titleVoorbeeld error-object binnen logregel
    linenumberstrue
    collapsetrue
    {
      "event": {
        "type": "availibility_check_error",
        "location": "as.dva.nl",
        "datetime": "2023-03-28T22:14:23.618+01:00",
        "session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
        "trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
      },
      "error": {
        "code": "access_denied",
        "description": "no_information_available"
      }
    }
    Anchorcore.logint.208core.logint.208core.logint.20810.

    In aanvulling op core.logint.207 worden bij request errors de volgende attributen aan het error-object toegevoegd:

    • request_id
      De id van het request waar het antwoord bij hoort.
    • status
      De HTTP status code.
    Code BlocklanguagejsthemeEmacstitleVoorbeeld request-error
    "client_id": "mijn.pgo.nl",
        "server_id": "api.dva.nl",
        "uri": "https://api.dva.nl/2.0.0/token",
        "grant_type": "authorization_code",
      }
    }
    


    Anchor
    core.logint.205
    core.logint.205
    core.logint.205

    7.

    In aanvulling op core.logint.201 worden bij een resource request de volgende attributen aan het request-object toegevoegd:

    • provider_id
      Het identificerende kenmerk (MedMij Aanbiedersnaam) van de betrokken aanbieder.
    • service_id
      Het identificerende kenmerk (nummer) van de opgevraagde gegevensdienst. Het identificerende kenmerk (nummer) is afkomstig uit de GegevensdienstNamenLijst (GNL), namelijk uit het veld GegevensdienstId binnen het object Gegevensdienst. Onderstaand voorbeeld komt uit de GegevensdienstNamenLijst:


    Code Block
    titleVoorbeeld 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>


    Code Block
    languagejs
    themeEmacs
    titleVoorbeeld Resource request-object binnen logregel
    linenumberstrue
    collapsetrue
    {
      "event": {
        "type": "send_
    availibility
    resource_
    check_error
    request",
        "location": "
    api
    mijn.
    dva
    pgo.nl",
        "datetime": "2023-03-28T22:14:23.618+01:00",
        "session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
        "trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
      },
      "
    error
    request": {
        "
    code
    id": "
    access_denied
    8b5d6cb2-a2c0-4893-bd97-240621c3e488",
        "
    description
    method": "
    no_information_available
    get",
        "
    request
    client_id": "
    8b5d6cb2-a2c0-4893-bd97-240621c3e488
    mijn.pgo.nl",
        "
    status
    server_id":
    403
     "api.dva.nl",
        
    } } Anchorcore.logint.209core.logint.209
    "uri": "https://api.dva.nl/2.0.0/authorize",
        "provider_id": "een.huisarts@medmij",
        "service_id": 49
      }
    }
    


    Anchor
    core.logint.206
    core.logint.206
    core.logint.

    209

    206

    11
    8.

    De logregels van

    het type result_gathering_information

    alle verzonden en ontvangen antwoorden bevatten een

    information

    response-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:
    Expand
    titleToelichting

    In het zorg domein worden de namen van de FHIR resources gebruikt voor de data-objecten. De FHIR Resources worden per gegevensdienst beschreven in technische uitwerkingen die via de Catalogus te vinden zijn.

    Code Block

    een vaste set aan attributen:

    • request_id
      De id van het request waar het antwoord bij hoort.
    • status
      De HTTP status code.
    Code Block
    languagejs
    themeEmacs
    titleVoorbeeld
    information
    response-object binnen logregel
    linenumberstrue
    collapsetrue
    {
      "event": {
        "type": "
    result
    send_
    gathering
    authorization_
    information
    response",
        "location": "
    api
    as.dva.nl",
        "datetime": "2023-03-28T22:14:23.618+01:00",
        "session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
        "trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
      },
      "
    information
    response": {
        "
    succesful
    request_id": 
    ["naam1", "naam2"]
    "8b5d6cb2-a2c0-4893-bd97-240621c3e488",
        "
    empty
    status": 
    ["naam3", "naam4"],   "unsuccesful": ["naam5", "naam6"] } } Anchorcore.logint.210core.logint.210core.logint.210
    200
      }
    }


    Anchor
    core.logint.207
    core.logint.207
    core.logint.207

    9.

    De logregels van alle fouten in het proces bevatten een error-object met een vaste set aan attributen:

    • code
      • Als het een OAuth2.0 fout betreft:

        • dan moet de waarde van het OAuth2.0 attribuut ‘error' overgenomen worden.

      • Aanbevolen wordt als het geen OAuth2.0 fout betreft:

        • dan het attribuut code met de waarde 'other’ te vullen.

    • description
      Omschrijving van de geregistreerde fout. Bij de problemen in de beschikbaarheids- of ontvankelijkheidstoets moeten de waarden no_information_available (bij geen behandelrelatie), invalid_age of blocked worden gebruikt.
    Code Block
    languagejs
    themeEmacs
    titleVoorbeeld error-object binnen logregel
    linenumberstrue
    collapsetrue
    {
      "event": {
        "type": "availability_check_error",
        "location": "as.dva.nl",
        "datetime": "2023-03-28T22:14:23.618+01:00",
        "session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
        "trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
      },
      "error": {
        "code": "access_denied",
        "description": "no_information_available"
      }
    }


    Anchor
    core.logint.208
    core.logint.208
    core.logint.208

    10.

    In aanvulling op core.logint.208 worden bij request errors de volgende attributen aan het error-object toegevoegd:

    • request_id
      De id van het request waar het antwoord bij hoort.
    • status
      De HTTP status code.
    Code Block
    languagejs
    themeEmacs
    titleVoorbeeld request-error-object binnen logregel
    linenumberstrue
    collapsetrue
    {
    	"event": {
    		"type": "send_authorization_request_error",
    		"location": "api.dva.nl",
    		"datetime": "2023-03-28T22:14:23.618+01:00",
    		"session_id": "c47f3eb8-3a70-4317-87ce-e6d3e3e53167",
    		"trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
    	},
    	"error": {
    		"code": "access_denied",
    		"description": "invalid_parameter",
    		"request_id": "8b5d6cb2-a2c0-4893-bd97-240621c3e488",
    		"status": 400
    	}
    }


    Anchor
    core.logint.209
    core.logint.209
    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:

    Expand
    titleToelichting

    In het zorg domein worden de namen van de FHIR resources gebruikt voor de data-objecten. De FHIR Resources worden per gegevensdienst beschreven in technische uitwerkingen die via de Catalogus te vinden zijn.


    Code Block
    languagejs
    themeEmacs
    titleVoorbeeld information-object binnen logregel
    linenumberstrue
    collapsetrue
    {
      "event": {
        "type": "result_gathering_information",
        "location": "api.dva.nl",
        "datetime": "2023-03-28T22:14:23.618+01:00",
        "session_id": "c6a27d45-4316-464e-81e0-48d5dbccacbb",
        "trace_id": "79dc6181-6239-4fdd-ad98-594312aeac71"
      },
      "information": {
        "successful": ["name1", "name2"],
        "empty":  ["name3", "name4"],
        "unsuccessful": ["name5", "name6"]
      }
    }
    


    Anchor
    core.logint.210
    core.logint.210
    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.


    Drawio
    mVer2
    simple0
    zoom1
    inComment0
    custContentId643827804
    pageId244976009
    diagramDisplayNameDiagram zonder titel-1714563657440.drawio
    lbox1
    contentVer3
    revision3
    baseUrlhttps://vzvz.atlassian.net/wiki
    diagramNameDiagram zonder titel-1714563657440.drawio
    pCenter0
    width1531
    links
    tbstyle
    height1421