Skip to main content
Skip table of contents

Interfaces ACT/VWI Server

ACT/VWI Interface

Algemeen

Base endpoint en FHIR-versions

De waarde van de base-URL van de FHIR endpoints die de ACT/VWI Server biedt t.b.v. de ACT/VWI Interface ( [base] dus ), dient voor alle FHIR-interacties gelijk te zijn aan "https://<FQDN>[/<path-extension>]/fhir/<fhir-version>". De waarde van <fhir-version> is dan bijvoorbeeld "R4" of "R5".

T.b.v. de ACT/VWI Interface worden de volgende FHIR-versions ondersteund:

  • R4

HTTP-request headers

AOF.AVS-I.ACI.200.v1

Bij iedere interactie, worden in ieder HTTP-request, de volgende HTTP headers meegezonden:

Feature

Authorization HTTP Header

Type

Subfeature

Versie

1.0.0

Groep

HTTP Headers

Gepubliceerd

Delta

Initiële versie van feature.

Authorization: Bearer <AORTA access_token>

Een AORTA access_token is altijd een JSON Web Token (JWT).

Een JWT bestaat uit een aantal base64 strings, die aan elkaar zijn gekoppeld met punten. Indien een token een SAML Assertion zou zijn, dan dient het altijd base64url te worden gecodeerd conform RFC 4648. Omdat een base64url geëncodeerde SAMLv2 Assertion geen punten kan bevatten, is de ontvanger altijd in staat om het type token bepalen.

In het token, dat wordt ontvangen in een Authorization header, is informatie opgenomen over welke type inhoudelijk token het betreft en welke versie, dus bijvoorbeeld dat het gaat om een AORTA access_token.

Het BSN van de patient waarop een entry betrekking heeft wordt bij alle interacties meegegeven in het AORTA access_token. Alle interacties hebben dus betrekking op een en dezelfde patiënt. Dit geldt ook voor interacties die worden verstuurd in een batch of transaction Bundle.

Feature

AORTA-ID HTTP Header

Type

Subfeature

Versie

1.0.0

Groep

HTTP Headers

Gepubliceerd

Delta

Initiële versie van feature.

AORTA-ID: initialRequestID=<UUID conform RFC4122>; requestID=<UUID conform RFC4122>

Het initialRequestID attribuut bevat het ID van het allereerste request in de hele keten en dient te worden opgenomen in de logbestanden van alle partijen in de keten, zodat bij foutopsporing de verschillende logbestanden aan elkaar kunnen worden gerelateerd.

Het requestID is voor iedere request message uniek. In requests wordt deze gegenereerd door de client. Ook het requestID dient te worden opgenomen in de verschillende logbestanden, zodat altijd duidelijk is op welk bericht een log entry van toepassing is.

Feature

AORTA-Version HTTP Header

Type

Subfeature

Versie

1.0.0

Groep

HTTP Headers

Gepubliceerd

Delta

Initiële versie van feature.

AORTA-Version: contentVersion=<versienummer>; acceptVersion=<versienummer>

Wanneer een Resource Server een FHIR interactie ontvangt, dan kan het a.d.h.v. de syntax van het ontvangen request afleiden om welke interactie het gaat, bijvoorbeeld "een FHIR-search naar Obervations", of "een FHIR-read van een Binary". Daarnaast is iedere interactie voorzien van een versienummer. Voor versienummering wordt gebruik gemaakt van semantic versioning.

De acceptVersion geeft aan conform welke versie(s) de interactie mag worden verwerkt en beantwoord. Het versienummer in de acceptVersion wordt gespecificeerd conform semver, dus bijvoorbeeld "2.x" of "~1.2.3 || ^2.1.0". In het algemeen geldt dat een resource server een interactie dient te verwerken conform de hoogst aangegeven acceptVersion die het zelf op dat moment kan toepassen.

De contentVersion geeft aan welke versie van de interactie daadwerkelijk is gehanteerd. In de contentVersion dient het versienummer de exacte versie van de interactie te bevatten die is gehanteerd, dus zonder wildcards of ranges, bijvoorbeeld “1”, of "2.2". De versie van een FHIR-interactie is opgenomen in het interactie-id.

HTTP-response headers

AOF.AVS-I.ACI.300.v1

Bij iedere interactie, worden in iedere HTTP-response, de volgende HTTP headers meegezonden:

Subfeature

AORTA-Version HTTP Header

Versie

1.0.0

AORTA-Version: contentVersion=<versienummer>

De contentVersion geeft aan welke versie van de interactie daadwerkelijk is gehanteerd. In de contentVersion dient het versienummer de exacte versie van de interactie te bevatten die is gehanteerd, dus zonder wildcards of ranges, bijvoorbeeld “1”, of "2.2". De versie van een FHIR-interactie is opgenomen in het interactie-id.

Generieke parameters

AOF.AVS-I.ACI.400.v1

Het gewenste formaat (JSON of XML) kan op de gebruikelijke manier via de Accept Header opgegeven worden, maar kunnen ook via de FHIR _format parameter doorgegeven worden. 

Ondersteunde waarden voor de _format parameter zijn voor alle interacties, waar van toepassing:

Indien beide (Accept header en _format parameter) in een request voorkomen, geldt de waarde van de _format parameter. Indien geen enkele voorkomt, dan geldt het formaat van het Content-Type.

Search parameters

In het algemeen ziet een request met search parameters (conditional-update, conditional-delete of search) er als volgt uit:

XML
[HTTP verb] [base url]/List?source:Device.identifier=http://fhir.nl/fhir/NamingSystem/aorta-app-id|[app id]&code=[codesystem url]|[value]{&_format=[mime-type]}

De vereiste vulling is hieronder beschreven:

Parameter

Verplicht

Omschrijving

[app id]

verplicht (voor GBZ)

applicatie id behorende bij het bronsysteem. Codesystem is een van:

maar wordt bekend verondersteld, dus het mag weggelaten worden

code

verplicht (voor GBZ)

het codesysteem + waarde voor een gegevenssoort of bouwsteentype

_format

optioneel

gewenste mime-type waarin het resultaat opgeleverd moet worden.

Voorbeeld voor gegevenssoort 'Huisartswaarneemgegevens' en application ID 12345

XML
[PUT|DELETE] [base url]/List?source:Device.identifier=http://fhir.nl/fhir/NamingSystem/aorta-app-id|12345&code=urn:oid:2.16.840.1.113883.2.4.15.4|460320

Voorbeeld voor bouwsteentype 'Contactverslag' en application Id 12345

XML
[PUT|DELETE] [base url]/List?source:Device.identifier=http://fhir.nl/fhir/NamingSystem/aorta-app-id|12345&code=urn:oid:2.16.840.1.113883.2.4.3.111.15.3|CONTACTVERSLAG

Voorbeeld met zoeken op meerdere gegevenssoorten en bouwsteentypes

Voor het aanmaken, bijwerken en verwijderen van een entry geldt dat de actie alleen uitgevoerd wordt als de resultaat set tot 1 instantie leidt. Zoekacties kunnen meerdere resultaten opleveren. Hieronder staan voorbeelden waarbij gezocht wordt naar meerdere application-id's en meerdere gegevenssoorten en/of bouwsteentypes.

XML
GET [base url]/List?source:Device.identifier=http://fhir.nl/fhir/NamingSystem/aorta-app-id|12345&code=urn:oid:2.16.840.1.113883.2.4.3.111.15.3|CONTACTVERSLAG,urn:oid:2.16.840.1.113883.2.4.15.4|460320

FHIR-profielen

Informatie over de gehanteerde FHIR-profielen op deze interface:

AOF.FP.VWI.100.v1

Feature

aorta-DataReference

Type

Subfeature

Versie

1.0.0

Groep

FHIR-profielen

Gepubliceerd

Delta

Initiële versie van feature.

Voorbeelden:

Interacties

Aanmaken of bijwerken entry

Feature

createOrUpdateDataReference

Type

Service

Versie

1.2.1

Groep

Lokalisatie

Gepubliceerd

Delta

Toevoeging requirement om tag met “reden van update” te loggen.

Use case

AOF.UC.VWI.100.v3

Deze interactie is gebaseerd op de FHIR conditional update interactie. Hierdoor is het niet nodig om een administratie van het resource ID bij te houden. De entry wordt geïdentificeerd m.b.v. zoekparameters applicatie-id en gegevenssoort/bouwsteentype. Als de entry nog niet bestaat in het Actualisatieregister, dan wordt het aangemaakt, anders wordt het bijgewerkt. Voor de specifieke fouten zie hieronder.

Een entry kan op de volgende wijze worden aangemaakt of bijgewerkt:

Voorbeeld in JSON
JS
PUT [broker-base]/List?[search-parameters]
Content-Type: application/fhir+json

{
    "resourceType": "List",
	......
}
Voorbeeld in XML
XML
PUT [broker-base]/List?[search-parameters]
Content-Type: application/fhir+xml

<List xmlns="http://hl7.org/fhir">
....
</List>

Zoekresultaat

Actie

Retour code

Headers

Body

geen resultaat

entry wordt aangemaakt

201 Created

Location (url van zojuist gecreëerde resource)

-

1 resultaat

entry wordt bijgewerkt

200 OK

Location (url van zojuist bijgewerkte resource)

-

meerdere resultaten

-

412 Precondition Failed

OperationOutcome (vergelijkbaar met huidige situatie)

Zie rejecting updates voor aanvullende foutsituaties.

AOF.RB-I.ACI.500.v1

Deze functionaliteit wordt pas in een latere versie dan 0.8 ondersteund.

Meerdere interactie van dit type kunnen, wanneer de entries betrekking hebben op eenzelfde patiënt, op de volgende wijze worden gebundeld in een Bundle van het type "batch":

JS
POST [broker-base]
Content-Type: application/fhir+json
{
  "resourceType": "Bundle",
  "type": "batch",
  "entry": [
    {
      "resource": {
        "resourceType": "List",
...
      },
      "request": {
        "method": "PUT",
        "url": "/List?[search-parameters]"
      }
    },
    {
      "resource": {
        "resourceType": "List",
...
      },
      "request": {
        "method": "PUT",
        "url": "/List?[search-parameters]"
      }
    }
  ]
}

Verwijderen entry via RESTful API

Feature

deleteDataReference

Type

Service

Versie

1.1.0

Groep

Lokalisatie

Gepubliceerd

Delta

Ondersteuning keuze tussen gebruik van Actualiteitsregister en Verwijsindex.

Use case

AOF.UC.VWI.200.v2

Feature

Versie

Dependency

Aanbieder

Afnemer

deleteDataReference

1.1.0

core-FHIR-interactie-broker

*

*

deleteDataReference

1.1.0

aorta-DataReference

1.0

1.0

Deze interactie is gebaseerd op de FHIR conditional delete interactie. Met de conditional delete is het niet noodzakelijk om een administratie van de Resource IDs aan te leggen in het bronsysteem.

Een entry kan op de volgende wijze worden verwijderd:

CODE
DELETE [broker-base]/List?[search params]

De search parameters bevatten minimaal het application ID van het bronsysteem. Het BSN van de patiënt in kwestie wordt altijd meegezonden in het AORTA transactietoken. 

Zie hiervoor de sectie Search parameters.

Zoekresultaat

Actie

Retour

Voorbeeld

geen resultaat

-

200 OK + OperationOutcome met 'entry niet gevonden'

OperationOutcome No entry found

1 resultaat

entry wordt verwijderd

204 No Content

meerdere resultaten

-

412 Precondition Failed

OperationOutcome multiple matches

(zie: https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE )

NB. wanneer en entry op deze wijze wordt verwijderd, dan blijft een eventueel abonnement bij Mitz gewoon bestaan. Indien verwijdering van een Mitz abonnement ook is gewenst, dan dient de FHIR operation te worden gebruikt.

AOF.RB-I.ACI.700.v1

Deze functionaliteit wordt pas in een latere versie dan 0.8 ondersteund.

Meerdere interactie van dit type kunnen, wanneer de entries betrekking hebben op eenzelfde patiënt, op de volgende wijze worden gebundeld in een Bundle van het type "batch":

JS
POST [broker-base]
Content-Type: application/fhir+json
{
  "resourceType": "Bundle",
  "type": "batch",
  "entry": [
    {
      "request": {
        "method": "DELETE",
        "url": "/List?[search params]"
      }
    },
    {
      "request": {
        "method": "DELETE",
        "url": "/List?[search params]"
      }
    }
  ]
}

Verwijderen entries via een FHIR operation

Feature

$delete-dossier

Type

Service

Versie

1.1.0

Groep

Lokalisatie

Gepubliceerd

Delta

Ondersteuning keuze tussen gebruik van Actualiteitsregister en Verwijsindex.

Use case

AOF.UC.VWI.300.v2

Feature

Versie

Dependency

Aanbieder

Afnemer

$delete-dossier

1.1.0

core-FHIR-interactie-broker

*

*

Deze custom operation wordt als volgt aangeroepen:

CODE
POST [broker-base]/$delete-dossier

Zie ook FHIR Operations voor de wijze waarop wordt moet worden omgegaan met de parameters. Een HTTP POST is vereist, omdat de operation een wijziging tot stand brengt op de resource broker.

In Parameters

Name

Cardinality

Type

Toelichting

app-id

1..1

string

gelijk is aan het applicatie-id van het bronsysteem, en wel zonder de root OID prefix, dus bijvoorbeeld "12345678".

unsubscribe

1..1

boolean

true, wanneer een eventueel Mitz abonnement voor de combinatie BSN en appID ook dient te worden verwijderd.

false, wanneer dit niet is gewenst.

NB. deze parameter wordt nog niet ondersteund. Vraag is ook of deze parameter nodig is.

Out Parameters

Name

Cardinality

Type

Toelichting

return

0..1

OperationOutcome

Indien de operation:

  • succesvol kan worden verwerkt, dan wordt een HTTP statuscode 200 geretourneerd.

  • geen entries gevonden: HTTP 200 + OperationOutcome

2023-05-02 De unsubscribe parameter wordt nog niet gebruikt

Voorbeeld
CODE
POST [broker-base]/$delete-dossier

<Parameters xmlns=http://hl7.org/fhir>
  <parameter>
    <name value="app-id"/>
    <valueString value="[application ID]"/>
  </parameter>
  <parameter>
    <name value="unsubscribe"/>
    <valueBoolean value="[true|false]"/>
  </parameter>
</Parameters>

Zoeken naar entries

Feature

searchDataReference

Type

Service

Versie

1.0.0

Groep

Lokalisatie

Gepubliceerd

Delta

Initiële versie van feature.

Feature

Versie

Dependency

Aanbieder

Afnemer

searchDataReference

1.0.0

core-FHIR-interactie-broker

*

*

searchDataReference

1.0.0

aorta-DataReference

1.0

1.0

Deze interactie is gebaseerd op de FHIR-search interactie. Er kan op de volgende wijze worden gezocht naar entries betreffende een specifieke patiënt:

CODE
GET [broker-base]/List{?[parameters]{&_format=[mime-type]}}

Zie de sectie Search parameters voor meer uitleg over de parameters.

Feature

getEntries

Type

Service

Versie

1.0.0

Groep

Lokalisatie

Gepubliceerd

Delta

Initiële versie van feature.

Use case

AOF.UC.VWI.400.v1

Feature

Versie

Dependency

Aanbieder

Afnemer

getEntries

1.0.0

AORTA Stelseltoken

-

*

getEntries

1.0.0

AORTA-ID HTTP Header

*

*

De getEntries interactie maakt het mogelijk om:

  • Verwijsindex entries op te vragen op basis van een BSN en een set van bouwsteentypen of gegevenssoorten. De response bevat een set van appID’s en per appID een set van bouwsteentypen of gegevenssoorten waarover de betreffende GBZ-applicatie, voor de gegeven patiënt, beschikt.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.