Kenya Emergency FHIR Implementation Guide
0.1.0 - ci-build Kenya flag

Kenya Emergency FHIR Implementation Guide, published by Digital Health Agency (DHA), Kenya. 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/IntelliSOFT-Consulting/Kenya-Emmergency-FHIR-IG/ and changes regularly. See the Directory of published versions

Resource Profile: DiagnosticReport - Emergency Investigation Result

Official URL: https://nshr-uat.sha.go.ke/fhir/StructureDefinition/em-diagnostic-report Version: 0.1.0
Active as of 2026-07-20 Computable Name: EMDiagnosticReport

Represents an emergency investigation result, e.g. a 12-lead ECG, laboratory result, or imaging report, generated during pre-hospital or facility-based emergency care.

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
.. DiagnosticReport 0..* DiagnosticReport A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code Workflow status of the report
Binding: DiagnosticReportStatus (required)
... code SΣ 1..1 CodeableConcept The specific investigation performed
Binding: Investigation Codes ValueSet (extensible)
... subject SΣ 1..1 Reference(Patient) Patient the investigation was performed on
... encounter SΣ 1..1 Reference(Encounter) Associated encounter, typically EMPOCEncounter
... Slices for effective[x] Σ 1..1 dateTime Clinically relevant time/time-period for report
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime SΣ 1..1 dateTime When the investigation was performed or recorded
... performer SΣ 0..1 Reference(Practitioner | PractitionerRole | Organization) Who performed or recorded the investigation
... result 0..* Reference(Observation) Discrete measurements underlying the report, if captured separately
... conclusion S 0..1 string Free-text clinical interpretation
... conclusionCode S 0..* CodeableConcept Coded equivalent of the free-text conclusion
Binding: SNOMEDCTClinicalFindings (extensible)
... presentedForm 0..* Attachment The actual trace/waveform image or PDF, if transmitted

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.status Base required DiagnosticReportStatus 📦4.0.1 FHIR Std.
DiagnosticReport.category Base extensible hl7VS-diagnosticServiceSectionId 📦3.0.0 THO v7.2
DiagnosticReport.code Base extensible Investigation Codes ValueSet 📦0.1.0 This IG
DiagnosticReport.conclusionCode Base extensible SNOMED CT Clinical Findings 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DiagnosticReport If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DiagnosticReport 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 DiagnosticReport 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 DiagnosticReport If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DiagnosticReport 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 DiagnosticReport

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReport A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... status S 1..1 code Workflow status of the report
Binding: DiagnosticReportStatus (required)
... category S 1..1 CodeableConcept Broad diagnostic service category, e.g. cardiology for an ECG
Binding: hl7VS-diagnosticServiceSectionId (extensible)
... code S 1..1 CodeableConcept The specific investigation performed
Binding: Investigation Codes ValueSet (extensible)
... encounter S 1..1 Reference(Encounter) Associated encounter, typically EMPOCEncounter
... Slices for effective[x] 1..1 dateTime Clinically relevant time/time-period for report
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime S 1..1 dateTime When the investigation was performed or recorded
... performer S 0..1 Reference(Practitioner | PractitionerRole | Organization) Who performed or recorded the investigation
... result 0..* Reference(Observation) Discrete measurements underlying the report, if captured separately
... conclusion S 0..1 string Free-text clinical interpretation
... conclusionCode S 0..* CodeableConcept Coded equivalent of the free-text conclusion
Binding: SNOMEDCTClinicalFindings (extensible)
... presentedForm 0..* Attachment The actual trace/waveform image or PDF, if transmitted

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DiagnosticReport.status Base required DiagnosticReportStatus 📦4.0.1 FHIR Std.
DiagnosticReport.category Base extensible hl7VS-diagnosticServiceSectionId 📦3.0.0 THO v7.2
DiagnosticReport.code Base extensible Investigation Codes ValueSet 📦0.1.0 This IG
DiagnosticReport.conclusionCode Base extensible SNOMED CT Clinical Findings 📦4.0.1 FHIR Std.
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReport A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... id Σ 0..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
... 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 Business identifier for report
... basedOn 0..* Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) What was requested
... status ?!SΣ 1..1 code Workflow status of the report
Binding: DiagnosticReportStatus (required)
... category SΣ 1..1 CodeableConcept Broad diagnostic service category, e.g. cardiology for an ECG
Binding: hl7VS-diagnosticServiceSectionId (extensible)
... code SΣ 1..1 CodeableConcept The specific investigation performed
Binding: Investigation Codes ValueSet (extensible)
... subject SΣ 1..1 Reference(Patient) Patient the investigation was performed on
... encounter SΣ 1..1 Reference(Encounter) Associated encounter, typically EMPOCEncounter
... Slices for effective[x] Σ 1..1 dateTime Clinically relevant time/time-period for report
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime SΣ 1..1 dateTime When the investigation was performed or recorded
... issued Σ 0..1 instant DateTime this version was made
... performer SΣ 0..1 Reference(Practitioner | PractitionerRole | Organization) Who performed or recorded the investigation
... resultsInterpreter Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... specimen 0..* Reference(Specimen) Specimens this report is based on
... result 0..* Reference(Observation) Discrete measurements underlying the report, if captured separately
... imagingStudy 0..* Reference(ImagingStudy) Reference to full details of imaging associated with the diagnostic report
... media Σ 0..* BackboneElement Key images associated with this report
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... comment 0..1 string Comment about the image (e.g. explanation)
.... link Σ 1..1 Reference(Media) Reference to the image source
... conclusion S 0..1 string Free-text clinical interpretation
... conclusionCode S 0..* CodeableConcept Coded equivalent of the free-text conclusion
Binding: SNOMEDCTClinicalFindings (extensible)
... presentedForm 0..* Attachment The actual trace/waveform image or PDF, if transmitted

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.language Base preferred Common Languages 📍4.0.1 FHIR Std.
DiagnosticReport.status Base required DiagnosticReportStatus 📦4.0.1 FHIR Std.
DiagnosticReport.category Base extensible hl7VS-diagnosticServiceSectionId 📦3.0.0 THO v7.2
DiagnosticReport.code Base extensible Investigation Codes ValueSet 📦0.1.0 This IG
DiagnosticReport.conclusionCode Base extensible SNOMED CT Clinical Findings 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DiagnosticReport If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DiagnosticReport 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 DiagnosticReport 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 DiagnosticReport If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DiagnosticReport 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 DiagnosticReport

Summary

Mandatory: 5 elements
Must-Support: 9 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of DiagnosticReport.effective[x]

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReport A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code Workflow status of the report
Binding: DiagnosticReportStatus (required)
... code SΣ 1..1 CodeableConcept The specific investigation performed
Binding: Investigation Codes ValueSet (extensible)
... subject SΣ 1..1 Reference(Patient) Patient the investigation was performed on
... encounter SΣ 1..1 Reference(Encounter) Associated encounter, typically EMPOCEncounter
... Slices for effective[x] Σ 1..1 dateTime Clinically relevant time/time-period for report
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime SΣ 1..1 dateTime When the investigation was performed or recorded
... performer SΣ 0..1 Reference(Practitioner | PractitionerRole | Organization) Who performed or recorded the investigation
... result 0..* Reference(Observation) Discrete measurements underlying the report, if captured separately
... conclusion S 0..1 string Free-text clinical interpretation
... conclusionCode S 0..* CodeableConcept Coded equivalent of the free-text conclusion
Binding: SNOMEDCTClinicalFindings (extensible)
... presentedForm 0..* Attachment The actual trace/waveform image or PDF, if transmitted

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.status Base required DiagnosticReportStatus 📦4.0.1 FHIR Std.
DiagnosticReport.category Base extensible hl7VS-diagnosticServiceSectionId 📦3.0.0 THO v7.2
DiagnosticReport.code Base extensible Investigation Codes ValueSet 📦0.1.0 This IG
DiagnosticReport.conclusionCode Base extensible SNOMED CT Clinical Findings 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DiagnosticReport If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DiagnosticReport 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 DiagnosticReport 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 DiagnosticReport If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DiagnosticReport 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 DiagnosticReport

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReport A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... status S 1..1 code Workflow status of the report
Binding: DiagnosticReportStatus (required)
... category S 1..1 CodeableConcept Broad diagnostic service category, e.g. cardiology for an ECG
Binding: hl7VS-diagnosticServiceSectionId (extensible)
... code S 1..1 CodeableConcept The specific investigation performed
Binding: Investigation Codes ValueSet (extensible)
... encounter S 1..1 Reference(Encounter) Associated encounter, typically EMPOCEncounter
... Slices for effective[x] 1..1 dateTime Clinically relevant time/time-period for report
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime S 1..1 dateTime When the investigation was performed or recorded
... performer S 0..1 Reference(Practitioner | PractitionerRole | Organization) Who performed or recorded the investigation
... result 0..* Reference(Observation) Discrete measurements underlying the report, if captured separately
... conclusion S 0..1 string Free-text clinical interpretation
... conclusionCode S 0..* CodeableConcept Coded equivalent of the free-text conclusion
Binding: SNOMEDCTClinicalFindings (extensible)
... presentedForm 0..* Attachment The actual trace/waveform image or PDF, if transmitted

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DiagnosticReport.status Base required DiagnosticReportStatus 📦4.0.1 FHIR Std.
DiagnosticReport.category Base extensible hl7VS-diagnosticServiceSectionId 📦3.0.0 THO v7.2
DiagnosticReport.code Base extensible Investigation Codes ValueSet 📦0.1.0 This IG
DiagnosticReport.conclusionCode Base extensible SNOMED CT Clinical Findings 📦4.0.1 FHIR Std.

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReport A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... id Σ 0..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
... 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 Business identifier for report
... basedOn 0..* Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) What was requested
... status ?!SΣ 1..1 code Workflow status of the report
Binding: DiagnosticReportStatus (required)
... category SΣ 1..1 CodeableConcept Broad diagnostic service category, e.g. cardiology for an ECG
Binding: hl7VS-diagnosticServiceSectionId (extensible)
... code SΣ 1..1 CodeableConcept The specific investigation performed
Binding: Investigation Codes ValueSet (extensible)
... subject SΣ 1..1 Reference(Patient) Patient the investigation was performed on
... encounter SΣ 1..1 Reference(Encounter) Associated encounter, typically EMPOCEncounter
... Slices for effective[x] Σ 1..1 dateTime Clinically relevant time/time-period for report
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime SΣ 1..1 dateTime When the investigation was performed or recorded
... issued Σ 0..1 instant DateTime this version was made
... performer SΣ 0..1 Reference(Practitioner | PractitionerRole | Organization) Who performed or recorded the investigation
... resultsInterpreter Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... specimen 0..* Reference(Specimen) Specimens this report is based on
... result 0..* Reference(Observation) Discrete measurements underlying the report, if captured separately
... imagingStudy 0..* Reference(ImagingStudy) Reference to full details of imaging associated with the diagnostic report
... media Σ 0..* BackboneElement Key images associated with this report
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... comment 0..1 string Comment about the image (e.g. explanation)
.... link Σ 1..1 Reference(Media) Reference to the image source
... conclusion S 0..1 string Free-text clinical interpretation
... conclusionCode S 0..* CodeableConcept Coded equivalent of the free-text conclusion
Binding: SNOMEDCTClinicalFindings (extensible)
... presentedForm 0..* Attachment The actual trace/waveform image or PDF, if transmitted

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.language Base preferred Common Languages 📍4.0.1 FHIR Std.
DiagnosticReport.status Base required DiagnosticReportStatus 📦4.0.1 FHIR Std.
DiagnosticReport.category Base extensible hl7VS-diagnosticServiceSectionId 📦3.0.0 THO v7.2
DiagnosticReport.code Base extensible Investigation Codes ValueSet 📦0.1.0 This IG
DiagnosticReport.conclusionCode Base extensible SNOMED CT Clinical Findings 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DiagnosticReport If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DiagnosticReport 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 DiagnosticReport 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 DiagnosticReport If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DiagnosticReport 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 DiagnosticReport

Summary

Mandatory: 5 elements
Must-Support: 9 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of DiagnosticReport.effective[x]

 

Other representations of profile: CSV, Excel, Schematron