DermLiving
All posts

Terminology4 min readBy DermLiving

What does eczema mean? Mapping words to ICD-10-CM and ICD-11

People type lay terms, abbreviations and codes. Software needs one concept and its codes. Why ambiguous input should be flagged instead of guessed, and how the mapping route reports it.

In short

Terminology mapping turns what a person types, such as a lay term, an abbreviation or a code, into a defined concept with its ICD-10-CM and ICD-11 codes. When the input could mean more than one concept, as eczema can, a careful mapper returns the candidates and flags the ambiguity instead of guessing.

A person types "eczema". A coder types "L20.9". A clinician's note says "AD". All three may point at the same condition, or they may not. Before software can search evidence, fill a form or answer a question, it has to decide which concept the words name. That step is terminology mapping, and getting it quietly wrong spreads into everything after it.

Two code systems

DermLiving maps to two classifications.

ICD-10-CMICD-11
Maintained byThe U.S. National Center for Health Statistics, at the CDCThe World Health Organization
Used forCoding and classifying diagnoses in the United StatesHealth recording and statistics worldwide; in effect since January 1, 2022
Atopic dermatitisL20.9, Atopic dermatitis, unspecifiedEA80.Z, under EA80, which ICD-11 titles Atopic eczema

The last row shows why mapping is more than a lookup table. The two systems file the same condition under different names: ICD-10-CM says atopic dermatitis, while ICD-11's category is titled atopic eczema. Software that matches on names alone will miss one or the other.

Why "eczema" is ambiguous

In everyday speech, "eczema" often means atopic dermatitis. It is also used more broadly for other kinds of dermatitis. A mapper that always picks the first meaning will be right much of the time, and wrong in a way nobody notices.

So GET /v1/terminology/map does not pick. Here is what the sandbox returns for text=eczema:

json
{  "data": {    "input": "eczema",    "ambiguous": true,    "note": "Lay umbrella term. Confirm the intended concept.",    "candidates": [      {        "concept_id": "cond_atopic_dermatitis",        "name": "Atopic dermatitis",        "match": "lay_term",        "score": 0.81,        "codes": ["ICD-10-CM L20.9", "ICD-11 EA80.Z"]      },      {        "concept_id": "icd10cm_L30.9",        "name": "Dermatitis, unspecified",        "match": "index_term",        "score": 0.64,        "codes": ["ICD-10-CM L30.9"]      }    ]  }}

Three fields carry the decision back to you:

  • ambiguous says, as a boolean, that the input names more than one concept.
  • candidates lists the concepts, each with how it matched (a preferred term, a synonym, an abbreviation, a lay term, an index term or a code), a score and its codes in both systems.
  • note says in plain words what to do next.

Flag, don't guess

A flag turns a silent error into a visible question. An interface can show the two candidates and let the person choose. An agent can ask a clarifying question before it searches. A batch job can send flagged rows to review instead of coding them. Each of these is better than a confident guess, and each is only possible because the mapper admitted it was unsure.

Codes in, concepts out

The same route accepts codes. Send text=L20.9 and there is nothing to resolve:

json
{  "data": {    "input": "L20.9",    "ambiguous": false,    "candidates": [      {        "concept_id": "cond_atopic_dermatitis",        "name": "Atopic dermatitis",        "match": "code",        "score": 1,        "codes": ["ICD-10-CM L20.9", "ICD-11 EA80.Z"]      }    ]  }}

A code match scores 1 and returns the concept with its codes in both systems, so a record coded in ICD-10-CM can be read alongside one coded in ICD-11.

In an agent

Agents get the same behavior through the map_terminology tool on the MCP endpoint. Its input schema says it outright: ambiguous input is flagged, never guessed. An agent that respects the flag asks before it acts. See Giving AI agents dermatology tools over MCP for how to connect one.

The sandbox's vocabulary is small and synthetic: a handful of surface forms, enough to show each kind of match. The API reference documents every field.

Questions

What is the difference between ICD-10-CM and ICD-11?

ICD-10-CM is the U.S. clinical modification of ICD-10, maintained by the National Center for Health Statistics and used to code diagnoses in the United States. ICD-11 is the World Health Organization's current revision, in effect since January 1, 2022.

Is eczema the same as atopic dermatitis?

Often, in everyday speech, but not always. The word is also used for other kinds of dermatitis, which is why the mapping route flags it as ambiguous and returns more than one candidate.

What are the codes for atopic dermatitis in ICD-10-CM and ICD-11?

In ICD-10-CM, atopic dermatitis, unspecified, is L20.9. In ICD-11, it falls under EA80, titled atopic eczema, and the unspecified code is EA80.Z.

What happens if I send a code instead of a word?

The route resolves it directly. A code match is not ambiguous, scores 1 and returns the concept with its codes in both systems.

Does DermLiving map to SNOMED CT?

Not today. The sandbox maps to ICD-10-CM and ICD-11 only.

Sources

  1. ICD-10-CM, U.S. Centers for Disease Control and Prevention, National Center for Health Statistics
  2. International Classification of Diseases (ICD), World Health Organization
  3. ICD-11, World Health Organization

Start in the sandbox.

The whole API on synthetic data. No key, no card, no patient data.