Release 4

Extension: Geolocation

FHIR Infrastructure Work Group Maturity Level: 1InformativeUse 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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Geolocation0..1ExtensionURL = 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
... latitude1..1decimalLatitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).

... longitude1..1decimalLongitude. 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

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..1ExtensionURL = 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
... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:latitude I1..1ExtensionLatitude with WGS84 datum
.... extension I0..0
.... url 1..1uri"latitude"
.... value[x] I1..1decimalValue of extension
... extension:longitude I1..1ExtensionLongitude with WGS84 datum
.... extension I0..0
.... url 1..1uri"longitude"
.... value[x] I1..1decimalValue of extension
... url 1..1uri"http://hl7.org/fhir/StructureDefinition/geolocation"
... value[x] I0..0
.... valueBase64Binarybase64Binary
.... valueBooleanboolean
.... valueCanonicalcanonical()
.... valueCodecode
.... valueDatedate
.... valueDateTimedateTime
.... valueDecimaldecimal
.... valueIdid
.... valueInstantinstant
.... valueIntegerinteger
.... valueMarkdownmarkdown
.... valueOidoid
.... valuePositiveIntpositiveInt
.... valueStringstring
.... valueTimetime
.... valueUnsignedIntunsignedInt
.... valueUriuri
.... valueUrlurl
.... valueUuiduuid
.... valueAddressAddress
.... valueAgeAge
.... valueAnnotationAnnotation
.... valueAttachmentAttachment
.... valueCodeableConceptCodeableConcept
.... valueCodingCoding
.... valueContactPointContactPoint
.... valueCountCount
.... valueDistanceDistance
.... valueDurationDuration
.... valueHumanNameHumanName
.... valueIdentifierIdentifier
.... valueMoneyMoney
.... valuePeriodPeriod
.... valueQuantityQuantity
.... valueRangeRange
.... valueRatioRatio
.... valueReferenceReference()
.... valueSampledDataSampledData
.... valueSignatureSignature
.... valueTimingTiming
.... valueContactDetailContactDetail
.... valueContributorContributor
.... valueDataRequirementDataRequirement
.... valueExpressionExpression
.... valueParameterDefinitionParameterDefinition
.... valueRelatedArtifactRelatedArtifact
.... valueTriggerDefinitionTriggerDefinition
.... valueUsageContextUsageContext
.... valueDosageDosage
.... valueMetaMeta

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 50:
  }

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. Geolocation0..1ExtensionURL = 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
... latitude1..1decimalLatitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).

... longitude1..1decimalLongitude. 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

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..1ExtensionURL = 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
... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:latitude I1..1ExtensionLatitude with WGS84 datum
.... extension I0..0
.... url 1..1uri"latitude"
.... value[x] I1..1decimalValue of extension
... extension:longitude I1..1ExtensionLongitude with WGS84 datum
.... extension I0..0
.... url 1..1uri"longitude"
.... value[x] I1..1decimalValue of extension
... url 1..1uri"http://hl7.org/fhir/StructureDefinition/geolocation"
... value[x] I0..0
.... valueBase64Binarybase64Binary
.... valueBooleanboolean
.... valueCanonicalcanonical()
.... valueCodecode
.... valueDatedate
.... valueDateTimedateTime
.... valueDecimaldecimal
.... valueIdid
.... valueInstantinstant
.... valueIntegerinteger
.... valueMarkdownmarkdown
.... valueOidoid
.... valuePositiveIntpositiveInt
.... valueStringstring
.... valueTimetime
.... valueUnsignedIntunsignedInt
.... valueUriuri
.... valueUrlurl
.... valueUuiduuid
.... valueAddressAddress
.... valueAgeAge
.... valueAnnotationAnnotation
.... valueAttachmentAttachment
.... valueCodeableConceptCodeableConcept
.... valueCodingCoding
.... valueContactPointContactPoint
.... valueCountCount
.... valueDistanceDistance
.... valueDurationDuration
.... valueHumanNameHumanName
.... valueIdentifierIdentifier
.... valueMoneyMoney
.... valuePeriodPeriod
.... valueQuantityQuantity
.... valueRangeRange
.... valueRatioRatio
.... valueReferenceReference()
.... valueSampledDataSampledData
.... valueSignatureSignature
.... valueTimingTiming
.... valueContactDetailContactDetail
.... valueContributorContributor
.... valueDataRequirementDataRequirement
.... valueExpressionExpression
.... valueParameterDefinitionParameterDefinition
.... valueRelatedArtifactRelatedArtifact
.... valueTriggerDefinitionTriggerDefinition
.... valueUsageContextUsageContext
.... valueDosageDosage
.... valueMetaMeta

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 50:
  }

 

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)