
The moment a project adopts post-coordinated SNOMED expressions, the search index starts to sag. Not immediately, and not obviously, but by the time the problem list has a few hundred distinct post-coordinated concepts, the lookup that used to run in ten milliseconds runs in a hundred. That degradation is not inevitable — it is a design choice.
The site's SNOMED CT common-concepts browser sticks to pre-coordinated concepts for exactly this reason. For the broader terminology framing, more FHIR background reading collects related material.
What Post-Coordination Actually Costs
A post-coordinated expression composes a base concept with attributes, for example a fracture concept refined by finding site and severity. Storage is cheap. The cost hides in three places:
- The synonym index has no natural entry for a composed expression
- Equivalence checking against another expression requires structural comparison, not string comparison
- Every downstream system needs the same interpretation of the composed form
Any one of those, alone, is manageable. The three together are where the trouble compounds.
Normalize on the Way In, Not on the Way Out
Storing whatever composition the caller sends is tempting and wrong. Two clinicians can compose semantically identical expressions with different attribute order, and your index will treat them as distinct concepts. Normalize at ingestion: sort attributes canonically, resolve inherited attributes, drop redundant ones. The normalized form is what gets indexed and compared.
Normalization is defined by the SNOMED CT specification and by the reference implementations. Do not invent a house form.
Keep Pre-Coordinated Concepts Where They Exist
If a pre-coordinated concept exists for the same clinical meaning, use it. Post-coordination is for the tail of expressions the vocabulary does not cover as single concepts. Building compositions when pre-coordinated codes exist is where indexing quality collapses the fastest — you end up with two representations of the same clinical fact and no way to compare them by string.
The check is cheap: run a lookup for the pre-coordinated equivalent before storing a composed expression. If one exists, use it and log the composition attempt for review.
Store Both the Expression and a Search Digest
An indexed row for a post-coordinated expression should carry:
- The normalized expression itself, canonical form
- A search digest — a compact concatenation of the base concept term and attribute terms
- The list of ancestor concepts of the base for hierarchical search
- A stable hash for equivalence checks
Search hits the digest and the ancestor list, not the raw expression. Equivalence hits the hash. The raw expression is what gets sent downstream. Three fields, three jobs.
Do Not Let the UI Compose Freely
An interface that lets clinicians build post-coordinated expressions without curation is a data-quality land mine. Constrain composition to a curated set of attribute combinations that your ingestion knows how to normalize and index. Everything else escalates to a coder. The alternative — accepting anything and hoping the index catches up — never works.
For teams that need to figure out what to do with expressions that come from upstream systems, handling ambiguous SNOMED concepts in a downstream system covers the receiver side.
The Reference Set Shortcut
A large fraction of what teams reach for post-coordination to solve can be solved with a reference set instead. Reference sets narrow the concept space to a curated subset that matches the domain, and they preserve pre-coordinated identity. For most integrations, that shortcut buys back an order of magnitude of indexing headroom. For a walkthrough, reference sets: the SNOMED feature that shrinks your problem is the entry point.
For getting from a raw phrase to a candidate concept before any of this composition happens, searching SNOMED CT when you only have a free-text symptom is the starting point.

Sources
- SNOMED International Compositional Grammar canonical - SNOMED International Compositional Grammar canonical specification for post-coordinated expressions