Multilingual Medical Prescription OCR
Reads medicine names off prescription photos written in Arabic, English, or French.
My partBuilt solo
In short
A CLI and FastAPI service that uses Gemini to extract medicine names from Arabic, English, and French prescription images, with an optional medicine database.
- What it is
- A CLI and FastAPI service that uses a Gemini-based extraction step to pull medicine names from prescription images in Arabic, English, and French.
- Why it matters
- Prescriptions are ambiguous inputs: handwriting varies, abbreviations are local, medicine names are easy to confuse, and pages routinely mix scripts.
- My part
- I built the service, the CLI, and the documentation.
Step by step
- 1
Ingest
The CLI handles individual images or directories with bounded parallelism; the FastAPI service accepts validated requests and returns predictable responses.
- 2
Extract
A Gemini-based extraction step produces a structured list of medicine names from images in Arabic, English, or French.
- 3
Normalize
An optional medicine database supports normalization and review without pretending that a fuzzy match is a clinical decision.
- 4
Review
The structured result is designed to be reviewed by a person against the source image. It is a prototype extraction step, not a prescribing, dispensing, or clinical decision system.
For engineersHow it is built, its limits, and its keywords.
How it works
The service wraps a bounded model call in a validated API and a batch-friendly CLI, supports an optional medicine database for normalization, keeps configuration and credentials out of the repository, and shapes its output so a person can check it.
Limits
- The service extracts and does not prescribe, dispense, or check interactions.
- Every result has to be checked by a person against the source image.
- Real prescription images can contain personal health information, so I don’t use them as demos.
Keywords
- medical OCR
- multilingual prescriptions
- Arabic OCR
- FastAPI
- Gemini
- human-in-the-loop