0.1.0 - ci-build

oncologyfhirigkenya - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Oncology Diagnostic Report Kenya

Official URL: http://example.org/StructureDefinition/oncology-diagnostic-report-kenya Version: 0.1.0
Draft as of 2026-06-23 Computable Name: OncologyDiagnosticReportKenya

FHIR R4-based profile for diagnostic reports in oncology within the Kenyan healthcare context. Supports pathology, radiology, laboratory, and imaging reports aligned with:

  • Kenya National Cancer Control Strategy (2023–2027)
  • Kenya Cancer Policy (2020–2030)
  • KEMRI cancer registries
  • UHC and SHA reporting
  • National staging and reporting standards
  • County-based registry efforts (e.g., Nyandarua)

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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:cancerStage 0..1 CodeableConcept Cancer Stage Summary (e.g., TNM or Ann Arbor)
URL: http://example.org/StructureDefinition/report-cancer-stage
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-cancer-staging (preferred)
.... extension:countyOfSpecimen 0..1 CodeableConcept County Where Specimen Was Collected
URL: http://example.org/StructureDefinition/report-specimen-origin-county
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-county-codes (required)
.... extension:reportToCancerRegistry 0..1 boolean Send Report to National Cancer Registry
URL: http://example.org/StructureDefinition/report-registry-flag
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... category SΣ 1..* CodeableConcept Service category
Binding: http://terminology.hl7.org/CodeSystem/v2-0074 (example)
... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types (extensible)
... subject SΣ 1..1 Reference(Patient | Group | Device | Location) The subject of the report - usually, but not always, the patient
... effective[x] SΣ 1..1 Clinically relevant time/time-period for report
.... effectiveDateTime dateTime
.... effectivePeriod Period
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... resultsInterpreter SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... result S 1..* Reference(Observation) Observations
... presentedForm S 0..* Attachment Entire report as issued

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 example http://terminology.hl7.org/CodeSystem/v2-0074 Not State Unknown
DiagnosticReport.code Base extensible https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types Not State Unknown

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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:cancerStage 0..1 CodeableConcept Cancer Stage Summary (e.g., TNM or Ann Arbor)
URL: http://example.org/StructureDefinition/report-cancer-stage
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-cancer-staging (preferred)
.... extension:countyOfSpecimen 0..1 CodeableConcept County Where Specimen Was Collected
URL: http://example.org/StructureDefinition/report-specimen-origin-county
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-county-codes (required)
.... extension:reportToCancerRegistry 0..1 boolean Send Report to National Cancer Registry
URL: http://example.org/StructureDefinition/report-registry-flag
... status S 1..1 code registered | partial | preliminary | final +
... category S 1..* CodeableConcept Service category
Binding: http://terminology.hl7.org/CodeSystem/v2-0074 (example)
... subject S 1..1 Reference(Patient | Group | Device | Location) The subject of the report - usually, but not always, the patient
... effective[x] S 1..1 dateTime, Period Clinically relevant time/time-period for report
... performer S 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... resultsInterpreter S 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... result S 1..* Reference(Observation) Observations
... presentedForm S 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DiagnosticReport.category Base example http://terminology.hl7.org/CodeSystem/v2-0074 Not State Unknown
DiagnosticReport.code Base extensible https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types Not State Unknown
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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:cancerStage 0..1 CodeableConcept Cancer Stage Summary (e.g., TNM or Ann Arbor)
URL: http://example.org/StructureDefinition/report-cancer-stage
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-cancer-staging (preferred)
.... extension:countyOfSpecimen 0..1 CodeableConcept County Where Specimen Was Collected
URL: http://example.org/StructureDefinition/report-specimen-origin-county
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-county-codes (required)
.... extension:reportToCancerRegistry 0..1 boolean Send Report to National Cancer Registry
URL: http://example.org/StructureDefinition/report-registry-flag
... 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 registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
... category SΣ 1..* CodeableConcept Service category
Binding: http://terminology.hl7.org/CodeSystem/v2-0074 (example)
... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types (extensible)
... subject SΣ 1..1 Reference(Patient | Group | Device | Location) The subject of the report - usually, but not always, the patient
... encounter Σ 0..1 Reference(Encounter) Health care event when test ordered
... effective[x] SΣ 1..1 Clinically relevant time/time-period for report
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued Σ 0..1 instant DateTime this version was made
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... resultsInterpreter SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... specimen 0..* Reference(Specimen) Specimens this report is based on
... result S 1..* 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 0..1 string Clinical conclusion (interpretation) of test results
... conclusionCode 0..* CodeableConcept Codes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
... presentedForm S 0..* Attachment Entire report as issued

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 example http://terminology.hl7.org/CodeSystem/v2-0074 Not State Unknown
DiagnosticReport.code Base extensible https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types Not State Unknown
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

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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:cancerStage 0..1 CodeableConcept Cancer Stage Summary (e.g., TNM or Ann Arbor)
URL: http://example.org/StructureDefinition/report-cancer-stage
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-cancer-staging (preferred)
.... extension:countyOfSpecimen 0..1 CodeableConcept County Where Specimen Was Collected
URL: http://example.org/StructureDefinition/report-specimen-origin-county
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-county-codes (required)
.... extension:reportToCancerRegistry 0..1 boolean Send Report to National Cancer Registry
URL: http://example.org/StructureDefinition/report-registry-flag
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... category SΣ 1..* CodeableConcept Service category
Binding: http://terminology.hl7.org/CodeSystem/v2-0074 (example)
... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types (extensible)
... subject SΣ 1..1 Reference(Patient | Group | Device | Location) The subject of the report - usually, but not always, the patient
... effective[x] SΣ 1..1 Clinically relevant time/time-period for report
.... effectiveDateTime dateTime
.... effectivePeriod Period
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... resultsInterpreter SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... result S 1..* Reference(Observation) Observations
... presentedForm S 0..* Attachment Entire report as issued

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 example http://terminology.hl7.org/CodeSystem/v2-0074 Not State Unknown
DiagnosticReport.code Base extensible https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types Not State Unknown

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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:cancerStage 0..1 CodeableConcept Cancer Stage Summary (e.g., TNM or Ann Arbor)
URL: http://example.org/StructureDefinition/report-cancer-stage
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-cancer-staging (preferred)
.... extension:countyOfSpecimen 0..1 CodeableConcept County Where Specimen Was Collected
URL: http://example.org/StructureDefinition/report-specimen-origin-county
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-county-codes (required)
.... extension:reportToCancerRegistry 0..1 boolean Send Report to National Cancer Registry
URL: http://example.org/StructureDefinition/report-registry-flag
... status S 1..1 code registered | partial | preliminary | final +
... category S 1..* CodeableConcept Service category
Binding: http://terminology.hl7.org/CodeSystem/v2-0074 (example)
... subject S 1..1 Reference(Patient | Group | Device | Location) The subject of the report - usually, but not always, the patient
... effective[x] S 1..1 dateTime, Period Clinically relevant time/time-period for report
... performer S 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... resultsInterpreter S 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... result S 1..* Reference(Observation) Observations
... presentedForm S 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DiagnosticReport.category Base example http://terminology.hl7.org/CodeSystem/v2-0074 Not State Unknown
DiagnosticReport.code Base extensible https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types Not State Unknown

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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:cancerStage 0..1 CodeableConcept Cancer Stage Summary (e.g., TNM or Ann Arbor)
URL: http://example.org/StructureDefinition/report-cancer-stage
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-cancer-staging (preferred)
.... extension:countyOfSpecimen 0..1 CodeableConcept County Where Specimen Was Collected
URL: http://example.org/StructureDefinition/report-specimen-origin-county
Binding: https://www.kenyacode.com/fhir/ValueSet/kenya-county-codes (required)
.... extension:reportToCancerRegistry 0..1 boolean Send Report to National Cancer Registry
URL: http://example.org/StructureDefinition/report-registry-flag
... 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 registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
... category SΣ 1..* CodeableConcept Service category
Binding: http://terminology.hl7.org/CodeSystem/v2-0074 (example)
... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types (extensible)
... subject SΣ 1..1 Reference(Patient | Group | Device | Location) The subject of the report - usually, but not always, the patient
... encounter Σ 0..1 Reference(Encounter) Health care event when test ordered
... effective[x] SΣ 1..1 Clinically relevant time/time-period for report
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued Σ 0..1 instant DateTime this version was made
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... resultsInterpreter SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... specimen 0..* Reference(Specimen) Specimens this report is based on
... result S 1..* 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 0..1 string Clinical conclusion (interpretation) of test results
... conclusionCode 0..* CodeableConcept Codes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
... presentedForm S 0..* Attachment Entire report as issued

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 example http://terminology.hl7.org/CodeSystem/v2-0074 Not State Unknown
DiagnosticReport.code Base extensible https://www.kenyacode.com/fhir/ValueSet/oncology-diagnostic-types Not State Unknown
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

 

Other representations of profile: CSV, Excel, Schematron