fhir_metadata
ClaudeReturn a parsed FHIR CapabilityStatement summary for a terminology's backend. Set include_raw=true (default) to also include the raw CapabilityStatement payload. Optionally specify terminology and/or target; defaults to the server's default terminology.
list_terminologies
ClaudeList the SNOMED CT editions and branches available on the connected server. WHEN TO USE: before running edition-specific queries to confirm available terminology keys, checking which release version is loaded, or verifying server connectivity.
server_capabilities
ClaudeReturn backend classification and capabilities for a terminology. Optionally specify terminology and/or target; defaults to the server's default terminology.
server_health
ClaudeReturn reachability and basic backend capability flags. Optionally specify terminology and/or target; defaults to the server's default terminology.
snomed_expand
ClaudeExpand a SNOMED CT value set using FHIR ValueSet/$expand. The primary tool for retrieving concept sets via ECL (Expression Constraint Language) queries. Works on Snowstorm and Lite when FHIR is available. WHEN TO USE: retrieving concepts matching an ECL expression (most common use case), getting members of a reference set, counting concepts in a subhierarchy (use summary_only=true), text-filtering within a concept set, or retrieving attribute values across a concept set (dotted notation). VALUE SET URL FORMAT: Subtype query: http://snomed.info/sct?fhir_vs=ecl/<<CONCEPTID Attribute query: http://snomed.info/sct?fhir_vs=ecl/<<CONCEPTID:ATTR=<<VALUE Refset members: http://snomed.info/sct?fhir_vs=ecl/^REFSETID Full ECL: http://snomed.info/sct?fhir_vs=ecl/<YOUR ECL EXPRESSION> PERFORMANCE RULES (follow on every query): These rules protect the server from overload. Violating them causes timeouts, degraded performance, and may affect other users on shared infrastructure. 1. SCOPE FIRST. Never root a constrained query at a top-level hierarchy concept without narrowing scope first. These roots are TOO BROAD on their own: <<404684003 Clinical finding (~350k concepts) <<71388002 Procedure (~100k concepts) <<105590001 Substance (~70k concepts) <<123037004 Body structure (~40k concepts) Always narrow to a subhierarchy (e.g. <<195967001 Asthma) before adding attribute constraints, filters, or MINUS operations. 2. COUNT BEFORE FETCHING. Always use summary_only=true as the first call to check the total size. If total > 1000, stop and confirm with the user before fetching pages. Never assume a result set is small. 3. DO NOT PAGINATE AUTONOMOUSLY. Fetch the first page, summarise the results, and ask the user whether they need more. Never loop through all pages of a large result set without explicit user instruction. 4. NO TOP-LEVEL MINUS ON LARGE SETS. X MINUS Y at the top level requires materialising both sets in full and will time out on large hierarchies. Always prefer MINUS inside an attribute value expression: GOOD: <<X:{attr=(<<A MINUS <<B)} BAD: (<<X:attr=<<A) MINUS (<<X:attr=<<B) 5. NO WILDCARD QUERIES ON LARGE SETS. Expressions like <<404684003:= or <<71388002:attr= against top-level hierarchies are extremely expensive. Scope to a subhierarchy before using wildcards. 6. NO RECURSIVE CHILDREN CALLS. Never call snomed_get_children in a loop to traverse a hierarchy. Use <<CONCEPTID ECL for transitive closure in one call. 7. NO REPEATED snomed_lookup ACROSS A CONCEPT SET. Use dotted attribute notation (<<X.attrId) to retrieve attribute values across a set in one call instead of calling snomed_lookup for each concept individually. ECL QUICK REFERENCE: Hierarchy operators: <<X Subtype of X (including X) <X Strict subtype of X (excluding X) >>X Supertype of X (including X) >!X Direct parents of X only (ECL 1.4) <!X Direct children of X only (ECL 1.4) ^X Member of reference set X Set operators (use at top level between expressions): X OR Y Union X AND Y Intersection X MINUS Y Difference WARNING: Top-level MINUS between two large expansions will TIME OUT. Prefer MINUS inside an attribute value expression instead. Attribute constraints: <<X : attr=<<Y Ungrouped (attribute may be in any role group) <<X : {attr1=<<Y, attr2=<<Z} Grouped (BOTH attributes in the SAME role group) WARNING: Grouped vs ungrouped returns DIFFERENT results. Always choose deliberately. MINUS inside attribute value (PREFERRED for performance): <<X : {246075003=(<<105590001 MINUS <<410942007), 363698007=<<80891009} Wildcards: <<X : =<<Y Any attribute with value Y <<X : attr= Any value for a specific attribute CARDINALITY (constrain how many times an attribute appears): <<X : [0..0] attr= Concepts with NO instances of attr (content QA) <<X : [1..1] {attr=<<Y} Exactly one instance of attr in the same role group <<X : [2..] {attr=} Two or more instances of attr NOTE: [0..0] does not require braces. [1..*] and above should use grouped syntax { }. DOTTED ATTRIBUTE NOTATION (returns attribute VALUES, not filtered concepts): <<X . attrId Returns the SET OF VALUES of at…
snomed_get_ancestors
ClaudeGet ancestor concepts of a SNOMED concept (parents, grandparents, etc. via IS-A hierarchy). Traverses upward through IS-A to find the classification position of a concept. Set direct_only=true to return only immediate parents. Optionally specify terminology and/or target; defaults to the server's default terminology.
snomed_get_children
ClaudeGet direct IS-A children of a SNOMED concept (one level down in the hierarchy). More efficient than ECL for simple hierarchy browsing when you only need immediate children. WHEN TO USE: exploring the shape of a subhierarchy before writing an ECL query, understanding how a concept is subdivided at the next level, or lightweight hierarchy browsing without full ECL overhead. NOT FOR: transitive closure (all descendants) — use snomed_expand with <<CONCEPTID. Not for attribute-based queries — use snomed_expand with ECL. Not for filtering by description or metadata — use snomed_expand with filters. Optionally specify terminology and/or target; defaults to the server's default terminology.
snomed_get_descendants
ClaudeGet all descendant concepts of a SNOMED concept (children, grandchildren, etc. via IS-A hierarchy). Transitive closure downward, equivalent to <<X in ECL but returned as a hierarchy structure. Use snomed_expand with ECL if you need a flat concept list with attribute constraints instead. Use count and offset to paginate large result sets. Optionally specify terminology and/or target; defaults to the server's default terminology.
snomed_lookup
ClaudeRetrieve full concept details via FHIR CodeSystem/$lookup for a known SNOMED CT concept ID. Returns the FSN, synonyms, parent concepts, and all defining attributes with their values. WHEN TO USE: verifying a concept ID before using it in an ECL expression, inspecting the full attribute modelling of a specific concept, retrieving all synonyms and descriptions for a concept, checking whether a concept is active or inactive, or confirming the correct concept ID for a common attribute (e.g. finding site). NOT FOR: searching by text (use snomed_expand with a {{ term = "..." }} filter) or retrieving a concept set (use snomed_expand with ECL). Optionally specify terminology (e.g. 'snomedct-us') and/or target; defaults to the server's default terminology when omitted.
snomed_subsumes
ClaudeFHIR CodeSystem/$subsumes for two SNOMED codes. Optionally specify terminology and/or target; defaults to the server's default terminology.
snomed_validate_code
ClaudeValidate whether a SNOMED CT concept ID exists and is currently active via FHIR CodeSystem/$validate-code. Returns true/false with the display name if valid and active. WHEN TO USE: confirming a concept ID is valid and active before storing or querying, checking whether a concept has been inactivated (retired/replaced), handling legacy codes from EHR data (check status before using in ECL), or verifying a code belongs to a specific edition or version. Preferred approach when history supplements are unavailable (they are NOT supported on this server). Use this to check individual inactive codes instead. Optionally specify terminology and/or target; defaults to the server's default terminology.
snowstorm_get_concept_native
ClaudeSnowstorm-native concept detail by conceptId. Optionally specify terminology and/or target; defaults to the server's default terminology.
snowstorm_list_codesystems
ClaudeList Snowstorm code systems with summarized latest version info. Optionally specify terminology and/or target; defaults to the server's default terminology.
snowstorm_list_versions
ClaudeList versions for a Snowstorm code system short name. Optionally specify terminology and/or target for routing; defaults to the server's default terminology.
snowstorm_search_concepts
ClaudeSnowstorm-native concept search by term. Optionally specify terminology and/or target; defaults to the server's default terminology. Backend may reject very short terms; use at least 3 searchable characters (letters/digits), e.g. prefer a longer phrase for acronyms.