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/SzCondition | Version: 1.0.0 | |||
| Active as of 2026-08-21 | Computable Name: SzCondition | |||
The Eswatini Condition Profile defines the constraints and usage of the HL7 FHIR Condition resource for representing health conditions, diagnoses, and clinical problems within the Eswatini National Digital Health Ecosystem. It provides a standardized and interoperable way to record, exchange, and manage information about a patient’s health conditions across the continuum of care. This profile ensures that condition data is captured in a consistent, clinically meaningful, and nationally aligned manner, supporting patient management, continuity of care, reporting, and analytics.
This profile SHALL be used by systems that record or exchange patient condition information, including:
Electronic Medical Record (EMR) systems Hospital and facility-based clinical systems Referral and care coordination platforms Public health and disease surveillance systems National health information exchange (HIE) services
The profile applies to a broad range of clinical conditions, including:
Active and historical diagnoses Chronic and long-term conditions Acute illnesses and problems Conditions identified during encounters or through clinical assessment
Conditions may be recorded at different points in time and updated as clinical understanding evolves.
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..* | Condition | Detailed information about conditions, problems or diagnoses Constraints: con-3, con-4, con-5 |
![]() ![]() |
Σ | 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 |
![]() ![]() |
?!ΣC | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis. |
![]() ![]() |
?!ΣC | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis. |
![]() ![]() |
S | 1..1 | CodeableConcept | problem-list-item | encounter-diagnosis Binding: ConditionCategoryCodes (extensible): A category assigned to the condition. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Condition Identification Binding: Condition/Problem/DiagnosisCodes (example): Identification of the condition or diagnosis. |
![]() ![]() |
Σ | 1..1 | Reference(Patient | Group) | Who has the condition? |
![]() ![]() |
Σ | 1..1 | Reference(Encounter) | Encounter created as part of |
![]() ![]() |
Σ | 1..1 | dateTime | Estimated or actual date, date-time, or age Slice: Unordered, Closed by type:$this |
![]() ![]() ![]() |
Σ | 1..1 | dateTime | Diagnosis date |
![]() ![]() |
C | 0..1 | dateTime | When in resolution/remission |
![]() ![]() |
Σ | 1..1 | dateTime | Date record was first recorded |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Condition.clinicalStatus | Base | required | Condition Clinical Status Codes | 📍4.0.1 | FHIR Std. |
| Condition.verificationStatus | Base | required | ConditionVerificationStatus | 📍4.0.1 | FHIR Std. |
| Condition.category | Base | extensible | Condition Category Codes | 📍4.0.1 | FHIR Std. |
| Condition.code | Base | example | Condition/Problem/Diagnosis Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| con-3 | best practice | Condition | Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item |
clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
|
| con-4 | error | Condition | If condition is abated, then clinicalStatus must be either inactive, resolved, or remission |
abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
|
| con-5 | error | Condition | Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error |
verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
|
| dom-2 | error | Condition | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Condition | 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 | Condition | 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 | Condition | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Condition | 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 Condition
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Condition | Detailed information about conditions, problems or diagnoses | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
S | 1..1 | CodeableConcept | problem-list-item | encounter-diagnosis |
![]() ![]() |
1..1 | CodeableConcept | Condition Identification | |
![]() ![]() |
1..1 | Reference(Encounter) | Encounter created as part of | |
![]() ![]() |
1..1 | dateTime | Estimated or actual date, date-time, or age Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() |
1..1 | dateTime | Diagnosis date | |
![]() ![]() |
0..1 | dateTime | When in resolution/remission | |
![]() ![]() |
1..1 | dateTime | Date record was first recorded | |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Condition | Detailed information about conditions, problems or diagnoses Constraints: con-3, con-4, con-5 | ||||
![]() ![]() |
Σ | 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 Ids for this condition | ||||
![]() ![]() |
?!ΣC | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis. | ||||
![]() ![]() |
?!ΣC | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis. | ||||
![]() ![]() |
S | 1..1 | CodeableConcept | problem-list-item | encounter-diagnosis Binding: ConditionCategoryCodes (extensible): A category assigned to the condition. | ||||
![]() ![]() |
0..1 | CodeableConcept | Subjective severity of condition Binding: Condition/DiagnosisSeverity (preferred): A subjective assessment of the severity of the condition as evaluated by the clinician. | |||||
![]() ![]() |
Σ | 1..1 | CodeableConcept | Condition Identification Binding: Condition/Problem/DiagnosisCodes (example): Identification of the condition or diagnosis. | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Anatomical location, if relevant Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | ||||
![]() ![]() |
Σ | 1..1 | Reference(Patient | Group) | Who has the condition? | ||||
![]() ![]() |
Σ | 1..1 | Reference(Encounter) | Encounter created as part of | ||||
![]() ![]() |
Σ | 1..1 | dateTime | Estimated or actual date, date-time, or age Slice: Unordered, Closed by type:$this | ||||
![]() ![]() ![]() |
Σ | 1..1 | dateTime | Diagnosis date | ||||
![]() ![]() |
C | 0..1 | dateTime | When in resolution/remission | ||||
![]() ![]() |
Σ | 1..1 | dateTime | Date record was first recorded | ||||
![]() ![]() |
Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who recorded the condition | ||||
![]() ![]() |
Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Person who asserts this condition | ||||
![]() ![]() |
C | 0..* | BackboneElement | Stage/grade, usually assessed formally Constraints: con-1 | ||||
![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() |
C | 0..1 | CodeableConcept | Simple summary (disease specific) Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages). | ||||
![]() ![]() ![]() |
C | 0..* | Reference(ClinicalImpression | DiagnosticReport | Observation) | Formal record of assessment | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Kind of staging Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological). | |||||
![]() ![]() |
C | 0..* | BackboneElement | Supporting evidence Constraints: con-2 | ||||
![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() |
ΣC | 0..* | CodeableConcept | Manifestation/symptom Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition. | ||||
![]() ![]() ![]() |
ΣC | 0..* | Reference(Resource) | Supporting information found elsewhere | ||||
![]() ![]() |
0..* | Annotation | Additional information about the Condition | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Condition.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Condition.clinicalStatus | Base | required | Condition Clinical Status Codes | 📍4.0.1 | FHIR Std. |
| Condition.verificationStatus | Base | required | ConditionVerificationStatus | 📍4.0.1 | FHIR Std. |
| Condition.category | Base | extensible | Condition Category Codes | 📍4.0.1 | FHIR Std. |
| Condition.severity | Base | preferred | Condition/Diagnosis Severity | 📍4.0.1 | FHIR Std. |
| Condition.code | Base | example | Condition/Problem/Diagnosis Codes | 📍4.0.1 | FHIR Std. |
| Condition.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| Condition.stage.summary | Base | example | Condition Stage | 📍4.0.1 | FHIR Std. |
| Condition.stage.type | Base | example | Condition Stage Type | 📍4.0.1 | FHIR Std. |
| Condition.evidence.code | Base | example | Manifestation and Symptom Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| con-1 | error | Condition.stage | Stage SHALL have summary or assessment |
summary.exists() or assessment.exists()
|
| con-2 | error | Condition.evidence | evidence SHALL have code or details |
code.exists() or detail.exists()
|
| con-3 | best practice | Condition | Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item |
clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
|
| con-4 | error | Condition | If condition is abated, then clinicalStatus must be either inactive, resolved, or remission |
abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
|
| con-5 | error | Condition | Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error |
verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
|
| dom-2 | error | Condition | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Condition | 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 | Condition | 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 | Condition | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Condition | 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()
|
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Condition | Detailed information about conditions, problems or diagnoses Constraints: con-3, con-4, con-5 |
![]() ![]() |
Σ | 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 |
![]() ![]() |
?!ΣC | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis. |
![]() ![]() |
?!ΣC | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis. |
![]() ![]() |
S | 1..1 | CodeableConcept | problem-list-item | encounter-diagnosis Binding: ConditionCategoryCodes (extensible): A category assigned to the condition. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Condition Identification Binding: Condition/Problem/DiagnosisCodes (example): Identification of the condition or diagnosis. |
![]() ![]() |
Σ | 1..1 | Reference(Patient | Group) | Who has the condition? |
![]() ![]() |
Σ | 1..1 | Reference(Encounter) | Encounter created as part of |
![]() ![]() |
Σ | 1..1 | dateTime | Estimated or actual date, date-time, or age Slice: Unordered, Closed by type:$this |
![]() ![]() ![]() |
Σ | 1..1 | dateTime | Diagnosis date |
![]() ![]() |
C | 0..1 | dateTime | When in resolution/remission |
![]() ![]() |
Σ | 1..1 | dateTime | Date record was first recorded |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Condition.clinicalStatus | Base | required | Condition Clinical Status Codes | 📍4.0.1 | FHIR Std. |
| Condition.verificationStatus | Base | required | ConditionVerificationStatus | 📍4.0.1 | FHIR Std. |
| Condition.category | Base | extensible | Condition Category Codes | 📍4.0.1 | FHIR Std. |
| Condition.code | Base | example | Condition/Problem/Diagnosis Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| con-3 | best practice | Condition | Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item |
clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
|
| con-4 | error | Condition | If condition is abated, then clinicalStatus must be either inactive, resolved, or remission |
abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
|
| con-5 | error | Condition | Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error |
verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
|
| dom-2 | error | Condition | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Condition | 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 | Condition | 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 | Condition | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Condition | 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 Condition
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Condition | Detailed information about conditions, problems or diagnoses | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
S | 1..1 | CodeableConcept | problem-list-item | encounter-diagnosis |
![]() ![]() |
1..1 | CodeableConcept | Condition Identification | |
![]() ![]() |
1..1 | Reference(Encounter) | Encounter created as part of | |
![]() ![]() |
1..1 | dateTime | Estimated or actual date, date-time, or age Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() |
1..1 | dateTime | Diagnosis date | |
![]() ![]() |
0..1 | dateTime | When in resolution/remission | |
![]() ![]() |
1..1 | dateTime | Date record was first recorded | |
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Condition | Detailed information about conditions, problems or diagnoses Constraints: con-3, con-4, con-5 | ||||
![]() ![]() |
Σ | 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 Ids for this condition | ||||
![]() ![]() |
?!ΣC | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis. | ||||
![]() ![]() |
?!ΣC | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis. | ||||
![]() ![]() |
S | 1..1 | CodeableConcept | problem-list-item | encounter-diagnosis Binding: ConditionCategoryCodes (extensible): A category assigned to the condition. | ||||
![]() ![]() |
0..1 | CodeableConcept | Subjective severity of condition Binding: Condition/DiagnosisSeverity (preferred): A subjective assessment of the severity of the condition as evaluated by the clinician. | |||||
![]() ![]() |
Σ | 1..1 | CodeableConcept | Condition Identification Binding: Condition/Problem/DiagnosisCodes (example): Identification of the condition or diagnosis. | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Anatomical location, if relevant Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | ||||
![]() ![]() |
Σ | 1..1 | Reference(Patient | Group) | Who has the condition? | ||||
![]() ![]() |
Σ | 1..1 | Reference(Encounter) | Encounter created as part of | ||||
![]() ![]() |
Σ | 1..1 | dateTime | Estimated or actual date, date-time, or age Slice: Unordered, Closed by type:$this | ||||
![]() ![]() ![]() |
Σ | 1..1 | dateTime | Diagnosis date | ||||
![]() ![]() |
C | 0..1 | dateTime | When in resolution/remission | ||||
![]() ![]() |
Σ | 1..1 | dateTime | Date record was first recorded | ||||
![]() ![]() |
Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who recorded the condition | ||||
![]() ![]() |
Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Person who asserts this condition | ||||
![]() ![]() |
C | 0..* | BackboneElement | Stage/grade, usually assessed formally Constraints: con-1 | ||||
![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() |
C | 0..1 | CodeableConcept | Simple summary (disease specific) Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages). | ||||
![]() ![]() ![]() |
C | 0..* | Reference(ClinicalImpression | DiagnosticReport | Observation) | Formal record of assessment | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Kind of staging Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological). | |||||
![]() ![]() |
C | 0..* | BackboneElement | Supporting evidence Constraints: con-2 | ||||
![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() |
ΣC | 0..* | CodeableConcept | Manifestation/symptom Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition. | ||||
![]() ![]() ![]() |
ΣC | 0..* | Reference(Resource) | Supporting information found elsewhere | ||||
![]() ![]() |
0..* | Annotation | Additional information about the Condition | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Condition.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Condition.clinicalStatus | Base | required | Condition Clinical Status Codes | 📍4.0.1 | FHIR Std. |
| Condition.verificationStatus | Base | required | ConditionVerificationStatus | 📍4.0.1 | FHIR Std. |
| Condition.category | Base | extensible | Condition Category Codes | 📍4.0.1 | FHIR Std. |
| Condition.severity | Base | preferred | Condition/Diagnosis Severity | 📍4.0.1 | FHIR Std. |
| Condition.code | Base | example | Condition/Problem/Diagnosis Codes | 📍4.0.1 | FHIR Std. |
| Condition.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| Condition.stage.summary | Base | example | Condition Stage | 📍4.0.1 | FHIR Std. |
| Condition.stage.type | Base | example | Condition Stage Type | 📍4.0.1 | FHIR Std. |
| Condition.evidence.code | Base | example | Manifestation and Symptom Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| con-1 | error | Condition.stage | Stage SHALL have summary or assessment |
summary.exists() or assessment.exists()
|
| con-2 | error | Condition.evidence | evidence SHALL have code or details |
code.exists() or detail.exists()
|
| con-3 | best practice | Condition | Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item |
clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
|
| con-4 | error | Condition | If condition is abated, then clinicalStatus must be either inactive, resolved, or remission |
abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
|
| con-5 | error | Condition | Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error |
verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
|
| dom-2 | error | Condition | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Condition | 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 | Condition | 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 | Condition | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Condition | 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()
|
Other representations of profile: CSV, Excel, Schematron
The profile constrains the base Condition resource to ensure capture of essential clinical condition information, including:
Clinical status indicating whether the condition is active, resolved, or inactive Verification status to reflect the certainty of the diagnosis (e.g., confirmed, unconfirmed) Condition code identifying the diagnosed or assessed condition Subject (Patient) to whom the condition applies Onset date or period, where available, indicating when the condition began
These elements support accurate clinical documentation and enable longitudinal tracking of patient health conditions.
This profile is designed to:
Conform to HL7 FHIR R4 Condition semantics Support interoperability within the Eswatini National HIE Enable linkage with related resources such as Patient, Encounter, Clinical Observation, and Practitioner Facilitate continuity of care across facilities and over time
By standardizing condition data, the profile enables safe and accurate exchange of patient health information between systems.
Systems claiming conformance to this profile SHALL:
Populate all required and Must Support elements as defined Ensure condition data reflects current clinical knowledge and is updated as appropriate Use clinical and verification status elements to clearly express the state and certainty of the condition
Optional elements from the base Condition resource may be used when relevant, provided they do not conflict with the constraints defined in this profile.
The Eswatini Condition Profile supports extensibility through standard FHIR mechanisms. Additional clinical details—such as condition severity, stage, or program-specific indicators—may be introduced using FHIR extensions, subject to governance and approval.
The Eswatini Condition Profile provides a standardized and interoperable representation of patient health conditions, supporting accurate clinical documentation, continuity of care, and health system reporting. Adoption of this profile contributes to improved patient management, better data quality, and stronger interoperability across healthcare systems in the Kingdom of Eswatini.