Soigneur FHIR Implementation Guide
0.1.0 - ci-build
Soigneur FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
This page summarizes the runtime the data model lives in. It graduates from
docs/plan-maf-azure/01-architecture.md and 02-orchestration-ingestion-identity.md; the
Architecture Decision Records (docs/adr/) are the authority for the why.
All athlete data, configuration and interactions are FHIR R4 on Fire Arrow Server
(ADR 0001). There is no parallel relational model of the athlete: the FHIR record is the
system of record. The profiles in this IG are registered with Fire Arrow so every write is
validated against them, and the cc-* code systems back its terminology service.
The platform is split across subdomains (ADR 0016):
soigneur.coach — the static marketing site.app.soigneur.coach — the athlete-facing application.api.soigneur.coach — the API surface (the BFF and Fire Arrow behind it).fhir.soigneur.coach — this Implementation Guide, the published data-model record.Asynchronous IO (ingestion, webhooks, dispatch, plan builds) runs as orchestration Functions with full distributed-systems discipline — idempotency, optimistic concurrency, saturation backoff and circuit breakers (ADR 0012). The coaching agent runs with a zero-privilege identity; delegation tokens are minted by a single trusted worker (ADR 0007), so the agent never holds standing credentials against the athlete's record.
All model inference is routed through OpenRouter with zero-data-retention and EU provider subselection (ADR 0005). No numeric coaching thresholds live in code or prompts — they live in the knowledge corpus and the coaching frame (13 §2.5).
The data model is not just documented — it is generated against. SoigneurSynth (ADR 0021) renders synthetic athletes straight into profile-validated FHIR, ingests them into a dev Fire Arrow instance, and the eval harness retrieves them exclusively via the FHIR API. The data model page describes the resources; the worked example Instances there are real simulator output.