Eswatini HL7 FHIR Implementation Guide
1.0.0 - draft Eswatini

Eswatini HL7 FHIR Implementation Guide - Local Development build (v1.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Eswatini Lab Request Profile

Official URL: https://eswatinihie.com/fhir/StructureDefinition/SzLabRequest Version: 1.0.0
Active as of 2026-08-21 Computable Name: SzLabRequest

The Eswatini Laboratory Request Profile defines the constraints and usage of the HL7 FHIR ServiceRequest resource for representing requests for laboratory investigations within the Eswatini National Digital Health Ecosystem. It provides a standardized and interoperable mechanism for ordering, tracking, and managing laboratory tests requested as part of patient care. This profile ensures that laboratory requests are captured and exchanged in a consistent, structured, and nationally aligned manner, supporting clinical care, diagnostic workflows, and reporting.

Scope and Usage

This profile SHALL be used by systems that create, manage, or exchange laboratory test requests, including:

Electronic Medical Record (EMR) systems Laboratory Information Systems (LIS) Facility-based ordering and diagnostic systems National health information exchange (HIE) services

The profile applies to requests for a wide range of laboratory services, including:

Routine diagnostic laboratory tests Monitoring and follow-up investigations Screening and preventive tests Programme-specific laboratory testing (e.g. HIV, TB, NCDs)

A laboratory request represents the intent to perform one or more laboratory tests, regardless of where the tests are ultimately processed.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: prr-1
... id Σ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... intent ?!Σ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of service request.
Required Pattern: order
... category Σ 1..1 CodeableConcept Type of service request
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
.... coding Σ 1..1 Coding Code defined by a terminology system
..... system Σ 0..1 uri Identity of the terminology system
Required Pattern: http://snomed.info/sct
..... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: 108252007
..... display Σ 0..1 string Representation defined by the system
Required Pattern: Laboratory procedure
... doNotPerform ?!Σ 0..1 boolean True if service/procedure should not be performed
... code Σ 1..1 CodeableConcept Code identifying the lab test being requested
Binding: Value Set: Local Test Codes (preferred)
... subject Σ 1..1 Reference(Eswatini Patient Profile) Patient's information
... encounter Σ 1..1 Reference(Eswatini Encounter Profile) Encounter information
... occurrence[x] Σ 0..1 dateTime When service should occur
... authoredOn Σ 1..1 dateTime Lab request date
... requester Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) Lab test requestor
... specimen SΣ 1..1 Reference(Eswatini Lab Test Specimen Profile) Lab test specimen

doco Documentation for this format

Terminology Bindings

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 example Service Request Category Codes 📍4.0.1 FHIR Std.
ServiceRequest.code Base preferred Value Set: Local Test Codes 📦1.0.0 This IG

Constraints

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())
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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest 0..* ServiceRequest A request for a service to be performed
... id 1..1 id Logical id of this artifact
... intent 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Required Pattern: order
... category 1..1 CodeableConcept Type of service request
.... coding 1..1 Coding Code defined by a terminology system
..... system 0..1 uri Identity of the terminology system
Required Pattern: http://snomed.info/sct
..... code 0..1 code Symbol in syntax defined by the system
Required Pattern: 108252007
..... display 0..1 string Representation defined by the system
Required Pattern: Laboratory procedure
... subject 1..1 Reference(Eswatini Patient Profile) Patient's information
... encounter 1..1 Reference(Eswatini Encounter Profile) Encounter information
... occurrence[x] 0..1 dateTime When service should occur
... authoredOn 1..1 dateTime Lab request date
... requester 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) Lab test requestor
... specimen S 1..1 Reference(Eswatini Lab Test Specimen Profile) Lab test specimen

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
ServiceRequest.code Base preferred Value Set: Local Test Codes 📦1.0.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: prr-1
... id Σ 1..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 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
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Identifiers assigned to this order
... instantiatesCanonical Σ 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(CarePlan | ServiceRequest | MedicationRequest) What request fulfills
... replaces Σ 0..* Reference(ServiceRequest) What request replaces
... requisition Σ 0..1 Identifier Composite Request ID
... status ?!Σ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of a service order.
... intent ?!Σ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of service request.
Required Pattern: order
... category Σ 1..1 CodeableConcept Type of service request
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 0..1 uri Identity of the terminology system
Required Pattern: http://snomed.info/sct
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: 108252007
..... display Σ 0..1 string Representation defined by the system
Required Pattern: Laboratory procedure
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
... doNotPerform ?!Σ 0..1 boolean True if service/procedure should not be performed
... code Σ 1..1 CodeableConcept Code identifying the lab test being requested
Binding: Value Set: Local Test Codes (preferred)
... orderDetail ΣC 0..* CodeableConcept Additional order information
Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context.
... quantity[x] Σ 0..1 Service amount
.... quantityQuantity Quantity
.... quantityRatio Ratio
.... quantityRange Range
... subject Σ 1..1 Reference(Eswatini Patient Profile) Patient's information
... encounter Σ 1..1 Reference(Eswatini Encounter Profile) Encounter information
... occurrence[x] Σ 0..1 dateTime When service should occur
... asNeeded[x] Σ 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.
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept
... authoredOn Σ 1..1 dateTime Lab request date
... requester Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) Lab test requestor
... performerType Σ 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.
... performer Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson) Requested performer
... locationCode Σ 0..* CodeableConcept Requested location
Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.
... locationReference Σ 0..* Reference(Location) Requested location
... reasonCode Σ 0..* CodeableConcept Explanation/Justification for procedure or service
Binding: ProcedureReasonCodes (example): Diagnosis or problem codes justifying the reason for requesting the service investigation.
... reasonReference Σ 0..* Reference(Condition | Observation | DiagnosticReport | DocumentReference) Explanation/Justification for service or service
... insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
... supportingInfo 0..* Reference(Resource) Additional clinical information
... specimen SΣ 1..1 Reference(Eswatini Lab Test Specimen Profile) Lab test specimen
... bodySite Σ 0..* CodeableConcept Location on Body
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... note 0..* Annotation Comments
... patientInstruction Σ 0..1 string Patient or consumer-oriented instructions
... relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

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 example Service Request Category Codes 📍4.0.1 FHIR Std.
ServiceRequest.priority Base required Request priority 📍4.0.1 FHIR Std.
ServiceRequest.code Base preferred Value Set: Local Test Codes 📦1.0.0 This IG
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.3
ServiceRequest.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
ServiceRequest.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.

Constraints

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())
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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: prr-1
... id Σ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... intent ?!Σ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of service request.
Required Pattern: order
... category Σ 1..1 CodeableConcept Type of service request
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
.... coding Σ 1..1 Coding Code defined by a terminology system
..... system Σ 0..1 uri Identity of the terminology system
Required Pattern: http://snomed.info/sct
..... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: 108252007
..... display Σ 0..1 string Representation defined by the system
Required Pattern: Laboratory procedure
... doNotPerform ?!Σ 0..1 boolean True if service/procedure should not be performed
... code Σ 1..1 CodeableConcept Code identifying the lab test being requested
Binding: Value Set: Local Test Codes (preferred)
... subject Σ 1..1 Reference(Eswatini Patient Profile) Patient's information
... encounter Σ 1..1 Reference(Eswatini Encounter Profile) Encounter information
... occurrence[x] Σ 0..1 dateTime When service should occur
... authoredOn Σ 1..1 dateTime Lab request date
... requester Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) Lab test requestor
... specimen SΣ 1..1 Reference(Eswatini Lab Test Specimen Profile) Lab test specimen

doco Documentation for this format

Terminology Bindings

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 example Service Request Category Codes 📍4.0.1 FHIR Std.
ServiceRequest.code Base preferred Value Set: Local Test Codes 📦1.0.0 This IG

Constraints

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())
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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest 0..* ServiceRequest A request for a service to be performed
... id 1..1 id Logical id of this artifact
... intent 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Required Pattern: order
... category 1..1 CodeableConcept Type of service request
.... coding 1..1 Coding Code defined by a terminology system
..... system 0..1 uri Identity of the terminology system
Required Pattern: http://snomed.info/sct
..... code 0..1 code Symbol in syntax defined by the system
Required Pattern: 108252007
..... display 0..1 string Representation defined by the system
Required Pattern: Laboratory procedure
... subject 1..1 Reference(Eswatini Patient Profile) Patient's information
... encounter 1..1 Reference(Eswatini Encounter Profile) Encounter information
... occurrence[x] 0..1 dateTime When service should occur
... authoredOn 1..1 dateTime Lab request date
... requester 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) Lab test requestor
... specimen S 1..1 Reference(Eswatini Lab Test Specimen Profile) Lab test specimen

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
ServiceRequest.code Base preferred Value Set: Local Test Codes 📦1.0.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: prr-1
... id Σ 1..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 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
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Identifiers assigned to this order
... instantiatesCanonical Σ 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(CarePlan | ServiceRequest | MedicationRequest) What request fulfills
... replaces Σ 0..* Reference(ServiceRequest) What request replaces
... requisition Σ 0..1 Identifier Composite Request ID
... status ?!Σ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of a service order.
... intent ?!Σ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of service request.
Required Pattern: order
... category Σ 1..1 CodeableConcept Type of service request
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 0..1 uri Identity of the terminology system
Required Pattern: http://snomed.info/sct
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: 108252007
..... display Σ 0..1 string Representation defined by the system
Required Pattern: Laboratory procedure
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
... doNotPerform ?!Σ 0..1 boolean True if service/procedure should not be performed
... code Σ 1..1 CodeableConcept Code identifying the lab test being requested
Binding: Value Set: Local Test Codes (preferred)
... orderDetail ΣC 0..* CodeableConcept Additional order information
Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context.
... quantity[x] Σ 0..1 Service amount
.... quantityQuantity Quantity
.... quantityRatio Ratio
.... quantityRange Range
... subject Σ 1..1 Reference(Eswatini Patient Profile) Patient's information
... encounter Σ 1..1 Reference(Eswatini Encounter Profile) Encounter information
... occurrence[x] Σ 0..1 dateTime When service should occur
... asNeeded[x] Σ 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.
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept
... authoredOn Σ 1..1 dateTime Lab request date
... requester Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) Lab test requestor
... performerType Σ 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.
... performer Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson) Requested performer
... locationCode Σ 0..* CodeableConcept Requested location
Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.
... locationReference Σ 0..* Reference(Location) Requested location
... reasonCode Σ 0..* CodeableConcept Explanation/Justification for procedure or service
Binding: ProcedureReasonCodes (example): Diagnosis or problem codes justifying the reason for requesting the service investigation.
... reasonReference Σ 0..* Reference(Condition | Observation | DiagnosticReport | DocumentReference) Explanation/Justification for service or service
... insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
... supportingInfo 0..* Reference(Resource) Additional clinical information
... specimen SΣ 1..1 Reference(Eswatini Lab Test Specimen Profile) Lab test specimen
... bodySite Σ 0..* CodeableConcept Location on Body
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... note 0..* Annotation Comments
... patientInstruction Σ 0..1 string Patient or consumer-oriented instructions
... relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

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 example Service Request Category Codes 📍4.0.1 FHIR Std.
ServiceRequest.priority Base required Request priority 📍4.0.1 FHIR Std.
ServiceRequest.code Base preferred Value Set: Local Test Codes 📦1.0.0 This IG
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.3
ServiceRequest.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
ServiceRequest.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.

Constraints

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())
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()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Core Data Requirements

The profile constrains the base ServiceRequest resource to ensure capture of essential laboratory ordering information, including:

Request status to reflect the lifecycle of the laboratory order (e.g. active, completed, cancelled) Intent, indicating that the request is an order for service Requested laboratory service or test Subject (Patient) for whom the test is requested Requester, identifying the practitioner or system initiating the request Authored date, indicating when the request was made

These elements ensure laboratory requests are actionable, traceable, and suitable for clinical and operational use.

Interoperability and National Alignment

This profile is designed to:

Conform to HL7 FHIR R4 ServiceRequest semantics Support interoperability within the Eswatini National HIE Enable integration between clinical systems and laboratory systems Support national diagnostics reporting, monitoring, and evaluation

By standardizing laboratory order data, the profile enables reliable exchange of requests across facilities, laboratories, and systems.

Data Quality and Conformance

Systems claiming conformance to this profile SHALL:

Populate all required and Must Support elements defined by the profile Maintain accurate request status throughout the laboratory order lifecycle Ensure laboratory requests reflect real clinical ordering workflows

Optional elements from the base ServiceRequest resource may be used where relevant, provided they do not conflict with the constraints defined in this profile.

Extensibility

The Eswatini Laboratory Request Profile supports extensibility using standard FHIR mechanisms. Additional laboratory-order-specific details—such as specimen information, priority indicators, or program-specific attributes—may be introduced using FHIR extensions, subject to national governance and approval.

Summary

The Eswatini Laboratory Request Profile provides a standardized and interoperable representation of laboratory test requests, supporting efficient diagnostic workflows, improved care coordination, and reliable exchange of laboratory orders across the health system. Adoption of this profile strengthens diagnostic services, improves data quality, and enhances interoperability throughout the Kingdom of Eswatini.