Cumuluz Translate Implementation Guide
0.1.0 - ci-build
Cumuluz Translate Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
POST /fhir/stu3-r4/$transform
This is the main cross-version operation exposed by the service.
It accepts a STU3 source resource or bundle and returns a translated R4 result.
The request body is a FHIR Parameters resource.
| Name | Type | Meaning |
|---|---|---|
source |
Resource | The STU3 source resource or STU3 bundle to translate |
sourceProfile |
canonical | The supported STU3 source profile route |
targetProfile |
canonical | The supported R4 target profile route |
| Name | Type | Meaning |
|---|---|---|
validate |
boolean | Validate the translated R4 result before returning |
returnLogical |
boolean | Include the intermediate logical model as a Binary resource |
On success, the response body is also a FHIR Parameters resource.
| Name | Type | Meaning |
|---|---|---|
result |
Resource | The translated R4 resource or translated R4 bundle |
targetProfile |
canonical | The target profile route that was applied |
logical |
Binary | The intermediate logical model, only when returnLogical=true |
outcome |
OperationOutcome | Validation output, only when validation is requested |
This example uses a richer patient fixture so the translated response shows the current patient mapping more fully, including identifiers, demographics, extensions, contact data, and communication data.
{
"resourceType": "Parameters",
"parameter": [
{
"name": "source",
"resource": {
"resourceType": "Patient",
"meta": {
"profile": [
"http://nictiz.nl/fhir/StructureDefinition/BgZ-Patient"
]
},
"identifier": [
{
"system": "http://fhir.nl/fhir/NamingSystem/bsn",
"value": "999900134"
},
{
"system": "http://example.org/mrn",
"value": "MRN-12345"
}
],
"active": true,
"name": [
{
"use": "official",
"text": "Jan Jansen",
"family": "Jansen",
"given": [
"Jan"
]
}
],
"telecom": [
{
"system": "phone",
"value": "+31-20-5551234"
}
],
"gender": "male",
"birthDate": "1975-04-12",
"address": [
{
"line": [
"Laan van Europa 10"
],
"city": "Amsterdam",
"country": "NL"
}
]
}
},
{
"name": "sourceProfile",
"valueCanonical": "http://nictiz.nl/fhir/StructureDefinition/BgZ-Patient"
},
{
"name": "targetProfile",
"valueCanonical": "http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"
},
{
"name": "validate",
"valueBoolean": true
},
{
"name": "returnLogical",
"valueBoolean": true
}
]
}
The full rendered example resource is attached as ig/input/examples/patient-transform-response.json.
{
"resourceType": "Parameters",
"parameter": [
{
"name": "result",
"resource": {
"resourceType": "Patient",
"meta": {
"profile": [
"http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"
]
},
"active": true,
"identifier": [
{
"system": "http://fhir.nl/fhir/NamingSystem/bsn",
"value": "999900134"
},
{
"system": "http://example.org/mrn",
"value": "MRN-12345"
}
],
"name": [
{
"use": "usual",
"text": "Jan Jansen",
"family": "Jansen",
"given": [
"Jan"
],
"_given": [
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier",
"valueCode": "CL"
}
]
}
]
}
],
"telecom": [
{
"system": "phone",
"value": "+31-20-5551234"
}
],
"gender": "male",
"birthDate": "1975-04-12",
"address": [
{
"line": [
"Laan van Europa 10"
],
"city": "Amsterdam",
"country": "NL"
}
]
}
},
{
"name": "targetProfile",
"valueCanonical": "http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"
},
{
"name": "logical",
"resource": {
"resourceType": "Binary",
"contentType": "application/fhir+json"
}
},
{
"name": "outcome",
"resource": {
"resourceType": "OperationOutcome"
}
}
]
}
The transform endpoint also accepts a STU3 Bundle as the source parameter.
When a bundle route is valid, the result parameter contains an R4 Bundle.
If the request is malformed, the source cannot be parsed, or the profile pair is not supported, the service returns a FHIR OperationOutcome with HTTP 400.
Typical failure causes are:
sourcesourceProfiletargetProfileig/input/examples/patient-transform-request.jsonig/input/examples/patient-transform-response.jsonThe transform request must name the exact R4 target family the client wants.
nl-core 2020 routes produce nl-core-shaped Dutch outputeu-base routes produce European outputFor the general profile story, see Target Profiles.
Use these endpoints to discover the operation without reading repository code:
GET /fhir/stu3-r4/metadataGET /fhir/stu3-r4/OperationDefinition/bgz-transformGET /fhir/stu3-r4/translation-indexThe translation index is especially useful for clients that want a machine-readable list of supported source and target combinations.