Why your coding software does not understand “koch’s”

ICD-10 engines trained on American charting fail on the words Indian doctors actually write. That failure has a rupee value.

Clinics & Hospitals6 min readUpdated 2026-07-02

An Indian consultant writes "sugar +, on OHA" or "k/c/o koch's" or "c/o loose motions × 3 days." These are not sloppy notes. They are a working shorthand that every Indian clinician reads instantly and almost no imported coding engine resolves.

What happens next is predictable. The phrase does not match, so the coder reaches for a catch-all — an unspecified code that is technically payable and reliably queried. Or the encounter goes out uncoded and a claim gets held.

The vocabulary that matters here

Written asMeansShould resolve to
sugarDiabetes mellitusE11.– family
koch'sTuberculosisA15.– family
loose motionsDiarrhoeaA09 / K52.9
daadTinea / ringwormB35.–
kamzoriWeakness, malaiseR53.–
BPHypertensionI10

And then the diagnoses themselves. Dengue, typhoid, malaria, tuberculosis and scrub typhus are routine presentations in an Indian OPD. In an engine built around American epidemiology they sit in the long tail, ranked below conditions an Indian clinic may see once a decade.

The case against using a language model for this

It is tempting to point an LLM at the problem, and it will appear to work. Three reasons not to:

It can invent codes. A generative model asked for an ICD-10 code will always produce something shaped like an ICD-10 code. Whether that code exists is a separate question. A deterministic lookup cannot return a code that is not in the table.

It needs the internet. Clinics in tier-2 and tier-3 cities do not have reliable connectivity, and a coding step that fails when the link drops is a coding step that gets skipped.

It costs per call. A busy OPD codes hundreds of encounters a day. Per-call pricing on a routine operation is a meter running against your margin.

A deterministic engine with a properly built Indian vocabulary resolves in about a millisecond, offline, at zero marginal cost, and cannot hallucinate. That is not a compromise. For this particular job it is strictly better.

The part that compounds

Every clinic has its own shorthand on top of the shared one — a particular consultant's abbreviations, a department's habits. An engine that learns those after the second use, and then suggests them instantly, gets more useful the longer it runs. An engine that is retrained centrally every quarter never learns your building at all.

Worth measuring: what fraction of your codes are unspecified catch-alls. They are payable, and they are the ones TPAs query. A coverage dashboard that surfaces the phrases the engine keeps missing tells you exactly where the next improvement is.

Drapto's ICD-10 engine is deterministic, runs offline, and is built on Indian clinical shorthand. How the coding layer works →

Written for Indian practices

Every figure here uses Indian policy mechanics, Indian payers and Indian clinical vocabulary. Nothing on this blog is translated from a US or UK playbook.