Soigneur FHIR Implementation Guide
0.1.0 - ci-build Germany flag

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

Artifacts Summary

This page provides a list of the FHIR artifacts defined as part of this implementation guide.

Structures: Questionnaires

These define forms used by systems conforming to this implementation guide to capture or expose data to end users.

Athlete profile — invariants (athlete-write-only)

The coaching invariants: physiology constraints, structural availability, training history/overload pattern, true goals, hard preferences. Athlete-write-only; the sole trigger for a Frame Core re-derive (04 §15.1b).

Athlete profile — live (editable after approval)

Fast-moving accepted values: overarching goal(s), current FTP, current 1RMs, weight target, current-phase settings, briefing time (04 §15.1b).

Daily log (morning readiness)

The small fixed morning-readiness Questionnaire the two-step briefing waits on (04 15.11 / 15.11 /

Structures: Resource Profiles

These define constraints on FHIR resources for systems conforming to this implementation guide.

Activity Group Observation

A ride or strength session as an Observation Activity Group (HL7 Physical Activity IG), code 73985-4, with per-metric member Observations via hasMember (04 §15.2b, ADR 0002). Anchors adherence via basedOn → CarePlan/RequestGroup and the raw file via derivedFrom → Binary.

Activity Measure Observation

One per-metric member of an Activity Group (avg/Weighted Power, mean/max HR, cadence, Load, Intensity, decoupling, zone times, …). Code from cc-observations or LOINC exercise; linked to the group via the group's hasMember (04 §15.2b).

Amenorrhoea / Oligomenorrhoea Condition

Amenorrhoea (or oligomenorrhoea) as the RED-S / low-energy-availability sentinel under the female-athlete axis (C.0). SNOMED 14302001 (absent menstruation) or 56877008 (oligomenorrhoea).

Athlete Preferences (Basic)

The athlete's engine/scheduling tunables (15 4), referenced by 15 4), referenced by 15 Basic (decision recorded in the 04/05 addendum + ADR 0021): one resource per athlete carrying the PMC time constants, per-rep/interval deviation thresholds, gap-fill window, scheduling mode, weekly availability ceiling, and briefing time as typed extensions. These are eval-realism / engine tunables — NOT numeric coaching thresholds (which stay in the corpus / frame, 13 §2.5).

Athlete Profile — Invariants (QuestionnaireResponse)

The athlete-write-only invariant profile layer (04 §15.1b). Agents/skills read it, never write it; a Subscription on it is the sole Frame-Core re-derive trigger.

Athlete Profile — Live (QuestionnaireResponse)

The live profile layer (04 §15.1b): athlete- or skill-after-approval-writable accepted values (overarching goal, current FTP, weight target, briefing time).

Coaching Frame — Core (Composition)

The invariant-derived coaching policy (1-1-

Coaching Frame — Live (Composition)

The fast-moving overlay (11): watchlist seeds, current-phase pointer, current volume tier, standing flags, preserved patterns. Amended in place by weekly-retro / build-plan / adapt-plan; carries derivedAgainstCore → the Frame Core version it was written against (04 11): watchlist seeds, current-phase pointer, current volume tier, standing flags, preserved patterns. Amended in place by weekly-retro / build-plan / adapt-plan; carries derivedAgainstCore → the Frame Core version it was written against (04

Daily-log Response (QuestionnaireResponse)
One daily-log submission (04 §15.11). A stable identifier daily-log {patientId} {date} makes it non-resubmittable per date and the briefing trigger idempotent.
FTP-family Observation

An FTP / eFTP / CP / W-prime / P-max value. method is required and distinguishes accepted/set vs an estimator (04 §15.2c). The accepted-FTP series is the FTP update log; the anchor value lives in the live profile.

Ferritin Observation

Serum ferritin, the marker for the hidden-iron-deficiency sub-phenotype (C.0): a plateau/fatigue cause that mimics overreach but needs iron screening, not rest. LOINC 24373-3.

Per-day Workout Prescription (RequestGroup)

The instantiated per-day prescription (04 §15.4b). intent=plan; action steps reference template ActivityDefinitions and carry the target as a RELATIVE value (preferably %FTP) via the target-type/low/high extensions, resolved to watts at push time.

Plan / Experiment Outcome (DiagnosticReport)

Every plan ends in a DiagnosticReport — the coach's composed verdict on the block or experiment (04 §15.21, ADR 0009). basedOn → the CarePlan chain (a review can span the chain); result → the Observations that evidence the verdict; conclusion = narrative learnings.

Soigneur Athlete (Patient)

The athlete. Athlete-owned; the coach never writes Patient (04 §15.1). Timezone is captured at onboarding and drives athlete-local scheduling. Patient.gender/birthDate cover the sex/age demographic axes used by the simulator (C.0).

Training Plan (CarePlan)

A phase-scoped training plan (04 §15.4a, ADR 0008). intent=plan; category = a cc-plan phase; strategy/scheduling-mode/coach-managed extensions; supportingInfo → the Frame Core version it was built against. Plan chains link via replaces; each ends in a DiagnosticReport.

Wellness Observation (per-day)

A per-day wellness/derived metric (weight, RHR, HRV, sleep, Body Battery, or a derived Fitness/Fatigue/Form/eFTP value). category per 05 14.9; code LOINC or cc-observations; effectiveDateTime = the date (04 14.9; code LOINC or cc-observations; effectiveDateTime = the date (04

Structures: Extension Definitions

These define constraints on FHIR data types for systems conforming to this implementation guide.

Athlete

The athlete a provider Endpoint belongs to (04 §16.2).

Athlete timezone (IANA)

IANA timezone captured at onboarding; drives all athlete-local scheduling (04 §15.1).

Briefing time (athlete-local)

Preferred daily-briefing time, athlete-local (15 §4).

CNS load

Central-nervous-system load of a template session (04 §16.2).

Coach-managed flag

True when a CarePlan/Appointment is coach-managed (04 15.4c / 15.4c /

Derived against Frame Core version

On the Frame Live Composition: the Frame Core version this overlay was written against, so stale overlay entries can be dropped after a re-derive (04 §15.5).

External planner flag

True when an Appointment came from an external planner (04 §15.19).

Follow-up date

Follow-up date on a prescription Task (04 15.20a / 15.20a /

Goal priority

Per-plan goal ranking (04 16.2 / 16.2 /

Intensity distribution target

Target three-zone intensity distribution as percentages (04 §16.2). Sub-extensions z1Pct/z2Pct/z3Pct.

Long-ride cap (minutes)

Maximum long-ride duration in minutes (04 §16.2).

OAuth token reference

Key Vault secret reference for the Endpoint's OAuth tokens — tokens live in Key Vault, never in FHIR (04 15.17 / 15.17 /

PMC Fatigue time constant (days)

EWMA time constant for Fatigue; corpus default 7 d (15 §4).

PMC Fitness time constant (days)

EWMA time constant for Fitness; corpus default 42 d (15 §4).

Per-interval deviation threshold

Interval per-rep deviation tolerance; corpus default, individual override (15 §4).

Per-rep deviation threshold

Strength per-rep deviation tolerance; corpus default, individual override (15 §4).

Phase sequence

Ordered phase → weeks sequence the plan periodizes through (04 §16.2). Repeat per phase.

Plan strategy

Training-intensity-distribution strategy for a CarePlan (04 §16.2).

Planned absence

A known planned absence the plan schedules around (04 §16.2). Repeat per absence.

Provider source

The external provider a resource originated from (04 §16.2; custom SearchParameter provider-source).

Readiness call

Readiness verdict attached to a day's prescription (04 §16.2).

Readiness may modulate

True when readiness is permitted to modulate this prescription (04 §16.2).

Recovery cadence

Loading:recovery week cadence for a CarePlan (04 §16.2).

Scheduling mode

Rigid vs flexible scheduling for a CarePlan or in the athlete's preferences (04 16.2 / 15 16.2 / 15

Session class

Workout session class on a template (04 15.13 / 15.13 /

Stream gap-fill window (seconds)

Short-gap interpolation window N; engine default 5 s, rarely overridden (15 3/3/

Weekly availability ceiling (hours)

Maximum weekly training hours the athlete can commit (15 4 / 08 4 / 08

Weekly volume target (hours)

Target weekly training volume in hours (04 §16.2).

Workout target (high)

Upper bound of the step target, interpreted per cc-ext-target-type (04 §15.4b).

Workout target (low)

Lower bound of the step target, interpreted per cc-ext-target-type (04 §15.4b).

Workout target type

Relative/absolute target type for a prescribed step (04 §15.4b).

Terminology: Value Sets

These define sets of codes used by systems conforming to this implementation guide.

Adaptation level

The six escalating adaptation levels (04 §15.4a / cc-plan).

CNS load

Central-nervous-system load of a session (cc-ext:cnsLoad).

Coaching phase

CarePlan phase categories (04 §15.4a).

Data provider

External data providers (cc-ext:providerSource, Endpoint/Device identifiers).

FTP-family observation codes

Codes carried by an FTP-family Observation (04 15.2c / 15.2c /

Illness tier

Coded illness tiers an illness-type Observation may carry (04 §15.2e).

Menstrual disturbance

Amenorrhoea / oligomenorrhoea as the RED-S sentinel (C.0). SNOMED.

Plan / experiment outcome category

DiagnosticReport.category for plan/experiment outcomes (04 §15.21).

Readiness call

Readiness verdict bands (cc-ext:readinessCall).

Recovery cadence

Loading:recovery week cadence (cc-ext:recoveryCadence).

Scheduling mode

Rigid vs flexible scheduling (04 §16.2 cc-ext:schedulingMode).

Session class

Workout session classes (cc-ext:sessionClass on PlanDefinition/ActivityDefinition).

Strength movement pattern

Strength movement patterns (05 §14.8).

Training-intensity-distribution strategy

Plan strategy (04 §16.2 cc-ext:strategy).

Workout target type

Relative/absolute target type for prescribed steps (04 §15.4b).

Terminology: Code Systems

These define new code systems used by systems conforming to this implementation guide.

Soigneur Coaching-Frame Section Codes

Composition.section.code for the frame Core and Live compositions (04 §15.5). Sections are referenced by title internally and never quoted to the athlete (coach-safety).

Soigneur Communication Categories

Communication.category values (05 14.1, 04 14.1, 04

Soigneur Document / Report Types

Composition.type and DiagnosticReport.category values (05 14.1, 04 14.1, 04

Soigneur Observation Codes (cycling metrics without LOINC)

Cycling / training metrics that have no LOINC concept (05 14.4). The Code identifiers are internal, stable machine keys (np, if, tss, ctl, atl, tsb, …). The Display strings are the trademark-safe product vocabulary (15 1.1): Load, Weighted Power, Intensity, Fitness, Fatigue, Form — never the TrainingPeaks marks (TSS, NP, IF, TSB, PMC).

Soigneur Plan Codes

Session class, phase, block, plan mode, scheduling mode, adaptation level, strategy, recovery cadence, and the watchlist marker (05 §14.8).

Soigneur Provenance Activities

Provenance.activity values for the ingestion/authoring chain (05 14.1, 04 14.1, 04

Soigneur Provider Codes

External data-provider identifiers (05 §14.8).

Soigneur Strength Codes

Movement pattern, load type, Garmin category, and equipment for strength work (05 §14.8).

Soigneur Subjective Scales (Hooper-style)

Hooper-style subjective diary scales (05 §14.5). valueInteger 1-5 unless noted.

Soigneur Task Classes

Task.code classes used for narrow subscription filtering and DB hygiene (05 14.1, 04 14.1, 04

Soigneur Workout Prescription Codes

Target types for prescribed workout steps. Targets are stored RELATIVE (preferably %FTP) and resolved to absolute watts at push time (04 §15.4b).

Example: Example Instances

These are example instances that show what data produced and consumed by systems conforming with this implementation guide might look like.

Synth FTP — athlete-set

An accepted/set FTP value; method is required (cc-inv-ftp-method).

Synth FTP — declined off the peak

The accepted FTP has fallen below its earlier peak even as Fitness rises — only a test/decoupling signal reveals it.

Synth amenorrhoea — RED-S sentinel

Amenorrhoea as the RED-S / low-energy-availability sentinel under the female-athlete axis (C.0).

Synth athlete preferences — iron exemplar

Engine/scheduling tunables carried on a profiled Basic (15 §4). PMC time constants are eval-realism engine params, NOT coaching thresholds.

Synth athlete — hidden iron deficiency (female)

SoigneurSynth exemplar for the hidden-iron-deficiency phenotype (C.0): FTP stalls while ferritin falls and overreach debt stays low — iron screening, not rest, is indicated.

Synth athlete — overreach decline (male)

SoigneurSynth exemplar for the overreach trap (C.1): observable Fitness keeps rising while true FTP has already peaked and turned down under accumulating debt.

Synth ferritin — below the low mark

Serum ferritin driven low under sustained load — the marker that separates the iron stall from overreach (C.0).

Synth prescription — per-day RequestGroup

The instantiated per-day prescription (04 §15.4b); the step carries a RELATIVE %FTP target resolved to watts at push time.

Synth session measure — Load

The session Load member of the Activity Group (cc-observations tss, displayed 'Load').

Synth session — Activity Group

A completed ride as an Observation Activity Group (73985-4) with per-metric members via hasMember (ADR 0002).

Synth training plan — base phase

A phase-scoped training plan (04 §15.4a). intent=plan; strategy/scheduling extensions; ≤18-week window (cc-inv-plan-max-18wk).

Synth wellness — Fitness (derived)

A per-day derived Fitness value (cc-observations ctl, displayed 'Fitness').

Synth wellness — Fitness still rising

Observable Fitness is high and rising — the reassuring signal that masks the latent decline (the trap).