Some LOINC terms are authored with an axis value that is deliberately generic, using the curly-brace notation described in Section 2.1.8 (for example, {Specimen} in the System or {Molgen} in the Method). The specific value is then supplied at the point of use, rather than by creating a distinct pre-coordinated term for every combination. This avoids unbounded growth in the number of terms as specificity needs grow — for example, one term for every gene × detection-technique combination.

For that to work consistently, an implementer needs to know which specific values are valid substitutes for a generic axis value. LOINC answers that question with a defining LOINC: a term whose purpose is to govern the set of valid resolutions for a post-coordinated axis value.

How the resolution is modeled

  1. The curly-brace axis value flags the value as post-coordinated. The Part behind that axis value is the anchor Part — for example, LP452305-8 ({Molgen}, PartTypeName = METHOD) or LP451871-0 ({Specimen}, PartTypeName = SYSTEM) in Part.csv.
  2. The anchor Part points at a defining LOINC. The Part carries a row in PartRelatedCodeMapping.csv with ExtCodeSystem = http://loinc.org — rather than an external system such as SNOMED CT — and ExtCodeId set to the defining LOINC. This LOINC-system row sits alongside the Part’s existing external-system mappings; it does not replace them.
  3. The defining LOINC carries an Answer List. The list is attached through LoincAnswerListLink.csv, in the same way that any other LOINC term is linked to an Answer List. In version 2.83 both prototype lists carry an EXAMPLE binding (see Section 9.2); the values they publish are nonetheless the intended set of resolutions, and the binding is expected to be revisited in a future release.
  4. Each valid resolution is listed as an answer. Every answer in that list is a row in AnswerList.csv with ExtCodeSystem = http://loinc.org and ExtCodeId set to the LOINC Part for that resolution — for example, LP6464-4 (Probe.amp.tar). Those Parts are the valid, narrower substitutes for the generic axis value, and DisplayText carries the value as it appears in a term name.

The result is a resolvable chain from the generic axis value to the set of specific values it may take. Using the {Molgen} prototype released in LOINC 2.83:

Part.csv                       LP452305-8   {Molgen}   METHOD
  → PartRelatedCodeMapping.csv ExtCodeSystem = http://loinc.org, ExtCodeId = 115739-5
    → Loinc.csv                115739-5   CLASS = LOINC.DEFINING
      → LoincAnswerListLink.csv  115739-5 → LL7617-5
        → AnswerList.csv       LL7617-5, AnswerStringId = LA37291-4,
                               ExtCodeSystem = http://loinc.org,
                               ExtCodeId = LP6464-4,
                               DisplayText = Probe.amp.tar
          → Part.csv           LP6464-4   Probe.amp.tar   METHOD

Entity-relationship model

The model below uses the release files as they are distributed. Files shown with a partial column list are marked as such; the others show every column in the file.

Entity in the modelFile in the LOINC release
PartAccessoryFiles/PartFile/Part.csv
PartRelatedCodeMappingAccessoryFiles/PartFile/PartRelatedCodeMapping.csv
LoincLoincTable/Loinc.csv
LoincAnswerListLinkAccessoryFiles/AnswerFile/LoincAnswerListLink.csv
AnswerListAccessoryFiles/AnswerFile/AnswerList.csv

Note that Part.csv appears at both ends of the model. The same file that holds the anchor Part ({Molgen}) also holds the Parts that are its valid resolutions (the specific techniques). Nothing new is introduced except two row usages that set ExtCodeSystem to http://loinc.org — on PartRelatedCodeMapping.csv and on AnswerList.csv — where rows otherwise name an external system such as SNOMED CT.

Defining LOINC format and class

A defining LOINC — the term that an anchor Part points at — is distinguished from ordinary observable terms by its name format and its Class:

AttributeValue
Fully-specified nameValue:-:-:-:Nom:
ClassLOINC.DEFINING

This makes clear that a defining LOINC is a modifier for primary observations — it exists to carry the value set for a post-coordinated axis value — and is not itself a term to be used for reporting a patient result.

A defining LOINC is not intended to identify a patient observation. Report the primary LOINC term for the observation, and send the resolved value as a separate attribute, as described in Section 14.4.