WHO Essential Medicines List Query Skill
Search ~500 WHO essential medicines by name, section, or section number. Case-insensitive substring match.
| Input Example | Matches On |
|---|---|
amoxicillin |
medicine name |
antimalarial |
section hierarchy (full path) |
diabetes |
section hierarchy |
6.2 |
section_num prefix |
API
| Function | Input | Returns |
|---|---|---|
load_eml(cache_path) |
JSON path | list[dict] |
build_cache(pdf_path, cache_path) |
PDF + cache paths | list[dict] (parses PDF → JSON) |
search(data, entity) |
single string | list[dict] |
search_batch(data, entities) |
list of strings | dict[str, list[dict]] |
summarize(hits, entity) |
list[dict] + label | compact text |
to_json(hits) |
list[dict] | list[dict] |
Record Schema
| Field | Example |
|---|---|
medicine |
amoxicillin |
section_num |
6.2.1 |
section_name |
Anti-infective medicines > Antibacterials > Access group antibiotics |
dosage_forms |
["Capsule: 250 mg; 500 mg", "Oral liquid: 125 mg/5 mL"] |
Usage
See if __name__ == "__main__" block in 59_WHO_EML.py for runnable examples.
Data
- Source: WHO Model List of Essential Medicines – 23rd List (2023)
- PDF:
WHO EML 23rd List (2023).pdfinDATA_DIR - Cache:
who_eml_23.json(auto-built on first run from PDF) - License: CC BY-NC-SA 3.0 IGO
- Dependency:
pip install pypdf