Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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)

  1. Concepts — cross-code-system concept search, GET /ts/concepts (searchAllConcepts), scoped by the filter’s codeSystem list. 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.
  2. Code SystemsGET /ts/code-systems (useCodeSystems), textContains + spaceId + publisher. Columns: Id · URI · Name. Gated *.CodeSystem.read.
  3. Value SetsuseValueSets, same filters. Gated *.ValueSet.read.
  4. Map SetsuseMapSets, same filters. Gated *.MapSet.read.
  5. SNOMED CTGET /snomed/concepts?term= (searchSnomedConcepts), only when the query is ≥3 chars. Columns: Concept id · Term (FSN/PT). Gated snomed-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 by spaceId.
  • Filter panel (toggle) — Publisher (TxConceptSelect on the publisher value set) applied to CS/VS/MS; Code Systems (multiselect) scoping the Concepts group; Clear all.

Data layer

  • client/conceptClient.tssearchAllConcepts(params) (GET /ts/concepts).
  • client/snomedClient.ts (new) → searchSnomedConcepts({term, limit}) (GET /snomed/concepts) + SnomedConcept type.
  • Existing useCodeSystems / useValueSets / useMapSets / useSpaces for 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.