Care Coordination and 360 Referrals (Proof of Concept)
0.1.0 - proof-of-concept United Kingdom flag

Care Coordination and 360 Referrals (Proof of Concept) - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Logical Model: Clinical Referral ( Experimental )

Official URL: https://fhir.acmeexample.org.uk/PatientCareCoordination/StructureDefinition/Referral Version: 0.1.0
Draft as of 2026-11-03 Computable Name: Referral

Proof of concept - not an authoritative source.

The information exchanged during a closed loop referral, from the referral request to the referral outcome. Based on the data items of the IHE 360X transactions (PCC TF-2 3.55 to 3.61), FHIR Workflow and HL7 v2 orders, with the UBRN from eRS. It is the same for a referral to an outpatient clinic, a community service or a virtual ward. National services such as BaRS are mapped onto this model (see the BaRS review), not the other way round. The PRSB Clinical Referral Information Standard v1.0 gives the clinical headings.

The referral stays small: the clinical content is in separate documents referenced as supporting information - a Discharge Report or clinic letter for the episode, a Patient Summary and referral forms. A referral may be one activity of a Care Plan.

The Mappings tab shows each element in HL7 v2 (360X) and FHIR.

Usages:

  • This Logical Model is not used by any profiles in this Specification

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

This structure is derived from Base

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Referral 0..* Base Clinical Referral
Instances of this type can be the target of a Reference
Referral.referralId 1..1 Identifier Referral ID
Referral.ubrn 0..1 Identifier Unique Booking Reference Number
Referral.patient 1..1 BackboneElement Patient
Referral.patient.nhsNumber 0..1 Identifier NHS Number
Referral.patient.localIdentifier 0..* Identifier Local patient identifier
Referral.patient.demographics 1..1 BackboneElement Demographics
Referral.referrer.clinician 1..1 Identifier Referring clinician
Referral.referrer.organisation 1..1 Identifier Referring organisation
Referral.recipient 0..1 BackboneElement Referred to
Referral.recipient.service 0..1 Identifier Service
Referral.recipient.clinician 0..1 Identifier Clinician
Referral.recipient.organisation 0..1 Identifier Organisation
Referral.serviceRequested 1..1 CodeableConcept Service requested
Referral.priority 0..1 code Priority
Referral.expectedBy 0..1 dateTime Expected service provision time
Referral.validityPeriod 0..1 Period Validity
Referral.reasonForReferral 1..* CodeableConcept Reason for referral
Referral.referralQuestion 0..1 string Referral question
Referral.clinicalDocument 0..* Reference(DocumentReference | Bundle) Clinical document
Referral.patientSummary 0..1 Reference(DocumentReference | Bundle) Patient summary
Referral.forms 0..* Reference(QuestionnaireResponse) Referral forms
Referral.observations 0..* Reference(Observation) Observations
Referral.carePlan 0..1 Reference(CarePlan) Care plan
Referral.dateOfReferral 1..1 dateTime Date of referral
Referral.status 1..1 code Referral status
Referral.statusReason 0..1 CodeableConcept Reason for decline or cancellation
Referral.appointment 0..* BackboneElement Appointment
Referral.appointment.appointmentId 1..1 Identifier Appointment ID
Referral.appointment.dateTime 1..1 dateTime Appointment date and time
Referral.appointment.provider 0..1 Identifier Appointment provider
Referral.appointment.status 1..1 code Appointment status
Referral.interimNote 0..* Reference(DocumentReference | Bundle) Interim consultation note
Referral.outcome 0..1 Reference(DocumentReference | Bundle) Referral outcome

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Referral 0..* Base Clinical Referral
Instances of this type can be the target of a Reference
Referral.referralId 1..1 Identifier Referral ID
Referral.ubrn 0..1 Identifier Unique Booking Reference Number
Referral.patient 1..1 BackboneElement Patient
Referral.patient.@id 0..1 string Unique id for inter-element referencing
Referral.patient.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Referral.patient.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Referral.patient.nhsNumber 0..1 Identifier NHS Number
Referral.patient.localIdentifier 0..* Identifier Local patient identifier
Referral.patient.demographics 1..1 BackboneElement Demographics
Referral.referrer 1..1 BackboneElement Referrer
Referral.referrer.@id 0..1 string Unique id for inter-element referencing
Referral.referrer.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Referral.referrer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Referral.referrer.clinician 1..1 Identifier Referring clinician
Referral.referrer.organisation 1..1 Identifier Referring organisation
Referral.recipient 0..1 BackboneElement Referred to
Referral.recipient.@id 0..1 string Unique id for inter-element referencing
Referral.recipient.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Referral.recipient.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Referral.recipient.service 0..1 Identifier Service
Referral.recipient.clinician 0..1 Identifier Clinician
Referral.recipient.organisation 0..1 Identifier Organisation
Referral.serviceRequested 1..1 CodeableConcept Service requested
Referral.priority 0..1 code Priority
Referral.expectedBy 0..1 dateTime Expected service provision time
Referral.validityPeriod 0..1 Period Validity
Referral.reasonForReferral 1..* CodeableConcept Reason for referral
Referral.referralQuestion 0..1 string Referral question
Referral.clinicalDocument 0..* Reference(DocumentReference | Bundle) Clinical document
Referral.patientSummary 0..1 Reference(DocumentReference | Bundle) Patient summary
Referral.forms 0..* Reference(QuestionnaireResponse) Referral forms
Referral.observations 0..* Reference(Observation) Observations
Referral.carePlan 0..1 Reference(CarePlan) Care plan
Referral.dateOfReferral 1..1 dateTime Date of referral
Referral.status 1..1 code Referral status
Referral.statusReason 0..1 CodeableConcept Reason for decline or cancellation
Referral.appointment 0..* BackboneElement Appointment
Referral.appointment.@id 0..1 string Unique id for inter-element referencing
Referral.appointment.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Referral.appointment.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Referral.appointment.appointmentId 1..1 Identifier Appointment ID
Referral.appointment.dateTime 1..1 dateTime Appointment date and time
Referral.appointment.provider 0..1 Identifier Appointment provider
Referral.appointment.status 1..1 code Appointment status
Referral.interimNote 0..* Reference(DocumentReference | Bundle) Interim consultation note
Referral.outcome 0..1 Reference(DocumentReference | Bundle) Referral outcome

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Base

Summary

Mandatory: 0 element(13 nested mandatory elements)

Structures

This structure refers to these other structures:

Differential View

This structure is derived from Base

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Referral 0..* Base Clinical Referral
Instances of this type can be the target of a Reference
Referral.referralId 1..1 Identifier Referral ID
Referral.ubrn 0..1 Identifier Unique Booking Reference Number
Referral.patient 1..1 BackboneElement Patient
Referral.patient.nhsNumber 0..1 Identifier NHS Number
Referral.patient.localIdentifier 0..* Identifier Local patient identifier
Referral.patient.demographics 1..1 BackboneElement Demographics
Referral.referrer 1..1 BackboneElement Referrer
Referral.referrer.clinician 1..1 Identifier Referring clinician
Referral.referrer.organisation 1..1 Identifier Referring organisation
Referral.recipient 0..1 BackboneElement Referred to
Referral.recipient.service 0..1 Identifier Service
Referral.recipient.clinician 0..1 Identifier Clinician
Referral.recipient.organisation 0..1 Identifier Organisation
Referral.serviceRequested 1..1 CodeableConcept Service requested
Referral.priority 0..1 code Priority
Referral.expectedBy 0..1 dateTime Expected service provision time
Referral.validityPeriod 0..1 Period Validity
Referral.reasonForReferral 1..* CodeableConcept Reason for referral
Referral.referralQuestion 0..1 string Referral question
Referral.clinicalDocument 0..* Reference(DocumentReference | Bundle) Clinical document
Referral.patientSummary 0..1 Reference(DocumentReference | Bundle) Patient summary
Referral.forms 0..* Reference(QuestionnaireResponse) Referral forms
Referral.observations 0..* Reference(Observation) Observations
Referral.carePlan 0..1 Reference(CarePlan) Care plan
Referral.dateOfReferral 1..1 dateTime Date of referral
Referral.status 1..1 code Referral status
Referral.statusReason 0..1 CodeableConcept Reason for decline or cancellation
Referral.appointment 0..* BackboneElement Appointment
Referral.appointment.appointmentId 1..1 Identifier Appointment ID
Referral.appointment.dateTime 1..1 dateTime Appointment date and time
Referral.appointment.provider 0..1 Identifier Appointment provider
Referral.appointment.status 1..1 code Appointment status
Referral.interimNote 0..* Reference(DocumentReference | Bundle) Interim consultation note
Referral.outcome 0..1 Reference(DocumentReference | Bundle) Referral outcome

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Referral 0..* Base Clinical Referral
Instances of this type can be the target of a Reference
Referral.referralId 1..1 Identifier Referral ID
Referral.ubrn 0..1 Identifier Unique Booking Reference Number
Referral.patient 1..1 BackboneElement Patient
Referral.patient.@id 0..1 string Unique id for inter-element referencing
Referral.patient.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Referral.patient.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Referral.patient.nhsNumber 0..1 Identifier NHS Number
Referral.patient.localIdentifier 0..* Identifier Local patient identifier
Referral.patient.demographics 1..1 BackboneElement Demographics
Referral.referrer 1..1 BackboneElement Referrer
Referral.referrer.@id 0..1 string Unique id for inter-element referencing
Referral.referrer.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Referral.referrer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Referral.referrer.clinician 1..1 Identifier Referring clinician
Referral.referrer.organisation 1..1 Identifier Referring organisation
Referral.recipient 0..1 BackboneElement Referred to
Referral.recipient.@id 0..1 string Unique id for inter-element referencing
Referral.recipient.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Referral.recipient.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Referral.recipient.service 0..1 Identifier Service
Referral.recipient.clinician 0..1 Identifier Clinician
Referral.recipient.organisation 0..1 Identifier Organisation
Referral.serviceRequested 1..1 CodeableConcept Service requested
Referral.priority 0..1 code Priority
Referral.expectedBy 0..1 dateTime Expected service provision time
Referral.validityPeriod 0..1 Period Validity
Referral.reasonForReferral 1..* CodeableConcept Reason for referral
Referral.referralQuestion 0..1 string Referral question
Referral.clinicalDocument 0..* Reference(DocumentReference | Bundle) Clinical document
Referral.patientSummary 0..1 Reference(DocumentReference | Bundle) Patient summary
Referral.forms 0..* Reference(QuestionnaireResponse) Referral forms
Referral.observations 0..* Reference(Observation) Observations
Referral.carePlan 0..1 Reference(CarePlan) Care plan
Referral.dateOfReferral 1..1 dateTime Date of referral
Referral.status 1..1 code Referral status
Referral.statusReason 0..1 CodeableConcept Reason for decline or cancellation
Referral.appointment 0..* BackboneElement Appointment
Referral.appointment.@id 0..1 string Unique id for inter-element referencing
Referral.appointment.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Referral.appointment.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Referral.appointment.appointmentId 1..1 Identifier Appointment ID
Referral.appointment.dateTime 1..1 dateTime Appointment date and time
Referral.appointment.provider 0..1 Identifier Appointment provider
Referral.appointment.status 1..1 code Appointment status
Referral.interimNote 0..* Reference(DocumentReference | Bundle) Interim consultation note
Referral.outcome 0..1 Reference(DocumentReference | Bundle) Referral outcome

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Base

Summary

Mandatory: 0 element(13 nested mandatory elements)

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel

Notes:

From Logical Model to Implementation Model

This logical model says what information a closed loop referral carries. An implementation splits it into FHIR resources, each owned by one side of the exchange, and sends them by one of the Exchange Options. The Mappings tab gives the element-level mapping; this section shows the breakdown.

Next: the Clinical Referral Domain Model goes into more detail on how the bulk of this model - the request: ServiceRequest and what it references - is implemented, field by field, in FHIR and HL7 v2.

flowchart LR
    subgraph LM [Clinical Referral - logical model]
        L1[Identification]
        L2[Patient]
        L3[Referrer / Recipient]
        L4[Request and reason]
        L5[Supporting information]
        L6[Status]
        L7[Appointment]
        L8[Interim note / Outcome]
    end
    subgraph RI [Owned by the Referral Initiator]
        SR[ServiceRequest<br/>Referral Request]
        PR[PractitionerRole<br/>Practitioner, Organization]
        DOC1[Documents and forms<br/>HDR, EPS, QuestionnaireResponse,<br/>Observation]
    end
    subgraph RR [Owned by the Referral Recipient]
        T[Task<br/>Referral Task]
        AP[Appointment, Slot<br/>Referral Appointment]
        EN[Encounter<br/>Visit / Hospital Spell]
        DOC2[Documents<br/>HDR, clinic letter]
        HS[HealthcareService<br/>Organization]
    end
    PT[Patient]
    L1 --> SR
    L2 --> PT
    L3 --> PR
    L3 --> HS
    L4 --> SR
    L5 --> DOC1
    L6 --> T
    L7 --> AP
    L7 --> EN
    L8 --> DOC2
    SR -. "supportingInfo" .-> DOC1
    T -. "basedOn / focus" .-> SR
    T -. "output" .-> DOC2
    AP -. "basedOn" .-> SR

Breakdown

Logical model Implementation resource (profile) Elements Owned and updated by
referralId, ubrn ServiceRequest (Referral Request) identifier:referralId (Referral Identifier, type PLAC, assigner ODS code), identifier:ubrn Referral Initiator. Every other resource refers to the referral by this identifier (basedOn.identifier)
patient Patient (Patient) ServiceRequest.subject; Task.for Referral Initiator sends it with the request; afterwards the patient is known to both sides and referenced by NHS Number (for.identifier)
referrer PractitionerRole (PractitionerRole), with Practitioner and Organization ServiceRequest.requester, Task.requester - professional code and ODS code Referral Initiator
recipient HealthcareService (eRS service ID, Directory of Services ID) or Organization ServiceRequest.performer (who is asked), Task.owner (who has taken it on) Referral Initiator chooses; Referral Recipient confirms as Task.owner
serviceRequested, priority, expectedBy, reasonForReferral, referralQuestion, dateOfReferral ServiceRequest code, priority, occurrenceDateTime, reasonCode / reasonReference, note, authoredOn Referral Initiator
validityPeriod Task (Referral Task) restriction.period Referral Initiator sets; Referral Recipient works within it
clinicalDocument, patientSummary, forms, observations Bundle (FHIR Document - HL7 Europe HDR, EPS) or DocumentReference; QuestionnaireResponse; Observation (Observation) ServiceRequest.supportingInfo Referral Initiator - see the Discharge Report and Patient Summary models and Referral Forms
carePlan CarePlan (Care Plan) ServiceRequest.basedOn Whoever owns the plan - see Care Plan and Execution
status, statusReason Task (Referral Task) status, businessStatus (Referral Workflow Status), statusReason Referral Recipient (the Referral Initiator only requests a cancellation) - see Referral Status
appointment Appointment (Referral Appointment), Slot; Encounter (Visit or Hospital Spell) Appointment.basedOn, start, status; Encounter.basedOn; Task.output Referral Recipient (or the Referral Initiator when booking through eRS) - see Appointment Booking
interimNote, outcome Bundle (FHIR Document - HL7 Europe HDR, or a clinic letter) or DocumentReference Task.output (linked to the referral through the Task, not inside the document) Referral Recipient - see Referral Outcome Reports

How the Pieces Travel

The same resources are exchanged differently depending on the exchange option:

Step FHIR REST FHIR Messaging HL7 v2 (360X) Document sharing
Referral Request [PCC-55] Create ServiceRequest and Task (status requested) on the recipient's or a shared server Referral Order (O19): MessageHeader, ServiceRequest, Patient, PractitionerRole, supporting resources OMG^O19: PID, ORC (ORC-2 Referral ID, ORC-12, ORC-21), TQ1, OBR, OBX, NTE Supporting documents published; ServiceRequest.supportingInfo references them
Accept, decline, cancel, status Update Task Referral Order Status (O51): MessageHeader, Task only - patient, referrer and recipient by identifier OSU^O51: PID, ORC (ORC-1 / ORC-5) -
Appointment [PCC-60], [PCC-61] Create / update Appointment O51 with the Appointment in Task.output SIU^S12 / S13 / S15 / S26 -
Interim note [PCC-59], outcome [PCC-57] Create document; update Task.output O51 with the document Bundle OSU^O51 and MDM^T02 (TXA-14 Referral ID) MHD Provide Document Bundle; DocumentReference.context.related the referral

Rules that hold whatever the exchange option:

  • The Referral ID is in every message and every resource that refers to the referral.
  • The Referral Initiator owns the request (ServiceRequest); the Referral Recipient owns the work (Task, Appointment, Encounter) and the documents it writes.
  • Clinical content travels as documents (HDR, EPS, forms), referenced from the referral, so they can also be shared through an API instead of being sent (EU Health Data API).

Example: the GP to cardiology referral - Referral Request, Referral Task - Accepted, Appointment, Referral Task - Completed, and as messages Referral Order (O19) and Referral Order Status (O51), accepted.