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
| Official URL: https://eswatinihie.com/fhir/StructureDefinition/SzLabSpecimen | Version: 1.0.0 | |||
| Active as of 2026-08-21 | Computable Name: SzLabSpecimen | |||
The Eswatini Laboratory Specimen Profile defines the constraints and usage of the HL7® FHIR® Specimen resource for representing biological specimens collected for laboratory investigation within the Eswatini National Digital Health Ecosystem. It provides a standardized and interoperable approach for documenting specimen collection, handling, and identification to support accurate laboratory testing and reliable diagnostic workflows. This profile ensures that specimen information is captured and exchanged in a consistent, traceable, and nationally aligned manner, strengthening the integrity of laboratory results and patient care.
This profile SHALL be used by systems that create, manage, or exchange laboratory specimen information, including:
Laboratory Information Management Systems (LIMS) Electronic Medical Record (EMR) systems Diagnostic and referral systems National health information exchange (HIE) services
The profile applies to specimens collected for laboratory testing, including:
Blood, urine, stool, and other body fluids Tissue and swab specimens Samples collected in facilities or community settings Specimens collected for routine, follow‑up, or programme‑specific testing
Each Specimen represents a physical sample obtained from a patient for diagnostic purposes.
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: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Specimen | Sample for analysis | |
![]() ![]() |
Σ | 1..1 | id | Logical id of this artifact |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error Binding: SpecimenStatus (required): Codes providing the status/availability of a specimen. |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Type of specimen being collected Binding: hl7VS-specimenType (preferred) |
![]() ![]() |
Σ | 0..1 | Reference(Eswatini Patient Profile) | Patient associated with the specimen being collected |
![]() ![]() |
1..1 | BackboneElement | Specimen collection information | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Eswatini Practitioner Profile) | Specimen collector |
![]() ![]() ![]() |
SΣ | 1..1 | dateTime | Specimen collection date |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Specimen.status | Base | required | SpecimenStatus | 📍4.0.1 | FHIR Std. |
| Specimen.type | Base | preferred | hl7VS-specimenType | 📦3.0.0 | THO v7.3 |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Specimen | 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 | Specimen | 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 | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Specimen | 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()
|
This structure is derived from Specimen
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Specimen | Sample for analysis | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
S | 1..1 | CodeableConcept | Type of specimen being collected Binding: hl7VS-specimenType (preferred) |
![]() ![]() |
0..1 | Reference(Eswatini Patient Profile) | Patient associated with the specimen being collected | |
![]() ![]() |
1..1 | BackboneElement | Specimen collection information | |
![]() ![]() ![]() |
S | 1..1 | Reference(Eswatini Practitioner Profile) | Specimen collector |
![]() ![]() ![]() |
S | 1..1 | dateTime | Specimen collection date |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Specimen.type | Base | preferred | hl7VS-specimenType | 📦3.0.0 | THO v7.3 |
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Specimen | Sample for analysis | |||||
![]() ![]() |
Σ | 1..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 | External Identifier | ||||
![]() ![]() |
Σ | 0..1 | Identifier | Identifier assigned by the lab | ||||
![]() ![]() |
?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error Binding: SpecimenStatus (required): Codes providing the status/availability of a specimen. | ||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Type of specimen being collected Binding: hl7VS-specimenType (preferred) | ||||
![]() ![]() |
Σ | 0..1 | Reference(Eswatini Patient Profile) | Patient associated with the specimen being collected | ||||
![]() ![]() |
Σ | 0..1 | dateTime | The time when specimen was received for processing | ||||
![]() ![]() |
0..* | Reference(Specimen) | Specimen from which this specimen originated | |||||
![]() ![]() |
0..* | Reference(ServiceRequest) | Why the specimen was collected | |||||
![]() ![]() |
1..1 | BackboneElement | Specimen collection information | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Eswatini Practitioner Profile) | Specimen collector | ||||
![]() ![]() ![]() |
SΣ | 1..1 | dateTime | Specimen collection date | ||||
![]() ![]() ![]() |
Σ | 0..1 | Duration | How long it took to collect specimen | ||||
![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | The quantity of specimen collected | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Technique used to perform collection Binding: FHIRSpecimenCollectionMethod (example): The technique that is used to perform the procedure. | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Anatomical collection site Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | |||||
![]() ![]() ![]() |
Σ | 0..1 | Whether or how long patient abstained from food and/or drink Binding: hl7VS-relevantClincialInformation (extensible): Codes describing the fasting status of the patient. | |||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
Duration | |||||||
![]() ![]() |
0..* | BackboneElement | Processing and processing step details | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
0..1 | string | Textual description of procedure | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Indicates the treatment step applied to the specimen Binding: SpecimenProcessingProcedure (example): Type indicating the technique used to process the specimen. | |||||
![]() ![]() ![]() |
0..* | Reference(Substance) | Material used in the processing step | |||||
![]() ![]() ![]() |
0..1 | Date and time of specimen processing | ||||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Period | |||||||
![]() ![]() |
0..* | BackboneElement | Direct container of specimen (tube/slide, etc.) | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | Id for the container | ||||
![]() ![]() ![]() |
0..1 | string | Textual description of the container | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Kind of container directly associated with specimen Binding: SpecimenContainerType (example): Type of specimen container. | |||||
![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Container volume or size | |||||
![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Quantity of specimen within container | |||||
![]() ![]() ![]() |
0..1 | Additive associated with container Binding: hl7VS-additivePreservative (example): Substance added to specimen container. | ||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
Reference(Substance) | |||||||
![]() ![]() |
Σ | 0..* | CodeableConcept | State of the specimen Binding: hl7VS-specimenCondition (extensible): Codes describing the state of the specimen. | ||||
![]() ![]() |
0..* | Annotation | Comments | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Specimen.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Specimen.status | Base | required | SpecimenStatus | 📍4.0.1 | FHIR Std. |
| Specimen.type | Base | preferred | hl7VS-specimenType | 📦3.0.0 | THO v7.3 |
| Specimen.collection.method | Base | example | FHIR Specimen Collection Method | 📍4.0.1 | FHIR Std. |
| Specimen.collection.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| Specimen.collection.fastingStatus[x] | Base | extensible | hl7VS-relevantClincialInformation | 📦3.0.0 | THO v7.3 |
| Specimen.processing.procedure | Base | example | Specimen processing procedure | 📍4.0.1 | FHIR Std. |
| Specimen.container.type | Base | example | Specimen Container Type | 📍4.0.1 | FHIR Std. |
| Specimen.container.additive[x] | Base | example | hl7VS-additivePreservative | 📦3.0.0 | THO v7.3 |
| Specimen.condition | Base | extensible | hl7VS-specimenCondition | 📦3.0.0 | THO v7.3 |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Specimen | 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 | Specimen | 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 | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Specimen | 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()
|
This structure is derived from Specimen
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Specimen | Sample for analysis | |
![]() ![]() |
Σ | 1..1 | id | Logical id of this artifact |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error Binding: SpecimenStatus (required): Codes providing the status/availability of a specimen. |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Type of specimen being collected Binding: hl7VS-specimenType (preferred) |
![]() ![]() |
Σ | 0..1 | Reference(Eswatini Patient Profile) | Patient associated with the specimen being collected |
![]() ![]() |
1..1 | BackboneElement | Specimen collection information | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Eswatini Practitioner Profile) | Specimen collector |
![]() ![]() ![]() |
SΣ | 1..1 | dateTime | Specimen collection date |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Specimen.status | Base | required | SpecimenStatus | 📍4.0.1 | FHIR Std. |
| Specimen.type | Base | preferred | hl7VS-specimenType | 📦3.0.0 | THO v7.3 |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Specimen | 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 | Specimen | 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 | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Specimen | 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()
|
Differential View
This structure is derived from Specimen
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Specimen | Sample for analysis | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
S | 1..1 | CodeableConcept | Type of specimen being collected Binding: hl7VS-specimenType (preferred) |
![]() ![]() |
0..1 | Reference(Eswatini Patient Profile) | Patient associated with the specimen being collected | |
![]() ![]() |
1..1 | BackboneElement | Specimen collection information | |
![]() ![]() ![]() |
S | 1..1 | Reference(Eswatini Practitioner Profile) | Specimen collector |
![]() ![]() ![]() |
S | 1..1 | dateTime | Specimen collection date |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Specimen.type | Base | preferred | hl7VS-specimenType | 📦3.0.0 | THO v7.3 |
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Specimen | Sample for analysis | |||||
![]() ![]() |
Σ | 1..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 | External Identifier | ||||
![]() ![]() |
Σ | 0..1 | Identifier | Identifier assigned by the lab | ||||
![]() ![]() |
?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error Binding: SpecimenStatus (required): Codes providing the status/availability of a specimen. | ||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Type of specimen being collected Binding: hl7VS-specimenType (preferred) | ||||
![]() ![]() |
Σ | 0..1 | Reference(Eswatini Patient Profile) | Patient associated with the specimen being collected | ||||
![]() ![]() |
Σ | 0..1 | dateTime | The time when specimen was received for processing | ||||
![]() ![]() |
0..* | Reference(Specimen) | Specimen from which this specimen originated | |||||
![]() ![]() |
0..* | Reference(ServiceRequest) | Why the specimen was collected | |||||
![]() ![]() |
1..1 | BackboneElement | Specimen collection information | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Eswatini Practitioner Profile) | Specimen collector | ||||
![]() ![]() ![]() |
SΣ | 1..1 | dateTime | Specimen collection date | ||||
![]() ![]() ![]() |
Σ | 0..1 | Duration | How long it took to collect specimen | ||||
![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | The quantity of specimen collected | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Technique used to perform collection Binding: FHIRSpecimenCollectionMethod (example): The technique that is used to perform the procedure. | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Anatomical collection site Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | |||||
![]() ![]() ![]() |
Σ | 0..1 | Whether or how long patient abstained from food and/or drink Binding: hl7VS-relevantClincialInformation (extensible): Codes describing the fasting status of the patient. | |||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
Duration | |||||||
![]() ![]() |
0..* | BackboneElement | Processing and processing step details | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
0..1 | string | Textual description of procedure | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Indicates the treatment step applied to the specimen Binding: SpecimenProcessingProcedure (example): Type indicating the technique used to process the specimen. | |||||
![]() ![]() ![]() |
0..* | Reference(Substance) | Material used in the processing step | |||||
![]() ![]() ![]() |
0..1 | Date and time of specimen processing | ||||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Period | |||||||
![]() ![]() |
0..* | BackboneElement | Direct container of specimen (tube/slide, etc.) | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | Id for the container | ||||
![]() ![]() ![]() |
0..1 | string | Textual description of the container | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Kind of container directly associated with specimen Binding: SpecimenContainerType (example): Type of specimen container. | |||||
![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Container volume or size | |||||
![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Quantity of specimen within container | |||||
![]() ![]() ![]() |
0..1 | Additive associated with container Binding: hl7VS-additivePreservative (example): Substance added to specimen container. | ||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
Reference(Substance) | |||||||
![]() ![]() |
Σ | 0..* | CodeableConcept | State of the specimen Binding: hl7VS-specimenCondition (extensible): Codes describing the state of the specimen. | ||||
![]() ![]() |
0..* | Annotation | Comments | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Specimen.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Specimen.status | Base | required | SpecimenStatus | 📍4.0.1 | FHIR Std. |
| Specimen.type | Base | preferred | hl7VS-specimenType | 📦3.0.0 | THO v7.3 |
| Specimen.collection.method | Base | example | FHIR Specimen Collection Method | 📍4.0.1 | FHIR Std. |
| Specimen.collection.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| Specimen.collection.fastingStatus[x] | Base | extensible | hl7VS-relevantClincialInformation | 📦3.0.0 | THO v7.3 |
| Specimen.processing.procedure | Base | example | Specimen processing procedure | 📍4.0.1 | FHIR Std. |
| Specimen.container.type | Base | example | Specimen Container Type | 📍4.0.1 | FHIR Std. |
| Specimen.container.additive[x] | Base | example | hl7VS-additivePreservative | 📦3.0.0 | THO v7.3 |
| Specimen.condition | Base | extensible | hl7VS-specimenCondition | 📦3.0.0 | THO v7.3 |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Specimen | 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 | Specimen | 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 | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Specimen | 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()
|
This structure is derived from Specimen
Other representations of profile: CSV, Excel, Schematron
The profile constrains the base Specimen resource to ensure capture of essential specimen information, including:
Specimen identifier to uniquely identify the sample Specimen type describing the nature of the collected material Subject (Patient) from whom the specimen was collected Collection details, including date and time of collection Specimen status, representing availability or suitability for testing
These elements ensure that specimens can be correctly matched to laboratory requests, results, and patients.
This profile is designed to:
Conform to HL7 FHIR R4 Specimen semantics Support interoperability within the Eswatini National HIE Enable consistent exchange of specimen information across laboratories and facilities Support national diagnostic, surveillance, and reporting workflows
By standardizing specimen data, the profile reduces errors, improves diagnostic accuracy, and enhances interoperability across the laboratory network.
Systems claiming conformance to this profile SHALL:
Populate all required and Must Support elements defined by the profile Ensure specimen identifiers and collection details are accurate and complete Maintain alignment between specimen data, laboratory requests, and results
Optional elements from the base Specimen resource may be used where relevant, provided they do not conflict with the constraints defined in this profile.
The Eswatini Laboratory Specimen Profile supports extensibility through standard FHIR mechanisms. Additional specimen‑related details—such as transport conditions, rejection reasons, or programme‑specific attributes—may be introduced using FHIR extensions, subject to national governance and approval.
The Eswatini Laboratory Specimen Profile provides a standardized and interoperable representation of laboratory specimen data, forming a critical link between laboratory requests and results. Adoption of this profile strengthens diagnostic workflows, improves data quality, and enhances interoperability across laboratories and healthcare providers throughout the Kingdom of Eswatini.