Generated Narrative: StructureDefinition spatial-index Name Flags Card. Type Description & Constraints <a href="StructureDefinition-spatial-index-definitions.html#Extension" title="A spatial index cell derived from the Location's position: which tiling scheme (quadkey | h3 | geohash), at what level (quadkey zoom / H3 resolution / geohash precision), and the cell key. Repeatable — a point carries at most one cell per scheme and level (ICRLocation invariant icr-loc-spatial-one-per-level); several schemes and levels may coexist. Quadkey and geohash cells are prefix-hierarchical, so a FHIR string search on the cell (Location?quadkey=0313…) answers 'every point inside this coarser tile' with no geometry engine; H3 cells join on exact match. Derived data: written by the loader (kiln) at import or as a backfill edit, recomputed whenever the position changes, never hand-entered. Not an identifier — many places share a cell (spatial-index round, Sep 2026).">Extension <a style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;; padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;" href="http://hl7.org/fhir/R4/conformance-rules.html#constraints" title="This element has or is affected by constraints ( icr-spatial-quadkey, icr-spatial-h3, icr-spatial-geohash )">C 0..* Extension Spatial Index Cell Constraints: icr-spatial-quadkey, icr-spatial-h3, icr-spatial-geohash #xD; extension 3..* Extension Extension #xD; Slices for extension Content/Rules for all slices #xD; extension:system S 1..1 Extension quadkey | h3 | geohash #xD; extension 0..0 Extension #xD; url 1..1 uri "system" #xD; value[x] 0..1 code Value of extension Binding: ICR Spatial Index Scheme (required) #xD; extension:level S 1..1 Extension Quadkey zoom (1–23), H3 resolution (0–15), geohash precision (1–12) — explicit even where recoverable from the cell, so 'every point indexed at level 18' is a plain query #xD; extension 0..0 Extension #xD; url 1..1 uri "level" #xD; value[x] 0..1 unsignedInt Value of extension #xD; extension:cell S 1..1 Extension The cell key in the scheme's canonical string form (quadkey: base-4 digits; h3: 15 hex chars; geohash: base-32) #xD; extension 0..0 Extension #xD; url 1..1 uri "cell" #xD; value[x] 0..1 string Value of extension #xD; url 1..1 uri "https://icr.healthcampaigns.org/StructureDefinition/spatial-index" #xD; value[x] 0..0 Value of extension #xD; Documentation for this format
A spatial index cell derived from the Location's position: which tiling scheme (quadkey | h3 | geohash), at what level (quadkey zoom / H3 resolution / geohash precision), and the cell key. Repeatable — a point carries at most one cell per scheme and level (ICRLocation invariant icr-loc-spatial-one-per-level); several schemes and levels may coexist. Quadkey and geohash cells are prefix-hierarchical, so a FHIR string search on the cell (Location?quadkey=0313…) answers 'every point inside this coarser tile' with no geometry engine; H3 cells join on exact match. Derived data: written by the loader (kiln) at import or as a backfill edit, recomputed whenever the position changes, never hand-entered. Not an identifier — many places share a cell (spatial-index round, Sep 2026).
All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
Must have either extensions or value[x], not both
exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])
A quadkey cell is base-4 digits, exactly level characters long, level 1–23.
extension.where(url = 'system').value = 'quadkey' implies (extension.where(url = 'cell').value.matches('^[0-3]+$') and extension.where(url = 'cell').value.length() = extension.where(url = 'level').value and extension.where(url = 'level').value >= 1 and extension.where(url = 'level').value <= 23)
An H3 cell is a 15-hex-character index, level (resolution) 0–15.
extension.where(url = 'system').value = 'h3' implies (extension.where(url = 'cell').value.matches('^[0-9a-f]{15}$') and extension.where(url = 'level').value <= 15)
A geohash cell is base-32 characters, exactly level characters long, level 1–12.
extension.where(url = 'system').value = 'geohash' implies (extension.where(url = 'cell').value.matches('^[0-9b-hjkmnp-z]+$') and extension.where(url = 'cell').value.length() = extension.where(url = 'level').value and extension.where(url = 'level').value >= 1 and extension.where(url = 'level').value <= 12)
Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Extensions are always sliced by (at least) url
exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
Source of the definition for the extension code - a logical name or a URL.
The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.
Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Quadkey zoom (1–23), H3 resolution (0–15), geohash precision (1–12) — explicit even where recoverable from the cell, so 'every point indexed at level 18' is a plain query
The cell key in the scheme's canonical string form (quadkey: base-4 digits; h3: 15 hex chars; geohash: base-32)