HL7 FHIR® US Core Implementation Guide CI Build

US Core, published by HL7 International - US Realm Steering Committee. This is not an authorized publication; it is the continuous build for version 3.1.0). This version is based on the current content of https://github.com/HL7/US-Core-R4/ and changes regularly. See the Directory of published versions

StructureDefinition-us-core-location

This profile sets minimum expectations for the Location resource for recording, searching for and fetching a Location associated with a patient, provider or organization. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.

Mandatory and Must Support Data Elements

The following data-elements are mandatory (i.e data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each Location must have:

  1. A name

Each Location must support:

  1. Location.status
  2. Location.name
  3. Location.telecom
  4. Location.address
  5. managingOrganization

Additional Profile specific implementation guidance:

  • none

Examples

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

The official URL for this profile is: http://hl7.org/fhir/us/core/StructureDefinition/us-core-location

Published on Tue May 21 00:00:00 UTC 2019 as active by the HL7 US Realm Steering Committee.

This profile builds on Location


Location

Summary of the Mandatory Requirements

  1. A string in Location.name

Summary of the Must Support Requirements

  1. A code in Location.status with a required binding to LocationStatus
  2. One or more ContactPoints in Location.telecom
  3. A Address in Location.address
    • which should have one or more string values in Location.address.line
    • which should have a string value in Location.address.city
    • which should have a string value in Location.address.state with an extensible binding to USPS Two Letter Alphabetic Codes
    • which should have a string value in Location.address.postalCode
  4. A Managingorganization Reference in Location.managingOrganization
NameFlagsCard.TypeDescription & Constraintsdoco
.. Location 0..*LocationDetails and position information for a physical place
... status S0..1codeactive | suspended | inactive
... name S1..1stringName of the location as used by humans
... telecom S0..*ContactPointContact details of the location
... address S0..1AddressPhysical location
.... line S0..*stringStreet name, number, direction & P.O. Box etc.
.... city S0..1stringName of city, town etc.
.... state S0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible)
.... postalCode S0..1stringUS Zip Codes
... managingOrganization S0..1Reference(US Core Organization Profile)Organization responsible for provisioning and upkeep

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Location I0..*LocationDetails and position information for a physical place
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierUnique code or number identifying the location to its users
... status ?!SΣI0..1codeactive | suspended | inactive
Binding: LocationStatus (required)
... operationalStatus ΣI0..1CodingThe operational status of the location (typically only for a bed/room)
Binding: v2 BED STATUS (preferred)
... name SΣI1..1stringName of the location as used by humans
... alias I0..*stringA list of alternate names that the location is known as, or was known as, in the past
... description ΣI0..1stringAdditional details about the location that could be displayed as further information to identify the location beyond its name
... mode ΣI0..1codeinstance | kind
Binding: LocationMode (required)
... type ΣI0..*CodeableConceptType of function performed
Binding: V3 Value SetServiceDeliveryLocationRoleType (extensible)
... telecom SI0..*ContactPointContact details of the location
... address SI0..1AddressPhysical location
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!ΣI0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required)
Example General: home
.... type ΣI0..1codepostal | physical | both
Binding: AddressType (required)
Example General: both
.... text ΣI0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line SΣI0..*stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
.... city SΣI0..1stringName of city, town etc.
Example General: Erewhon
.... district ΣI0..1stringDistrict name (aka county)
Example General: Madison
.... state SΣI0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible)
.... postalCode SΣI0..1stringUS Zip Codes
Example General: 9132
.... country ΣI0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period ΣI0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23T00:00:00+00:00","end":"2010-07-01T00:00:00+00:00"}
... physicalType ΣI0..1CodeableConceptPhysical form of the location
Binding: LocationType (example)
... position I0..1BackboneElementThe absolute geographic location
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... longitude I1..1decimalLongitude with WGS84 datum
.... latitude I1..1decimalLatitude with WGS84 datum
.... altitude I0..1decimalAltitude with WGS84 datum
... managingOrganization SΣI0..1Reference(US Core Organization Profile)Organization responsible for provisioning and upkeep
... partOf I0..1Reference(Location)Another Location this one is physically a part of
... hoursOfOperation I0..*BackboneElementWhat days/times during a week is this location usually open
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... daysOfWeek I0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... allDay I0..1booleanThe Location is open all day
.... openingTime I0..1timeTime that the Location opens
.... closingTime I0..1timeTime that the Location closes
... availabilityExceptions I0..1stringDescription of availability exceptions
... endpoint I0..*Reference(Endpoint)Technical endpoints providing access to services operated for the location

doco Documentation for this format

Location

Summary of the Mandatory Requirements

  1. A string in Location.name

Summary of the Must Support Requirements

  1. A code in Location.status with a required binding to LocationStatus
  2. One or more ContactPoints in Location.telecom
  3. A Address in Location.address
    • which should have one or more string values in Location.address.line
    • which should have a string value in Location.address.city
    • which should have a string value in Location.address.state with an extensible binding to USPS Two Letter Alphabetic Codes
    • which should have a string value in Location.address.postalCode
  4. A Managingorganization Reference in Location.managingOrganization

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location 0..*LocationDetails and position information for a physical place
... status S0..1codeactive | suspended | inactive
... name S1..1stringName of the location as used by humans
... telecom S0..*ContactPointContact details of the location
... address S0..1AddressPhysical location
.... line S0..*stringStreet name, number, direction & P.O. Box etc.
.... city S0..1stringName of city, town etc.
.... state S0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible)
.... postalCode S0..1stringUS Zip Codes
... managingOrganization S0..1Reference(US Core Organization Profile)Organization responsible for provisioning and upkeep

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location I0..*LocationDetails and position information for a physical place
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierUnique code or number identifying the location to its users
... status ?!SΣI0..1codeactive | suspended | inactive
Binding: LocationStatus (required)
... operationalStatus ΣI0..1CodingThe operational status of the location (typically only for a bed/room)
Binding: v2 BED STATUS (preferred)
... name SΣI1..1stringName of the location as used by humans
... alias I0..*stringA list of alternate names that the location is known as, or was known as, in the past
... description ΣI0..1stringAdditional details about the location that could be displayed as further information to identify the location beyond its name
... mode ΣI0..1codeinstance | kind
Binding: LocationMode (required)
... type ΣI0..*CodeableConceptType of function performed
Binding: V3 Value SetServiceDeliveryLocationRoleType (extensible)
... telecom SI0..*ContactPointContact details of the location
... address SI0..1AddressPhysical location
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!ΣI0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required)
Example General: home
.... type ΣI0..1codepostal | physical | both
Binding: AddressType (required)
Example General: both
.... text ΣI0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line SΣI0..*stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
.... city SΣI0..1stringName of city, town etc.
Example General: Erewhon
.... district ΣI0..1stringDistrict name (aka county)
Example General: Madison
.... state SΣI0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible)
.... postalCode SΣI0..1stringUS Zip Codes
Example General: 9132
.... country ΣI0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period ΣI0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23T00:00:00+00:00","end":"2010-07-01T00:00:00+00:00"}
... physicalType ΣI0..1CodeableConceptPhysical form of the location
Binding: LocationType (example)
... position I0..1BackboneElementThe absolute geographic location
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... longitude I1..1decimalLongitude with WGS84 datum
.... latitude I1..1decimalLatitude with WGS84 datum
.... altitude I0..1decimalAltitude with WGS84 datum
... managingOrganization SΣI0..1Reference(US Core Organization Profile)Organization responsible for provisioning and upkeep
... partOf I0..1Reference(Location)Another Location this one is physically a part of
... hoursOfOperation I0..*BackboneElementWhat days/times during a week is this location usually open
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... daysOfWeek I0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... allDay I0..1booleanThe Location is open all day
.... openingTime I0..1timeTime that the Location opens
.... closingTime I0..1timeTime that the Location closes
... availabilityExceptions I0..1stringDescription of availability exceptions
... endpoint I0..*Reference(Endpoint)Technical endpoints providing access to services operated for the location

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron


Quick Start

Below is an overview of the required set of RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.

  • See the General Guidance section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

Mandatory Search Parameters:

The following search parameters and search parameter combinations SHALL be supported.:

  1. SHALL support searching by location name using the name search parameter:

    GET [base]/Location?name=[string]

    Example:

    1. GET [base]/Location?name=Health

    Implementation Notes: Fetches a bundle of all Location resources that match the name (how to search by string)

  2. SHALL support searching location based on text address using the address search parameter:

    GET [base]/Location?address=[string]

    Example:

    1. GET [base]/Location?address=Arbor

    Implementation Notes: Fetches a bundle of all Location resources that match the address string (how to search by string)

Optional Search Parameters:

The following search parameter combinations SHOULD be supported.:

  1. SHOULD support searching using the address-city search parameter:

    GET [base]/Location?address-city=[string]

    Example:

    1. GET [base]/Location?address-city=Ann Arbor

    Implementation Notes: Fetches a bundle of all Location resources for the city (how to search by string)

  2. SHOULD support searching using the address-state search parameter:

    GET [base]/Location?address-state=[string]

    Example:

    1. GET [base]/Location?address-state=MI

    Implementation Notes: Fetches a bundle of all Location resources for the state (how to search by string)

  3. SHOULD support searching using the address-postalcode search parameter:

    GET [base]/Location?address-postalcode=[string]

    Example:

    1. GET [base]/Location?address-postalcode=48104

    Implementation Notes: Fetches a bundle of all Location resources for the ZIP code (how to search by string)