Kenya Emmergency FHIR Implementation Guide (IG)
0.1.0 - ci-build

Kenya Emmergency FHIR Implementation Guide (IG), published by Intellisoft Consulting Ltd.. 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 - Kenya

Official URL: http://example.org/StructureDefinition/kenya-diagnosticreport Version: 0.1.0
Draft as of 2025-12-18 Computable Name: KenyaDiagnosticReport

Kenya DiagnosticReport profile for laboratory and investigation results.

Usages:

  • This Profile is not used by any profiles in this Implementation Guide

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
... meta SΣ 1..1 Meta Metadata about the resource
.... profile SΣ 1..* canonical(StructureDefinition) Enforces conformance to the Kenya DiagnosticReport profile
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
.... system SΣ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value SΣ 1..1 string The value that is unique
Example General: 123456
... status ?!SΣ 1..1 code Report status
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
... code SΣ 1..1 CodeableConcept Investigation code (OCL/LOINC)
Binding: Investigation Codes ValueSet (required)
... subject SΣ 1..1 Reference(Patient) Patient
... encounter SΣ 0..1 Reference(Encounter) Associated encounter
... Slices for effective[x] Σ 0..1 Clinically relevant time/time-period for report
Slice: Unordered, Open by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime SΣ 0..1 dateTime When the investigation was performed
... performer SΣ 0..* Reference(Practitioner) Who performed the investigation
... conclusion S 0..1 string Clinical findings or interpretation

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.identifier.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
DiagnosticReport.status Base required DiagnosticReportStatus 📍4.0.1 FHIR Std.
DiagnosticReport.code Base required Investigation Codes ValueSet 📦0.1.0 This IG

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
... meta S 1..1 Meta Metadata about the resource
.... profile S 1..* canonical(StructureDefinition) Enforces conformance to the Kenya DiagnosticReport profile
... identifier S 1..* Identifier Business identifier for report
.... system S 1..1 uri The namespace for the identifier value
.... value S 1..1 string The value that is unique
... status S 1..1 code Report status
... subject S 1..1 Reference(Patient) Patient
... encounter S 0..1 Reference(Encounter) Associated encounter
... Slices for effective[x] 0..1 dateTime, Period Clinically relevant time/time-period for report
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime S 0..1 dateTime When the investigation was performed
... performer S 0..* Reference(Practitioner) Who performed the investigation
... conclusion S 0..1 string Clinical findings or interpretation

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DiagnosticReport.code Base required Investigation Codes ValueSet 📦0.1.0 This IG
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 SΣ 1..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile SΣ 1..* canonical(StructureDefinition) Enforces conformance to the Kenya DiagnosticReport profile
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... 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 SΣ 1..* Identifier Business identifier for report
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
.... system SΣ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value SΣ 1..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... basedOn 0..* Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) What was requested
... status ?!SΣ 1..1 code Report status
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
... category Σ 0..* CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
... code SΣ 1..1 CodeableConcept Investigation code (OCL/LOINC)
Binding: Investigation Codes ValueSet (required)
... subject SΣ 1..1 Reference(Patient) Patient
... encounter SΣ 0..1 Reference(Encounter) Associated encounter
... Slices for effective[x] Σ 0..1 Clinically relevant time/time-period for report
Slice: Unordered, Open by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime SΣ 0..1 dateTime When the investigation was performed
... issued Σ 0..1 instant DateTime this version was made
... performer SΣ 0..* Reference(Practitioner) Who performed 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) Observations
... 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 Clinical findings or interpretation
... conclusionCode 0..* CodeableConcept Codes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
... presentedForm 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.meta.​security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
DiagnosticReport.meta.​tag Base example Common Tags 📍4.0.1 FHIR Std.
DiagnosticReport.language Base preferred Common Languages 📍4.0.1 FHIR Std.
DiagnosticReport.identifier.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
DiagnosticReport.identifier.​type Base extensible IdentifierType 📍4.0.1 FHIR Std.
DiagnosticReport.status Base required DiagnosticReportStatus 📍4.0.1 FHIR Std.
DiagnosticReport.category Base example Diagnostic Service Section Codes 📍4.0.1 FHIR Std.
DiagnosticReport.code Base required Investigation Codes ValueSet 📦0.1.0 This IG
DiagnosticReport.conclusionCode Base example 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: 6 elements
Must-Support: 12 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
... meta SΣ 1..1 Meta Metadata about the resource
.... profile SΣ 1..* canonical(StructureDefinition) Enforces conformance to the Kenya DiagnosticReport profile
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
.... system SΣ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value SΣ 1..1 string The value that is unique
Example General: 123456
... status ?!SΣ 1..1 code Report status
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
... code SΣ 1..1 CodeableConcept Investigation code (OCL/LOINC)
Binding: Investigation Codes ValueSet (required)
... subject SΣ 1..1 Reference(Patient) Patient
... encounter SΣ 0..1 Reference(Encounter) Associated encounter
... Slices for effective[x] Σ 0..1 Clinically relevant time/time-period for report
Slice: Unordered, Open by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime SΣ 0..1 dateTime When the investigation was performed
... performer SΣ 0..* Reference(Practitioner) Who performed the investigation
... conclusion S 0..1 string Clinical findings or interpretation

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.identifier.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
DiagnosticReport.status Base required DiagnosticReportStatus 📍4.0.1 FHIR Std.
DiagnosticReport.code Base required Investigation Codes ValueSet 📦0.1.0 This IG

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
... meta S 1..1 Meta Metadata about the resource
.... profile S 1..* canonical(StructureDefinition) Enforces conformance to the Kenya DiagnosticReport profile
... identifier S 1..* Identifier Business identifier for report
.... system S 1..1 uri The namespace for the identifier value
.... value S 1..1 string The value that is unique
... status S 1..1 code Report status
... subject S 1..1 Reference(Patient) Patient
... encounter S 0..1 Reference(Encounter) Associated encounter
... Slices for effective[x] 0..1 dateTime, Period Clinically relevant time/time-period for report
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime S 0..1 dateTime When the investigation was performed
... performer S 0..* Reference(Practitioner) Who performed the investigation
... conclusion S 0..1 string Clinical findings or interpretation

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DiagnosticReport.code Base required Investigation Codes ValueSet 📦0.1.0 This IG

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 SΣ 1..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile SΣ 1..* canonical(StructureDefinition) Enforces conformance to the Kenya DiagnosticReport profile
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... 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 SΣ 1..* Identifier Business identifier for report
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
.... system SΣ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value SΣ 1..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... basedOn 0..* Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) What was requested
... status ?!SΣ 1..1 code Report status
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
... category Σ 0..* CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
... code SΣ 1..1 CodeableConcept Investigation code (OCL/LOINC)
Binding: Investigation Codes ValueSet (required)
... subject SΣ 1..1 Reference(Patient) Patient
... encounter SΣ 0..1 Reference(Encounter) Associated encounter
... Slices for effective[x] Σ 0..1 Clinically relevant time/time-period for report
Slice: Unordered, Open by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime SΣ 0..1 dateTime When the investigation was performed
... issued Σ 0..1 instant DateTime this version was made
... performer SΣ 0..* Reference(Practitioner) Who performed 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) Observations
... 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 Clinical findings or interpretation
... conclusionCode 0..* CodeableConcept Codes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
... presentedForm 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.meta.​security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
DiagnosticReport.meta.​tag Base example Common Tags 📍4.0.1 FHIR Std.
DiagnosticReport.language Base preferred Common Languages 📍4.0.1 FHIR Std.
DiagnosticReport.identifier.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
DiagnosticReport.identifier.​type Base extensible IdentifierType 📍4.0.1 FHIR Std.
DiagnosticReport.status Base required DiagnosticReportStatus 📍4.0.1 FHIR Std.
DiagnosticReport.category Base example Diagnostic Service Section Codes 📍4.0.1 FHIR Std.
DiagnosticReport.code Base required Investigation Codes ValueSet 📦0.1.0 This IG
DiagnosticReport.conclusionCode Base example 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: 6 elements
Must-Support: 12 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