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: Athlete home location

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

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.

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

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 C 0..* Extension Extension
Constraints: cc-inv-location-has-place
... extension 1..* Extension Extension
... Slices for extension Content/Rules for all slices
.... extension:postalCode 0..1 Extension Postal code as written by the athlete (country-specific format, never reformatted in code)
..... extension 0..0 Extension
..... url 1..1 uri "postalCode"
..... value[x] 1..1 string Value of extension
.... extension:city 0..1 Extension City / town (the offline resolver's name when it matched)
..... extension 0..0 Extension
..... url 1..1 uri "city"
..... value[x] 1..1 string Value of extension
.... extension:country 1..1 Extension ISO 3166-1 alpha-2 country code — the required disambiguator (city or postal alone is ambiguous)
..... extension 0..0 Extension
..... url 1..1 uri "country"
..... value[x] 1..1 code Value of extension
Binding: urn:iso:std:iso:3166 (required)
.... extension:label 0..1 Extension Human-readable resolved place label ('Berlin, Germany') — what the coach echoes back
..... extension 0..0 Extension
..... url 1..1 uri "label"
..... value[x] 1..1 string Value of extension
.... extension:latitude 0..1 Extension Resolved centroid latitude, 4 decimals
..... extension 0..0 Extension
..... url 1..1 uri "latitude"
..... value[x] 1..1 decimal Value of extension
.... extension:longitude 0..1 Extension Resolved centroid longitude, 4 decimals
..... extension 0..0 Extension
..... url 1..1 uri "longitude"
..... value[x] 1..1 decimal Value of extension
.... extension:timezone 0..1 Extension Resolved IANA timezone — the moved-abroad cross-check against cc-ext-timezone
..... extension 0..0 Extension
..... url 1..1 uri "timezone"
..... value[x] 1..1 string Value of extension
... url 1..1 uri "https://fhir.soigneur.coach/fhir/StructureDefinition/cc-ext-location"

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension C 0..* Extension Extension
Constraints: cc-inv-location-has-place
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:postalCode 0..1 Extension Postal code as written by the athlete (country-specific format, never reformatted in code)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "postalCode"
..... value[x] 1..1 string Value of extension
.... extension:city 0..1 Extension City / town (the offline resolver's name when it matched)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "city"
..... value[x] 1..1 string Value of extension
.... extension:country 1..1 Extension ISO 3166-1 alpha-2 country code — the required disambiguator (city or postal alone is ambiguous)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "country"
..... value[x] 1..1 code Value of extension
Binding: urn:iso:std:iso:3166 (required)
.... extension:label 0..1 Extension Human-readable resolved place label ('Berlin, Germany') — what the coach echoes back
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "label"
..... value[x] 1..1 string Value of extension
.... extension:latitude 0..1 Extension Resolved centroid latitude, 4 decimals
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "latitude"
..... value[x] 1..1 decimal Value of extension
.... extension:longitude 0..1 Extension Resolved centroid longitude, 4 decimals
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "longitude"
..... value[x] 1..1 decimal Value of extension
.... extension:timezone 0..1 Extension Resolved IANA timezone — the moved-abroad cross-check against cc-ext-timezone
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "timezone"
..... value[x] 1..1 string Value of extension
... url 1..1 uri "https://fhir.soigneur.coach/fhir/StructureDefinition/cc-ext-location"

doco Documentation for this format

This structure is derived from Extension

Summary

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

  • postalCode: string: An Extension
  • city: string: An Extension
  • country: code: An Extension
  • label: string: An Extension
  • latitude: decimal: An Extension
  • longitude: decimal: An Extension
  • timezone: string: An Extension

Differential View

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension C 0..* Extension Extension
Constraints: cc-inv-location-has-place
... extension 1..* Extension Extension
... Slices for extension Content/Rules for all slices
.... extension:postalCode 0..1 Extension Postal code as written by the athlete (country-specific format, never reformatted in code)
..... extension 0..0 Extension
..... url 1..1 uri "postalCode"
..... value[x] 1..1 string Value of extension
.... extension:city 0..1 Extension City / town (the offline resolver's name when it matched)
..... extension 0..0 Extension
..... url 1..1 uri "city"
..... value[x] 1..1 string Value of extension
.... extension:country 1..1 Extension ISO 3166-1 alpha-2 country code — the required disambiguator (city or postal alone is ambiguous)
..... extension 0..0 Extension
..... url 1..1 uri "country"
..... value[x] 1..1 code Value of extension
Binding: urn:iso:std:iso:3166 (required)
.... extension:label 0..1 Extension Human-readable resolved place label ('Berlin, Germany') — what the coach echoes back
..... extension 0..0 Extension
..... url 1..1 uri "label"
..... value[x] 1..1 string Value of extension
.... extension:latitude 0..1 Extension Resolved centroid latitude, 4 decimals
..... extension 0..0 Extension
..... url 1..1 uri "latitude"
..... value[x] 1..1 decimal Value of extension
.... extension:longitude 0..1 Extension Resolved centroid longitude, 4 decimals
..... extension 0..0 Extension
..... url 1..1 uri "longitude"
..... value[x] 1..1 decimal Value of extension
.... extension:timezone 0..1 Extension Resolved IANA timezone — the moved-abroad cross-check against cc-ext-timezone
..... extension 0..0 Extension
..... url 1..1 uri "timezone"
..... value[x] 1..1 string Value of extension
... url 1..1 uri "https://fhir.soigneur.coach/fhir/StructureDefinition/cc-ext-location"

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension C 0..* Extension Extension
Constraints: cc-inv-location-has-place
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:postalCode 0..1 Extension Postal code as written by the athlete (country-specific format, never reformatted in code)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "postalCode"
..... value[x] 1..1 string Value of extension
.... extension:city 0..1 Extension City / town (the offline resolver's name when it matched)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "city"
..... value[x] 1..1 string Value of extension
.... extension:country 1..1 Extension ISO 3166-1 alpha-2 country code — the required disambiguator (city or postal alone is ambiguous)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "country"
..... value[x] 1..1 code Value of extension
Binding: urn:iso:std:iso:3166 (required)
.... extension:label 0..1 Extension Human-readable resolved place label ('Berlin, Germany') — what the coach echoes back
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "label"
..... value[x] 1..1 string Value of extension
.... extension:latitude 0..1 Extension Resolved centroid latitude, 4 decimals
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "latitude"
..... value[x] 1..1 decimal Value of extension
.... extension:longitude 0..1 Extension Resolved centroid longitude, 4 decimals
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "longitude"
..... value[x] 1..1 decimal Value of extension
.... extension:timezone 0..1 Extension Resolved IANA timezone — the moved-abroad cross-check against cc-ext-timezone
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "timezone"
..... value[x] 1..1 string Value of extension
... url 1..1 uri "https://fhir.soigneur.coach/fhir/StructureDefinition/cc-ext-location"

doco Documentation for this format

This structure is derived from Extension

Summary

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

  • postalCode: string: An Extension
  • city: string: An Extension
  • country: code: An Extension
  • label: string: An Extension
  • latitude: decimal: An Extension
  • longitude: decimal: An Extension
  • timezone: string: An Extension

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

Path Status Usage ValueSet Version Source
Extension.extension:country.​value[x] Base required

urn:iso:std:iso:3166

Not State Unknown

Constraints

Id Grade Path(s) Description Expression
cc-inv-location-has-place error Extension An athlete home location must name at least a postal code or a city — a bare country is not a place (ADR 0100). extension('postalCode').exists() or extension('city').exists()