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
Contents:
This page provides a list of the FHIR artifacts defined as part of this implementation guide.
These define forms used by systems conforming to this implementation guide to capture or expose data to end users.
| Daily log (morning readiness) |
The small fixed morning-readiness Questionnaire the two-step briefing waits on (04 15.11 / 15.11 / |
| Session assessment (post-ride) |
Post-ride self-assessment: session RPE, feel, vs-plan, optional notes (05 §14.5, ADR 0062). RPE/feel are also stamped as Activity Group members; vs-plan and notes stay on the QuestionnaireResponse. |
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/ServiceRequest and the raw file via derivedFrom → the CcRawFileIndex DocumentReference (Binary is not a valid derivedFrom target in R4; the lineage to the raw blob is on the CcTranslationProvenance entity[source]). |
|||
| 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 Dossier (Composition) |
The athlete-owned narrative profile (ADR 0041): motivation & true goal, life context & constraints, training history & self-image, equipment, and communication preferences. (Health context is not held here — it lives as coded Condition/MedicationStatement and is regenerated into the profile at read.) Rendered (with the coded layer) into the coach's text profile by reconstruct_profile; amended, never silently rewritten. |
|||
| Athlete Goal (Goal) |
The athlete's overarching / true goal captured at onboarding (ADR 0040 §1). description carries what they are really training for; category codes the goal type (competitive / endurance / general fitness); target.due[x] carries an optional target date; lifecycleStatus tracks the goal. |
|||
| Athlete Message (Communication) |
An athlete-facing message: outbound email delivery (invitation/reminder) or an in-app coach-ask turn / chat-notice (category cc-comm:llm-turn / chat-notice, ADR 0044). category is required; medium is email for outbound delivery and in-app for chat capture; partOf may carry an idempotency parent for email sends. |
|||
| Athlete Watchlist (List) |
The single working watchlist of open threads the coach is tracking for an athlete (04 §15.12), keyed by cc-plan:watchlist. Each entry.item points at the resource being watched (an Observation, CarePlan, Condition, etc.). |
|||
| Athlete-declared Allergy/Intolerance (AllergyIntolerance) |
An allergy or intolerance the athlete declares at onboarding, captured so the coach keeps fueling and supplement suggestions safe (ADR 0041). Athlete-declared: verificationStatus unconfirmed; the substance is carried as free-text code.text. |
|||
| Athlete-declared Condition (Condition) |
A medical condition the athlete declares at onboarding. Athlete-declared, so verificationStatus is unconfirmed; the code is carried as a free-text CodeableConcept (athletes describe, they do not code). |
|||
| Availability Block (Appointment) |
A plan-independent absence/restriction block the coach records from chat or the athlete enters manually (ADR 0071). cc-ext-availability-block marks it; cc-ext-availability-type is the reason (calendar label); cc-ext-training-impact (lock-step with core.plan Absence.category) feeds absence layering. description = short label; comment = free-text coach context. Guardrail invariant: never carries cc-ext-external-planner. |
|||
| Body height Observation |
Athlete body height (LOINC 8302-2), captured at onboarding as an invariant physiological axis (ADR 0040 §1). |
|||
| Body weight Observation |
Athlete body weight (LOINC 29463-7), the current-weight live value the coach tracks (ADR 0040 §1). May be captured from the daily-log QR (manual) or Garmin Connect (Index scale); both stamp the same code so a code query unions the sources (source-agnostic reads). |
|||
| Coach Insight (DocumentReference) |
|
|||
| Coach Note (DocumentReference) |
A point-in-time note the coach records about the athlete (ADR 0041). type is the coach-note cc-doc code; content carries the note; context.related may link the resource(s) that prompted it. |
|||
| 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 Panel (Observation grouping) |
|
|||
| Daily-log Response (QuestionnaireResponse) |
|
|||
| FTP-family Observation |
An FTP / eFTP / CP / W-prime / P-max value. |
|||
| 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. |
|||
| Follow-up Item (Task) |
|
|||
| HR-threshold Observation |
A heart-rate anchor value (LTHR). |
|||
| Ingestion / Translation Provenance (Provenance) |
Provenance for the ingestion / authoring chain (04 13 / 13 / |
|||
| Life-log Event (Observation) |
A dated life event the coach records from chat (ADR 0072): the free-text fact in valueString, when it happened in effectiveDateTime, optional elaboration in note. category = social-history. Read by the timed life-log reader, never charted. |
|||
| Metric-altering Medication (MedicationStatement) |
An athlete-declared medication that alters heart rate or training response, captured at onboarding so the coach interprets HR-based metrics correctly (ADR 0040). Athlete-declared; the medication is carried as a free-text CodeableConcept (athletes name a drug, not a code). |
|||
| Microcycle Template (PlanDefinition) |
An athlete-agnostic weekly microcycle template (04 §15.13, ADR 0048). type=workflow-definition; action[] references session ActivityDefinitions (CcWorkoutActivityDefinition) one per day, with |
|||
| Onboarding-capture Provenance (Provenance) |
Stamps the resources written by the consent-gated onboarding transaction Bundle (ADR 0040 / ADR 0041). Its presence is the onboarding completion signal, replacing |
|||
| Per-day Workout Prescription (ServiceRequest) |
The instantiated per-day prescription (04 §15.4b, ADR 0048). intent=plan; basedOn → CarePlan (or absent for one-off No-plan); occurrenceDateTime = absolute date; code = session class; cc-ext:stepBlock carries the %FTP-relative step grammar snapshot; cc-ext:instantiatedFrom → the source ActivityDefinition template. |
|||
| 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. |
|||
| Raw Provider Artifact (Binary) |
A raw artifact downloaded from a provider before translation to canonical FHIR (04 13 / 13 / |
|||
| Raw Provider File Index (DocumentReference) |
Searchable index for a raw provider Binary (04 15.6 / 15.6 / |
|||
| Session-assessment Response (QuestionnaireResponse) |
|
|||
| Sex Assigned At Birth Observation |
|
|||
| Soigneur Athlete (Patient) |
The athlete. Athlete-owned, but the coach agent MAY write Patient as a mechanical, HITL-confirmed, Provenance-stamped scribe under the athlete's own compartment-scoped token — a blast-radius-1 write, no privileged worker (ADR 0040, superseding the earlier coach-never-writes-Patient guard). Timezone and the athlete-preference |
|||
| Soigneur Onboarding / Processing Consent |
A versioned, hashed consent record captured at onboarding (ADR 0034; doc 14 4.1; 09 4.1; 09 |
|||
| Subjective Observation (diary / session self-report) |
One subjective self-report signal extracted from a daily-log or session-assessment QuestionnaireResponse (04 §15.11) — a Hooper-style score (valueInteger), an illness/vs-plan classification (valueCodeableConcept), or a free-text note (valueString) — or captured conversationally by the coach (ADR 0093). category = survey; code from cc-subjective; QR-extracted values link the source QuestionnaireResponse via derivedFrom, coach-captured values carry note provenance instead. |
|||
| Training Plan (CarePlan) |
A phase-scoped training plan (04 §15.4a, ADR 0008; domain per ADR 0096). intent=plan; category = a cc-plan phase; strategy/scheduling-mode/coach-managed/plan-domain extensions; supportingInfo → the Frame Core version it was built against. Plan chains link via replaces; each ends in a DiagnosticReport. The strength plan is a CcTrainingPlan with cc-ext:planDomain = strength — a separate CarePlan managed independently of the cycling plan. |
|||
| Training-overload Episode (Condition) |
A past episode where training tipped into illness, injury or burnout, captured with timing so the coach learns the athlete's overload pattern (ADR 0041). Athlete-declared (verificationStatus unconfirmed); category marks it as an overload episode; onset[x] carries when it happened; code/note carry the detail. |
|||
| Waist circumference Observation |
Athlete waist circumference (LOINC 56086-2), a body-composition live value the coach tracks. Captured from the daily-log QR (manual entry); Garmin does not report waist. |
|||
| Weekly Retro (DocumentReference) |
|
|||
| 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 |
|||
| Wellness Series Observation (per-week) |
A per-week derived-metric series (Fitness/Fatigue/Form/Load) stored as one component-based valueSampledData Observation per ISO week (04 15.2a/15.2a/ |
|||
| Workout Debrief (DocumentReference) |
|
|||
| Workout Template (ActivityDefinition) |
An athlete-agnostic workout template (04 §15.13, ADR 0048). kind=ServiceRequest; code = the session class; useContext carries phase / athlete_state / min_aerobic_base; relatedArtifact cites corpus topics; cc-ext:stepBlock carries the rep_block / rep_set / alternating / microbursts / progressive / lift_set / continuous grammar. Warmup/cooldown templates reference sibling ActivityDefinitions via cc-ext:warmupRef / cooldownRef (or carry cc-ext:warmupKind themselves). |
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 home location |
Where the athlete lives — city and/or postal code plus ISO 3166-1 alpha-2 country, with the offline-resolved label, centroid coordinates (4 decimals, ~11 m — the same precision cap MET Norway enforces on forecast queries; never a GPS position) and the resolved IANA timezone. Coach-memorized from conversation, the optional onboarding question, or the settings editor (ADR 0100); drives the local weather guidance (02 G.3, issue #252). Geocoding is offline (vendored GeoNames data, ADR 0100) — location strings never egress. At least one of postalCode / city must be present. Live-class: never dirties Frame Core (ADR 0040 G.3, issue #252). Geocoding is offline (vendored GeoNames data, ADR 0100) — location strings never egress. At least one of postalCode / city must be present. Live-class: never dirties Frame Core (ADR 0040 |
| Athlete timezone (IANA) |
IANA timezone captured at onboarding; drives all athlete-local scheduling (04 §15.1). |
| Availability-block flag |
True on an Appointment that is a plan-independent availability/absence block (ADR 0071), NOT an external-planner training session. The hard guardrail that keeps availability blocks out of the plan-mode external-plan signal (cc-ext-external-planner). |
| Availability-block type |
Why the availability block exists — drives the calendar label (ADR 0071). |
| Average temperature (°C) |
Ride-average air temperature in degrees Celsius, stamped on the Activity Group for the FTP estimator's heat-exclusion check (above 28°C disarms heat-affected rides). The 1 Hz temperature stream is a separate SampledData Observation for intra-ride heat analysis; this scalar is the fast-access summary. |
| Briefing time (athlete-local) |
Preferred daily-briefing time, athlete-local (ADR 0040 1 / 15 1 / 15 |
| CNS load |
Central-nervous-system load of a template session (04 §16.2). |
| Chat message role |
Who authored this in-app Communication payload — athlete, coach, or system notice (ADR 0044). |
| Coach-managed flag |
True when a CarePlan/Appointment is coach-managed (04 15.4c / 15.4c / |
| Communication register |
Technicality of the coach's language at constant explanatory depth — plain / intermediate / technical (ADR 0038 / ADR 0040 §1). Storage home moved from the retired invariant QR to this Patient extension. |
| Consent text version + hash |
The exact consent text shown to the athlete, captured on each Consent (ADR 0034; 09 §14): a human-readable version label, the date that policy version took effect, and the SHA-256 hash of the rendered text (item 3 folds in the wellness-popup content hash). A changed version/hash re-prompts the item on next login; the effective date + Consent.policy (url#version) record which policy the athlete accepted. |
| Content hash |
SHA-256 of the resource content (excluding server-managed meta fields and the hash carrier), stamped by ingress pipelines on every write so re-runs can skip unchanged resources (ADR 0055, as revised). Carried in meta.extension because a meta.tag display is not round-trip-safe on FHIR servers that normalize tag displays (fire-arrow-server issue #713). |
| Cooldown template reference |
Reference to the cooldown ActivityDefinition a workout template ends with (04 §15.13). |
| 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). |
| Fixed training day |
A day of the week the athlete can reliably train; repeats once per fixed day (ADR 0040 1 / 15 1 / 15 |
| Follow-up date |
The date a follow-up Task is next due — the day the coach should re-ask/resolve it. Carried on prescription Tasks (04 §15.20a) and on tentative-signal follow-up Tasks (cc-task#follow-up, ADR 0080). |
| Goal priority |
Per-plan goal ranking (04 16.2 / 16.2 / |
| HRmax anchor (athlete-confirmed) |
The athlete's confirmed HRmax in bpm; the live anchor the Frame Live HR caps (HRmax × percentage) are derived from. Live-class — never dirties Frame Core (ADR 0040 6); the Live HR caps recompute when it moves (ADR 0047 6); the Live HR caps recompute when it moves (ADR 0047 |
| Has chest HR strap |
The athlete owns a chest-strap HR monitor (≈ ECG-grade). A quality tier marker — strap HR is trusted for interval-average audits where wrist-optical smoothing is not (ADR 0090, corpus coaching-without-power). |
| Has power meter |
The athlete trains with a power meter on the bike(s) the plan covers (ADR 0090). When false/absent, prescriptions use the HR/RPE vocabulary and Load uses the hr-model/hr rungs. |
| Has sports watch |
The athlete has a sports watch recording workout HR (the equipment-floor device, ADR 0090). Typically the connected-platform data source for workouts + wellness. |
| Indoor activity flag |
True when the activity was performed indoors (trainer/controlled environment). Stamped on the Activity Group so the FTP estimator can select indoor rides for the Morton CP model without re-reading the raw stream. |
| Insight confidence rung |
The ratcheting confidence rung the weekly consolidation job reinforces as an insight recurs (ADR 0070). Low-confidence stale insights are de-prioritised in injection — never deleted. |
| Insight last reinforced |
The last time the consolidation job (or a write-time capture) reinforced this insight — the decay anchor (ADR 0070). |
| Instantiated from template |
The ActivityDefinition template a per-day ServiceRequest prescription was built from (provenance only — the prescription is a durable snapshot, not a live reference; 04 §15.4b, ADR 0048). |
| Intensity distribution target |
Target three-zone intensity distribution as percentages (04 §16.2). Sub-extensions z1Pct/z2Pct/z3Pct. |
| Intervals push fingerprint |
SHA-256 of the last Intervals.icu events/bulk upsert body for this ServiceRequest (ADR 0081 write-back echo). The plan-push worker skips the live Intervals call when the fingerprint still matches. Carried in meta.extension — same round-trip rationale as cc-ext-content-hash (ADR 0055 revision). |
| Invariant snapshot hash this Frame Core was derived from |
On the Frame Core Composition: the SHA-256 content hash of the invariant-class snapshot this Core was derived from — the deterministic materiality-diff anchor (ADR 0047). A live-class edit that bumps Patient.meta.lastUpdated without changing invariant content leaves this hash unchanged, so the lazy re-derive predicate collapses it to a no-op rather than re-running the expensive Opus derive. |
| LLM usage |
Billed OpenRouter usage that produced this coach Communication — model slug, token counts, USD cost, and per-generation children (ADR 0088). Absent on athlete turns and chat-notices. |
| Load source |
How a per-activity Load ( |
| 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 / |
| Per-channel data source |
Binds one data-sync channel to the ecosystem that serves it; repeats once per active channel (ADR 0041). |
| Phase sequence |
Ordered phase → weeks sequence the plan periodizes through (04 §16.2). Repeat per phase. Each occurrence may carry that phase's weekly volume target (hours/week). |
| Plan authority (tri-state) |
Who owns the plan — coach-authored / watch-external / no-plan (ADR 0022 / ADR 0040 §1). The athlete's explicit declaration is the enforced override of the watch-external evidence signal in the plan-mode classifier: |
| 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. |
| Primary discipline |
The athlete's primary cycling discipline (ADR 0040 1 / 15 1 / 15 |
| 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, ADR 0048). Carried on the per-day ServiceRequest. |
| Readiness may modulate |
True when readiness is permitted to modulate this prescription (04 §16.2, ADR 0048). Carried on the per-day ServiceRequest. |
| 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 ActivityDefinition (04 15.13 / 15.13 / |
| Training age |
Structured-training experience band — new / developing / experienced (ADR 0040 1 / 15 1 / 15 |
| Training impact |
How the availability block affects training; lock-step with core.plan Absence.category so blocks feed layer_absences (ADR 0071). |
| Training plan domain |
The training domain a CarePlan belongs to (ADR 0096): cycling or strength. Strength is a separate plan managed independently — plan authority (ADR 0022) is scoped per domain. Absent on legacy plans (read as cycling). |
| Warmup / cooldown kind |
Marks an ActivityDefinition as a warmup or a cooldown (04 §15.13, ADR 0048). |
| Warmup template reference |
Reference to the warmup ActivityDefinition a workout template starts with (04 §15.13). |
| Weekly training hours |
Typical weekly training hours the athlete commits — the availability ceiling scheduling plans against (ADR 0040 1 / 15 1 / 15 |
| Weekly volume target (hours) |
Target weekly training volume in hours (04 §16.2). |
| Workout step block |
One step of a workout template or prescription, encoding the rep_block / rep_set / alternating / microbursts / progressive / lift_set / continuous grammar (04 §15.13, ADR 0048). Targets are stored relative and resolved to watts at push time. |
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). |
| Athlete communication category |
Communication.category for athlete-facing messages (04 §15.22, ADR 0046/0062). Excludes the in-app medium code. Headers carry conversation-header plus a thread-* kind. |
| Athlete goal type |
What the athlete is training toward (ADR 0040 §1 — CcAthleteGoal.category). |
| Availability-block type |
Why an availability block exists — drives the calendar label (ADR 0071). Extends the core.plan Absence.type vocabulary with illness/injury/work/equipment reasons. |
| CNS load |
Central-nervous-system load of a session (cc-ext:cnsLoad). |
| Coach-insight category |
The kind of durable thing the coach learned about the athlete (ADR 0070). |
| Coach-insight confidence rung |
Ratcheting confidence the weekly consolidation job reinforces as an insight recurs (ADR 0070). |
| Coaching phase |
CarePlan phase categories (04 §15.4a). |
| Communication register |
Technicality of the coach's language at constant depth (ADR 0038 cc-ext:communicationRegister). |
| Data provider |
External data providers (cc-ext:providerSource, Endpoint/Device identifiers). |
| Data-sync channel |
What is synced with a connected ecosystem (ADR 0041 cc-ext:dataChannel) — inbound data types plus the outbound plan push. Extensible — see the cc-data-channel CodeSystem. |
| FTP-family observation codes |
Codes carried by an FTP-family Observation (04 15.2c / 15.2c / |
| HR-threshold observation codes |
Codes carried by an HR-threshold Observation (ADR 0090). Extensible — e.g. a VT1 anchor may join later. |
| Illness tier |
Coded illness tiers an illness-type Observation may carry (04 §15.2e). |
| In-app chat message role |
Communication.cc-ext-message-role values (ADR 0044). |
| 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). |
| Plan authority (tri-state) |
Who owns the plan — coach-authored / watch-external / no-plan (ADR 0022 / ADR 0040 §1 cc-ext:planAuthority). Reuses the cc-plan plan-mode codes. |
| Primary discipline |
Primary cycling discipline (ADR 0040 §1 cc-ext:discipline). |
| Provenance activity |
Provenance.activity for the ingestion / authoring chain (04 13 / 13 / |
| 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). |
| Soigneur Load-source Value Set |
Allowed values for cc-ext-load-source. |
| Soigneur consent type |
Consent.category for the onboarding/processing consents (ADR 0034). |
| Strength movement pattern |
Strength movement patterns (05 §14.8). |
| Supported data-source ecosystem |
The training-data ecosystem serving a channel (ADR 0041 cc-ext:dataSource.source). Extensible — see the cc-data-source CodeSystem. 'No connected platform' is the absence of a binding, not a member. |
| Training age |
Structured-training experience band (ADR 0040 §1 cc-ext:trainingAge). |
| Training impact of an availability block |
How an availability block affects training — lock-step with core.plan.plan_construction.Absence.category so blocks feed layer_absences directly (ADR 0071). |
| Training plan domain |
The training domain a CarePlan belongs to (cc-ext:planDomain, ADR 0096). |
| Training-intensity-distribution strategy |
Plan strategy (04 §16.2 cc-ext:strategy). |
| Warmup / cooldown kind |
Marks an ActivityDefinition as a warmup or a cooldown (04 §15.13, ADR 0048). |
| Workout step kind |
The step grammar encoded in cc-ext:stepBlock (04 §15.13, ADR 0048). |
| Workout target type |
Relative/absolute target type for prescribed steps (04 §15.4b, ADR 0090: HR/RPE target types are the prescription vocabulary for no-power athletes). |
These define new code systems used by systems conforming to this implementation guide.
| In-app chat message role |
Who authored an in-app Communication payload (ADR 0044). |
| Soigneur Athlete Profile Codes |
Coded athlete-profile preferences carried on Patient extensions (ADR 0040 §1 / ADR 0041): primary discipline, training age, communication register. |
| Soigneur Athlete-Dossier Section Codes |
Composition.section.code for the athlete dossier — the athlete-owned narrative profile (ADR 0041). Distinct from cc-frame-section, which codes the hidden coach-derived frame Composition. |
| Soigneur Availability / Absence Codes |
Availability-block type (why) and training-impact (how) codes for CcAvailabilityBlock Appointments (ADR 0071, issue #114). The impact codes mirror core.plan.plan_construction.Absence.category. |
| Soigneur Coach-Insight Codes |
Durable coach-insight category + confidence codes (ADR 0070). Category classifies the kind of learned thing; confidence is the ratcheting certainty rung the consolidation job reinforces over time. |
| 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 Consent Types |
Consent.category values for the onboarding/processing consents (ADR 0034; 09 3/3/ |
| Soigneur Data-Sync Channels |
What Soigneur syncs with a connected ecosystem, and in which direction — inbound data types (completed workouts, wellness, sleep) and the outbound plan push. Each channel is bound to the ecosystem serving it via the repeating complex cc-ext-data-source; a 'plan' binding is what replaces the former keep-Garmin push flag. Extensible; mirrored by the agent-side registry in agent.data_sources. |
| Soigneur Document / Report Types |
Composition.type and DiagnosticReport.category values (05 14.1, 04 14.1, 04 |
| Soigneur Internal Meta Tags |
Internal meta-tag codes stamped on FHIR resources by Soigneur ingress pipelines. These are machine-managed tags (not user-facing) that support ingress idempotency and provenance. The codes are display-less markers: the per-resource VALUES ride in the cc-ext-content-hash / cc-ext-icu-push-hash meta extensions, because a value in a tag's display is not round-trip-safe — FHIR R4 fixes tag identity at system+code and lets servers merge tag displays on update (fire-arrow-server issue #713; ADR 0055 as revised). |
| Soigneur Load-source Codes |
How a per-activity Load ( |
| Soigneur Observation Codes (cycling metrics without LOINC) |
Cycling / training metrics that have no LOINC concept (05 14.4). The
|
| 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 Supported Data-Source Ecosystems |
The external training-data ecosystems Soigneur can sync an athlete's data with (Garmin founder/dev CLI; intervals.icu production OAuth — ADR 0081; later Polar/Wahoo as workout+plan targets, Fitbit/Apple/Google as wellness/sleep sources). The per-channel cc-ext-data-source Patient extension binds each channel to one of these; 'no connected platform' is the absence of a binding, not a code. Mirrored by the agent-side registry in agent.data_sources. |
| 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). |
These define identifier and/or code system identities used by systems conforming to this implementation guide.
| sid-activity |
Optional Soigneur-issued internal UID for a consolidated Activity Group. The Observation.id is the primary internal handle; this system is available when a stable business UID is also wanted (04 §13.6). |
| sid-conversation |
AG-UI thread id for an in-app coach-ask conversation. Carried on Communication.identifier so the UI can hydrate a transcript by thread (ADR 0044). |
| sid-conversation-header |
Idempotency key for one conversation-header Communication — value form |
| sid-conversation-summary |
Idempotency key for one conversation-summary Communication — value form |
| sid-daily-briefing |
One daily-readiness-briefing thread per athlete per date — value form |
| sid-daily-log |
One daily-log QuestionnaireResponse per athlete per date — value form |
| sid-debrief |
One workout debrief per Activity Group — value form |
| sid-garmin-activity |
Garmin |
| sid-garmin-scheduled-workout |
Garmin scheduled-workout event id written to CarePlan.identifier on outbound workout push (04 §18.2). |
| sid-garmin-summary |
Garmin Health API |
| sid-intervals-icu-activity |
intervals.icu activity id. A second activity source; an intervals.icu record may itself carry an upstream Garmin activityId (circular sharing), which is the preferred cross-source dedup match key (04 §13.6). |
| sid-intervals-icu-scheduled-workout |
intervals.icu calendar event id written to Appointment.identifier on inbound watch-external entries and to ServiceRequest.identifier on outbound plan push ( |
| sid-llm-turn |
Idempotency key for one captured in-app chat Communication — value form |
| sid-pmc-series |
One weekly CcWellnessSeriesObservation per athlete per ISO week — value form |
| sid-session-assessment |
One session-assessment QuestionnaireResponse per activity — value form |
| sid-workout-review |
One workout-review thread per Activity Group — value form |
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; |
||
| 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 PMC series — Fitness still rising (overreach trap) |
Observable Fitness (ctl) is high and rising across the week — the reassuring signal that masks the latent decline (the trap). The FTP exemplar below shows the accepted FTP has already turned down. |
||
| Synth PMC series — Fitness/Fatigue/Form/Load (weekly) |
One weekly CcWellnessSeriesObservation (ADR 0059): four components (ctl/atl/tsb/tss), each a 7-sample valueSampledData (1 sample/day). The home tiles decode the last non-null sample of each component. |
||
| Synth amenorrhoea — RED-S sentinel |
Amenorrhoea as the RED-S / low-energy-availability sentinel under the female-athlete axis (C.0). |
||
| 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 daily-log member — fatigue (Hooper) |
A subjective Hooper score extracted from the daily-log QR; valueInteger 1-5; derivedFrom the QR. |
||
| Synth daily-log member — free-text note |
The athlete's optional free-text note to the coach, extracted from the QR as a valueString CcSubjectiveObservation (never parsed off the QR by agents). |
||
| Synth daily-log — QuestionnaireResponse (record of collection) |
The raw morning daily-log submission. Agents never read this QR; the coded Observations below are extracted from it and read via read_diary_window / read_wellness_window. |
||
| Synth daily-log — panel (hasMember grouping) |
Groups the extracted subjective member Observations for the morning submission; identifier makes it one-per-date; derivedFrom links the source QR. |
||
| 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 follow-up — tentative illness (open) |
An open tentative-signal follow-up the coach opened from a low-commitment athlete signal (ADR 0080): the athlete thinks they may be getting sick. Not durable memory and not a calendar change yet — carried forward until it confirms (→ availability block) or lapses (→ life-log + forget). Due tomorrow; routine urgency. |
||
| Synth prescription — per-day ServiceRequest |
The instantiated per-day prescription (04 §15.4b, ADR 0048); the stepBlock carries a RELATIVE %FTP target resolved to watts at push time. |
||
| Synth provider translator Device |
The translator Device that produced canonical FHIR from the raw provider Binary (the author agent on the translation Provenance). |
||
| Synth session measure — Load |
The session Load member of the Activity Group (cc-observations |
||
| Synth session — Activity Group |
A completed ride as an Observation Activity Group (73985-4) with per-metric members via hasMember (ADR 0002). |
||
| Synth session — raw stream Binary |
The raw packed 1 Hz stream for the session, stored as a Binary (04 §15.7). Not searchable and not a valid derivedFrom target — indexed by synth-iron-01-session-rawfile and lineage-linked by synth-iron-01-session-prov. |
||
| Synth session — raw-file index |
The DocumentReference that indexes the raw stream Binary so derived Observations can reference it via derivedFrom (04 §15.6). |
||
| Synth session — translation Provenance |
Lineage for the translated session: the Activity Group was produced by the provider translator Device from the raw stream Binary (entity[source]). |
||
| Synth session — workout debrief |
|
||
| Synth sex assigned at birth — female |
Sex assigned at birth as a clinical Observation (LOINC 76689-9) — the physiological axis the coach reads to seed baselines (C.0), kept distinct from administrative |
||
| 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 waist circumference — manual (daily-log) |
An objective body-composition vital extracted from the same daily-log QR (LOINC 56086-2). Read via read_wellness_window, not the subjective diary reader. |