Kenya eClaims FHIR Implementation Guide
0.1.0 - ci-build
KE
Kenya eClaims FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
This page describes the system actors participating in the Kenya eClaims ecosystem and the FHIR transactions they perform. All transactions use FHIR R4 RESTful interactions over HTTPS.
Description: The electronic medical record or hospital management information system operated at a health facility. Responsible for capturing clinical data and generating FHIR-structured claim bundles.
Examples: KenyaEMR, Afya Community HMIS, proprietary hospital management systems
Responsibilities:
Claim Bundles (outpatient, inpatient, pharmacy, preauthorization)ClaimResponse feedback from SHAPaymentNotice and reconcile against accounts receivableMust support profiles:
Description: The national interoperability middleware operated by the Digital Health Agency of Kenya. Routes and validates messages between providers and payers, and resolves patient identities via the Master Patient Index (MPI).
Responsibilities:
Patient.identifier with NATIONAL-ID or SHA-NUMBER)OperationOutcome responsesKey interactions:
POST /fhir/Bundle — Receives claim submissions from providersGET /fhir/ClaimResponse/{id} — Returns claim status queriesPOST /fhir/Patient/$match — Patient identity resolutionDescription: SHA's core claims processing system. Applies coverage rules, benefits schedules, and clinical appropriateness criteria to adjudicate submitted claims and preauthorization requests.
Responsibilities:
Claim resourcesCoverage.subscriber → MPI)Claim.item.productOrService codesClaimResponse resources with detailed adjudication breakdownsPaymentNotice resources upon payment disbursementMust support profiles:
Description: Private health insurers and TPAs that are registered as approved complementary payers under the SHA framework.
Responsibilities:
ClaimResponse with payer-specific adjudication detailsNote: Private insurers must implement this IG's profiles for claims data elements even where their adjudication logic differs from SHA.
Description: DHA's analytics platform for health financing intelligence, fraud detection, and performance-based financing.
Responsibilities:
Claim and ClaimResponse data from the HIE| Transaction ID | Name | Initiator | Responder | FHIR Operation | Profile(s) |
|---|---|---|---|---|---|
| T-01 | Submit Outpatient Claim | Provider EMR | HIE → SHA | POST Bundle |
KenyaClaimBase, KenyaClaimSubmission |
| T-02 | Request Preauthorization | Provider EMR | SHA | POST Bundle |
KenyaClaimBase (use=preauthorization) |
| T-03 | Query Claim Status | Provider EMR | SHA | GET ClaimResponse/{id} |
EClaimsClaimResponse |
| T-04 | Submit Pharmacy Claim | Pharmacy System | HIE → SHA | POST Bundle |
MedicationDispense, MedicationRequest |
| T-05 | Submit Inpatient Claim | Hospital EMR | HIE → SHA | POST Bundle |
KenyaClaimSubmission, EpisodeOfCare |
| T-06 | Receive Payment Notice | SHA | Provider EMR | POST PaymentNotice |
EClaimsPaymentNotice |
| T-07 | Coverage Eligibility Check | Provider EMR | HIE/SHA | GET Coverage?subscriber={id} |
EclaimsCoverage |
| T-08 | Patient Identity Resolution | Provider EMR | HIE MPI | POST Patient/$match |
EClaimsPatient |
All claim submissions use a FHIR Bundle of type collection. The Bundle must include all referenced resources in-line to ensure self-contained, portable claim packages.
Minimum required resources in a claim Bundle:
Bundle
├── Claim (entry[0]) — the claim itself
├── Patient (entry[1]) — the insured patient
├── Coverage (entry[2]) — coverage details
├── Organization (entry[3]) — provider
├── Organization (entry[4]) — insurer (SHA)
├── Encounter (entry[5]) — the service encounter
└── Condition (entry[n]) — diagnosis/diagnoses
Additional resources included by claim type:
| Claim Type | Additional Entries |
|---|---|
| Outpatient | Practitioner (care team) |
| Inpatient | EpisodeOfCare, DiagnosticReport |
| Pharmacy | MedicationRequest, MedicationDispense |
| Preauthorization | SupportingInfo attachments (as base64 in Claim.supportingInfo) |
Claims progress through the following states, tracked via Claim.status and ClaimResponse.outcome:
[Draft] → [Active/Submitted] → [Queued at SHA]
↓
[Under Review / Processing]
↙ ↘
[Complete] [Error / Denied]
↓ ↓
[Payment Pending] [Provider Corrects & Resubmits]
↓
[PaymentNotice Issued]
↓
[Reconciled / Closed]
Cancelled claims (Claim.status = #CANCELLED) are terminal and cannot be reactivated. Providers must submit a new claim with reference to the cancelled one via Claim.related.