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
The translator does not stop at resource type. A Patient request can produce more than one valid R4 shape, and the same is true for Condition, Procedure, and the other supported routes.
This guide therefore treats the R4 target profile as part of the public contract. The client must choose which R4 family it wants, and the service must return output that fits that family.
The service currently documents three main target families for BgZ-facing routes:
nl-core 2020eu-baseThese are not interchangeable labels. They represent different target-side profile sets with different expectations, slicing rules, and terminology behavior.
The service also supports explicit PZP 2020 ACP target profiles for the implemented PZP 2017 to PZP 2020 profile-pair routes.
nl-core 2020nl-core 2020 is the Dutch R4 target family used when the result should fit the Dutch profile set that the project currently prefers for Dutch output.
In this repository, nl-core 2020 is the target family for routes such as:
Patient -> nl-core-PatientProblem -> nl-core-ProblemProcedure -> nl-core-Procedure-eventFunctionalOrMentalStatus -> nl-core-FunctionalOrMentalStatusAllergyIntolerance -> nl-core-AllergyIntoleranceEncounter -> nl-core-EncounterCareTeam -> nl-core-CareTeamWhy it matters:
Practical effect:
meta.profile to the requested nl-core profileeu-baseeu-base is the broader European R4 target family used when the desired output should fit the cross-border European profile set.
In this repository, eu-base is the target family for routes such as:
Patient -> patient-eu-coreProblem -> condition-eu-coreProcedure -> procedure-eu-coreFunctionalOrMentalStatus -> medicalTestResult-eu-coreAllergyIntolerance -> allergyIntolerance-eu-coreMedicationRequest -> medicationRequest-eu-coreMedicationStatement -> medicationStatement-eu-coreWhy it matters:
nl-corenl-corePractical effect:
eu-base profile on the output resourceeu-base target profileEPS is the HL7 Europe Patient Summary target family. It is a document-oriented target on top of EU Base/Core rather than a replacement for eu-base.
In this repository, EPS is currently supported for:
Patient -> patient-eu-epsProblem -> condition-obl-eu-epsProcedure -> procedure-eu-epsAllergyIntolerance -> allergyintolerance-obl-eu-epsMedicationRequest -> medicationrequest-obl-eu-epsMedicationStatement -> MedicationStatement-eu-epsACP-AdvanceDirective and ACP-TreatmentDirective -> consent-eu-epsACP-HealthProfessional-Practitioner -> practitioner-obl-eu-epsACP-HealthProfessional-PractitionerRole -> practitionerrole-obl-eu-epsACP-MedicalDevice.Product-ICD -> device-eu-epsACP-MedicalDevice -> deviceUseStatement-eu-epsbundle-eu-eps document BundleThe EPS StructureMaps import the corresponding logical-to-eubase maps or neutral shared logical-to-R4 helper groups, then set the EPS profile. They do not import PZP target maps. Bundle output assembles the document envelope and Composition sections after supported entries have gone through the logical model and EPS resource maps. PZP Practitioner and PractitionerRole EPS routes are single-resource transforms; they are not standalone EPS document Bundle entries until the Composition section model has an appropriate section or reachable reference path.
The broader EHDS/EPS package contains more model profiles than the implemented route set. See EHDS / EPS Coverage for the complete implemented/gap matrix across BgZ and PZP source routes.
nl-core 2020 Versus eu-baseThe two families overlap in shape, but they are not the same contract.
Use nl-core 2020 when:
Use eu-base when:
eu-base target in the installed package setnl-core shapeThe service does not silently switch between them. The request should specify the target family explicitly, and the translation matrix must contain that exact pair.
The target profile affects three steps:
That means the target profile is part of the translation semantics, not just a validation annotation.
nl-core 2020 if the output should be Dutch-profile-firsteu-base if the output should be European-profile-firstPZP 2020 ACP profiles are supported for explicit PZP 2017 ACP source profile pairs. These routes are not a general resource-type conversion mode. Each source profile has one registered PZP 2020 target profile, and each route goes through a shared logical model with explicit source-to-logical and logical-to-PZP StructureMaps.
The current PZP target family includes Patient, Encounter, Procedure, Consent-based ACP directives, RelatedPerson, Practitioner, PractitionerRole, CommunicationRequest, Device, DeviceUseStatement, Goal, and Observation-based ACP choices.
PZP 2017 ACP sources also have explicit non-PZP target routes where the shared logical model validates against the installed generic parent profile. ACP-Patient targets nl-core-Patient, patient-eu-core, and patient-eu-eps; other supported generic PZP targets use the installed nl-core parent profile, a concrete EPS profile where registered, or, for non-nl-core-derived profiles, the base R4 parent profile.
The inverse is not true for generic BgZ input. BgZ resources are not accepted as PZP ACP targets, and PZP ACP-Procedure is not exposed as an EU Base or EPS Procedure source route. Those unsupported routes return OperationOutcome errors instead of inventing missing ACP-specific or performed-time semantics.