Blog

Capability 2 | Terminology Mapping: Speaking the Same Clinical Language

How Predoc resolves fragmented clinical vocabularies into a standardized, queryable language.

This post is part of a series of deep dives on the capabilities that power Predoc's curated data layer. Read the overview by Raihan Nayeem →

The shared-language problem

The problem

Healthcare data doesn't just vary in format, it varies in language. The same concept can be represented across ICD-10, SNOMED-CT, LOINC, CPT, and with many different iterations on spelling, abbreviations, and free-text variations.

The response

Terminology mapping ensures that all of these variations resolve to a standardized clinical concept. Consider Hemoglobin, for example. It might be represented as Hemoglobin, Hgb, Hb, HgB, Hemoglobin A1c, HbA1c, or even a misspelling like hemaglobin.

Figure 1 — Resolution
Five ways to write the same concept
Hemoglobin Hgb Hb HgB hemaglobin LOINC CONCEPT 718-7 Hemoglobin [Mass/volume]
Five free-text and abbreviation variants — including a misspelling — collapsed into one canonical LOINC concept.

In structured systems, it may also map to different LOINC codes (Logical Observation Identifiers Names) depending on whether it's a standard hemoglobin vs. A1c, the specimen type, the measurement method. Without proper mapping, these can be treated as entirely separate concepts.

This is Capability #2 in building a curated data layer: Not just extracting data, but making sure it speaks a consistent clinical language, per USCDI (US Core Data for Interoperability vocabulary standards).

Because without that, systems duplicate what should be unified, analytics miss what should be obvious, clinical and financial workflows fall out of sync.

Most healthcare data pipelines don't solve this, and they either assume the data already comes clean, or ignores the duplicates.

But in reality, terminology is where fragmentation begins; if you don't fix it here, you carry that inconsistency all the way through the system.

Data Without a Shared Language

Take a simple medication: Metformin, a medication used to treat Type II Diabetes. Across different sources, the related information about Metformin might appear like this:

Figure 2 — Source Variation
One drug. Six representations.
PROVIDER NOTE "metformin 500 BID" DOCUMENT Metformin HCl 500mg MED LIST Glucophage 500mg PHARMACY CLAIM NDC 0093-1048-01 CODED SYSTEM RxNorm 6809 SPARSE "Metformin" — no dose RXNORM Metformin
Resolved
Six representations → one ingredient-level RxNorm concept
Free text, brand names, NDCs, and missing-data variants all funnel toward the same canonical concept once mapped.
  • In a provider note (unstructured text): "Patient continues metformin 500 twice daily"
  • In another document: "Metformin HCl 500 mg BID"
  • In a medication list: "Glucophage 500mg" (the brand name)
  • In a pharmacy feed: NDC Code for a specific package of Metformin
  • In a standardized system: Normalized to RxNorm code for ingredient, clinical drug, or branded drug concept
  • And in some cases: Just "Metformin," with no dosage, no frequency, and no code

A properly mapped system can often normalize these different representations to the appropriate RxNorm concept level, allowing related medication data to be grouped and interpreted consistently across sources. When the source includes enough detail, that normalization may resolve to a more specific clinical drug concept. When it does not, the system may only be able to normalize to a broader ingredient-level concept.

RX What are RxNorm concept levels, exactly?

RxNorm is the National Library of Medicine's normalized naming system for clinical drugs. A single physical product maps to several concept levels, each with increasing specificity.

Ingredient
Metformin — the active substance, dose-agnostic.
SCD
Semantic Clinical Drug — Metformin 500 MG Oral Tablet.
SBD
Semantic Branded Drug — Metformin 500 MG Oral Tablet [Glucophage].
NDC
National Drug Code — a specific package SKU (e.g. 0093-1048-01).

Free-text "Metformin" with no dose can only resolve to Ingredient. A pharmacy feed with an NDC can resolve all the way down. Mapping conservatively to the most specific level the evidence supports is the whole game.

Without terminology mapping, these may be treated as different medications (brand vs generic), separate entries (due to formatting differences), or incomplete records (missing codes or structure).

What's missing from most annotations is the standardized clinical code, the identifier that tells every downstream system exactly what that medication is. And that's a problem, because in modern healthcare, data without standardized codes is data that loses meaning.

Interoperability frameworks such as USCDI strongly favor the use of standard vocabularies such as RxNorm, LOINC, SNOMED CT, and ICD-10 in the appropriate contexts. In practice, the more clinical data can be anchored to recognized coding systems, the more reliably organizations can exchange, reconcile, and analyze it across systems.

Most Systems Don't Solve This

Many downstream systems (EHRs, data lakes, interoperability layers, analytics tools) are designed to work best when the incoming data are already structured and coded. In other words, they assume the data already comes clean. They rely on EHR-generated data with embedded codes or HIE feeds that are already standardized.

The challenge with EHR-generated data is that it often arrives in CCDA format, which is XML with extensive tagging. CCDA format is optimized for exchange, but not for querying; it's deeply nested and complex, and querying it relies on understanding and navigating those complexities. In addition, EHR-generated data will often contain PDFs, which are binary files filled with unstructured or semi-structured text that cannot be queried.

The assumption of clean data breaks immediately when you introduce PDFs from prior providers, faxed documents, and free-text clinical notes.

In these cases, the data are rich in description, but they are missing standardized codes. Many systems stop at acquisition of the data and they will either store the data as-is (unstructured, unstandardized), or attempt shallow normalization without true clinical mapping. Ask any physician who has searched a PDF for a lab value embedded in a progress note.

How Predoc's Curated Data Layer Solves for This

At Predoc, terminology mapping isn't a single step, it's a layered system.

1. Code Inferencing: Creating Structure Where None Exists

A large portion of extracted data, especially from documents, does not come with codes. The first challenge is whether we infer the correct clinical code from the available information.

Figure 3 — Pipeline
Three matching strategies, one confidence score
1
High confidence
Deterministic Match
Name + dose + form

If the data is complete (e.g., medication name + dosage form), it can be matched directly to a known code. Highest confidence.

2
Medium confidence
Probabilistic / AI-Assisted
Best-candidate ranking

If data is incomplete or inconsistent, the system identifies the best candidates and uses models to determine the most likely match.

3
Contextual
Clinical Context Application
Specimen, units, care setting

In ambiguous cases, additional context — data type, adjacent notes, units, specimen, care setting — is applied to refine the mapping.

↓ Confidence-scored mapping If not confident, the system does not invent certainty.
Each strategy contributes a confidence score. Only high-confidence mappings are released for external workflows.

This happens in three steps:

Deterministic Matching: If the data is complete (e.g., medication name + dosage form), it can be matched directly to a known code. This is known as deterministic matching.

Probabilistic / AI-Assisted Matching: If the data is incomplete or inconsistent, the system identifies the best candidates and uses models to determine the most likely match.

Clinical Context Application: In more ambiguous cases, additional clinical context, such as data type, adjacent notes, units, specimen, care setting, etc, are applied to refine the mapping.

Each step builds toward a confidence score, ensuring that only high-confidence mappings are used externally. And importantly, if the system is not confident, it does not invent certainty. This is critical in healthcare, where incorrect data is often worse than missing data.

2. Internal vs External Truth: A Subtle but Critical Distinction

One of the most important nuances in terminology mapping, is that not all inferred data are treated equally.

Used internally only

Internal — lower confidence

Lower-confidence mappings stay inside Predoc's curated layer, where they help with deduplication and data improvement — for example, recognizing that a free-text "metformin" likely matches a confirmed RxNorm-coded entry from an HIE feed, and collapsing duplicates.

Provenance is preserved at every step. We never present low-confidence inferences as source-confirmed facts.

Released for interoperability

External — high confidence

High-confidence mappings — typically deterministic, with all required attributes present — are surfaced to external systems and shared with care, payer, and research partners.

These are the codes that show up in CCDAs we generate, in HIE exchanges, and in queries clinicians or analysts run against the data.

  • High-confidence mappings can be used for interoperability
  • Lower-confidence mappings are used internally for data improvement

For example, if a medication is inferred from a document, and the same medication appears in an HIE feed with a confirmed code, the inferred code can be used to identify duplicates and remove redundancy, which improves data quality.

The key principle is not to present low-confidence inferences as if they were source-confirmed facts. Strong systems preserve provenance, distinguish documented values from inferred normalizations, and apply confidence thresholds before using mapped concepts in external workflows. Data aggregators operate as exchangers of information, so any low-confidence clinical code that we infer is used exclusively internally for data enhancement and aggregation purposes.

Terminology mapping powers data aggregation and deduplication behind the scenes, which we will address in our data synchronization capability deep dive.

3. Crosswalks: Translating Between Coding Systems

Even when codes exist, there's another challenge: different systems use different coding standards. For medications alone, you might see NDC (FDA) or RxNorm; for labs, LOINC; and for conditions, ICD-10 or SNOMED.

Figure 4 — Crosswalks
One canonical standard per clinical category
MEDICATIONS NDC LABS vendor code CONDITIONS ICD-10 CANONICAL RxNorm CANONICAL LOINC CANONICAL SNOMED CT direct mapping attribute matching subset crosswalk
Crosswalks operate within clinical categories. Predoc resolves each source system to one chosen canonical — RxNorm for medications, LOINC for labs, SNOMED CT for conditions.

Terminology mapping must handle crosswalks: translating one coding system into another and normalizing everything to a standard (e.g., RxNorm for medications).

Predoc handles this in two primary ways:

  1. Direct mappings published by coding system maintainers. Many standards bodies provide official crosswalks (e.g., NDC ↔ RxNorm). First, most reliable layer.
  2. Inferred deterministic mappings based on shared properties. When direct mappings are incomplete or unavailable, codes are translated by matching attributes — substance, dosage form, strength — to identify the equivalent concept.

This ensures that data from different sources can be combined, queries return complete results, and it supports interoperability across systems that speak different vocabulary. Without crosswalks, even "coded" data remains fragmented.

Why This Matters Clinically

From a clinical perspective, terminology mapping is about accuracy and completeness. Terminology mapping is the difference between "We think this patient is or was on this medication" and "We know exactly what this patient is taking, across all sources." And when these data are used as part of a curated data set, available not just in the EHR, but also in a data warehouse, its utility to revenue cycle, care management teams, analytics teams, and others within a health organization is amplified.

Healthcare data doesn't just need to be extracted, it needs to be understood in a standardized clinical language. Without terminology mapping, everything built on top, clinical care, analytics, revenue cycle, starts to break. Terminology mapping isn't just a feature. It's the backbone of usable healthcare data.

Get Complete, Usable Patient Data.

Stop manually chasing and cleaning records. See how Predoc seamlessly integrates with your existing systems to deliver normalized, actionable data right when you need it.