Value sets
Membership, and why a code is in it. Poll staleness rather than re-expanding on a schedule.
The value set catalogue
Public, like the code system catalogue.
Keep from the response: id
Answers without a credential. What you see is what is published publicly, so an emptier list than you expected is scope rather than absence.
query Parameters
page_sizeResults per page. A sync that reads only page one ships a fraction of a vocabulary and looks like it worked.
pagePage number. Follow next in the response rather than computing this.
The value set catalogue › Responses
Returns id.
The member list
The same response shape whether the expansion was precomputed or resolved on the spot, so you do not branch on which happened.
Keep from the response: codes
path Parameters
value_setThe value set, addressed by its short code (recommended) or its numeric id.
Resolution is pk-first: a value that looks numeric is tried as an id, and falls through to the code column when no row matches, so an all-digits short code is still reachable. Codes are matched case-insensitively after an exact miss. The one ambiguity — a short code identical to some other row's id — resolves to the id.
Example: SHA-OUTPATIENT-DIAGNOSES.
query Parameters
versionWhich version of the artefact this read serves.
serving— the version the artefact currently resolves to: the author's or regulator'sMANUALpin if one is set, otherwise the newest released version effective today. This is what an integration should send.- a released version's
version_id(v1.0.0) or its numeric id — exactly that frozen release. Only released versions are honoured; an unknown or unreleased reference falls back to the working copy with a warning rather than failing. draft— the pending draft, for reviewers. Requires the reviewer permission.
Omitted, what you get depends on the artefact: the working copy including drafts while it is unpinned, or the pinned version if an owner has set one. That is what an authoring client wants and the opposite of what a consumer wants — the problem is not that it is always live, but that you cannot tell which you got.
One exception to serving meaning frozen, and it is silent: a code system release predating the content-versioning backfill carries no ordinal, so the read serves the live working copy at 200 with no signal in the body or headers. Detect it on the artefact instead — a released version whose ladder row has sequence: null has no frozen content to serve.
A pinned read is cacheable indefinitely (Cache-Control: immutable); an unversioned one is no-cache, because its content changes on release with no write to the rows it would be cached on.
page_sizeResults per page. A sync that reads only page one ships a fraction of a vocabulary and looks like it worked.
pagePage number. Follow next in the response rather than computing this.
The member list › Responses
Returns codes.
Recompute the expansion now
Re-resolves the compose rules and rewrites the stored expansion. This is an authoring action, not a read: a consumer polls /staleness/ and re-reads /expansion/ rather than forcing a re-expansion.
path Parameters
value_setThe value set, addressed by its short code (recommended) or its numeric id.
Resolution is pk-first: a value that looks numeric is tried as an id, and falls through to the code column when no row matches, so an all-digits short code is still reachable. Codes are matched case-insensitively after an exact miss. The one ambiguity — a short code identical to some other row's id — resolves to the id.
Example: SHA-OUTPATIENT-DIAGNOSES.
Recompute the expansion now › Responses
Success.
Is the stored expansion still true?
Lists the compose-rule source pins that now lag behind a newer released version of the same code system, with a stale_count. Poll this instead of re-expanding blindly: stale_count: 0 means your cached expansion is still true.
Keep from the response: stale_count
path Parameters
value_setThe value set, addressed by its short code (recommended) or its numeric id.
Resolution is pk-first: a value that looks numeric is tried as an id, and falls through to the code column when no row matches, so an all-digits short code is still reachable. Codes are matched case-insensitively after an exact miss. The one ambiguity — a short code identical to some other row's id — resolves to the id.
Example: SHA-OUTPATIENT-DIAGNOSES.
Is the stored expansion still true? › Responses
Returns stale_count.
The rules the expansion was built from
The include and exclude rules — the answer to “why is this code in here?”
path Parameters
value_setThe value set, addressed by its short code (recommended) or its numeric id.
Resolution is pk-first: a value that looks numeric is tried as an id, and falls through to the code column when no row matches, so an all-digits short code is still reachable. Codes are matched case-insensitively after an exact miss. The one ambiguity — a short code identical to some other row's id — resolves to the id.
Example: SHA-OUTPATIENT-DIAGNOSES.
The rules the expansion was built from › Responses
Success.
Where this value set is bound
Which forms, profiles and elements depend on it.
path Parameters
value_setThe value set, addressed by its short code (recommended) or its numeric id.
Resolution is pk-first: a value that looks numeric is tried as an id, and falls through to the code column when no row matches, so an all-digits short code is still reachable. Codes are matched case-insensitively after an exact miss. The one ambiguity — a short code identical to some other row's id — resolves to the id.
Example: SHA-OUTPATIENT-DIAGNOSES.
Where this value set is bound › Responses
Success.

