querying-terminology-service
Call a user-supplied FHIR terminology server ($validate-code, $expand, $lookup, $translate) to validate and expand clinical codes without bundling restricted vocabulary (SNOMED CT, RxNorm, LOINC, ICD-10) into OpenMed. Covers a thin local client, ValueSet $expand with filters/ECL, CodeSystem $lookup, ConceptMap $translate, and pointing at Ontoserver / HAPI / tx.fhir.org. Use as the grounding step for OpenMed coding skills — turn an OpenMed entity span into a validated coded CodeableConcept — when the user mentions terminology server, $validate-code, $expand, ValueSet, ECL, SNOMED/RxNorm/LOINC l
npx skills add maziyarpanahi/openmed --skill querying-terminology-service --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Querying a Terminology Service OpenMed deliberately **bundles no restricted vocabulary** — no SNOMED CT, RxNorm, LOINC, ICD-10, UMLS. So when an OpenMed entity span needs a *validated* code (the grounding step `exporting-to-fhir` references), you call a **FHIR terminology server** the user already operates, with their own license. This skill is the thin client the coding skills lean on. ## When to use Use it whenever a span must become a *coded* `CodeableConcept`, when you need to confirm a code is valid in a system, expand a ValueSet for a picklist, look up a display, or map between vocabularies. Triggers: "terminology server", "$validate-code", "$expand", "ValueSet", "ECL", "is this a valid SNOMED/LOINC/ RxNorm code", "translate ICD-10 to SNOMED". It sits between OpenMed NER and `exporting-to-fhir`. ## Bring your own server The four operations are standard FHIR; point the client at whichever server the user is licensed for: - **Ontoserver** (CSIRO) — production SNOMED CT/LOINC, full ECL. - **HAPI FHIR** terminology module — self-hosted. - **tx.fhir.org** — HL7 public server (open content only; **not** for licensed SNOMED/full LOINC, and not for PHI). OpenMed never ships or prox
- When to use
- Bring your own server
- The four operations
- $validate-code — confirm before you emit
- $expand — enumerate a ValueSet (with ECL for SNOMED)
- $lookup and $translate
- A thin client used by the coding skills
- Hand-off to / from OpenMed
- Edge cases & gotchas
- Standards & references
curl -s -X POST 'https://tx.example/fhir/CodeSystem/$validate-code' \
Expand "disorders of the lung" via an implicit SNOMED ECL value set
curl -s -X POST 'https://tx.example/fhir/ValueSet/$expand' \
Display + properties for a LOINC code
POST [tx]/CodeSystem/$lookup { url=http://loinc.org, code=4548-4 }
Map an ICD-10-CM code to SNOMED via a ConceptMap
POST [tx]/ConceptMap/$translate {What does the querying-terminology-service skill do?
Call a user-supplied FHIR terminology server ($validate-code, $expand, $lookup, $translate) to validate and expand clinical codes without bundling restricted vocabulary (SNOMED CT, RxNorm, LOINC, ICD-10) into OpenMed. Covers a thin local client, ValueSet $expand with filters/ECL, CodeSystem $lookup, ConceptMap $translate, and pointing at Ontoserver / HAPI / tx.fhir.org. Use as the grounding step for OpenMed coding skills — turn an OpenMed entity span into a validated coded CodeableConcept — when the user mentions terminology server, $validate-code, $expand, ValueSet, ECL, SNOMED/RxNorm/LOINC l
How do I install it?
Run `npx skills add maziyarpanahi/openmed --skill querying-terminology-service --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From maziyarpanahi/openmed, a repository with 4,851 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
