Expand | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
|
Beschrijving
Om Resources binnen domeinen uit te wisselen maakt Koppeltaal gebruik van een FHIR resource service. Dit document beschrijft welke interacties er ondersteund worden.
...
De FHIR resource service beschrijft de functionele mogelijkheden in de CapabilityStatement
. Zie /wiki/spaces/K2/pages/17531608 en https://www.hl7.org/fhir/r4/capabilitystatement.html voor meer informatie.
ImplementationGuide
De ImplementationGuide beschrijft de versie, release datum e.d. van de Koppeltaal Profielen. Zie ook Koppeltaal ImplementationGuide voor meer Informatie.
FHIR RESTful API
De FHIR RESTful API biedt een groot scala aan functionaliteiten. De specificatie bevat ook optionele functionaliteiten. Binnen Koppeltaal is gekozen wat wel en niet ondersteund wordt:
...
Instance Level Interactions | Ondersteund | Remark | |
---|---|---|---|
read | Read the current state of the resource | ✓ | |
conditional read | Read the current state of the resource if modified since of matches ETag | ✓ | |
vread | Read the state of a specific version of the resource | ✓ | |
update | Update an existing resource by its id (or create it if it is new) | ⚠ | If-Match header verplicht |
conditional update | Allows a client to update an existing resource based on some identification criteria | ⚠ | Trial use fase |
patch | Update an existing resource by posting a set of changes to it | ✗ | Wordt mogelijk in een toekomstige versie toegevoegd |
conditional patch | Allows a client to patch an existing resource based on some identification criteria | ✗ | |
delete | Delete a resource | ⚠ | Bij voorkeur gebruik maken van een end-of-life status i.p.v. een delete |
conditional delete | Allows a client to delete an existing resource based on some selection criteria | ⚠ | Trial use fase |
history | Retrieve the change history for a particular resource | ✓ | |
Type Level Interactions | Ondersteund | Remark | |
create | Create a new resource with a server assigned id | ✓ | |
conditional create | Allows a client to create a new resource only if some equivalent resource does not already exist on the server. | ⚠ | Trial use fase |
search | Search the resource type based on some filter criteria | ⚠ | Zie ondersteunde search result parameters |
search paging | Support paging for the results of a search or history interaction | ✓ | |
history | Retrieve the change history for a particular resource type | ✓ | |
Whole System Interactions | Ondersteund | Remark | |
capabilities | Get a capability statement for the system | ✓ | |
batch/transaction | Update, create or delete a set of resources in a single interaction (FHIR Bundle) | ✗ | |
history | Retrieve the change history for all resources | ✗ | |
search | Search across all resource types based on some filter criteria | ✗ |
Anchor | ||||
---|---|---|---|---|
|
Aangezien we met een FHIR RESTFull API te maken hebben is de waarde van Endpoint.connectionType gefixed op hl7-fhir-rest.
Anchor | ||||
---|---|---|---|---|
|
...
De MIME-Type in de Content-Type
header MAG gepostfixed worden met de FHIR version en MOET gepostfixed worden met de encoding, correcte .
Correcte voorbeelden zijn:
application/fhir+json; fhirVersion=4.0
- application/fhir+json
ens het onderdeel: TOP-KT-014 - Versiebeheer en -beleid.
Character encoding
Voor zowel application/fhir+xml
en application/fhir+json
gaat FHIR er van uit dat de encoding utf-8
is, de encoding mag dus op verschillende plekken worden meegegeven, in dat geval ZOU de encoding utf-8
zijn. Indien er een andere encoding wordt meegegeven MAG de FHIR resource service een a) foutmelding geven in het 4xx segment of b) de encoding accepteren en de inhoud naar utf-8
converteren.
Correcte voorbeelden zijn:
application/fhir+json; fhirVersion=4.0; charset=utf-8
application/fhir+xml; fhirVersion=4.0; charset=utf-8
application/fhir+json
application/fhir+xml; charset=utf-8
De FHIR resource service MOET de FHIR resources aanbieden in utf-8
encoding, zowel voor application/fhir+json
als application/fhir+xml
...
Zie tevens het onderdeel: TOP-KT-014 - Versiebeheer en -beleid., ook als dezelfde resource origineel in een andere encoding is aangeboden.
Character escapes
Van tekst in zowel XML als JSON dienen bepaalde tekens specifiek geëncodeerd te worden. Dit heeft te maken met het specifiek formaat en is onderdeel van de specificatie van het formaat. Het wordt in Koppeltaal sterk aangeraden gebruik te maken van utf-8
als het gaat op speciale tekens (é, ö, ï) en NIET van formaat specifieke escapes (é, ö ï), XML unicode references (�C9 , �D6 �EF;) of JSON unicode reference (\u00C9, \u00D6, \u00EF).
Xml Syntax
De xml syntax wordt hier beschreven. Praktisch zijn de volgende escapes van toepassing:
Symbol (name) | Escape Sequence |
< (less-than) | < or < |
> (greater-than) | > or > |
& (ampersand) | & or & |
' (apostrophe or single quote) | ' or &apos |
" (double-quote) | " or " |
JSON syntax
De JSON syntax wordt hier beschreven. Praktisch zijn de volgende escapes van toepassing:
Symbol (name) | Escape Sequence |
Newline | \n or \u002A |
Carriage return | \r or \u0045 |
Form feed | \f or \u002C |
Backspace | \b or \u0028 |
Tab | \t or \u0029 |
" (double-quote) | \" or \u0022 |
\ Backslash | \\ or \u005C |
Update
Koppeltaal forceert het gebruik van de If-Match
header. Dit waarborgt dat een Update altijd gebaseerd is op de laatste versie. Zo wordt de kans op dataverlies geminimaliseerd. Zie https://www.hl7.org/fhir/r4/http.html#concurrency voor meer informatie.
...
Koppeltaal maakt bij voorkeur geen gebruik van een DELETE
request. Wanneer data niet meer gebruikt dient te worden, dient dit opgelost te worden middels een status. Zie Levenscyclus van een FHIR Resource voor meer informatie. Een DELETE
request wordt wel ondersteund, maar zal een logical-delete uitvoerenzou in normaal gebruik van Koppeltaal niet voorkomen. Om die reden krijgen de applicaties in het domein de DELETE rechten niet, de DELETE operatie blijft van toepassing in beheer en migratie scenario's.
Info | ||
---|---|---|
| ||
In een aantal gevallen mag een gebruiker aan een organisatie vragen om alle (historische) gegevens, van die gebruiker, uit hun systeem te verwijderen. Voor het fysiek verwijderen van resources hebben sommige FHIR Resource Providers een De |
...
Tijdens een delete wordt de If-Match
header niet afgedwongen. Functioneel ondersteunt de Functioneel kan een FHIR FHIR resource service dit welondersteunen, hoewel niet beschreven in de FHIR specificatie. Het is aan de uitvoerende partij om te bepalen of het belangrijk is dat een delete gebaseerd is op de versie. Bijvoorbeeld: Een eindgebruiker kan a.d.h.v. de gegevens in een GUI een object beoordelen, en verwijderen als het een bepaalde state bevat. In dit geval is het wijs om een If-Match
toe te voegen. Wanneer een systeem een batch aan resources wilt verwijderen, ongeacht de state, maf de If-Match
header weggelaten worden.
...