The 6 steps
- Locate. In the Data Dictionary (Annex A), filter the module tab by Linkages to Decision Support Tables → the table's input and output data elements.
- Read the WHO logic. Write down the clinical-safety invariants you must not lose.
- Find national divergences. The ~20% that is Ethiopia-specific. [confirm: ETH]
- Author. Fill the Annex B table (format →). Every input/output is a coded data element, never free text.
- Check. ≤10 inputs; hit policy + operators set; safety invariants intact; add references.
- Record provenance. In
Annotations: what diverged from the WHO table and why; track the version.
Worked logic — HIV testing algorithm
Format (Annex B)
- Columns:
Rule ID · Condition Inputs (one per element) · Output Type · Action · Guidance · Annotations · Reference(s)
- Declare a Hit Policy (usually Rule order)
- Operators:
= IN ≥ < is NULL =True/=False
- ≤10 inputs — split larger tables
Don't break it
- Keep every WHO safety rule (e.g. non-reactive→negative; serial testing; discrepant→repeat; inconclusive→retest in 14 days)
- Stratify on a data element's value, not its code
- Use the correct dose/threshold per drug
- Changed a DD element/value set? Update every linked table (Annex A Linkage columns)
Done?
- Built from the WHO table, not scratch
- Every value a coded Annex A element
- ≤10 inputs; policy + operators set
- Safety invariants intact; references added
- Provenance recorded; ground-truthed