Release 4 5 Snapshot #1

This page is part of the FHIR Specification (v4.0.1: R4 - Mixed Normative and STU ) in it's permanent home (it will always be available at this URL). (v5.0.0-snapshot1: Release 5 Snapshot #1). The current version which supercedes this version is 5.0.0 . For a full list of available versions, see the Directory of published versions . Page versions: R4B R4 R3

Extension: Geolocation

FHIR Infrastructure Work Group   Maturity Level : 1 Informative Use Context : Any

URL for this extension:


http://hl7.org/fhir/StructureDefinition/geolocation

Status: draft. Extension maintained by: Health Level Seven International (FHIR Infrastructure)

The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML).

Comment :

The extension can be further extended to include unique geolocation identifiers, confidence, altitude, etc.

Context of Use: Use on Element ID Address

Extension Content

Summary

Name Flags Card. Type Description & Constraints doco
. . Geolocation 0..1 Extension URL = http://hl7.org/fhir/StructureDefinition/geolocation
Geolocation: The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML).


Use on Element ID Address
. . . latitude 1..1 decimal Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).

. . . longitude 1..1 decimal Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below).


doco Documentation for this format

Full Structure

I I
Name Flags Card. Type Description & Constraints doco
. . extension 0..1 Extension URL = http://hl7.org/fhir/StructureDefinition/geolocation
Geolocation: The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML).


Use on Element ID Address
. . . Slices for extension I 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
. . . extension:latitude I 1..1 Extension Latitude with WGS84 datum
. . . extension . id I 0..0 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..0
. . . . url 1..1 uri "latitude"
. . . . value[x] 1..1 decimal Value of extension
. . . extension:longitude 1..1 Extension Longitude with WGS84 datum
. . . . id 0..1 string Unique id for inter-element referencing
. . . . Slices for extension I 0..0
. . . . url 1..1 uri "longitude"
. . . . value[x] I 1..1 decimal Value of extension
. . . value[x] I 0 .. 0
. . . . valueBase64Binary base64Binary
. . . . valueBoolean boolean
. . . . valueCanonical canonical () (Any)
. . . . valueCode code
. . . . valueDate date
. . . . valueDateTime dateTime
. . . . valueDecimal decimal
. . . . valueId id
. . . . valueInstant instant
. . . . valueInteger integer
. . . . valueMarkdown valueInteger64 markdown integer64
. . . . valueOid valueMarkdown oid markdown
. . . . valuePositiveInt valueOid positiveInt oid
. . . . valueString valuePositiveInt string positiveInt
. . . . valueTime valueString time string
. . . . valueUnsignedInt valueTime unsignedInt time
. . . . valueUri valueUnsignedInt uri unsignedInt
. . . . valueUrl valueUri url uri
. . . . valueUuid valueUrl url
.... valueUuid uuid
. . . . valueAddress Address
. . . . valueAddress valueAge Address Age
. . . . valueAge valueAnnotation Age Annotation
. . . . valueAnnotation valueAttachment Annotation Attachment
. . . . valueAttachment valueCodeableConcept Attachment CodeableConcept
. . . . valueCodeableConcept valueCodeableReference CodeableConcept CodeableReference
. . . . valueCoding Coding
. . . . valueContactPoint ContactPoint
. . . . valueCount Count
. . . . valueDistance Distance
. . . . valueDuration Duration
. . . . valueHumanName HumanName
. . . . valueIdentifier Identifier
. . . . valueMoney Money
. . . . valuePeriod Period
. . . . valueQuantity Quantity
. . . . valueRange Range
. . . . valueRatio Ratio
. . . valueReference . valueRatioRange Reference RatioRange ()
. . . valueSampledData . valueReference SampledData Reference (Any)
. . . . valueSignature valueSampledData Signature SampledData
. . . . valueTiming valueSignature Timing Signature
. . . . valueContactDetail valueTiming ContactDetail Timing
. . . . valueContributor valueContactDetail Contributor ContactDetail
. . . . valueDataRequirement valueContributor DataRequirement Contributor
. . . . valueExpression valueDataRequirement Expression DataRequirement
. . . . valueParameterDefinition valueExpression ParameterDefinition Expression
. . . . valueRelatedArtifact valueParameterDefinition RelatedArtifact ParameterDefinition
. . . . valueTriggerDefinition valueRelatedArtifact TriggerDefinition RelatedArtifact
. . . . valueUsageContext valueTriggerDefinition UsageContext TriggerDefinition
. . . . valueDosage valueUsageContext Dosage UsageContext
. . . . valueMeta valueDosage Dosage
.... valueMeta Meta

doco Documentation for this format

XML Template

<!-- Geolocation -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/geolocation" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="latitude"> ?? 1..1 Extension  <!-- ?? 1..1 Latitude with WGS84 datum -->
  <

  <valueDecimal value="[decimal]"/><!-- ?? 1..1 Value of extension -->

 </extension>
 <extension url="longitude"> ?? 1..1 Extension  <!-- ?? 1..1 Longitude with WGS84 datum -->
  <

  <valueDecimal value="[decimal]"/><!-- ?? 1..1 Value of extension -->

 </extension>
</extension>

JSON Template

{ // Geolocation
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Latitude with WGS84 datum // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "latitude", // R! 
        "

        "valueDecimal" : <decimal> // C? R! Value of extension

      },
      { // Longitude with WGS84 datum // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "longitude", // R! 
        "

        "valueDecimal" : <decimal> // C? R! Value of extension

      }
    ],
    "url" : "http://hl7.org/fhir/StructureDefinition/geolocation", // R! 


// value[x]: Value of extension. One of these 53:
  }

Summary

Name Flags Card. Type Description & Constraints doco
. . Geolocation 0..1 Extension URL = http://hl7.org/fhir/StructureDefinition/geolocation
Geolocation: The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML).


Use on Element ID Address
. . . latitude 1..1 decimal Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).

. . . longitude 1..1 decimal Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below).


doco Documentation for this format

Full Structure

I I
Name Flags Card. Type Description & Constraints doco
. . extension 0..1 Extension URL = http://hl7.org/fhir/StructureDefinition/geolocation
Geolocation: The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML).


Use on Element ID Address
. . . Slices for extension I 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
. . . extension:latitude I 1..1 Extension Latitude with WGS84 datum
. . . extension . id I 0..0 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..0
. . . . url 1..1 uri "latitude"
. . . . value[x] 1..1 decimal Value of extension
. . . extension:longitude 1..1 Extension Longitude with WGS84 datum
. . . . id 0..1 string Unique id for inter-element referencing
. . . . Slices for extension I 0..0
. . . . url 1..1 uri "longitude"
. . . . value[x] I 1..1 decimal Value of extension
. . . value[x] I 0 .. 0
. . . . valueBase64Binary base64Binary
. . . . valueBoolean boolean
. . . . valueCanonical canonical () (Any)
. . . . valueCode code
. . . . valueDate date
. . . . valueDateTime dateTime
. . . . valueDecimal decimal
. . . . valueId id
. . . . valueInstant instant
. . . . valueInteger integer
. . . . valueMarkdown valueInteger64 markdown integer64
. . . . valueOid valueMarkdown oid markdown
. . . . valuePositiveInt valueOid positiveInt oid
. . . . valueString valuePositiveInt string positiveInt
. . . . valueTime valueString time string
. . . . valueUnsignedInt valueTime unsignedInt time
. . . . valueUri valueUnsignedInt uri unsignedInt
. . . . valueUrl valueUri url uri
. . . . valueUuid valueUrl url
.... valueUuid uuid
. . . . valueAddress Address
. . . . valueAddress valueAge Address Age
. . . . valueAge valueAnnotation Age Annotation
. . . . valueAnnotation valueAttachment Annotation Attachment
. . . . valueAttachment valueCodeableConcept Attachment CodeableConcept
. . . . valueCodeableConcept valueCodeableReference CodeableConcept CodeableReference
. . . . valueCoding Coding
. . . . valueContactPoint ContactPoint
. . . . valueCount Count
. . . . valueDistance Distance
. . . . valueDuration Duration
. . . . valueHumanName HumanName
. . . . valueIdentifier Identifier
. . . . valueMoney Money
. . . . valuePeriod Period
. . . . valueQuantity Quantity
. . . . valueRange Range
. . . . valueRatio Ratio
. . . valueReference . valueRatioRange Reference RatioRange ()
. . . valueSampledData . valueReference SampledData Reference (Any)
. . . . valueSignature valueSampledData Signature SampledData
. . . . valueTiming valueSignature Timing Signature
. . . . valueContactDetail valueTiming ContactDetail Timing
. . . . valueContributor valueContactDetail Contributor ContactDetail
. . . . valueDataRequirement valueContributor DataRequirement Contributor
. . . . valueExpression valueDataRequirement Expression DataRequirement
. . . . valueParameterDefinition valueExpression ParameterDefinition Expression
. . . . valueRelatedArtifact valueParameterDefinition RelatedArtifact ParameterDefinition
. . . . valueTriggerDefinition valueRelatedArtifact TriggerDefinition RelatedArtifact
. . . . valueUsageContext valueTriggerDefinition UsageContext TriggerDefinition
. . . . valueDosage valueUsageContext Dosage UsageContext
. . . . valueMeta valueDosage Dosage
.... valueMeta Meta

doco Documentation for this format

XML Template

<!-- Geolocation -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/geolocation" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="latitude"> ?? 1..1 Extension  <!-- ?? 1..1 Latitude with WGS84 datum -->
  <

  <valueDecimal value="[decimal]"/><!-- ?? 1..1 Value of extension -->

 </extension>
 <extension url="longitude"> ?? 1..1 Extension  <!-- ?? 1..1 Longitude with WGS84 datum -->
  <

  <valueDecimal value="[decimal]"/><!-- ?? 1..1 Value of extension -->

 </extension>
</extension>

JSON Template

{ // Geolocation
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Latitude with WGS84 datum // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "latitude", // R! 
        "

        "valueDecimal" : <decimal> // C? R! Value of extension

      },
      { // Longitude with WGS84 datum // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "longitude", // R! 
        "

        "valueDecimal" : <decimal> // C? R! Value of extension

      }
    ],
    "url" : "http://hl7.org/fhir/StructureDefinition/geolocation", // R! 


// value[x]: Value of extension. One of these 53:
  }

 

Constraints

  • ele-1 : All FHIR elements must have a @value or children (xpath: @value|f:*|h:div )
  • ext-1 : Must have either extensions or value[x], not both (xpath: exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')]) )
  • ele-1 : On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div )
  • ext-1 : On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]) )
  • ele-1 : On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div )
  • ext-1 : On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]) )
  • ele-1 : On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div )
  • ext-1 : On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]) )
  • ele-1 : On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div )
  • ele-1 : On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div )
  • ext-1 : On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]) )
  • ele-1 : On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div )
  • ext-1 : On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]) )
  • ele-1 : On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div )
  • ele-1 : On Extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.value[x]: @value|f:*|h:div )