Kenya National Cancer Control Programme (NCCP) FHIR Implementation Guide
0.1.0 - ci-build Kenya flag

Kenya National Cancer Control Programme (NCCP) 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/nccpFHIRIG/ and changes regularly. See the Directory of published versions

Resource Profile: NCCP Oncology Diagnostic Report

Official URL: https://nshr-uat.sha.go.ke/fhir/StructureDefinition/nccp-oncology-diagnostic-report Version: 0.1.0
Draft as of 2026-06-04 Computable Name: OncologyDiagnosticReport

Diagnostic report for oncology investigations including pathology and radiology.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

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 Σ 0..1 Meta Metadata about the resource
.... profile SΣ 1..* canonical(StructureDefinition) Profiles this resource claims to conform to
... 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 registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... category SΣ 1..* CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (required)
... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (required)
... subject SΣ 1..1 Reference(Patient) The subject of the report - usually, but not always, the patient
... encounter SΣ 1..1 Reference(Encounter) Health care event when test ordered
... effective[x] SΣ 0..1 Clinically relevant time/time-period for report
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued SΣ 1..1 instant DateTime this version was made
... performer SΣ 1..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... result S 0..* Reference(Observation) Observations
... conclusion S 0..1 string Clinical conclusion (interpretation) of test results
... conclusionCode S 0..* CodeableConcept Codes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.

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 required Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required LOINC Diagnostic Report Codes 📦4.0.1 FHIR Std.
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()

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
.... profile S 1..* canonical(StructureDefinition) Profiles this resource claims to conform to
... basedOn S 1..* Reference(NCCP Oncology Diagnostic Service Request) What was requested
... status S 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... code S 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (required)
... subject S 1..1 Reference(Patient) The subject of the report - usually, but not always, the patient
... encounter S 1..1 Reference(Encounter) Health care event when test ordered
... effective[x] S 0..1 dateTime, Period Clinically relevant time/time-period for report
... issued S 1..1 instant DateTime this version was made
... performer S 1..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... result S 0..* Reference(Observation) Observations
... conclusion S 0..1 string Clinical conclusion (interpretation) of test results
... conclusionCode S 0..* CodeableConcept Codes for the clinical conclusion of test results

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 required Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required LOINC Diagnostic Report Codes 📦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
.... 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) Profiles this resource claims to conform to
.... 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 Σ 0..* Identifier Business identifier for report
... basedOn S 1..* Reference(NCCP Oncology Diagnostic Service Request) What was requested
... status ?!SΣ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... category SΣ 1..* CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (required)
... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (required)
... subject SΣ 1..1 Reference(Patient) The subject of the report - usually, but not always, the patient
... encounter SΣ 1..1 Reference(Encounter) Health care event when test ordered
... effective[x] SΣ 0..1 Clinically relevant time/time-period for report
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued SΣ 1..1 instant DateTime this version was made
... performer SΣ 1..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... resultsInterpreter Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... specimen 0..* Reference(Specimen) Specimens this report is based on
... result S 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 conclusion (interpretation) of test results
... conclusionCode S 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.status Base required DiagnosticReportStatus 📦4.0.1 FHIR Std.
DiagnosticReport.category Base required Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required LOINC Diagnostic Report Codes 📦4.0.1 FHIR Std.
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()

Summary

Mandatory: 6 elements(1 nested mandatory element)
Must-Support: 13 elements

Structures

This structure refers to these other structures:

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 Σ 0..1 Meta Metadata about the resource
.... profile SΣ 1..* canonical(StructureDefinition) Profiles this resource claims to conform to
... 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 registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... category SΣ 1..* CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (required)
... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (required)
... subject SΣ 1..1 Reference(Patient) The subject of the report - usually, but not always, the patient
... encounter SΣ 1..1 Reference(Encounter) Health care event when test ordered
... effective[x] SΣ 0..1 Clinically relevant time/time-period for report
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued SΣ 1..1 instant DateTime this version was made
... performer SΣ 1..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... result S 0..* Reference(Observation) Observations
... conclusion S 0..1 string Clinical conclusion (interpretation) of test results
... conclusionCode S 0..* CodeableConcept Codes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.

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 required Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required LOINC Diagnostic Report Codes 📦4.0.1 FHIR Std.
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()

Differential 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
.... profile S 1..* canonical(StructureDefinition) Profiles this resource claims to conform to
... basedOn S 1..* Reference(NCCP Oncology Diagnostic Service Request) What was requested
... status S 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... code S 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (required)
... subject S 1..1 Reference(Patient) The subject of the report - usually, but not always, the patient
... encounter S 1..1 Reference(Encounter) Health care event when test ordered
... effective[x] S 0..1 dateTime, Period Clinically relevant time/time-period for report
... issued S 1..1 instant DateTime this version was made
... performer S 1..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... result S 0..* Reference(Observation) Observations
... conclusion S 0..1 string Clinical conclusion (interpretation) of test results
... conclusionCode S 0..* CodeableConcept Codes for the clinical conclusion of test results

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 required Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required LOINC Diagnostic Report Codes 📦4.0.1 FHIR Std.

Snapshot ViewView

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
.... 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) Profiles this resource claims to conform to
.... 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 Σ 0..* Identifier Business identifier for report
... basedOn S 1..* Reference(NCCP Oncology Diagnostic Service Request) What was requested
... status ?!SΣ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... category SΣ 1..* CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (required)
... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (required)
... subject SΣ 1..1 Reference(Patient) The subject of the report - usually, but not always, the patient
... encounter SΣ 1..1 Reference(Encounter) Health care event when test ordered
... effective[x] SΣ 0..1 Clinically relevant time/time-period for report
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued SΣ 1..1 instant DateTime this version was made
... performer SΣ 1..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Responsible Diagnostic Service
... resultsInterpreter Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... specimen 0..* Reference(Specimen) Specimens this report is based on
... result S 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 conclusion (interpretation) of test results
... conclusionCode S 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.status Base required DiagnosticReportStatus 📦4.0.1 FHIR Std.
DiagnosticReport.category Base required Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required LOINC Diagnostic Report Codes 📦4.0.1 FHIR Std.
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()

Summary

Mandatory: 6 elements(1 nested mandatory element)
Must-Support: 13 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron