eReferral Implementation Guide, published by Riziv-Inami Platform. This guide is not an authorized publication; it is the continuous build for version 3.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7-be/referral-uhmep/ and changes regularly. See the Directory of published versions
This page collects the integration checks for moving from release 2.1.0 to 3.0.0. It complements the release notes, the generated profiles and the operation pages; it does not replace INAMI/RIZIV business requirements.
| Scope | What integrators should distinguish |
|---|---|
| Documented in 3.0.0 | Radiology assignment removal on the ambulatory track, completion on the urgency track, patient cancellation, explicit required profile elements and updated PSS/QSI examples. |
| Already documented in 2.1.0 | Track-dependent radiology handling, profile rewriting and pseudonymization. These are not new security mechanisms introduced by this migration. |
| Announced for a future release | Migration from the DRP IG to the Referral IG and replacement of the eReferral canonical base. Do not apply the proposed XXX namespace to 3.0.0 payloads. |
The checks below describe the current 3.0.0 artefacts and the changes recorded in this IG. They are not an exhaustive compatibility certification of every 2.1.0 deployment. Confirm the deployed API version, configuration and package versions in the target environment before cutover. A client upgrading from 2.1.0 should not assume that a missing field was previously valid merely because an earlier server accepted its payload.
| Payload area | Requirement in the current 3.0.0 profiles | Action for an existing integration |
|---|---|---|
| Nursing prescription type | category[prescriptionType] is 1..1, with one coding and a required binding to the nursing technical-type ValueSet. |
Make the template coding explicit; validate every nursing template used by the client. |
| Diagnostic-imaging prescription type | category[prescriptionType] is 1..1. |
Populate the prescribed imaging template rather than relying on inference. |
| Annex 81 technical type | category[annex81TechnicalType] is 1..1. |
Revalidate proposal and approval fixtures against the Annex 81 profile, not the generic nursing profile. |
| Nursing and diagnostic-imaging reason | reasonCode is 1..1 in both profiles. |
Check generators that omit the reason or send multiple reasons. If the reason is patient-specific free text, retain its pseudonymization metadata. |
| Radiology track and urgency | Track is ambulatory, inpatient or urgency; priority = urgent requires an urgency justification. |
Keep track and priority separate in the client model; an urgency track is not a substitute for the priority field. |
| Contained radiology resources | The diagnostic-imaging profile requires the contained patient and safety checklist, with local references. | Resolve subject and checklist references inside the same resource; revalidate the contained questionnaire response. |
| Profile declaration | Use the eReferral target profile or an explicitly configured legacy DRP mapping. | Check Profile Rewriting, including the exact Annex 81 identifier. URL rewriting does not repair payload content. |
| Organization-scoped actor references | Follow the documented PractitionerRole identifier and Task.basedOn conventions. |
Recheck requester/owner references and the organization-task link in M2M fixtures. This is a compatibility check, not a claim that the identifier convention is newly introduced in 3.0.0. |
Cardinalities and terminology bindings are defined by the generated profiles, not by this summary. Start with the nursing profile, Annex 81 profile and diagnostic-imaging profile.
This matrix focuses on migration-sensitive paths. It is not a complete authorization matrix: the Access Matrix, privacy checks, assignment ownership and operation-specific preconditions still apply. Business prescription states are not literal values for ServiceRequest.status; see the status mapping.
| Operation | Track | Actor context | Initial business state / execution task | Expected effect |
|---|---|---|---|---|
| Remove assignment | Ambulatory | Patient, Caregiver or Organization, subject to removal rights | Prescription READY or IN_PROGRESS; task ready or in-progress |
Assignment is removed; prescription returns to READY. Dependent assignments can also be affected. |
| Remove assignment | Inpatient | Any caller | Do not reuse the ambulatory exception | Radiology track guard rejects assignment removal. |
| Remove assignment | Urgency | Any caller | Do not reuse the ambulatory exception | Radiology track guard rejects assignment removal. |
| Complete an existing execution | Ambulatory | Caregiver or Organization | Prescription IN_PROGRESS; caregiver task in-progress |
Caregiver execution and radiology prescription become completed. |
| Complete an existing execution | Inpatient | Caregiver or Organization | Prescription IN_PROGRESS; caregiver task in-progress, with applicable organization linkage |
Caregiver execution and radiology prescription become completed. |
| Complete an existing execution | Urgency | Caregiver or Organization | The documented exception also permits prescription READY without an already-started caregiver task |
The backend starts the caregiver activity when necessary, then completes it and the prescription. |
| Patient cancellation | Ambulatory | Patient | Prescription PENDING or READY |
Prescription becomes canceled. |
| Patient cancellation | Inpatient | Patient | Prescription PENDING or READY |
Prescription becomes canceled. |
| Patient cancellation | Urgency | Patient | Prescription PENDING or READY |
Prescription becomes canceled. |
For other actors, terminal states, missing assignments and POST-based creation/completion shortcuts, use the relevant operation page rather than extrapolating from these rows. In particular, an existing-task completion and creating a task already marked completed are separate routes with their own preconditions.
These are illustrative state projections, not complete FHIR payloads or executable clinical scenarios. IDs are placeholders. Execute the documented request against a valid resource and read back the related resources to obtain the authoritative state, dates and task dependencies.
Example: an authorized caller removes an existing, in-progress ambulatory caregiver assignment.
DELETE /Task/{executionID}
| Observable item | Before | After successful 204 No Content |
|---|---|---|
| Prescription business state | IN_PROGRESS |
READY |
ServiceRequest.status |
active |
active |
BeReferralTask.status |
in-progress |
ready according to the documented business-state projection |
| Removed execution task | status = in-progress |
Assignment deleted, not changed to cancelled |
The unchanged ServiceRequest.status does not mean that no workflow transition occurred. Refresh the referral task and assignment list. Do not use the removed assignment as an active execution identifier; Unassign a Care Provider describes the operation.
Example: an organization completes an existing urgency-track caregiver execution while the prescription is still READY. Use the PATCH payload under Finish Existing Execution.
| Observable item | Before | After successful completion |
|---|---|---|
| Prescription business state | READY |
COMPLETED |
ServiceRequest.status |
active |
completed |
| Existing caregiver execution | Not yet started, for example task ready |
Task completed; the backend starts the activity if necessary before finishing it |
| Global referral task and dates | Current server values | Read back the aggregate task and execution dates; do not infer them solely from the submitted end date |
This exception is specific to the urgency track. It does not establish a general right to complete an ambulatory or inpatient prescription directly from READY, nor does it mean the client must issue a separate start request for this existing-task path.
Example: the patient cancels their own radiology prescription in business state READY using Cancel a Medical Document.
{
"resourceType": "Parameters",
"parameter": [
{
"name": "operation",
"part": [
{ "name": "type", "valueCode": "replace" },
{ "name": "path", "valueString": "ServiceRequest.status" },
{ "name": "value", "valueString": "revoked" }
]
}
]
}
| Observable item | Before | After successful 200 OK |
|---|---|---|
| Prescription business state | READY |
Canceled |
ServiceRequest.status |
active |
revoked |
BeReferralTask.status |
ready |
cancelled according to the documented business-state projection |
Requery the server after the operation. Do not infer the final state of every related performer or organization task from the prescription status alone. The same documented patient-cancellation permission also covers PENDING; other prescription types retain their own rules.
| Item | Baseline for this IG | Integration consequence |
|---|---|---|
| FHIR | R4, 4.0.1 |
Use an R4 validator and the target profile set. |
| Local IG | inami.fhir.be.ereferral#3.0.0 |
Pin a tested build for reproducible integration tests. |
| DRP parent | be.smals.fhir.drp-fix, version 1.1.1; configured dependency current$drp-1.1.1-fixed |
The branch alias is mutable. Record the resolved package version, build date and package checksum used for testing. |
| Belgian dependencies | Core 2.2.0, Core Clinical 1.3.0, INFSEC 1.3.0 |
Keep validator dependencies aligned with the package under test. |
| Requested diagnostic-imaging procedure | Current profile has a required binding to the SNOMED-based local procedure ValueSet. | The presence of PSS/QSI or hybrid artefacts in the package does not itself permit PSS/QSI codes in ServiceRequest.code. |
| Patient-condition indication | Preferred binding plus local constraints in the diagnostic-imaging profile. | Review both the binding and applicable invariants; do not assume the preferred binding overrides a stricter invariant. |
| SNOMED edition | Must match the coded content and the terminology service used by the target environment. | An international-edition validation failure does not alone establish that a Belgian-extension code is invalid. Confirm edition/version support before changing codes. |
| Demonstrative terminology | The homepage disclaimer distinguishes example artefacts from the future operational terminology package. | Package conformance is not evidence that every coded service is operationally supported by the API or reimbursable. |
Do not silently remove or replace clinical codes to eliminate QA errors. Confirm the intended edition, release and source mapping first. The ten PSS radiology scenarios are illustrative inputs, not evidence that every code combination is accepted by the deployed backend.
| Test | Expected check |
|---|---|
| Exact legacy profile mappings | Test each of the three configured DRP sources and the corresponding eReferral target. Test an unconfigured URL separately; it must not be assumed to receive the same rewrite. |
| Required elements | Validate representative nursing, Annex 81 and imaging fixtures. Include omitted template category, absent reason and excessive reason cardinality as negative profile tests. |
| Track versus priority | Cover all three tracks independently of priority; test an urgent request without urgency justification. |
| Ambulatory removal | Cover the documented READY/IN_PROGRESS prescription and ready/in-progress task cases, then read back the referral task and assignments. |
| Other-track removal | Verify rejection on inpatient and urgency tracks; capture the actual OperationOutcome and applicable error-code entry. |
| Urgency completion | Cover the existing-task path from READY, the normal in-progress path and valid execution dates. Test POST shortcuts separately. |
| Patient cancellation | Test an authorized patient in PENDING and READY, a different patient and a state outside those documented permissions. Confirm errors against the operation contract rather than inventing HTTP statuses. |
| Organization and internal professional | Exercise the organization-scoped actor reference, parent organization task and access checks; include an incoherent basedOn reference. |
| Privacy | Verify pseudonymized identifiers, encrypted free text and matching key references; never substitute real patient data into public fixtures. |
| Terminology | Test with the target edition and package versions; distinguish invalid codes from unavailable terminology validation. |
| Retry and concurrent updates | Record behavior when an execution is already completed, an assignment was removed or the resource changes between reads. No new retry/idempotency guarantee is established by this page. |