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}(decoratedinlines 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 +Modelingnav entry.
See open questions in TEDY-new-modules-open-questions.md.