SNOMED CT — Post-coordination, Expressions & ECL

Compose new clinical meaning with the compositional grammar, then query it with ECL.

0/4 done

Theory

When the code you need doesn't exist yet

SNOMED CT has hundreds of thousands of pre-coordinated concepts — single codes whose meaning is fixed. But clinicians say things no single code captures: 'laparoscopic removal of the gallbladder for acute cholecystitis'. Rather than mint a code for every combination (a combinatorial explosion), SNOMED lets you post-coordinate: build the meaning by composing existing concepts.

Licensing note: SNOMED CT content is affiliate-licensed. Every identifier below is an illustrative placeholder, not a real SCTID. You compose with the grammar; you obtain the real codes from a licensed distribution.

The Compositional Grammar (SCG)

A post-coordinated expression starts from a focus concept and refines it with attribute–value pairs inside braces:

<focus concept> : <attribute> = <value> , <attribute> = <value>

Each attribute (e.g. Method, Procedure site, Causative agent) and each value is itself a SNOMED concept. The result is a new, machine-readable clinical statement that no one had to pre-define — yet it still classifies correctly because the engine knows the subsumption of every part.

Querying with ECL (Expression Constraint Language)

ECL is SNOMED's query language over the hierarchy. A few operators do most of the work:

  • < — all descendants of a concept (subtypes, excluding itself).
  • << — the concept and all descendants (self-or-descendant).
  • : — refine by attribute, e.g. procedures whose site is some part of the digestive system.
  • {{ }} — refinement and filters.

ECL is how a reference set ('refset') is defined as an intensional query instead of a hand-listed set — so 'all antibiotics' stays correct as the terminology grows.

Use Case Example: A hospital wants every encounter involving a procedure on any digestive-system structure. Hard-coding a code list rots the moment SNOMED adds a new subtype. An ECL query like < 71388002 |Procedure| : 363704007 |Procedure site| = << 86762007 |Digestive system structure| stays correct automatically, because << re-expands every release.

Analogy

Pre-coordination is a menu of fixed dishes; post-coordination is ordering à la carte. A kitchen can't pre-print every possible combination of base, protein, sauce and side — so it gives you a grammar ('this base, with that protein, hold the sauce') and assembles your order from known ingredients. SCG is that à-la-carte grammar for clinical meaning, and ECL is asking the kitchen 'show me every dish that contains shellfish.'

Focus + refinements

Click a node to focus its neighbourhood · drag to pan · scroll to zoom

A post-coordinated expression as a refinement tree

A focus concept refined by attribute=value pairs, each value itself a concept the engine can subsume.

Reflect

Post-coordination is SNOMED's answer to the truth that real clinical language is generative, not a fixed list. ECL is the matching idea on the query side: describe the set you want by its meaning, and let the hierarchy keep it current.

  • Where do you maintain a hand-curated code list that an intensional (ECL-style) definition could replace?
  • What combinations would your domain need to post-coordinate rather than pre-define?

Reading in progress · 0 of 4 activities done