Skip to main content
Skip table of contents

Transformatie Server Interfaces (versie 0.6.13 - definitief)

De Transformatie Server bestaat uit een aantal endpoints. Ieder endpoint biedt een specifiek type transformatie. De interfaces hiervoor zijn beschreven op deze pagina.

Overzicht transformaties

AOF.TS-I.OTR.100.v1

De Transformatie Server biedt de volgende transformaties:

Transformatie Algoritme IDType berichtInputOutput
ProtocolInteractie-IDProtocolInteractie-ID
1Request

application/fhir+xml

create:Observation:1.0application/hl7-v3+xmlZTZM_IN000004NL    
2application/fhir+json
3Responseapplication/hl7-v3+xmlMCCI_IN000002 + create:Observation:1.0application/fhir+xml-
4application/fhir+json
5Requestapplication/fhir+xmlsearch-type:Appointment:1.0application/hl7-v3+xmlQUAF_IN990001NL01
6application/fhir+json
7Responseapplication/hl7-v3+xmlQUAF_IN990003NL01application/fhir+xml-
8application/fhir+json

Transformatie #5 en #6  worden vooralsnog niet uitgevoerd door de Transformatie Server, maar door de Resource Broker VnC.

Generiek

Formaat van een transformatierequest

AOF.TS-I.FTR.100.v1

Middels één transformatierequest kan één (request of response) bericht worden getransformeerd.

Het generieke formaat is:

POST [base endpointadres]/to-xxx
Content-Type: application/json; charset=utf-8
AORTA-ID: initialRequestID=<UUID conform RFC4122>; requestID=<UUID conform RFC4122>

{

meta: {

format_in : "",

protocol_in : "",

protocol_out : ""

}, 

content_in : ""

}

Het initialRequestID attribuut bevat 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.

Formaat van een transformatieresponse

AOF.TS-I.FOT.100.v1

Omdat een (request of response) bericht na transformatie uiteen kan vallen in meerdere berichten bevat een transformatieresponse een JSON array. Ieder object in deze array bestaat uit inhoud en metadata betreffende deze inhoud. Het generieke formaat is:

200 OK
Content-Type: application/json; charset=utf-8

[

{

meta: {

format_out : "",

protocol_out : "",

transformation-id : ""

}, 

content_out : ""

},

{

..

}

]

Generieke parameters

AOF.TS-I.TGP.100.v1

Input voor alle type transformaties is een JSON object met de volgende inhoud:

NameCardinalityTypeToelichting
meta.format_in1..1Lege string of een string met waarde escape of base64

Gehanteerde encodering voor(orig_)content_in

Wordt slechts gevuld wanneer de content een nadere aanduiding vereist bovenop de Content-Type aanduiding "application/json".

meta.protocol_in1..1String, zie de beschrijvingen bij de specifieke transformaties voor ondersteunde waardenProtocol van content_in
meta.protocol_out1..1Gewenst protocol van het output bericht (of van de output berichten)
content_in1..1String waarop de benodigde escaping is toegepast, of die base64 geëncodeerde data bevat.

De te vertalen content.


AOF.TS-I.TGP.200.v1

Output van alle type transformaties is een set van JSON objecten met de volgende inhoud:

NameCardinalityTypeToelichting
meta.format_out1..1Zie meta.format_inGehanteerde encodering voor content_out
meta.protocol_out1..1String, zie de beschrijvingen bij de specifieke transformaties voor ondersteunde waardenProtocol van het output bericht.
meta.transformation-id1..1StringHet ID van het gehanteerde transformatie algoritme (zie sectie Overzicht transformaties).
content_out1..1Zie content_inDe getransformeerde content.

Transformatie tussen HL7-FHIR clients en HL7v3 servers

Het kan hierbij gaan om transformatie van:

  1. Een enkelvoudige FHIR-search naar een v3-bericht;
  2. Een Bundle met FHIR-searches naar een set van v3-berichten;
  3. Een enkelvoudige FHIR-create naar een v3-bericht;
  4. Een Bundle met FHIR-creates naar één v3-bericht.
  5. Een Bundle met FHIR-creates naar een set van v3-berichten.

De scope van deze versie van de transformatieservice is beperkt tot

  • transformatie van responses behorende bij type 1;
  • transformatie van requests en responses behorende bij type 4.

De scope is verder beperkt tot het HL7v3-bericht, inclusief de wrappers. De SOAP laag valt buiten de scope van de transformatieservice.

Produceren van een v3-request

Aanroep

AOF.TS-I.PV3.100.v1

POST [base endpointadres]/to-v3-request

Ondersteunde transformaties

AOF.TS-I.PV3.200.v1

Ondersteunde combinaties van meta.protocol_in en meta.protocol_out voor deze transformatie zijn:

protocol_inprotocol_out
application/fhir+xml

application/hl7-v3+xml


application/fhir+json

Deze transformatie is exclusief eventueel benodigde SOAP elementen of hiervoor benodigde HTTP-headers.

Benodigde additionele parameters

AOF.TS-I.PV3.300.v1

Additionele input parameters voor transformatie van requests zijn:

NameCardinalityTypeToelichting
meta.patient1..1

String conform één van de volgende formaten

BSN van de patiënt die onderwerp is van het bericht.

meta.sender1..1

String conform één van de volgende formaten

Applicatie-id van de initiërende applicatie

meta.receiver1..1

Zie: sender type.

Applicatie-id van de ontvangende applicatie

meta.overseer.id

1..1

String conform één van de volgende formaten

ID van de verantwoordelijke persoon.

meta.overseer.role0..1

String conform één van de volgende formaten

Rolcode van de verantwoordelijke persoon.

Wordt niet gebruikt wanneer user.id een nummer bevat van een systeem.

meta.overseer.org.id1..1

String conform één van de volgende formaten

ID van de organisatie die de verantwoordelijke persoon vertegenwoordigt.

Indien de verantwoordelijke persoon een patiënt is, dan wordt deze gevuld met het organisatie-id van VZVZ (root="2.16.840.1.113883.2.4.3.11.25" extension="00004005).

meta.overseer.org.name1..1String

Naam van de organisatie die de verantwoordelijke persoon vertegenwoordigt.

Indien de verantwoordelijke persoon een patiënt is, dan wordt deze gevuld met "Vereniging van Zorgaanbieders voor Zorgcommunicatie".

meta.overseer.org.place0..1String

Vestiging locatie van de organisatie die de verantwoordelijke persoon vertegenwoordigt.

Niet verplicht wanneer  de verantwoordelijke persoon een patiënt is.

meta.author.id0..1Zie: overseer types

ID van de gebruiker.

Verplicht indien de gebruiker afwijkt van de verantwoordelijke persoon.

meta.author.role0..1

Rolcode van de gebruiker.

Verplicht indien de gebruiker afwijkt van de verantwoordelijke persoon.

meta.author.org.id0..1

ID van de organisatie die de gebruiker vertegenwoordigt.

Verplicht indien de gebruiker afwijkt van de verantwoordelijke persoon.

meta.author.org.name0..1

Naam van de organisatie die de gebruiker vertegenwoordigt.

Verplicht indien de gebruiker afwijkt van de verantwoordelijke persoon.

meta.author.org.place0..1

Vestiging locatie van de organisatie die de gebruiker vertegenwoordigt.

Verplicht indien de gebruiker afwijkt van de verantwoordelijke persoon.

meta.method0..1String met waarde GET | POST | PUT | DELETEDe gebruikte HTTP method. Verplicht wanneer het input bericht géén Bundle met een set van requests is.
meta.url0..1StringDe gebruikte URL, inclusief eventuele (zoek)parameters. Verplicht wanneer het input bericht géén Bundle met een set van requests is.


AOF.TS-I.PV3.400.v1

Additionele output parameters voor transformatie van requests zijn:

NameCardinalityTypeToelichting
meta.interactie-id1..1

String

Het interactie-id van de geproduceerde HL7-v3 interactie.

Voorbeelden van transformaties

Voorbeeld van een te transformeren FHIR-request:

POST [base]
AORTA-Transactie: SAML2-Bearer/JWT-Bearer <transactie_token>
DigiD-Authenticatie: SAML2-Bearer <DigiD SAML Assertion>
Content-Type: application/x-www-form-urlencoded
AORTA-ID: initialRequestID=<UUID conform RFC4122>; requestID=<UUID conform RFC4122>
AORTA-Version: contentVersion=<versienummer>; acceptVersion=<versienummer>

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

<id value="28943823489489"/>

<type value="batch"/>

<entry>

<fullUrl value="urn:uuid:61ebe359-bfdc-4613-8bf2-c5e300945f0a"/>

<resource>

<Observation>

..

</Observation>

</resource>

<request>

<method value="POST"/>

<url value="Observation"/>

</request>

</entry>

<entry>

..

</entry>

</Bundle> 


Voorbeeld van een resulterend v3-request:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-model href="../schematron/XXX.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>

.. SOAP wrapper ..

<INTERACTIE-ID xsi:schemaLocation="urn:hl7-org:v3 ../schemas/INTERACTIE-ID.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hl7-org:v3">

<!-- transmission wrapper -->

<id root="2.16.840.1.113883.2.4.6.6.1.1" extension="4384723894787"/>

<creationTime value=""/>

<versionCode code="VERSIE"/>

<interactionId root="2.16.840.1.113883.1.6" extension="INTERACTIE-ID"/>

<profileId root="2.16.840.1.113883.2.4.3.11.1" extension="810"/>

<processingCode code="P"/>

<processingModeCode code="T"/>

<acceptAckCode code="AL"/>

<attentionLine>

<keyWordText code="PATID" codeSystem="2.16.840.1.113883.2.4.15.1">Patient.id</keyWordText>

<value root="2.16.840.1.113883.2.4.6.3" extension="100197243" xsi:type="II"/>

</attentionLine>

<receiver>

<device determinerCode="INSTANCE" classCode="DEV">

<id root="2.16.840.1.113883.2.4.6.6" extension="23434323"/>

</device>

</receiver>

<sender>

<device determinerCode="INSTANCE" classCode="DEV">

<id root="2.16.840.1.113883.2.4.6.6" extension="1"/>

</device>

</sender>

<ControlActProcess moodCode="EVN">

<!-- control act wrapper -->

<authorOrPerformer typeCode="AUT">

<participant>

<AssignedPerson>

<id root="2.16.528.1.1007.3.1" extension="012345655"/>

<code code="01.016" codeSystem="2.16.840.1.113883.2.4.15.111" displayName="Internist"/>

<Organization>

<id root="2.16.528.1.1007.3.3" extension="02234567"/>

<name>Bester</name>

</Organization>

</AssignedPerson>

</participant>

</authorOrPerformer>

<overseer typeCode="RESP">

<AssignedPerson>

<id root="2.16.528.1.1007.3.1" extension="012345655"/>

<code code="01.015" codeSystem="2.16.840.1.113883.2.4.15.111" displayName="Huisarts"/>

<assignedPrincipalChoiceList>

<assignedPerson>

<name>Bester</name>

</assignedPerson>

</assignedPrincipalChoiceList>

<Organization>

<id root="2.16.528.1.1007.3.3" extension="02234567"/>

<name>Jansen</name>

<addr>

<city>Amsterdam</city>

</addr>

</Organization>

</AssignedPerson>

</overseer>

<subject>

<!-- Payload -->

<ClinicalDocument>

..

</ClinicalDocument>

</subject>

</ControlActProcess>

</INTERACTIE-ID>

Produceren van een FHIR-response

Aanroep

AOF.TS-I.FRA.100.v1

POST [base endpointadres]/to-fhir-response

Ondersteunde transformaties

AOF.TS-I.FRT.100.v1

Ondersteunde combinaties van meta.protocol_in en meta.protocol_out voor deze transformatie zijn:

protocol_inprotocol_out
application/hl7-v3+xmlapplication/fhir+xml

application/fhir+json

Benodigde additionele parameters

AOF.TS-I.FAP.100.v1

Additionele input parameters voor transformatie van responses zijn:

NameCardinalityTypeToelichting
orig_content_in1..1String waarop de benodigde escaping is toegepast, of die base64 geëncodeerde data bevat.Bevat het request bericht, voor vertaling, dat heeft geleid tot de nu te vertalen response. Deze is nodig bij de transformatie van het response bericht.
meta.interactie-id1..1

String

Het interactie-id van de HL7-v3 interactie die de aanleiding was voor de te transformeren HL7v3-response.

meta.orig_protocol_in1..1String, zie de beschrijvingen bij de specifieke transformaties voor ondersteunde waarden.Gehanteerd protocol voor orig_content_in.


AOF.TS-I.FAP.200.v1

Additionele output parameters voor transformatie van responses zijn:

NameCardinalityTypeToelichting
meta.content-version1..1StringDe contentVersion die moet worden gebruikt in de AORTA-Version HTTP header.

Voorbeelden van transformaties

Voorbeeld van een te transformeren v3-response:

<?xml-model href="../schematron/XXX.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>

.. SOAP wrapper ..

<INTERACTIE-ID xsi:schemaLocation="urn:hl7-org:v3 ../schemas/INTERACTIE-ID.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hl7-org:v3">

<id extension="235" root="2.16.528.1.1007.3.3.1234567.1"/>

<creationTime value="20140704155629"/>

<versionCode code="NICTIZEd2005-Okt"/>

<interactionId extension="INTERACTIE-ID" root="2.16.840.1.113883.1.6"/>

<profileId extension="810" root="2.16.840.1.113883.2.4.3.11.1"/>

<processingCode code="P"/>

<processingModeCode code="T"/>

<acceptAckCode code="NE"/>

<acknowledgement typeCode="CA">

<targetMessage>

<id extension="4384723894787" root="2.16.840.1.113883.2.4.6.6.1.1"/>

</targetMessage>

</acknowledgement>

<receiver>

<device determinerCode="INSTANCE" classCode="DEV">

<id extension="1" root="2.16.840.1.113883.2.4.6.6"/>

</device>

</receiver>

<sender>

<device determinerCode="INSTANCE" classCode="DEV">

<id extension="23434323" root="2.16.840.1.113883.2.4.6.6"/>

</device>

</sender>

</INTERACTIE-ID>


Voorbeeld van een resulterende FHIR Bundle:

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

<id value="someidvalue123"/>

<type value="batch-response"/>

<entry>

<fullUrl value="http://example.org/fhir/Patient/12423"/>

<resource>

<!-- whether to return the result resource depends on client preference -->

<Observation>

<id value="12423"/>

..

</Observation>

</resource>

<response>

<status value="201 Created"/>

<location value="Observation/12423/_history/1"/>

<etag value="W/&quot;1&quot;"/>

<lastModified value="2014-08-18T01:43:33Z"/>

<!-- Indien van toepassing -->

<outcome>

<OperationOutcome>

..

</OperationOutcome>

</outcome>

</response>

</entry>

<entry>

..

</entry>

</Bundle>

JavaScript errors detected

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

If this problem persists, please contact our support.