Skip to main content
Skip table of contents

Transformatie Server Interfaces - 0.7.x

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

De Transformatie Server biedt de volgende transformaties:

Transformatie Algoritme IDInputOutput
TypeProtocolInteractie-IDTypeProtocolInteractie-ID
1request

application/fhir+xml, application/fhir+json

create:Observation:1.0:requestrequestapplication/hl7-v3+xmlZTZM_IN000004NL01
2responseapplication/hl7-v3+xmlMCCI_IN000002responseapplication/fhir+xml, application/fhir+jsoncreate:Observation:1.0:response
requestapplication/fhir+xml, application/fhir+jsoncreate:Observation:1.0:request
3requestapplication/fhir+xml, application/fhir+jsonsearch:Appointment:1.0:requestrequestapplication/hl7-v3+xmlQUAF_IN990001NL01
4responseapplication/hl7-v3+xmlQUAF_IN990003NL01responseapplication/fhir+xml, application/fhir+jsonsearch:Appointment:1.0:response

TS Metadata Interface

AOF.TS-I.MDI.100.v2

De metadata van de transformatie server kan worden opgehaald via:

GET [base endpointadres]/metadata

De response bevat de volgende headers:

Cache-Control: must-revalidate, max-age=<max-age-ts-metadata>
Pragma: no-cache

Een client mag verkregen metadata conform de Cache-Control header directives, zoals beschreven in RFC 7234, cachen.

De waarde van max-age-ts-metadata is configureerbaar in de transformatie server. Initiële waarde is 14400 seconden (4 uur).


De metadata wordt in JSON formaat geretourneerd en bestaat uit een array van algoritmes, die door de transformatie server worden ondersteund. Een algoritme object heeft het volgende formaat:

NameCardinalityTypeToelichting
id1..1String

Uniek ID van het transformatie algoritme.

input1..n
Vereiste input voor dit algoritme
input.type1..1String

Type van dit input bericht.

Mogelijke waarden: "request", "response".

input.protocol1..nString

Protocol van dit input bericht.

Mogelijke waarden: "application/fhir+xml" of "application/fhir+json" of "application/hl7-v3+xml".

input.interaction-id1..1StringInteractie-id van dit input bericht.
output1..n
Opgeleverde output bericht(en) door dit algoritme.
output.type1..1String

Type van dit output bericht.

Mogelijke waarden: "request", "response".

output.protocol1..nString

Protocol van dit output bericht.

Mogelijke waarden: "application/fhir+xml" of "application/fhir+json" of "application/hl7-v3+xml".

output.interaction-id1..1StringInteractie-id van dit output bericht.


Een voorbeeld metadata response is hieronder gegeven:

HTTP/1.1 200 OK
Content-Type: application/json

[

{

        "id": "2",
        "input": [{
                "type": "response",
                "protocol": ["application/hl7-v3+xml"],
                "interaction-id": "MCCI_IN000002"
            },
            {
                "type": "request",
                "protocol": ["application/fhir+json", "application/fhir+xml"],
                "interaction-id": "create:Observation:1.0:request"
            }
        ],
        "output": [{
            "type": "response",
            "protocol": ["application/fhir+json", "application/fhir+xml"],
            "interaction-id": "create:Observation:1.0:response"
        }]
    },
    {
        "id": "4",
        "input": [{
            "type": "response",
            "protocol": ["application/hl7-v3+xml"],
            "interaction-id": "QUAF_IN990003NL01"
        }],
        "output": [{
            "type": "response",
            "protocol": ["application/fhir+json", "application/fhir+xml"],
            "interaction-id": "search-type:Appointment:1.0:response"
        }]
    }
]

Transformatie Interface (Generiek)

Formaat van een transformatierequest

AOF.TS-I.FTR.100.v2

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 : "",

transformation-id : ""

}, 

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

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 : "",

interaction-id : ""

}, 

content_out : ""

},

{

..

}

]

Generieke parameters

AOF.TS-I.TGP.100.v3

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..1StringProtocol van content_in (zie sectie Overzicht transformaties).
meta.protocol_out1..1

Gewenst protocol van het output bericht, of van de output berichten, (zie sectie Overzicht transformaties).

meta.transformation-id    0..1String

Het ID van het te hanteren transformatie algoritme (zie sectie Overzicht transformaties).

Indien deze niet wordt meegestuurd, dan probeert de transformatie server zelf, o.b.v. de wel meegezonden informatie, het juiste transformatie algoritme te bepalen.

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

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..1StringProtocol van het output bericht (zie sectie Overzicht transformaties).
meta.transformation-id1..1StringHet ID van het gehanteerde transformatie algoritme (zie sectie Overzicht transformaties).
meta.interaction-id1..1StringHet interaction-id van het output bericht.
content_out1..1Zie content_inDe getransformeerde content.

Transformatie Interface (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.v2

Additionele input parameters voor transformatie van responses zijn:

NameCardinalityTypeToelichting
orig_content_in0..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_in0..1String

Protocol van orig_content_in (zie sectie Overzicht transformaties).

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.