PH eReferral Implementation Guide
0.1.0 - ci-build
Philippines
PH eReferral Implementation Guide, published by UP Manila SILab. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/niccoreyes/ph-ereferral/ and changes regularly. See the Directory of published versions
| Official URL: urn://example.com/ph-ereferral/fhir/StructureDefinition/ereferral-service-request | Version: 0.1.0 | |||
| Draft as of 2026-03-23 | Computable Name: ERefServiceRequest | |||
Profile for ServiceRequest resource in the Philippine eReferral context. This profile defines the core referral request structure for referring patients between healthcare facilities.
The EReferral ServiceRequest profile defines the core structure for electronic referral requests in the Philippine healthcare context. It is based on the FHIR ServiceRequest resource and establishes the minimum expectations for systems implementing patient referrals between healthcare facilities.
This profile supports the electronic exchange of referral information between:
The profile maps to the Technical Working Group on Digital Health (TDG) eReferral Data Elements (rows REF-1 through REF-21), ensuring alignment with national health data standards.
The requester element uses a PractitionerRole reference to capture:
| TDG Row | Data Element | FHIR Path |
|---|---|---|
| REF-1 | Name of Referring Practitioner | requester (via PractitionerRole -> Practitioner) |
| REF-2 | Practitioner Role | requester.code (PractitionerRole.code) |
| REF-5 | Initiating Facility Name | requester (via PractitionerRole's Organization) |
| REF-6 | Initiating Facility NHFR Code | requester (via PractitionerRole's Organization.identifier) |
| REF-7 | Initiating Facility Address | requester (via PractitionerRole's Organization.address) |
| REF-8 | Initiating Facility Contact Number | requester (via PractitionerRole's Organization.telecom) |
Example:
* requester = Reference(PractitionerRole/123)
// PractitionerRole links to both Practitioner and Organization
The performer element identifies where the service should be performed:
| TDG Row | Data Element | FHIR Path |
|---|---|---|
| REF-9 | Care Navigator | performer (via PractitionerRole on receiving side) |
| REF-10 | Receiving Facility Name | performer -> PractitionerRole.organization.display |
| REF-11 | Receiving Facility NHFR Code | performer -> PractitionerRole.organization.identifier |
Example:
* performer = Reference(Organization/456)
// Direct reference to receiving hospital
The profile uses value sets to standardize categorization:
| Element | Value Set | Binding | Description |
|---|---|---|---|
category |
EReferralServiceCategory | Extensible | Type of service (imaging, laboratory, surgical, etc.) |
priority |
EReferralPriority | Required | Urgency level: routine, urgent, or stat |
intent |
Fixed value | N/A | Always #order for referrals |
Example:
* category = $sct#363679005 "Imaging"
* priority = #urgent
* intent = #order // Fixed value
The profile supports both coded and free-text reasons:
| TDG Row | Data Element | FHIR Path |
|---|---|---|
| REF-16 | Reason for Referral (service type) | code |
| REF-16 | Reason for Referral (clinical) | reasonCode, reasonReference |
The reasonCode element is bound to the EReferralReason value set (example binding), which includes common SNOMED CT clinical findings such as:
Example:
* code = $sct#183519001 "Referral to cardiology service"
* reasonCode = $sct#29857009 "Chest pain"
* text = "Chest pain on exertion, suspected unstable angina"
* reasonReference = Reference(Condition/789)
The supportingInfo element allows attaching relevant clinical data:
| TDG Row | Data Element | FHIR Path |
|---|---|---|
| REF-15 | Clinical Summary | supportingInfo |
Allowed resource types:
Example:
* supportingInfo[0] = Reference(Observation/BP-001)
* supportingInfo[+] = Reference(Observation/ECG-001)
* supportingInfo[+] = Reference(Condition/Diabetes-001)
The following elements are marked as Must Support and must be implemented by conformant systems:
| Element | Cardinality | Description |
|---|---|---|
requester |
1..1 | Referring practitioner (via PractitionerRole) |
relevantHistory |
0..* | Audit trail via Provenance |
performer |
0..* | Receiving facility or practitioner |
authoredOn |
0..1 | When the referral was created |
category |
0..* | Type of referral service |
priority |
0..1 | Urgency level |
intent |
0..1 | Always "order" for referrals |
occurrence[x] |
0..1 | When the service is needed |
supportingInfo |
0..* | Clinical information |
code |
0..1 | Service type being requested |
reasonCode |
0..* | Clinical reason for referral |
reasonReference |
0..* | Conditions/Observations justifying referral |
subject |
0..1 | Patient being referred |
status |
0..1 | Referral status |
note |
0..* | Additional instructions |
requisition |
0..1 | Referral identifier |
The profile includes the following validation rule:
| Invariant | Severity | Expression | Description |
|---|---|---|---|
ereferral-requester-has-role |
Warning | requester.resolve().ofType(PractitionerRole).exists() implies requester.resolve().ofType(PractitionerRole).organization.exists() |
If using PractitionerRole, facility information should be available |
The status element tracks the referral through its lifecycle:
| Status | Description |
|---|---|
draft |
Referral is being prepared |
active |
Referral has been sent and is awaiting response |
on-hold |
Referral temporarily suspended |
revoked |
Referral cancelled by requester |
completed |
Service has been rendered |
entered-in-error |
Referral created in error |
unknown |
Status cannot be determined |
A patient at a Rural Health Unit presents with chest pain. The physician creates an urgent referral to a cardiology department.
Instance: CardiologyReferral
InstanceOf: ERefServiceRequest
* status = #active
* intent = #order
* priority = #urgent
* category = $sct#409063005 "Counselling"
* code = $sct#183519001 "Referral to cardiology service"
* subject = Reference(Patient/001)
* authoredOn = "2025-03-23T10:00:00+08:00"
* requester = Reference(PractitionerRole/DrSantos)
* performer = Reference(Organization/PhilHeartCenter)
* reasonCode = $sct#29857009 "Chest pain"
* occurrenceDateTime = "2025-03-24T08:00:00+08:00"
A primary care physician refers a patient for X-ray imaging at a diagnostic center.
Instance: XrayReferral
InstanceOf: ERefServiceRequest
* status = #active
* intent = #order
* priority = #routine
* category = $sct#363679005 "Imaging"
* code = $sct#168537006 "Plain X-ray of chest"
* subject = Reference(Patient/002)
* authoredOn = "2025-03-23T14:30:00+08:00"
* requester = Reference(PractitionerRole/DrReyes)
* performer = Reference(Organization/DiagnosticCenter)
* reasonCode = $sct#267036007 "Dyspnea"
* note.text = "Please evaluate for pulmonary infiltrates. Patient has history of pneumonia."
The EReferral ServiceRequest typically works with:
| Resource | Relationship | Purpose |
|---|---|---|
| Patient | subject |
Patient being referred |
| PractitionerRole | requester |
Referring practitioner with organization context |
| Organization | performer |
Receiving facility |
| Condition | reasonReference, supportingInfo |
Clinical diagnoses |
| Observation | supportingInfo |
Vital signs, lab results |
| Provenance | relevantHistory |
Audit trail and signatures |
| Encounter | Context | Often linked via Encounter context |
Implementers should use the following identifier systems for Philippine healthcare contexts:
| Identifier Type | System URL | Description |
|---|---|---|
| Philippine Health Insurance (PhilHealth) | urn:oid:2.16.840.1.113883.2.9.4.3.2 |
Patient PhilHealth ID |
| Professional Regulation Commission (PRC) | urn:oid:2.16.840.1.113883.2.9.4.3.3 |
Practitioner license |
| National Health Facility Registry (NHFR) | urn:oid:2.16.840.1.113883.2.9.4.1.1 |
Facility identifier |
This profile uses the following value sets defined for eReferral:
| Value Set | Description |
|---|---|
| EReferralServiceCategory | Categories of referral services |
| EReferralPriority | Priority levels for referrals |
| EReferralReason | Clinical reasons for referral |
intent element is fixed to #order because eReferrals are always orders for services to be performed.requisition element to group related referrals that were authorized simultaneously.occurrenceDateTime or occurrencePeriod to specify when the service is needed.relevantHistory element references Provenance resources for tracking changes and signatures.Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | ServiceRequest | A request for a service to be performed Constraints: prr-1, ereferral-requester-has-role |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 0..1 | Identifier | Referral identifier |
![]() ![]() |
?!SΣ | 1..1 | code | Referral status Binding: RequestStatus (required): The status of a service order. |
![]() ![]() |
?!SΣ | 1..1 | code | Intent is always 'order' for referrals Binding: RequestIntent (required): The kind of service request. Fixed Value: order |
![]() ![]() |
SΣ | 0..* | CodeableConcept | Type of referral service requested Binding: eReferral Service Category (extensible) |
![]() ![]() |
SΣ | 0..1 | code | Urgency/priority of the referral Binding: eReferral Priority (required) |
![]() ![]() |
?!Σ | 0..1 | boolean | True if service/procedure should not be performed |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | What is being requested/ordered Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is preferred. |
![]() ![]() |
SΣ | 1..1 | Reference(Patient) | Patient being referred |
![]() ![]() |
SΣ | 0..1 | When the service is needed | |
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() ![]() |
Timing | |||
![]() ![]() |
SΣ | 0..1 | dateTime | When the referral was authored |
![]() ![]() |
SΣ | 1..1 | Reference(PractitionerRole) | Referring practitioner |
![]() ![]() |
SΣ | 0..* | Reference(Organization | PractitionerRole) | Receiving facility or practitioner |
![]() ![]() |
SΣ | 0..* | CodeableConcept | Reason for referral Binding: eReferral Reason (example) |
![]() ![]() |
SΣ | 0..* | Reference(Condition | Observation) | Conditions or observations supporting referral |
![]() ![]() |
S | 0..* | Reference(Condition | Observation | Procedure | MedicationAdministration | Immunization) | Additional clinical information |
![]() ![]() |
S | 0..* | Annotation | Additional notes or instructions |
![]() ![]() |
S | 0..* | Reference(Provenance) | Referral audit trail |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| ServiceRequest.status | Base | required | RequestStatus | 📍4.0.1 | FHIR Std. |
| ServiceRequest.intent | Base | required | RequestIntent | 📍4.0.1 | FHIR Std. |
| ServiceRequest.category | Base | extensible |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-service-category |
Not State | Unknown |
| ServiceRequest.priority | Base | required |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-priority |
Not State | Unknown |
| ServiceRequest.code | Base | example | Procedure Codes (SNOMED CT) | 📍4.0.1 | FHIR Std. |
| ServiceRequest.reasonCode | Base | example |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-reason |
Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ServiceRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ServiceRequest | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ServiceRequest | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ereferral-requester-has-role | warning | ServiceRequest | The requester should reference a PractitionerRole when referring facility information is available |
requester.resolve().ofType(PractitionerRole).exists() implies requester.resolve().ofType(PractitionerRole).organization.exists()
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| prr-1 | error | ServiceRequest | orderDetail SHALL only be present if code is present |
orderDetail.empty() or code.exists()
|
This structure is derived from ServiceRequest
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | ServiceRequest | A request for a service to be performed Constraints: ereferral-requester-has-role |
![]() ![]() |
S | 0..1 | Identifier | Referral identifier |
![]() ![]() |
S | 1..1 | code | Referral status |
![]() ![]() |
S | 1..1 | code | Intent is always 'order' for referrals Fixed Value: order |
![]() ![]() |
S | 0..* | CodeableConcept | Type of referral service requested Binding: eReferral Service Category (extensible) |
![]() ![]() |
S | 0..1 | code | Urgency/priority of the referral Binding: eReferral Priority (required) |
![]() ![]() |
S | 0..1 | CodeableConcept | What is being requested/ordered |
![]() ![]() |
S | 1..1 | Reference(Patient) | Patient being referred |
![]() ![]() |
S | 0..1 | dateTime, Period, Timing | When the service is needed |
![]() ![]() |
S | 0..1 | dateTime | When the referral was authored |
![]() ![]() |
S | 1..1 | Reference(PractitionerRole) | Referring practitioner |
![]() ![]() |
S | 0..* | Reference(Organization | PractitionerRole) | Receiving facility or practitioner |
![]() ![]() |
S | 0..* | CodeableConcept | Reason for referral Binding: eReferral Reason (example) |
![]() ![]() |
S | 0..* | Reference(Condition | Observation) | Conditions or observations supporting referral |
![]() ![]() |
S | 0..* | Reference(Condition | Observation | Procedure | MedicationAdministration | Immunization) | Additional clinical information |
![]() ![]() |
S | 0..* | Annotation | Additional notes or instructions |
![]() ![]() |
S | 0..* | Reference(Provenance) | Referral audit trail |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| ServiceRequest.category | Base | extensible |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-service-category |
Not State | Unknown |
| ServiceRequest.priority | Base | required |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-priority |
Not State | Unknown |
| ServiceRequest.reasonCode | Base | example |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-reason |
Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| ereferral-requester-has-role | warning | ServiceRequest | The requester should reference a PractitionerRole when referring facility information is available |
requester.resolve().ofType(PractitionerRole).exists() implies requester.resolve().ofType(PractitionerRole).organization.exists()
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | ServiceRequest | A request for a service to be performed Constraints: prr-1, ereferral-requester-has-role | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Identifiers assigned to this order | ||||
![]() ![]() |
Σ | 0..* | canonical(ActivityDefinition | PlanDefinition) | Instantiates FHIR protocol or definition | ||||
![]() ![]() |
Σ | 0..* | uri | Instantiates external protocol or definition | ||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | ServiceRequest | MedicationRequest) | What request fulfills | ||||
![]() ![]() |
Σ | 0..* | Reference(ServiceRequest) | What request replaces | ||||
![]() ![]() |
SΣ | 0..1 | Identifier | Referral identifier | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Referral status Binding: RequestStatus (required): The status of a service order. | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Intent is always 'order' for referrals Binding: RequestIntent (required): The kind of service request. Fixed Value: order | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | Type of referral service requested Binding: eReferral Service Category (extensible) | ||||
![]() ![]() |
SΣ | 0..1 | code | Urgency/priority of the referral Binding: eReferral Priority (required) | ||||
![]() ![]() |
?!Σ | 0..1 | boolean | True if service/procedure should not be performed | ||||
![]() ![]() |
SΣ | 0..1 | CodeableConcept | What is being requested/ordered Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is preferred. | ||||
![]() ![]() |
ΣC | 0..* | CodeableConcept | Additional order information Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context. | ||||
![]() ![]() |
Σ | 0..1 | Service amount | |||||
![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() |
Range | |||||||
![]() ![]() |
SΣ | 1..1 | Reference(Patient) | Patient being referred | ||||
![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Encounter in which the request was created | ||||
![]() ![]() |
SΣ | 0..1 | When the service is needed | |||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
Timing | |||||||
![]() ![]() |
Σ | 0..1 | Preconditions for service Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc. | |||||
![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() |
SΣ | 0..1 | dateTime | When the referral was authored | ||||
![]() ![]() |
SΣ | 1..1 | Reference(PractitionerRole) | Referring practitioner | ||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Performer role Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc. | ||||
![]() ![]() |
SΣ | 0..* | Reference(Organization | PractitionerRole) | Receiving facility or practitioner | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Requested location Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered. | ||||
![]() ![]() |
Σ | 0..* | Reference(Location) | Requested location | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | Reason for referral Binding: eReferral Reason (example) | ||||
![]() ![]() |
SΣ | 0..* | Reference(Condition | Observation) | Conditions or observations supporting referral | ||||
![]() ![]() |
0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage | |||||
![]() ![]() |
S | 0..* | Reference(Condition | Observation | Procedure | MedicationAdministration | Immunization) | Additional clinical information | ||||
![]() ![]() |
Σ | 0..* | Reference(Specimen) | Procedure Samples | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Location on Body Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | ||||
![]() ![]() |
S | 0..* | Annotation | Additional notes or instructions | ||||
![]() ![]() |
Σ | 0..1 | string | Patient or consumer-oriented instructions | ||||
![]() ![]() |
S | 0..* | Reference(Provenance) | Referral audit trail | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ServiceRequest.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| ServiceRequest.status | Base | required | RequestStatus | 📍4.0.1 | FHIR Std. |
| ServiceRequest.intent | Base | required | RequestIntent | 📍4.0.1 | FHIR Std. |
| ServiceRequest.category | Base | extensible |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-service-category |
Not State | Unknown |
| ServiceRequest.priority | Base | required |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-priority |
Not State | Unknown |
| ServiceRequest.code | Base | example | Procedure Codes (SNOMED CT) | 📍4.0.1 | FHIR Std. |
| ServiceRequest.orderDetail | Base | example | Service Request Order Details Codes | 📍4.0.1 | FHIR Std. |
| ServiceRequest.asNeeded[x] | Base | example | SNOMED CT Medication As Needed Reason Codes | 📍4.0.1 | FHIR Std. |
| ServiceRequest.performerType | Base | example | Participant Roles | 📍4.0.1 | FHIR Std. |
| ServiceRequest.locationCode | Base | example | ServiceDeliveryLocationRoleType | 📦3.0.0 | THO v7.1 |
| ServiceRequest.reasonCode | Base | example |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-reason |
Not State | Unknown |
| ServiceRequest.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ServiceRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ServiceRequest | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ServiceRequest | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ereferral-requester-has-role | warning | ServiceRequest | The requester should reference a PractitionerRole when referring facility information is available |
requester.resolve().ofType(PractitionerRole).exists() implies requester.resolve().ofType(PractitionerRole).organization.exists()
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| prr-1 | error | ServiceRequest | orderDetail SHALL only be present if code is present |
orderDetail.empty() or code.exists()
|
This structure is derived from ServiceRequest
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | ServiceRequest | A request for a service to be performed Constraints: prr-1, ereferral-requester-has-role |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 0..1 | Identifier | Referral identifier |
![]() ![]() |
?!SΣ | 1..1 | code | Referral status Binding: RequestStatus (required): The status of a service order. |
![]() ![]() |
?!SΣ | 1..1 | code | Intent is always 'order' for referrals Binding: RequestIntent (required): The kind of service request. Fixed Value: order |
![]() ![]() |
SΣ | 0..* | CodeableConcept | Type of referral service requested Binding: eReferral Service Category (extensible) |
![]() ![]() |
SΣ | 0..1 | code | Urgency/priority of the referral Binding: eReferral Priority (required) |
![]() ![]() |
?!Σ | 0..1 | boolean | True if service/procedure should not be performed |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | What is being requested/ordered Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is preferred. |
![]() ![]() |
SΣ | 1..1 | Reference(Patient) | Patient being referred |
![]() ![]() |
SΣ | 0..1 | When the service is needed | |
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() ![]() |
Timing | |||
![]() ![]() |
SΣ | 0..1 | dateTime | When the referral was authored |
![]() ![]() |
SΣ | 1..1 | Reference(PractitionerRole) | Referring practitioner |
![]() ![]() |
SΣ | 0..* | Reference(Organization | PractitionerRole) | Receiving facility or practitioner |
![]() ![]() |
SΣ | 0..* | CodeableConcept | Reason for referral Binding: eReferral Reason (example) |
![]() ![]() |
SΣ | 0..* | Reference(Condition | Observation) | Conditions or observations supporting referral |
![]() ![]() |
S | 0..* | Reference(Condition | Observation | Procedure | MedicationAdministration | Immunization) | Additional clinical information |
![]() ![]() |
S | 0..* | Annotation | Additional notes or instructions |
![]() ![]() |
S | 0..* | Reference(Provenance) | Referral audit trail |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| ServiceRequest.status | Base | required | RequestStatus | 📍4.0.1 | FHIR Std. |
| ServiceRequest.intent | Base | required | RequestIntent | 📍4.0.1 | FHIR Std. |
| ServiceRequest.category | Base | extensible |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-service-category |
Not State | Unknown |
| ServiceRequest.priority | Base | required |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-priority |
Not State | Unknown |
| ServiceRequest.code | Base | example | Procedure Codes (SNOMED CT) | 📍4.0.1 | FHIR Std. |
| ServiceRequest.reasonCode | Base | example |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-reason |
Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ServiceRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ServiceRequest | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ServiceRequest | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ereferral-requester-has-role | warning | ServiceRequest | The requester should reference a PractitionerRole when referring facility information is available |
requester.resolve().ofType(PractitionerRole).exists() implies requester.resolve().ofType(PractitionerRole).organization.exists()
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| prr-1 | error | ServiceRequest | orderDetail SHALL only be present if code is present |
orderDetail.empty() or code.exists()
|
Differential View
This structure is derived from ServiceRequest
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | ServiceRequest | A request for a service to be performed Constraints: ereferral-requester-has-role |
![]() ![]() |
S | 0..1 | Identifier | Referral identifier |
![]() ![]() |
S | 1..1 | code | Referral status |
![]() ![]() |
S | 1..1 | code | Intent is always 'order' for referrals Fixed Value: order |
![]() ![]() |
S | 0..* | CodeableConcept | Type of referral service requested Binding: eReferral Service Category (extensible) |
![]() ![]() |
S | 0..1 | code | Urgency/priority of the referral Binding: eReferral Priority (required) |
![]() ![]() |
S | 0..1 | CodeableConcept | What is being requested/ordered |
![]() ![]() |
S | 1..1 | Reference(Patient) | Patient being referred |
![]() ![]() |
S | 0..1 | dateTime, Period, Timing | When the service is needed |
![]() ![]() |
S | 0..1 | dateTime | When the referral was authored |
![]() ![]() |
S | 1..1 | Reference(PractitionerRole) | Referring practitioner |
![]() ![]() |
S | 0..* | Reference(Organization | PractitionerRole) | Receiving facility or practitioner |
![]() ![]() |
S | 0..* | CodeableConcept | Reason for referral Binding: eReferral Reason (example) |
![]() ![]() |
S | 0..* | Reference(Condition | Observation) | Conditions or observations supporting referral |
![]() ![]() |
S | 0..* | Reference(Condition | Observation | Procedure | MedicationAdministration | Immunization) | Additional clinical information |
![]() ![]() |
S | 0..* | Annotation | Additional notes or instructions |
![]() ![]() |
S | 0..* | Reference(Provenance) | Referral audit trail |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| ServiceRequest.category | Base | extensible |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-service-category |
Not State | Unknown |
| ServiceRequest.priority | Base | required |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-priority |
Not State | Unknown |
| ServiceRequest.reasonCode | Base | example |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-reason |
Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| ereferral-requester-has-role | warning | ServiceRequest | The requester should reference a PractitionerRole when referring facility information is available |
requester.resolve().ofType(PractitionerRole).exists() implies requester.resolve().ofType(PractitionerRole).organization.exists()
|
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | ServiceRequest | A request for a service to be performed Constraints: prr-1, ereferral-requester-has-role | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Identifiers assigned to this order | ||||
![]() ![]() |
Σ | 0..* | canonical(ActivityDefinition | PlanDefinition) | Instantiates FHIR protocol or definition | ||||
![]() ![]() |
Σ | 0..* | uri | Instantiates external protocol or definition | ||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | ServiceRequest | MedicationRequest) | What request fulfills | ||||
![]() ![]() |
Σ | 0..* | Reference(ServiceRequest) | What request replaces | ||||
![]() ![]() |
SΣ | 0..1 | Identifier | Referral identifier | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Referral status Binding: RequestStatus (required): The status of a service order. | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Intent is always 'order' for referrals Binding: RequestIntent (required): The kind of service request. Fixed Value: order | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | Type of referral service requested Binding: eReferral Service Category (extensible) | ||||
![]() ![]() |
SΣ | 0..1 | code | Urgency/priority of the referral Binding: eReferral Priority (required) | ||||
![]() ![]() |
?!Σ | 0..1 | boolean | True if service/procedure should not be performed | ||||
![]() ![]() |
SΣ | 0..1 | CodeableConcept | What is being requested/ordered Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is preferred. | ||||
![]() ![]() |
ΣC | 0..* | CodeableConcept | Additional order information Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context. | ||||
![]() ![]() |
Σ | 0..1 | Service amount | |||||
![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() |
Range | |||||||
![]() ![]() |
SΣ | 1..1 | Reference(Patient) | Patient being referred | ||||
![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Encounter in which the request was created | ||||
![]() ![]() |
SΣ | 0..1 | When the service is needed | |||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
Timing | |||||||
![]() ![]() |
Σ | 0..1 | Preconditions for service Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc. | |||||
![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() |
SΣ | 0..1 | dateTime | When the referral was authored | ||||
![]() ![]() |
SΣ | 1..1 | Reference(PractitionerRole) | Referring practitioner | ||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Performer role Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc. | ||||
![]() ![]() |
SΣ | 0..* | Reference(Organization | PractitionerRole) | Receiving facility or practitioner | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Requested location Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered. | ||||
![]() ![]() |
Σ | 0..* | Reference(Location) | Requested location | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | Reason for referral Binding: eReferral Reason (example) | ||||
![]() ![]() |
SΣ | 0..* | Reference(Condition | Observation) | Conditions or observations supporting referral | ||||
![]() ![]() |
0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage | |||||
![]() ![]() |
S | 0..* | Reference(Condition | Observation | Procedure | MedicationAdministration | Immunization) | Additional clinical information | ||||
![]() ![]() |
Σ | 0..* | Reference(Specimen) | Procedure Samples | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Location on Body Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | ||||
![]() ![]() |
S | 0..* | Annotation | Additional notes or instructions | ||||
![]() ![]() |
Σ | 0..1 | string | Patient or consumer-oriented instructions | ||||
![]() ![]() |
S | 0..* | Reference(Provenance) | Referral audit trail | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ServiceRequest.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| ServiceRequest.status | Base | required | RequestStatus | 📍4.0.1 | FHIR Std. |
| ServiceRequest.intent | Base | required | RequestIntent | 📍4.0.1 | FHIR Std. |
| ServiceRequest.category | Base | extensible |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-service-category |
Not State | Unknown |
| ServiceRequest.priority | Base | required |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-priority |
Not State | Unknown |
| ServiceRequest.code | Base | example | Procedure Codes (SNOMED CT) | 📍4.0.1 | FHIR Std. |
| ServiceRequest.orderDetail | Base | example | Service Request Order Details Codes | 📍4.0.1 | FHIR Std. |
| ServiceRequest.asNeeded[x] | Base | example | SNOMED CT Medication As Needed Reason Codes | 📍4.0.1 | FHIR Std. |
| ServiceRequest.performerType | Base | example | Participant Roles | 📍4.0.1 | FHIR Std. |
| ServiceRequest.locationCode | Base | example | ServiceDeliveryLocationRoleType | 📦3.0.0 | THO v7.1 |
| ServiceRequest.reasonCode | Base | example |
urn://example.com/ph-ereferral/fhir/ValueSet/ereferral-reason |
Not State | Unknown |
| ServiceRequest.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ServiceRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ServiceRequest | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ServiceRequest | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ereferral-requester-has-role | warning | ServiceRequest | The requester should reference a PractitionerRole when referring facility information is available |
requester.resolve().ofType(PractitionerRole).exists() implies requester.resolve().ofType(PractitionerRole).organization.exists()
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| prr-1 | error | ServiceRequest | orderDetail SHALL only be present if code is present |
orderDetail.empty() or code.exists()
|
This structure is derived from ServiceRequest
Other representations of profile: CSV, Excel, Schematron