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.09 — Ecosystems

State: Proposed (built: list + add/edit) Template: tool-feature. Prefix: TEDY.

Feature grouping

Root spec for the Ecosystems family (a “Management” section resource). Depends on TEDY.08 Servers for its server pick-list.

Overview

An Ecosystem is a named, coded collection that groups terminology servers and is exposed publicly as an ecosystem.json document (FHIR TX ecosystem format) for an external router. Many-to-many with servers. Served off /ecosystems (NOT /ts/*); numeric id. Not a versioned resource — a plain list + form CRUD.

Data model (libs/tedy/src/lib/types/ecosystem.ts)

Ecosystem: id:number, code, names:LocalizedName, formatVersion (server-defaulted "1", read-only), description, active, serverIds:number[]. EcosystemSearchParams: textContains?, ids?, codes? (+ base paging).

REST API (base /ecosystems)

  • GET /ecosystems?{params}SearchResult<Ecosystem> (Space.read).
  • GET /ecosystems/{id}Ecosystem (Space.read).
  • POST /ecosystems / PUT /ecosystems/{id} → upsert (Space.write; duplicate code → error).
  • Public, unauthenticated: GET /public/ecosystems/{code} → the ecosystem.json document (linked/downloaded by the UI, never parsed).

Screens (built)

  • List — Code (→ edit) · Name · Servers (tags resolved to server codes) · Active · a View ecosystem.json link; search → textContains; Add ecosystem gated on *.Space.write.
  • Add / Edit — one card: code (immutable on edit), multi-language name (required), read-only formatVersion, description, active, serverIds multi-select. Save via POST/PUT, then back to the list.

Routes & nav

/ecosystems (list), /ecosystems/new, /ecosystems/:id/edit. Nav: Management → Ecosystems (ClusterOutlined).

Privileges

*.Space.read (view/list), *.Space.write (add), {id}.Space.write (edit).

Built artefacts

  • Data layer: types/ecosystem.ts, client/ecosystemClient.ts (searchEcosystems, loadEcosystem, saveEcosystem, ecosystemJsonUrl), hooks/useEcosystems.ts (useEcosystems, useEcosystem, ecosystemKeys).
  • Screens: pages/EcosystemList.tsx, pages/ecosystem/EcosystemForm.tsx. Routes + Management nav entry.

See open questions in TEDY-new-modules-open-questions.md.