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

Extension: LLM usage

Official URL: https://fhir.soigneur.coach/fhir/StructureDefinition/cc-ext-llm-usage Version: 0.1.0
Draft as of 2026-09-08 Computable Name: CcExtLlmUsage

Copyright/Legal: Copyright (c) Soigneur. Licensed under CC0-1.0 (public domain dedication). FHIR(R) is the registered trademark of HL7 and is used with permission.

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.

Context of Use

    This extension may be used on the following element(s)

Usage info

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Extension Content

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension Extension
... extension 1..* Extension Extension
... Slices for extension Content/Rules for all slices
.... extension:model 1..1 Extension Primary (act) OpenRouter model slug
..... extension 0..0 Extension
..... url 1..1 uri "model"
..... value[x] 0..1 string Value of extension
.... extension:costUsd 0..1 Extension Billed USD (OpenRouter usage.cost), summed
..... extension 0..0 Extension
..... url 1..1 uri "costUsd"
..... value[x] 0..1 decimal Value of extension
.... extension:promptTokens 0..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "promptTokens"
..... value[x] 0..1 integer Value of extension
.... extension:completionTokens 0..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "completionTokens"
..... value[x] 0..1 integer Value of extension
.... extension:cachedTokens 0..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "cachedTokens"
..... value[x] 0..1 integer Value of extension
.... extension:reasoningTokens 0..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "reasoningTokens"
..... value[x] 0..1 integer Value of extension
.... extension:skill 0..1 Extension Skill id (coach-ask, coach-briefing, …)
..... extension 0..0 Extension
..... url 1..1 uri "skill"
..... value[x] 0..1 string Value of extension
.... extension:generation 0..* Extension Extension
..... extension 1..* Extension Extension
..... Slices for extension Content/Rules for all slices
...... extension:model 1..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "model"
....... value[x] 0..1 string Value of extension
...... extension:purpose 0..1 Extension plan | act | title | other
....... extension 0..0 Extension
....... url 1..1 uri "purpose"
....... value[x] 0..1 string Value of extension
...... extension:costUsd 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "costUsd"
....... value[x] 0..1 decimal Value of extension
...... extension:promptTokens 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "promptTokens"
....... value[x] 0..1 integer Value of extension
...... extension:completionTokens 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "completionTokens"
....... value[x] 0..1 integer Value of extension
...... extension:cachedTokens 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "cachedTokens"
....... value[x] 0..1 integer Value of extension
...... extension:reasoningTokens 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "reasoningTokens"
....... value[x] 0..1 integer Value of extension
...... extension:generationId 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "generationId"
....... value[x] 0..1 string Value of extension
..... url 1..1 uri "generation"
..... value[x] 0..0 Value of extension
... url 1..1 uri "https://fhir.soigneur.coach/fhir/StructureDefinition/cc-ext-llm-usage"

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Optional Extensions Element
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:model 1..1 Extension Primary (act) OpenRouter model slug
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "model"
..... value[x] 0..1 string Value of extension
.... extension:costUsd 0..1 Extension Billed USD (OpenRouter usage.cost), summed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "costUsd"
..... value[x] 0..1 decimal Value of extension
.... extension:promptTokens 0..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "promptTokens"
..... value[x] 0..1 integer Value of extension
.... extension:completionTokens 0..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "completionTokens"
..... value[x] 0..1 integer Value of extension
.... extension:cachedTokens 0..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "cachedTokens"
..... value[x] 0..1 integer Value of extension
.... extension:reasoningTokens 0..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "reasoningTokens"
..... value[x] 0..1 integer Value of extension
.... extension:skill 0..1 Extension Skill id (coach-ask, coach-briefing, …)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "skill"
..... value[x] 0..1 string Value of extension
.... extension:generation 0..* Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
..... Slices for extension Content/Rules for all slices
...... extension:model 1..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "model"
....... value[x] 0..1 string Value of extension
...... extension:purpose 0..1 Extension plan | act | title | other
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "purpose"
....... value[x] 0..1 string Value of extension
...... extension:costUsd 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "costUsd"
....... value[x] 0..1 decimal Value of extension
...... extension:promptTokens 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "promptTokens"
....... value[x] 0..1 integer Value of extension
...... extension:completionTokens 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "completionTokens"
....... value[x] 0..1 integer Value of extension
...... extension:cachedTokens 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "cachedTokens"
....... value[x] 0..1 integer Value of extension
...... extension:reasoningTokens 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "reasoningTokens"
....... value[x] 0..1 integer Value of extension
...... extension:generationId 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "generationId"
....... value[x] 0..1 string Value of extension
..... url 1..1 uri "generation"
... url 1..1 uri "https://fhir.soigneur.coach/fhir/StructureDefinition/cc-ext-llm-usage"

doco Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: 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.

  • model: string: An Extension
  • costUsd: decimal: An Extension
  • promptTokens: integer: An Extension
  • completionTokens: integer: An Extension
  • cachedTokens: integer: An Extension
  • reasoningTokens: integer: An Extension
  • skill: string: An Extension
  • model: string: An Extension
  • purpose: string: An Extension
  • costUsd: decimal: An Extension
  • promptTokens: integer: An Extension
  • completionTokens: integer: An Extension
  • cachedTokens: integer: An Extension
  • reasoningTokens: integer: An Extension
  • generationId: string: An Extension

Differential View

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension Extension
... extension 1..* Extension Extension
... Slices for extension Content/Rules for all slices
.... extension:model 1..1 Extension Primary (act) OpenRouter model slug
..... extension 0..0 Extension
..... url 1..1 uri "model"
..... value[x] 0..1 string Value of extension
.... extension:costUsd 0..1 Extension Billed USD (OpenRouter usage.cost), summed
..... extension 0..0 Extension
..... url 1..1 uri "costUsd"
..... value[x] 0..1 decimal Value of extension
.... extension:promptTokens 0..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "promptTokens"
..... value[x] 0..1 integer Value of extension
.... extension:completionTokens 0..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "completionTokens"
..... value[x] 0..1 integer Value of extension
.... extension:cachedTokens 0..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "cachedTokens"
..... value[x] 0..1 integer Value of extension
.... extension:reasoningTokens 0..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "reasoningTokens"
..... value[x] 0..1 integer Value of extension
.... extension:skill 0..1 Extension Skill id (coach-ask, coach-briefing, …)
..... extension 0..0 Extension
..... url 1..1 uri "skill"
..... value[x] 0..1 string Value of extension
.... extension:generation 0..* Extension Extension
..... extension 1..* Extension Extension
..... Slices for extension Content/Rules for all slices
...... extension:model 1..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "model"
....... value[x] 0..1 string Value of extension
...... extension:purpose 0..1 Extension plan | act | title | other
....... extension 0..0 Extension
....... url 1..1 uri "purpose"
....... value[x] 0..1 string Value of extension
...... extension:costUsd 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "costUsd"
....... value[x] 0..1 decimal Value of extension
...... extension:promptTokens 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "promptTokens"
....... value[x] 0..1 integer Value of extension
...... extension:completionTokens 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "completionTokens"
....... value[x] 0..1 integer Value of extension
...... extension:cachedTokens 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "cachedTokens"
....... value[x] 0..1 integer Value of extension
...... extension:reasoningTokens 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "reasoningTokens"
....... value[x] 0..1 integer Value of extension
...... extension:generationId 0..1 Extension Extension
....... extension 0..0 Extension
....... url 1..1 uri "generationId"
....... value[x] 0..1 string Value of extension
..... url 1..1 uri "generation"
..... value[x] 0..0 Value of extension
... url 1..1 uri "https://fhir.soigneur.coach/fhir/StructureDefinition/cc-ext-llm-usage"

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Optional Extensions Element
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:model 1..1 Extension Primary (act) OpenRouter model slug
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "model"
..... value[x] 0..1 string Value of extension
.... extension:costUsd 0..1 Extension Billed USD (OpenRouter usage.cost), summed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "costUsd"
..... value[x] 0..1 decimal Value of extension
.... extension:promptTokens 0..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "promptTokens"
..... value[x] 0..1 integer Value of extension
.... extension:completionTokens 0..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "completionTokens"
..... value[x] 0..1 integer Value of extension
.... extension:cachedTokens 0..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "cachedTokens"
..... value[x] 0..1 integer Value of extension
.... extension:reasoningTokens 0..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "reasoningTokens"
..... value[x] 0..1 integer Value of extension
.... extension:skill 0..1 Extension Skill id (coach-ask, coach-briefing, …)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "skill"
..... value[x] 0..1 string Value of extension
.... extension:generation 0..* Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
..... Slices for extension Content/Rules for all slices
...... extension:model 1..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "model"
....... value[x] 0..1 string Value of extension
...... extension:purpose 0..1 Extension plan | act | title | other
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "purpose"
....... value[x] 0..1 string Value of extension
...... extension:costUsd 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "costUsd"
....... value[x] 0..1 decimal Value of extension
...... extension:promptTokens 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "promptTokens"
....... value[x] 0..1 integer Value of extension
...... extension:completionTokens 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "completionTokens"
....... value[x] 0..1 integer Value of extension
...... extension:cachedTokens 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "cachedTokens"
....... value[x] 0..1 integer Value of extension
...... extension:reasoningTokens 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "reasoningTokens"
....... value[x] 0..1 integer Value of extension
...... extension:generationId 0..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "generationId"
....... value[x] 0..1 string Value of extension
..... url 1..1 uri "generation"
... url 1..1 uri "https://fhir.soigneur.coach/fhir/StructureDefinition/cc-ext-llm-usage"

doco Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: 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.

  • model: string: An Extension
  • costUsd: decimal: An Extension
  • promptTokens: integer: An Extension
  • completionTokens: integer: An Extension
  • cachedTokens: integer: An Extension
  • reasoningTokens: integer: An Extension
  • skill: string: An Extension
  • model: string: An Extension
  • purpose: string: An Extension
  • costUsd: decimal: An Extension
  • promptTokens: integer: An Extension
  • completionTokens: integer: An Extension
  • cachedTokens: integer: An Extension
  • reasoningTokens: integer: An Extension
  • generationId: string: An Extension

 

Other representations of profile: CSV, Excel, Schematron

Constraints

Id Grade Path(s) Description Expression