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.06 — Implementation Guides

State: Proposed (list built; summary/metadata/versions/groups/resources/pages/github phased) Template: tool-feature. Prefix: TEDY.

Feature grouping

Root spec for the Implementation Guides (IG) family (a versioned resource, like Code System).

Overview

An IG is a FHIR Implementation Guide with versions; each version carries groups, resources (references to CS/VS/MS/StructureDefinition/StructureMap) and pages (wiki content), plus optional GitHub publishing (sushi-config/ig.ini generation + push). Served off /implementation-guides (NOT /ts/*); string id; versions addressed by their string version.

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

ImplementationGuide: id:string, uri, publisher, name, title/description/purpose:LocalizedName, licence, experimental, versions[] (decorated). ImplementationGuideVersion: id:number, implementationGuide, version, status (draft|active|retired), packageId, fhirVersion, template, algorithm, date (server-derived from last-modified), github{repo,branch,init}, dependsOn[]. Sub-entities (phased): group{name,description}, resource{type,reference,version,name,group}, page{space,page,name,type,group}.

REST API (base /implementation-guides)

  • GET /implementation-guides?{params} (decorated inlines versions), GET /{ig}, POST /transaction, POST /{ig}/change-id, DELETE /{ig}.
  • Versions: GET/POST /{ig}/versions, GET/PUT /{ig}/versions/{version}, POST .../{activate|retire|draft}, groups/resources/pages GET/POST (replace-by-retain).
  • GET /{ig}/provenances?version=.
  • GitHub: /{ig}/versions/{version}/github/* (authenticate, status, branches, diff, push, ig-initialize, create-branch).

Screens

  • List (built) — Id · Last version · FHIR version · Title (+ packageId tag) · Date. Search → textContains, decorated=true.
  • Summary (phased) — info widget + versions widget; version-level: version info + editable Groups/Resources/Pages tables (draft-gated).
  • Metadata / create + version form (phased) — resource-form (id/uri/name/title/…) + identifiers + contacts + copyright side-info; version form (algorithm/packageId/version/fhirVersion/github/template/dependsOn).
  • Provenance (phased) — reuse ProvenanceList.
  • GitHub sync (phased) — auth → branch/init → status/diff/push state machine.

Routes & nav

/implementation-guides (list). Nav: Modeling → Implementation Guides (BookOutlined). Phased: :id/summary, :id/edit, :id/provenances, :id/versions/{add,:versionCode/{summary,edit,provenances,github}}. Tabs (via TxResourceBar): Summary + Provenance only.

Privileges

ImplementationGuide.read / .write / .maintain. Templated per-id ({id}.ImplementationGuide.*, *.ImplementationGuide.write for add).

Built artefacts

  • Data layer: types/implementationGuide.ts, client/implementationGuideClient.ts (searchImplementationGuides, loadImplementationGuide), hooks/useImplementationGuides.ts (useImplementationGuides, useImplementationGuide, implementationGuideKeys).
  • Screens: pages/ImplementationGuideList.tsx. Route + Modeling nav entry.

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