IPTp-SP Digital Support System Implementation Guide
0.1.0 - ci-build
IPTp-SP Digital Support System Implementation Guide, published by IPTp-SP Digital Support System Implementation Team. 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/daviemukungi/IPTp-FHIR-implementationIG/ and changes regularly. See the Directory of published versions
Contents:
This page provides a list of the FHIR artifacts defined as part of this implementation guide.
These define the properties by which a RESTful server can be searched. They can also be used for sorting and including related resources.
| Search by IPTp ANC Number Hash |
Enables R5 - ANC NUMBER duplicate-enrollment lookup: search Patient by the hashed ANC number captured at USSD enrollment, without exposing the raw ANC number. |
These define constraints on FHIR resources for systems conforming to this implementation guide.
| IPTp ANC Provider |
An ANC health worker whitelisted to use the IPTp USSD enrollment system. Their MSISDN must be on the approved whitelist before access is granted. |
| IPTp Adverse Drug Reaction Observation |
Records an adverse drug reaction (ADR) reported by the patient after taking an IPTp-SP dose. Captures severity (mild or severe) and triggers appropriate care pathways. |
| IPTp CHP Follow-Up Task |
A task assigned to a Community Health Promoter (CHP) when a patient has not confirmed their dose after 72 hours, reported a lost medicine, or triggered a severe ADR. |
| IPTp Care Plan |
The overall care plan for an enrolled patient covering all planned IPTp-SP doses, messaging schedule, and CHP follow-up integration. |
| IPTp Dose Administration |
Records a single IPTp-SP dose administration event. Captures whether the dose was given via DOT at clinic or self-administered at home, along with the dose number in the sequence. |
| IPTp Eligibility Flag |
A flag indicating that a patient has been confirmed eligible for the IPTp-SP program (gestational age 13–27 weeks at time of enrollment). |
| IPTp Enrolled Patient |
A pregnant woman enrolled in the IPTp-SP Digital Support System. Captures phone number, ANC number hash, language preference, and SMS consent. |
| IPTp Enrollment Episode |
Represents the enrollment of a pregnant woman into the IPTp-SP Digital Support System. Tracks enrollment status, gestational age band, messaging status, and CHP follow-up flag. |
| IPTp Gestational Age Observation |
Captures the gestational age (in weeks) of the pregnant woman at the time of IPTp enrollment. Must be 13–27 weeks to be eligible. |
| IPTp Health Facility |
An ANC health facility in the IPTp program. The facility is auto-bound to the provider at enrollment time. |
| IPTp Issue Report |
Records a non-ADR issue reported by the patient via the Have-an-Issue SMS flow (Reply 3): lost medicine or another free-text concern. Side effects/ADRs are captured separately by IPTpADRObservation. |
| IPTp Planned Dose Schedule |
Represents a planned future IPTp-SP dose. Only one future planned dose is stored at a time. Status transitions from 'active' to 'completed' or 'revoked' based on patient response. |
| IPTp Practitioner Role |
Binds a whitelisted ANC provider to the health facility they are auto-bound to following HCW training (system principle: 'Facility auto bound and provider whitelist enforced'). |
| IPTp Pregnancy Condition |
A confirmed pregnancy condition for a woman enrolled in the IPTp-SP program. |
| IPTp Prior Dose History Observation |
Records the number of IPTp doses the patient had already received before enrollment. Used to derive which dose is being administered today (current_dose_given_today = iptp_history + 1). |
| IPTp Program Feedback Observation |
Captures the patient's response to the feedback & gratitude survey sent 5 days after the final dose confirmation, plus any free-text improvement suggestion. |
| IPTp SMS Communication |
Represents an SMS message sent to or received from an enrolled patient via the dedicated short code (25332) or InfoAFYA sender ID. Captures the message type, language, and reminder anchor. |
| IPTp SMS Consent |
Records the patient's verbal consent to receive SMS reminders for the IPTp-SP program. Consent is mandatory before enrollment is confirmed. |
| IPTp SP Medication |
Sulfadoxine-Pyrimethamine (SP) medication used in the IPTp program. Each dose consists of 3 tablets taken together. |
These define constraints on FHIR data types for systems conforming to this implementation guide.
| IPTp ANC Number Hash |
Hashed ANC number for privacy-preserving de-duplication |
| IPTp Administration Method |
Whether the dose was DOT (clinic) or self-administered (home) |
| IPTp CHP Follow-up Flag |
Indicates whether a Community Health Promoter follow-up has been triggered |
| IPTp Dose Confirmation Status |
Tracks the T-0 / 24h / 72h confirmation engine outcome for a self-administered dose (confirmed / pending / missed) |
| IPTp Dose Number |
Sequential dose number in the IPTp schedule (1–4+) |
| IPTp Dose Spacing Valid Flag |
TRUE if the confirmed dose date respects the minimum 28-day spacing from the previous dose; computed when confirmation_status = confirmation-confirmed |
| IPTp Gestational Age Band |
Derived gestational age band at enrollment (EARLY 13–20 or MID 21–27) |
| IPTp Issue Resolution Status |
Whether a reported issue (ADR or non-ADR) is open or resolved |
| IPTp Language Preference |
Patient's preferred language for SMS communications |
| IPTp Manual Review Flag |
TRUE when a free-text 'Other' issue report requires manual review by a health worker |
| IPTp Messaging Status |
Current SMS messaging status for the patient (ACTIVE / STOPPED) |
| IPTp Pregnancy Outcome |
Delivery or pregnancy loss outcome that automatically stops IPTp-SP messaging |
| IPTp Provider MSISDN |
Whitelisted mobile number of the ANC provider |
| IPTp Reminder Anchor |
Type of reminder that triggered a communication |
| IPTp SMS Consent |
Records whether the patient has consented to receive SMS reminders |
These define sets of codes used by systems conforming to this implementation guide.
| IPTp ADR Severity Value Set |
Severity codes for adverse drug reactions in the IPTp program |
| IPTp Administration Method Value Set |
Whether a dose was given via Directly Observed Therapy at clinic or self-administered at home |
| IPTp Dose Confirmation Status Value Set |
Status codes for tracking whether a self-administered IPTp-SP dose has been confirmed by the patient via SMS reply (T-0 / 24h / 72h confirmation engine) |
| IPTp Gestational Age Band Value Set |
Gestational age bands for IPTp eligibility |
| IPTp Issue Type Value Set |
Non-ADR issue types reportable via the Have-an-Issue SMS flow |
| IPTp Language Preference Value Set |
Language preference options for IPTp SMS communications |
| IPTp Messaging Status Value Set |
Whether SMS reminders are currently active or have been stopped (STOP handling) |
| IPTp Pregnancy Outcome Value Set |
Outcome that automatically stops IPTp-SP messaging |
| IPTp Reminder Type Value Set |
Types of reminders sent to enrolled patients |
| IPTp Resolution Status Value Set |
Whether a reported issue is still open or has been resolved |
| IPTp SMS Message Category Value Set |
Categories of outbound/inbound SMS messages exchanged on the dedicated short code (25332) or the InfoAFYA sender ID |
These define new code systems used by systems conforming to this implementation guide.
| IPTp-SP Code System |
Code system for IPTp-SP Digital Support System concepts |
These are example instances that show what data produced and consumed by systems conforming with this implementation guide might look like.
| 24h Nudge (EN) |
Sent if no reply/confirmation is received 24 hours after the T-0 reminder |
| 24h Nudge (SW) |
24-hour nudge, Kiswahili translation |
| 72h Nudge (EN) |
Sent if no reply/confirmation is received 72 hours after the T-0 reminder; triggers CHP follow-up |
| 72h Nudge (SW) |
72-hour nudge, Kiswahili translation; triggers CHP follow-up (see IPTpCHPFollowUpTaskExample) |
| Confirmation Ack: Not Yet (EN) |
Sent after the patient replies 2 (not yet) to the T-0 reminder |
| Confirmation Ack: Not Yet (SW) |
Confirmation acknowledgement, Kiswahili translation |
| Confirmation Ack: Took It (EN) |
Sent after the patient replies 1 (took it) to the T-0 reminder |
| Confirmation Ack: Took It (SW) |
Confirmation acknowledgement, Kiswahili translation |
| Example Active Pregnancy |
Confirmed active pregnancy at enrollment, GA 20 weeks |
| Example CHP Follow-Up Task |
Task created after 72h with no dose confirmation reply |
| Example Eligibility Flag |
Eligibility confirmed at USSD Screen R1 (GA 13-27 weeks) |
| Example Feedback - Reminders Did Not Help |
Patient replied 2 (No) to the feedback survey and offered a suggestion |
| Example Feedback - Reminders Helped |
Patient replied 1 (Yes) to the feedback survey |
| Example Gestational Age Observation |
GA captured at USSD Screen R3 - GA Entry |
| Example IPTp ANC Provider |
A whitelisted ANC health worker at the Shinyalu facility |
| Example IPTp Care Plan |
Overall care plan covering all four planned doses for the enrolled patient |
| Example IPTp Dose 1 Administration (DOT) |
First IPTp dose administered under Directly Observed Therapy at clinic |
| Example IPTp Dose 2 Administration (Self-Admin, Confirmed) |
Second IPTp dose, self-administered at home and confirmed by SMS reply 1 (took it) |
| Example IPTp Enrolled Patient |
An example of a pregnant woman enrolled in the IPTp-SP system |
| Example IPTp Enrollment Episode |
An example enrollment episode for an IPTp patient |
| Example IPTp Health Facility |
An ANC clinic in the Kakamega pilot (Shinyalu sub-county) |
| Example Lost Medicine Issue Report |
Patient reported lost medicine via SMS reply 3 → 2 (lost medicine) |
| Example Mild ADR |
Patient reported a mild side effect via SMS reply 3 → 1 (side effect) → 1 (mild) |
| Example Other (Free-Text) Issue Report |
Patient reported a free-text concern via SMS reply 3 → 3 (other) |
| Example Planned Dose 3 |
The single future planned dose stored after Dose 2 is confirmed (only one future planned dose at a time) |
| Example Pregnancy Condition - Delivery Outcome |
Pregnancy outcome logged as delivery; automatic STOP condition for messaging |
| Example Prior Dose History Observation |
Captured at USSD Screen R4 - IPTp History: patient had received 0 prior doses |
| Example Provider-Facility Binding |
Binds the ANC provider to their auto-bound facility after HCW training |
| Example SMS Consent |
Verbal consent obtained at USSD Screen R5 - Consent |
| Example SP Medication |
Sulfadoxine-Pyrimethamine medication instance |
| Example Severe ADR |
Patient reported a severe side effect via SMS reply 3 → 1 (side effect) → 2 (severe) |
| Example T-0 SMS Reminder |
Dose day SMS reminder sent via short code 25332 |
| Feedback Ack: No (EN) |
Sent after the patient replies 2 (No); see IPTpFeedbackNoExample for the structured response |
| Feedback Ack: No (SW) |
Feedback No acknowledgement, Kiswahili translation |
| Feedback Ack: Yes (EN) |
Sent after the patient replies 1 (Yes); see IPTpFeedbackYesExample for the structured response |
| Feedback Ack: Yes (SW) |
Feedback Yes acknowledgement, Kiswahili translation |
| Feedback Prompt (EN) |
Sent 5 days after the final dose confirmation |
| Feedback Prompt (SW) |
Feedback prompt, Kiswahili translation |
| InfoAFYA #1: Trust (EN) |
Sent 24-48h after enrollment via the InfoAFYA sender ID |
| InfoAFYA #1: Trust (SW) |
Trust message, Kiswahili translation |
| InfoAFYA #2: Autonomy Transition (EN) |
Sent 3-5 days after DOT (Dose 1) via the InfoAFYA sender ID |
| InfoAFYA #2: Autonomy Transition (SW) |
Autonomy transition message, Kiswahili translation |
| InfoAFYA #3: Norm Reinforcement (EN) |
Sent 7 days before the next dose via the InfoAFYA sender ID |
| InfoAFYA #3: Norm Reinforcement (SW) |
Norm reinforcement message, Kiswahili translation |
| InfoAFYA #4: Identity Reinforcement (EN) |
Sent 3-5 days after Dose 2 confirmation via the InfoAFYA sender ID |
| InfoAFYA #4: Identity Reinforcement (SW) |
Identity reinforcement message, Kiswahili translation |
| InfoAFYA #5: Side-Effect Reassurance (EN) |
Sent in the mid-cycle window between two IPTp doses via the InfoAFYA sender ID |
| InfoAFYA #5: Side-Effect Reassurance (SW) |
Side-effect reassurance message, Kiswahili translation |
| InfoAFYA #6: Completion Mindset (EN) |
Sent 7 days before the final dose cycle via the InfoAFYA sender ID |
| InfoAFYA #6: Completion Mindset (SW) |
Completion mindset message, Kiswahili translation |
| InfoAFYA #7: ANC Continuity (EN) |
Sent after final dose confirmation via the InfoAFYA sender ID |
| InfoAFYA #7: ANC Continuity (SW) |
ANC continuity message, Kiswahili translation |
| Issue Flow Step 1: Problem Type (EN) |
Sent after the patient replies 3 (have an issue) |
| Issue Flow Step 1: Problem Type (SW) |
Issue flow problem-type prompt, Kiswahili translation |
| Issue Flow: Lost Medicine Response (EN) |
Sent after the patient selects 2 (lost medicine) |
| Issue Flow: Lost Medicine Response (SW) |
Lost medicine response, Kiswahili translation |
| Issue Flow: Mild Side Effect Response (EN) |
Sent after the patient selects 1 (mild) |
| Issue Flow: Mild Side Effect Response (SW) |
Mild side-effect response, Kiswahili translation |
| Issue Flow: Other - Auto-Reply (EN) |
Auto-reply sent after the free-text concern is received (see IPTpIssueReportOtherExample) |
| Issue Flow: Other - Auto-Reply (SW) |
Other-issue auto-reply, Kiswahili translation |
| Issue Flow: Other - Free Text Prompt (EN) |
Sent after the patient selects 3 (other); system enters AWAITING_FREE_TEXT |
| Issue Flow: Other - Free Text Prompt (SW) |
Free-text concern prompt, Kiswahili translation |
| Issue Flow: Severe Side Effect Response (EN) |
Sent after the patient selects 2 (severe) |
| Issue Flow: Severe Side Effect Response (SW) |
Severe side-effect response, Kiswahili translation |
| Issue Flow: Side Effect Severity Prompt (EN) |
Sent after the patient selects 1 (side effect) |
| Issue Flow: Side Effect Severity Prompt (SW) |
Side-effect severity prompt, Kiswahili translation |
| Onboarding Message 1 (EN) - Enrollment Confirmation |
Onboarding message 1, sent on short code 25332 immediately after USSD enrollment confirmation |
| Onboarding Message 1 (SW) - Enrollment Confirmation |
Onboarding message 1, Kiswahili translation |
| Onboarding Message 2 (EN) - How It Works |
Onboarding message 2, sent on short code 25332 |
| Onboarding Message 2 (SW) - How It Works |
Onboarding message 2, Kiswahili translation |
| Onboarding Message 3 (EN) - How to Take SP |
Onboarding message 3, sent on short code 25332 |
| Onboarding Message 3 (SW) - How to Take SP |
Onboarding message 3, Kiswahili translation |
| Onboarding Message 4 (EN) - Safety + InfoAFYA Bridge |
Onboarding message 4, sent on short code 25332 |
| Onboarding Message 4 (SW) - Safety + InfoAFYA Bridge |
Onboarding message 4, Kiswahili translation |
| STOP Acknowledgement (EN) |
Sent when the patient texts STOP; messaging_status = STOPPED, all scheduled messages cancelled |
| STOP Acknowledgement (SW) |
STOP acknowledgement, Kiswahili translation |
| T-0 Reminder (SW) |
Interactive dose-day reminder sent at 08:00am, Kiswahili translation (English version is IPTpT0ReminderExample) |
| T-3 Reminder (EN) |
Non-interactive T-3 reminder sent at 4:00pm, 3 days before the Dose 2 date |
| T-3 Reminder (SW) |
Non-interactive T-3 reminder, Kiswahili translation |