TEDY.14 — Global Search
State: Built — cross-resource search dashboard (Concepts · Code Systems · Value Sets · Map Sets · SNOMED CT) with space quick-filters + a publisher/code-system filter panel.
Template: tool-feature. Prefix: TEDY.
Overview
Global Search fans one textContains query out across every terminology resource kind and presents grouped result cards with links. A faithful port of the reference editor’s global-search dashboard. Reached at /global-search.
Result groups (privilege-gated, run in parallel)
- Concepts — cross-code-system concept search,
GET /ts/concepts(searchAllConcepts), scoped by the filter’scodeSystemlist. Columns: Code (→ the code system’s Concepts tab) · Term (the matching designation — first designation whose name contains the query, else preferred, else code) · Code System. Gated*.CodeSystem.read. - Code Systems —
GET /ts/code-systems(useCodeSystems),textContains+spaceId+publisher. Columns: Id · URI · Name. Gated*.CodeSystem.read. - Value Sets —
useValueSets, same filters. Gated*.ValueSet.read. - Map Sets —
useMapSets, same filters. Gated*.MapSet.read. - SNOMED CT —
GET /snomed/concepts?term=(searchSnomedConcepts), only when the query is ≥3 chars. Columns: Concept id · Term (FSN/PT). Gatedsnomed-ct.CodeSystem.read+ a configured SNOMED integration.
Each group renders only when it has rows; a combined empty state shows when all are empty. Result limit 100 per group.
Filters
- Space quick-filter buttons — the
globalSearch-flagged spaces (Space.globalSearch), sorted by code, plus an All button; narrows CS/VS/MS byspaceId. - Filter panel (toggle) — Publisher (
TxConceptSelecton the publisher value set) applied to CS/VS/MS; Code Systems (multiselect) scoping the Concepts group; Clear all.
Data layer
client/conceptClient.ts→searchAllConcepts(params)(GET /ts/concepts).client/snomedClient.ts(new) →searchSnomedConcepts({term, limit})(GET /snomed/concepts) +SnomedConcepttype.- Existing
useCodeSystems/useValueSets/useMapSets/useSpacesfor the resource groups + quick-filters.
Screen
pages/GlobalSearch.tsx — an AppCard with the space quick-filters, a search input + filter toggle, the filter panel, and the five result groups (AppTable per group). Reached from the app search entry / /global-search.
Privileges
Per-group read privileges as listed above; the dashboard itself is open.
i18n
tedy.globalSearch.* (title, placeholder, all, filter, anyCodeSystem, concepts, snomed, col.*).
Notes / limits
- The Concepts group shows the matched designation in a Term column (reference
findDesignationMatch). - SNOMED navigation opens the code system’s concepts context; a dedicated SNOMED concept viewer is a later concern.