# LOINC 101

# A Friendly Introduction to the Universal Language of Lab Results

If you've ever looked at a lab report and seen something like `4548-4` next to "Hemoglobin A1c," that's a LOINC code. It might look like a random number, but behind those digits is one of the quiet success stories of healthcare interoperability: a system that lets a hemoglobin A1c result performed at LabCorp in Texas, a hospital lab in Maine, and a reference lab in California all be recognized as *the same test* by any EHR that reads them.

LOINC doesn't get the attention of SNOMED CT or ICD-10-CM. It's not on your medical bill. You won't see it in policy headlines. But if you've ever had your lab results follow you from one health system to another, or used a patient portal that aggregated tests from multiple labs, you have LOINC to thank.

This is a friendly tour of what LOINC is, where it came from, how its surprisingly elegant naming system works, who uses it, and how it fits with the rest of the healthcare data ecosystem.

Let's dive in.

## What is LOINC, really?

LOINC stands for **Logical Observation Identifiers Names and Codes**. It's the international standard for identifying **laboratory tests, clinical measurements, observations, survey instruments, and document types**.

The simplest way to think about LOINC: it answers the question *"what was measured?"* in a way that any computer system can recognize.

When a lab performs a test, the result has two parts: the *identifier* of the test ("this is a hemoglobin A1c, measured by HPLC, on whole blood, as a percentage") and the *value* of the result ("6.8"). LOINC handles the first part. The value still comes from the lab, but LOINC makes sure everyone agrees on what was actually measured.

A useful contrast: where **CPT** identifies the *billable* test (the thing the lab charges for), **LOINC** identifies the *observation result* (the thing the EHR stores and the clinician interprets). The same lab test typically has both — a CPT code on the claim and a LOINC code on the result message. They serve different purposes and live in different parts of the workflow.

LOINC's reach goes well beyond lab tests, though that's its origin story. It also covers vital signs, anthropometric measurements, ECG findings, ultrasound observations, document types (think "Discharge Summary" vs. "Operative Note"), and standardized survey instruments like the PHQ-9 depression screener or the PROMIS measures. If something can be observed, measured, or assessed in healthcare, LOINC probably has a code for it.

## A brief history: a Regenstrief idea that quietly took over the world

LOINC's history is shorter than SNOMED CT's or ICD's, and it's centered around a single institution and a small group of remarkably persistent informaticians.

**1994 — LOINC is born at Regenstrief Institute.** **Dr. Clem McDonald** and colleagues at the **Regenstrief Institute** in Indianapolis launched LOINC to solve a problem they kept running into: hospital information systems couldn't exchange lab results meaningfully because every system used its own local codes. McDonald, who had been building one of the earliest electronic medical records (the Regenstrief Medical Record System) since the 1970s, was deeply familiar with the pain.

The Regenstrief Institute itself is worth a brief mention. Founded in 1969 as a partnership with the Indiana University School of Medicine, Regenstrief became one of the most influential medical informatics centers in the world — quietly producing tools and standards (LOINC most prominent among them) that ended up shaping the entire field.

**Mid-1990s — Early adopters.** LOINC was distributed freely from the start, and a small group of reference labs and academic medical centers started using it. The Mayo Clinic, the VA, and a few large reference labs were among the early adopters.

**Late 1990s–2000s — National recognition.** The U.S. federal government, particularly through the NLM, started recommending LOINC for lab result exchange. The HL7 v2 standard adopted LOINC as the preferred code system for the OBX-3 field (where you put "what was observed"). Public health agencies began requiring LOINC on reportable lab results.

**2000s–2010s — Beyond lab.** LOINC expanded into clinical observations, document types (the LOINC Document Ontology), survey instruments, and eventually genomic observations. It stopped being just a lab vocabulary and became a general observation vocabulary.

**2010s — Federal mandates.** Meaningful Use, ONC certification, and CMS quality measurement programs increasingly required LOINC. CMS OASIS, the home health assessment instrument, encoded its 1,100+ data elements in LOINC. CMS eCQMs (electronic clinical quality measures) used LOINC for lab-based criteria.

**2020s — Joint LOINC × SNOMED CT effort.** Regenstrief and SNOMED International launched the **LOINC Ontology** — a joint project to re-express LOINC observation parts in SNOMED CT's description logic. This is the most significant interoperability collaboration in the terminology world right now, and it's published at `loincsnomed.org`.

**Today.** LOINC contains **more than 102,000 concepts**, is translated into multiple languages (including a 2024 Arabic linguistic variant), and is the de facto international standard for lab and observation data exchange. It's maintained by Regenstrief's Health Data Standards division, with **Marjorie Rallins** as its current Executive Director.

## How is LOINC structured?

This is where LOINC gets genuinely beautiful. The structure is one of the most elegant designs in medical informatics.

### The six-axis name

Every LOINC code has a **fully specified name** built from exactly **six axes**:

1.  **Component** — *what* is being measured (e.g., Hemoglobin A1c, Sodium, Creatinine)
    
2.  **Property** — the *kind* of measurement (e.g., Mass concentration, Substance concentration, Number, Ratio)
    
3.  **Time Aspect** — the *time interval* over which the measurement was made (e.g., Point in time, 24 hours)
    
4.  **System** — the *sample* or context where it was measured (e.g., Serum, Plasma, Urine, Cerebrospinal fluid)
    
5.  **Scale** — the *type of result* (Quantitative, Ordinal, Nominal, Narrative)
    
6.  **Method** — the *technique* used (e.g., HPLC, Immunoassay, Manual count) — often left blank when the method doesn't matter
    

You write this as a colon-separated string. For example, the canonical name for hemoglobin A1c is:

`Hemoglobin A1c/Hemoglobin.total : MFr : Pt : Bld : Qn : HPLC`

(Component: A1c as a fraction of total hemoglobin / Property: mass fraction / Time: point in time / System: blood / Scale: quantitative / Method: HPLC)

The unique numeric LOINC code for this is `4548-4`. The six-axis name and the numeric code are equivalent — the code is just a shorter identifier for the same precisely defined concept.

What makes this elegant is that it's **systematic**. Two LOINC codes that differ in only one axis are clearly related. A clinician reading the structured name can immediately tell what's the same and what's different between two seemingly similar tests. And a computer can do useful inference (like grouping all serum sodium tests regardless of method).

### LOINC Parts (LP codes)

The values inside each axis aren't free text — they come from controlled vocabularies of their own, called **LOINC Parts**. Each Part has an ID like `LP12345-6`. So "Hemoglobin A1c" is a Part, "Serum" is a Part, "Quantitative" is a Part.

This is what makes LOINC compositional. The Parts form a shallow ontology of building blocks; LOINC codes are combinations of those Parts along the six axes.

### LOINC Groups

For aggregation and analytics, LOINC publishes **LOINC Groups** — curated sets of LOINC codes that all measure essentially the same clinical concept, even if they differ in method or specimen. So a "Serum sodium" Group might include codes for sodium measured by different methods, on different specimens, that should all roll up to the same analytic question.

Groups are how you avoid the trap of "well, this lab measures sodium with one LOINC code and that lab uses a slightly different LOINC code, so my analysis missed half the data."

### Document Ontology

LOINC also includes a **Document Ontology** for clinical documents — discharge summaries, history and physical notes, operative notes, progress notes, and so on. The Document Ontology uses its own axis structure (Kind of Document, Type of Service, Setting, Subject Matter Domain, Role) and is the standard way to identify document types in HL7 CDA and FHIR.

### Answer Lists

For tests that return categorical rather than numeric values (e.g., a blood type result, a tumor stage), LOINC publishes **Answer Lists** with IDs like `LL1234-5`. The Answer List enumerates the legal answers to that observation, each with its own LOINC Answer code.

This is how LOINC handles ordinal and nominal scales — the test code identifies the question, and the Answer List enumerates the valid answers.

### The new LOINC Ontology

The joint effort with SNOMED International re-expresses LOINC Parts in SNOMED CT's description logic. This gives LOINC something it didn't have natively: formal semantic reasoning. Over time, the LOINC Ontology will make it possible to ask questions like "find all LOINC codes whose Component is a descendant of *electrolyte*" in a way that's semantically grounded.

## Where does LOINC live, and how often is it updated?

LOINC is updated **twice a year** — in **February and August**. Each release adds new codes (a recent release added 800+ new concepts), refines existing ones, and incorporates work on the LOINC Ontology, the Document Ontology, and Answer Lists.

The authoritative source is `loinc.org/downloads/`. You get the full release as a ZIP package containing:

*   The main LOINC table (`Loinc.csv`)
    
*   LOINC Parts
    
*   LOINC Answer Lists
    
*   Hierarchies
    
*   Multi-axial hierarchy
    
*   Document Ontology
    
*   Various supplements
    

Distribution formats:

*   **CSV** — the primary tabular distribution, easy to load into any tool
    
*   **MS Access database** — bundled with RELMA, the LOINC mapping tool (more on that below)
    
*   **FHIR packages** — `CodeSystem`, `ValueSet`, and supplement resources in JSON or XML
    
*   **OWL** — used for the LOINC Ontology releases (the joint SNOMED CT work)
    

LOINC also runs a **FHIR Terminology Service** at `fhir.loinc.org` — though as of this writing it's still in BETA and not recommended for production. The browser at `loinc.org/search/` is excellent for interactive exploration.

## Who uses LOINC, and why?

The list is broad, and the reach is genuinely global.

**Reference labs** — Quest Diagnostics, LabCorp, and other large commercial labs use LOINC to code every test on their menu. When they send results to client EHRs, those results are LOINC-coded.

**Hospital and clinic labs** use LOINC for the same reason. When a hospital lab sends an HL7 result message to the EHR, the test identifier in the OBX-3 segment is a LOINC code.

**EHR vendors** consume LOINC heavily. Every lab result that comes into an EHR is normalized via LOINC. Patient portals that show lab results, longitudinal lab trends (the "show me my A1c over time" feature), and clinical decision support rules all depend on LOINC being consistent across data sources.

**Federal agencies** are big users. The CDC uses LOINC for public health reporting (electronic lab reporting / ELR for reportable conditions). The FDA uses LOINC in its safety surveillance systems and structured product labeling. The VA uses LOINC across its enterprise. The NIH uses LOINC in its research data warehouses.

**Public health departments** use LOINC for disease surveillance — every state health department's electronic lab reporting system requires LOINC codes on reportable conditions like influenza, COVID-19, and STIs.

**Payers** increasingly use LOINC for lab-based quality measurement and clinical analytics. If you want to know which of your members had an A1c above 9% in the last year, LOINC is how you find them.

**CMS quality measure developers** use LOINC extensively. CMS eCQMs (electronic clinical quality measures) define lab-based numerators and denominators using LOINC codes. CMS OASIS — the home health assessment — encodes its 1,100+ data elements in LOINC.

**Clinical researchers** use LOINC for cohort definitions and outcome measurements in EHR-derived research datasets.

**Survey instrument developers** — PROMIS, PHQ-9, GAD-7, MDS, OASIS — encode their items in LOINC, making structured assessment data interoperable across systems.

The common thread: anywhere a measurement, observation, or assessment crosses an organizational boundary, LOINC is how it stays meaningful.

## How do you get LOINC?

Here's the cheerful news: **LOINC is free**, worldwide, including for commercial use. There's no licensing fee, no royalty, no per-user pricing.

The catch is mild: you need to register a free LOINC user account at `loinc.org`, accept the LOINC license terms (which mostly require you to attribute LOINC properly and not misrepresent the source), and then you can download anything you want and embed it in any product.

This is one of the more permissive licenses in healthcare terminology, and it's a big part of why LOINC adoption has spread so widely.

### Third-party tools and ecosystems

A healthy ecosystem has grown up around LOINC:

*   **RELMA (Regenstrief LOINC Mapping Assistant)** — Regenstrief's own free Windows application for mapping local lab codes to LOINC. The classic tool for the "I have 5,000 local lab codes and I need to figure out what LOINC code each one maps to" problem.
    
*   **The LOINC browser** at `loinc.org/search/` — interactive lookup, free, no login needed for casual browsing
    
*   **The LOINC FHIR Terminology Server** at `fhir.loinc.org` — BETA, free, for programmatic FHIR-based access
    
*   **HAPI FHIR, Snowstorm, Ontoserver** — major FHIR terminology servers all support LOINC as a `CodeSystem`
    
*   **Open-source libraries** — `loinc-r`, Python libraries, NPM packages — community tools for loading LOINC into analysis pipelines
    
*   **VSAC** — the NLM's Value Set Authority Center publishes thousands of LOINC-based value sets for CMS quality measurement, free with a UMLS account
    
*   **Commercial encoder products** — TruCode, 3M, Optum, and others incorporate LOINC alongside CPT and ICD for unified coding workflows
    
*   **Cloud platforms** — Google Cloud Healthcare API, AWS HealthLake, Microsoft Azure Health Data Services, InterSystems IRIS all expose LOINC through their terminology operations
    

For most teams, the combination of the free official release + a FHIR terminology server (HAPI or one of the cloud-hosted options) is enough to build production systems.

## How does LOINC play with other vocabularies?

LOINC sits in the middle of several important relationships across the U.S. healthcare data ecosystem.

### LOINC ↔ SNOMED CT (the LOINC Ontology)

The most important and most actively developing relationship. Historically, LOINC and SNOMED CT had overlapping concepts and clumsy cross-references. The joint **LOINC Ontology** initiative is changing that by re-expressing LOINC Parts in SNOMED CT's description logic.

The result is that LOINC codes can be related to SNOMED CT clinical findings in a semantically rigorous way — for example, an abnormal sodium result coded in LOINC can be linked to "hyponatremia" coded in SNOMED CT. This is genuinely powerful, and it's published at `loincsnomed.org` with ongoing releases.

There's also a **LOINC Part to SNOMED CT Reference Set** with about 2,121 LP-to-SCTID mappings — a kind of bridging table between the two systems.

### LOINC ↔ CPT (lab tests)

For laboratory tests, **CPT identifies the billable test** and **LOINC identifies the observation result**. A CBC bills under CPT `85025` and produces results coded in LOINC. The same physical lab test has both codes attached to it — they're not redundant, they serve different workflows.

There's no official AMA-blessed CPT-to-LOINC map, but the CDC and other organizations have published informal cross-references. Many lab information systems carry both codes for each test on their menu.

### LOINC ↔ RxNorm

RxNorm includes some LOINC-coded drug-related observations (think "ingredient strength" measurements), and the two vocabularies cross-reference each other in UMLS. The relationship is less central than LOINC-SNOMED or LOINC-CPT but exists for specific use cases.

### LOINC and HL7 v2

In HL7 v2 lab result messages, the **OBX-3** field (Observation Identifier) is where the LOINC code lives. HL7 v2 doesn't dictate LOINC, but in U.S. practice it's the dominant code system for that field. Every ELR (Electronic Lab Reporting) message to a public health agency, every result message between a reference lab and an EHR, every HL7 v2 result interface — they're all LOINC-coded in the OBX-3.

### LOINC and FHIR

In FHIR, LOINC codes appear most prominently in the `Observation.code` element. The US Core Implementation Guide *requires* LOINC for laboratory observations and vital signs in certified EHRs. If you're building a FHIR application that touches lab results, you're working with LOINC.

### LOINC and USCDI

The U.S. Core Data for Interoperability (USCDI) requires LOINC for the "Laboratory" data class, "Vital Signs," and several other observation-based elements. This means every ONC-certified EHR must expose LOINC-coded lab and vital sign data via FHIR. Effectively a federal mandate.

### LOINC and the Document Ontology

For clinical documents, the LOINC Document Ontology provides the document type code that appears in HL7 CDA headers (and in FHIR `DocumentReference.type`). A "Discharge Summary" is `18842-5`. A "History and Physical Note" is `34117-2`. This is how document repositories and HIEs classify documents for retrieval.

### LOINC inside UMLS

LOINC is a source vocabulary in the NLM's **Unified Medical Language System (UMLS)**, linked to other vocabularies through Concept Unique Identifiers (CUIs). For researchers doing cross-vocabulary work, UMLS is the natural integrating layer.

## Wrapping up

LOINC is one of those infrastructure projects that's so successful you almost don't notice it. It quietly turned the chaos of local lab codes into a global standard. It expanded from labs to clinical observations to documents to survey instruments. It became the assumed default for FHIR `Observation` resources and HL7 v2 result messages. And it did all of this while being completely free.

If you're learning U.S. healthcare data, the key things to internalize about LOINC:

1.  **LOINC identifies the *observation*, not the *billing*.** A lab test has both a CPT code (for billing) and a LOINC code (for results). They're complementary.
    
2.  **The six-axis name is the heart of LOINC.** Component, Property, Time Aspect, System, Scale, Method — these define every LOINC code precisely and systematically.
    
3.  **It covers more than labs.** Vital signs, ECGs, imaging observations, document types, survey instruments — LOINC has them all.
    
4.  **It's free and permissively licensed.** Register at `loinc.org`, download, use commercially. No friction.
    
5.  **Updates twice a year — February and August.** Plan for it.
    
6.  **The LOINC Ontology with SNOMED CT** is the most exciting active development in the terminology world right now, and it's worth watching.
    

For an unsung infrastructure project born at a Midwestern research institute in 1994, LOINC has reshaped how the world exchanges measurements and observations. Welcome to the beautifully systematic world of LOINC. The six axes will start to feel natural sooner than you think.
