hr-location
type: StructureDefinition
node role: treeRoot
id:
  v: hr-location
text:
  status:
    v: extensions
  div:
    v: Generated Narrative: StructureDefinition hr-location Name Flags Card. Type Description & Constraints<img src="[binary]" alt="doco" style="background-color: inherit"/> Location 0..* Location Details and position information for a place status S 1..1 code active | suspended | inactive name S 1..1 string Name of the location as used by humans mode S 1..1 code instance | kind Required Pattern: instance type S 0..* CodeableConcept Kind of clinic address S 0..1 Address Physical location managingOrganization S 1..1 Reference(Healthy Route Organization) Organization responsible for provisioning and upkeep partOf S 0..1 Reference(Healthy Route Location) Another Location this one is physically a part of <img src="[binary]" alt="doco" style="background-color: inherit"/> Documentation for this format
url:
  v: https://fhir.savannahghi.org/ig/healthy-route/StructureDefinition/hr-location
version:
  v: 0.1.0
name:
  v: HRLocation
title:
  v: Healthy Route Location
status:
  v: draft
experimental:
  v: false
date:
  v: 2026-09-04T13:29:51+00:00
publisher:
  v: Savannah Informatics
contact:
  name:
    v: Savannah Informatics
  telecom:
    system:
      v: url
    value:
      v: https://savannahghi.org
contact:
  name:
    v: Savannah Informatics
  telecom:
    system:
      v: url
    value:
      v: https://savannahghi.org
description:
  v: A clinic within a study site, where participants are approached.
purpose:
  v: Records where a participant was approached, which the protocols make a property of the recruitment rather than an incidental detail. Both protocols recruit from the general out-patient, hypertension, diabetes and renal clinics of their sites, and a cohort drawn mostly from a renal clinic is not the same cohort as one drawn mostly from general out-patients even when both come from the same hospital.
fhir version:
  v: 5.0.0
mapping:
  identity:
    v: w5
  uri:
    v: http://hl7.org/fhir/fivews
  name:
    v: FiveWs Pattern Mapping
mapping:
  identity:
    v: rim
  uri:
    v: http://hl7.org/v3
  name:
    v: RIM Mapping
mapping:
  identity:
    v: interface
  uri:
    v: http://hl7.org/fhir/interface
  name:
    v: Interface Pattern
kind:
  v: resource
abstract:
  v: false
type:
  v: Location
base definition:
  v: http://hl7.org/fhir/StructureDefinition/Location
  link: http://hl7.org/fhir/StructureDefinition/Location
derivation:
  v: constraint
snapshot:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version
    value: string
      v: 5.0.0
  element:
    id:
      v: Location
    path:
      v: Location
    short:
      v: Details and position information for a place
    definition:
      v: Details and position information for a place where services are provided and resources and participants may be stored, found, contained, or accommodated.
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: Location
      min:
        v: 0
      max:
        v: *
    constraint:
      key:
        v: dom-2
      severity:
        v: error
      human:
        v: If the resource is contained in another resource, it SHALL NOT contain nested Resources
      expression:
        v: contained.contained.empty()
      source:
        v: http://hl7.org/fhir/StructureDefinition/DomainResource
        link: http://hl7.org/fhir/StructureDefinition/DomainResource
    constraint:
      key:
        v: dom-3
      severity:
        v: error
      human:
        v: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
      expression:
        v: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
      source:
        v: http://hl7.org/fhir/StructureDefinition/DomainResource
        link: http://hl7.org/fhir/StructureDefinition/DomainResource
    constraint:
      key:
        v: dom-4
      severity:
        v: error
      human:
        v: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
      expression:
        v: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
      source:
        v: http://hl7.org/fhir/StructureDefinition/DomainResource
        link: http://hl7.org/fhir/StructureDefinition/DomainResource
    constraint:
      key:
        v: dom-5
      severity:
        v: error
      human:
        v: If a resource is contained in another resource, it SHALL NOT have a security label
      expression:
        v: contained.meta.security.empty()
      source:
        v: http://hl7.org/fhir/StructureDefinition/DomainResource
        link: http://hl7.org/fhir/StructureDefinition/DomainResource
    constraint:
      extension:
        value: boolean
      extension:
        value: markdown
      key:
        v: dom-6
      severity:
        v: warning
      human:
        v: A resource should have narrative for robust management
      expression:
        v: text.`div`.exists()
      source:
        v: http://hl7.org/fhir/StructureDefinition/DomainResource
        link: http://hl7.org/fhir/StructureDefinition/DomainResource
    must support:
      v: false
    is modifier:
      v: false
    is summary:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: Entity, Role, or Act,.Role[classCode=SDLC]
    mapping:
      identity:
        v: w5
      map:
        v: administrative.entity
    mapping:
      identity:
        v: interface
      map:
        v: ParticipantContactable
  element:
    id:
      v: Location.id
    path:
      v: Location.id
    short:
      v: Logical id of this artifact
    definition:
      v: The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
    comment:
      v: Within the context of the FHIR RESTful interactions, the resource has an id except for cases like the create and conditional update. Otherwise, the use of the resouce id depends on the given use case.
    min:
      v: 0

boolean
v: true

markdown
v: When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time.

v: 1

path:
  v: Resource.id
min:
  v: 0
max:
  v: 1

extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
  value: url
    v: id
code:
  v: http://hl7.org/fhirpath/System.String

v: false

v: false

v: true

id:
  v: Location.meta
path:
  v: Location.meta
short:
  v: Metadata about the resource
definition:
  v: The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Resource.meta
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Meta
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: true

id:
  v: Location.implicitRules
path:
  v: Location.implicitRules
short:
  v: A set of rules under which this content was created
definition:
  v: A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
comment:
  v: Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of its narrative along with other profiles, value sets, etc.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Resource.implicitRules
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: uri
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: true
is modifier reason:
  v: This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies its meaning or interpretation
is summary:
  v: true

id:
  v: Location.language
path:
  v: Location.language
short:
  v: Language of the resource content
definition:
  v: The base language in which the resource is written.
comment:
  v: Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Resource.language
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
    value: string
      v: Language
  strength:
    v: required
  description:
    v: IETF language tag for a human language
  value set:
    v: http://hl7.org/fhir/ValueSet/all-languages|5.0.0
    link: 5.0
    link: .0
  additional:
    purpose:
      v: starter
    value set:
      v: http://hl7.org/fhir/ValueSet/languages|5.0.0
      link: 5.0
      link: .0

id:
  v: Location.text
path:
  v: Location.text
short:
  v: Text summary of the resource, for human interpretation
definition:
  v: A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
comment:
  v: Contained resources do not have a narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.
alias:
  v: narrative
alias:
  v: html
alias:
  v: xhtml
alias:
  v: display
min:
  v: 0
max:
  v: 1
base:
  path:
    v: DomainResource.text
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Narrative
condition:
  v: dom-6
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: Act.text?

id:
  v: Location.contained
path:
  v: Location.contained
short:
  v: Contained, inline Resources
definition:
  v: These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.
comment:
  v: This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags in their meta elements, but SHALL NOT have security labels.
alias:
  v: inline resources
alias:
  v: anonymous resources
alias:
  v: contained resources
min:
  v: 0
max:
  v: *
base:
  path:
    v: DomainResource.contained
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Resource
condition:
  v: dom-2
condition:
  v: dom-4
condition:
  v: dom-3
condition:
  v: dom-5
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Location.extension
path:
  v: Location.extension
short:
  v: Additional content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: DomainResource.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Location.modifierExtension
path:
  v: Location.modifierExtension
short:
  v: Extensions that cannot be ignored
definition:
  v: May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R5/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: DomainResource.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
must support:
  v: false
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Location.identifier
path:
  v: Location.identifier
short:
  v: Unique code or number identifying the location to its users
definition:
  v: Unique code or number identifying the location to its users.
requirements:
  v: Organization label locations in registries, need to keep track of those.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Location.identifier
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Identifier
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.identifier
mapping:
  identity:
    v: rim
  map:
    v: .id
mapping:
  identity:
    v: interface
  map:
    v: Participant.identifier

id:
  v: Location.status
path:
  v: Location.status
short:
  v: active | suspended | inactive
definition:
  v: The status property covers the general availability of the resource, not the current value which may be covered by the operationStatus, or by a schedule/slots if they are configured for the location.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Location.status
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: true
is modifier:
  v: true
is modifier reason:
  v: This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
    value: string
      v: LocationStatus
  strength:
    v: required
  description:
    v: Indicates whether the location is still in use.
  value set:
    v: http://hl7.org/fhir/ValueSet/location-status|5.0.0
    link: 5.0
    link: .0
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.status
mapping:
  identity:
    v: rim
  map:
    v: .statusCode
mapping:
  identity:
    v: interface
  map:
    v: Participant.active

id:
  v: Location.operationalStatus
path:
  v: Location.operationalStatus
short:
  v: The operational status of the location (typically only for a bed/room)
definition:
  v: The operational status covers operation values most relevant to beds (but can also apply to rooms/units/chairs/etc. such as an isolation unit/dialysis chair). This typically covers concepts such as contamination, housekeeping, and other activities like maintenance.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Location.operationalStatus
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Coding
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
    value: string
      v: OperationalStatus
  strength:
    v: preferred
  description:
    v: The operational status if the location (where typically a bed/room).
  value set:
    v: http://terminology.hl7.org/ValueSet/v2-0116
    link: http://terminology.hl7.org/ValueSet/v2-0116
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.status
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Location.name
path:
  v: Location.name
short:
  v: Name of the location as used by humans
definition:
  v: Name of the location as used by humans. Does not need to be unique.
comment:
  v: If the name of a location changes, consider putting the old name in the alias column so that it can still be located through searches.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Location.name
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: .name
mapping:
  identity:
    v: interface
  map:
    v: Participant.name

id:
  v: Location.alias
path:
  v: Location.alias
short:
  v: A list of alternate names that the location is known as, or was known as, in the past
definition:
  v: A list of alternate names that the location is known as, or was known as, in the past.
comment:
  v: There are no dates associated with the alias/historic names, as this is not intended to track when names were used, but to assist in searching so that older names can still result in identifying the location.
requirements:
  v: Over time locations and organizations go through many changes and can be known by different names. For searching knowing previous names that the location was known by can be very useful.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Location.alias
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: string
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .name

id:
  v: Location.description
path:
  v: Location.description
short:
  v: Additional details about the location that could be displayed as further information to identify the location beyond its name
definition:
  v: Description of the Location, which helps in finding or referencing the place.
requirements:
  v: Humans need additional information to verify a correct location has been identified.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Location.description
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: markdown
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: .playingEntity[classCode=PLC determinerCode=INSTANCE].desc

id:
  v: Location.mode
path:
  v: Location.mode
short:
  v: instance | kind
definition:
  v: Indicates whether a resource instance represents a specific location or a class of locations.
comment:
  v: Fixed. Every location in this guide is a specific clinic that exists, never a class of clinic described in the abstract, and the distinction matters because a reference to a kind of place cannot be the place a participant was actually seen.
requirements:
  v: When using a Location resource for scheduling or orders, we need to be able to refer to a class of Locations instead of a specific Location.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Location.mode
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
pattern: code
  v: instance
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
    value: string
      v: LocationMode
  strength:
    v: required
  description:
    v: Indicates whether a resource instance represents a specific location or a class of locations.
  value set:
    v: http://hl7.org/fhir/ValueSet/location-mode|5.0.0
    link: 5.0
    link: .0
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.class
mapping:
  identity:
    v: rim
  map:
    v: .playingEntity[classCode=PLC].determinerCode

id:
  v: Location.type
path:
  v: Location.type
short:
  v: Kind of clinic
definition:
  v: Indicates the type of function performed at the location.
requirements:
  v: The clinic a participant was recruited from is a source of spectrum variation that has to be available at analysis. Where recruitment is unbalanced across clinic types, the prevalence of disease in the cohort differs from the prevalence in the population the algorithm is intended for, and the resulting predictive values move with it.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Location.type
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: CodeableConcept
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
    value: string
      v: LocationType
  strength:
    v: extensible
  description:
    v: Indicates the type of function performed at the location.
  value set:
    v: http://terminology.hl7.org/ValueSet/v3-ServiceDeliveryLocationRoleType
    link: http://terminology.hl7.org/ValueSet/v3-ServiceDeliveryLocationRoleType
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.class
mapping:
  identity:
    v: rim
  map:
    v: .code

id:
  v: Location.contact
path:
  v: Location.contact
short:
  v: Official contact details for the location
definition:
  v: The contact details of communication devices available at the location. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.
comment:
  v: The address/telecom use code 'home' are not to be used. Note that these contacts are not the contact details of people who provide the service (that would be through PractitionerRole), these are official contacts for the Healthcare itself for specific purposes. E.g. Mailing Addresses, Billing Addresses, Contact numbers for Booking or Billing Enquiries, general web address, web address for online bookings etc. If this is empty (or the type of interest is empty), refer to the organization's contacts.
requirements:
  v: Need to keep track of both simple contact details and also assigned contacts within larger organizations.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Location.contact
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: ExtendedContactDetail
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .telecom and .addr and other .role(relevant datatype properties mapped from role into extendedcontactdetail)

id:
  v: Location.address
path:
  v: Location.address
short:
  v: Physical location
definition:
  v: Physical location.
comment:
  v: The address of a facility, not of a participant. It is not subject to the export constraints that apply to participant addresses, because it identifies an institution rather than a person.
requirements:
  v: If locations can be visited, we need to keep track of their address.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Location.address
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Address
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .addr
mapping:
  identity:
    v: interface
  map:
    v: ParticipantContactable.address

id:
  v: Location.form
path:
  v: Location.form
short:
  v: Physical form of the location
definition:
  v: Physical form of the location, e.g. building, room, vehicle, road, virtual.
requirements:
  v: For purposes of showing relevant locations in queries, we need to categorize locations.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Location.form
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: CodeableConcept
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
    value: string
      v: LocationForm
  strength:
    v: example
  description:
    v: Physical form of the location.
  value set:
    v: http://hl7.org/fhir/ValueSet/location-form|5.0.0
    link: 5.0
    link: .0
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.class
mapping:
  identity:
    v: rim
  map:
    v: .playingEntity [classCode=PLC].code

id:
  v: Location.position
path:
  v: Location.position
short:
  v: The absolute geographic location
definition:
  v: The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML).
comment:
  v: To define a boundary shape for this location use the standard extension `[http://hl7.org/fhir/StructureDefinition/location-boundary-geojson](http://hl7.org/fhir/extensions/StructureDefinition-location-boundary-geojson.html)`, and search using the `contains` special search parameter.
requirements:
  v: For mobile applications and automated route-finding knowing the exact location of the Location is required.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Location.position
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .playingEntity [classCode=PLC determinerCode=INSTANCE].positionText

id:
  v: Location.position.id
path:
  v: Location.position.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
    value: url
      v: string
  code:
    v: http://hl7.org/fhirpath/System.String
condition:
  v: ele-1
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Location.position.extension
path:
  v: Location.position.extension
short:
  v: Additional content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Location.position.modifierExtension
path:
  v: Location.position.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R5/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Location.position.longitude
path:
  v: Location.position.longitude
short:
  v: Longitude with WGS84 datum
definition:
  v: Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes on Location main page).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Location.position.longitude
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: decimal
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: (RIM Opted not to map the sub-elements of GPS location, is now an OBS)

id:
  v: Location.position.latitude
path:
  v: Location.position.latitude
short:
  v: Latitude with WGS84 datum
definition:
  v: Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes on Location main page).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Location.position.latitude
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: decimal
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: (RIM Opted not to map the sub-elements of GPS location, is now an OBS)

id:
  v: Location.position.altitude
path:
  v: Location.position.altitude
short:
  v: Altitude with WGS84 datum
definition:
  v: Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes on Location main page).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Location.position.altitude
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: decimal
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: (RIM Opted not to map the sub-elements of GPS location, is now an OBS)

id:
  v: Location.managingOrganization
path:
  v: Location.managingOrganization
short:
  v: Organization responsible for provisioning and upkeep
definition:
  v: The organization responsible for the provisioning and upkeep of the location.
comment:
  v: This can also be used as the part of the organization hierarchy where this location provides services. These services can be defined through the HealthcareService resource.
requirements:
  v: Required rather than optional, because this reference is how a location resolves to a site tenant. A location with no managing organisation belongs to no partition.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Location.managingOrganization
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Reference
  target profile:
    v: https://fhir.savannahghi.org/ig/healthy-route/StructureDefinition/hr-organization
    link: https://fhir.savannahghi.org/ig/healthy-route/StructureDefinition/hr-organization
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: .scopingEntity[classCode=ORG determinerKind=INSTANCE]

id:
  v: Location.partOf
path:
  v: Location.partOf
short:
  v: Another Location this one is physically a part of
definition:
  v: Another Location of which this Location is physically a part of.
requirements:
  v: For purposes of location, display and identification, knowing which locations are located within other locations is important.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Location.partOf
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy
    value: boolean
      v: true
  code:
    v: Reference
  target profile:
    v: https://fhir.savannahghi.org/ig/healthy-route/StructureDefinition/hr-location
    link: https://fhir.savannahghi.org/ig/healthy-route/StructureDefinition/hr-location
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .inboundLink[typeCode=PART].source[classCode=SDLOC]

id:
  v: Location.characteristic
path:
  v: Location.characteristic
short:
  v: Collection of characteristics (attributes)
definition:
  v: Collection of characteristics (attributes).
comment:
  v: These could be such things as is wheelchair accessible.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Location.characteristic
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: CodeableConcept
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
    value: string
      v: LocationCharacteristic
  strength:
    v: example
  description:
    v: A custom attribute that could be provided at a service (e.g. Wheelchair accessibiliy).
  value set:
    v: http://hl7.org/fhir/ValueSet/location-characteristic|5.0.0
    link: 5.0
    link: .0
mapping:
  identity:
    v: rim
  map:
    v: .actrelationship[typeCode=PERT].observation

id:
  v: Location.hoursOfOperation
path:
  v: Location.hoursOfOperation
short:
  v: What days/times during a week is this location usually open (including exceptions)
definition:
  v: What days/times during a week is this location usually open, and any exceptions where the location is not available.
comment:
  v: This type of information is commonly found published in directories and on websites informing customers when the facility is available. Specific services within the location may have their own hours which could be shorter (or longer) than the locations hours. Systems may choose to render availability differently than it is exchanged on the interface. For example, rather than "Mon, Tue, Wed, Thur, Fri from 9am-12am; Mon, Tue, Wed, Thur, Fri from 1pm-5pm" as would be implied by two availableTime repetitions, an application could render this information as "Mon-Fri 9-12am and 1-5pm". The availableStartTime is the opening time, and the availableEndTime is the closing time.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Location.hoursOfOperation
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Availability
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .effectiveTime

id:
  v: Location.virtualService
path:
  v: Location.virtualService
short:
  v: Connection details of a virtual service (e.g. conference call)
definition:
  v: Connection details of a virtual service (e.g. shared conference call facility with dedicated number/details).
comment:
  v: There are two types of virtual meetings that often exist: * a persistent, virtual meeting room that can only be used for a single purpose at a time, * and a dynamic virtual meeting room that is generated on demand for a specific purpose. Implementers may consider using Appointment.virtualService for virtual meeting rooms that are generated on-demand.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Location.virtualService
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: VirtualServiceDetail
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Location.endpoint
path:
  v: Location.endpoint
short:
  v: Technical endpoints providing access to services operated for the location
definition:
  v: Technical endpoints providing access to services operated for the location.
requirements:
  v: Organizations may have different systems at different locations that provide various services and need to be able to define the technical connection details for how to connect to them, and for what purpose.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Location.endpoint
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Reference
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Endpoint|5.0.0
    link: 5.0
    link: .0
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
must support:
  v: false
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

element:
  id:
    v: Location
  path:
    v: Location
element:
  id:
    v: Location.status
  path:
    v: Location.status
  min:
    v: 1
  must support:
    v: true
element:
  id:
    v: Location.name
  path:
    v: Location.name
  min:
    v: 1
  must support:
    v: true
element:
  id:
    v: Location.mode
  path:
    v: Location.mode
  comment:
    v: Fixed. Every location in this guide is a specific clinic that exists, never a class of clinic described in the abstract, and the distinction matters because a reference to a kind of place cannot be the place a participant was actually seen.
  min:
    v: 1
  pattern: code
    v: instance
  must support:
    v: true
element:
  id:
    v: Location.type
  path:
    v: Location.type
  short:
    v: Kind of clinic
  requirements:
    v: The clinic a participant was recruited from is a source of spectrum variation that has to be available at analysis. Where recruitment is unbalanced across clinic types, the prevalence of disease in the cohort differs from the prevalence in the population the algorithm is intended for, and the resulting predictive values move with it.
  must support:
    v: true
element:
  id:
    v: Location.address
  path:
    v: Location.address
  comment:
    v: The address of a facility, not of a participant. It is not subject to the export constraints that apply to participant addresses, because it identifies an institution rather than a person.
  must support:
    v: true
element:
  id:
    v: Location.managingOrganization
  path:
    v: Location.managingOrganization
  requirements:
    v: Required rather than optional, because this reference is how a location resolves to a site tenant. A location with no managing organisation belongs to no partition.
  min:
    v: 1
  type:
    code:
      v: Reference
    target profile:
      v: https://fhir.savannahghi.org/ig/healthy-route/StructureDefinition/hr-organization
      link: https://fhir.savannahghi.org/ig/healthy-route/StructureDefinition/hr-organization
  must support:
    v: true
element:
  id:
    v: Location.partOf
  path:
    v: Location.partOf
  type:
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy
      value: boolean
        v: true
    code:
      v: Reference
    target profile:
      v: https://fhir.savannahghi.org/ig/healthy-route/StructureDefinition/hr-location
      link: https://fhir.savannahghi.org/ig/healthy-route/StructureDefinition/hr-location
  must support:
    v: true