HL7 FHIR® Validated Healthcare Directory Implementation Guide STU 1

Validated Healthcare Directory, published by HL7 International - Patient Admistration Working Group. This is not an authorized publication; it is the continuous build for version 0.2.0). This version is based on the current content of https://github.com/HL7/VhDir/ and changes regularly. See the Directory of published versions

StructureDefinition-vhdir-location

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

Background & Scope

A location is the physical place where healthcare services are provided, practitioners are employed, organizations are based, etc. Locations can range in scope from a room in a building to a geographic region/area.

This profile modifies the base Lractitioner resource in the following manner:

  • Constrains the cardinality of location.status (1..1), location.operationalStatus (0..0), location.mode (0..0), location.telecom.system (1..1), and location.telecom.value (1..1),

  • All references SHALL conform to the appropriate Validated Healthcare Directory Implementation Guide profile

  • Adds extensions:

  1. Identifier status (1..1) - indicates the status of a location’s identifier
  2. Via intermediary (0..1) - a reference to an alternative point of contact for this location
  3. Available time (0..*) - indicates when a location is available for contact
  4. Boundary-geojson (0..*) - indicates a region/area for the location
  5. Accessibility (0..*) - indicates accessibility options available at the location (e.g. handicap accessibility)
  6. EHR (0..*) - provides information about the EHR product(s) used at the location
  7. NewPatients (0..*) - indicates whether the location is accepting new patients
  8. NewPatientProfile (0..*) - a description of the type of patients the location accepts (e.g. pediatric only)
  9. Restriction (0..*) - indicates whether disclosure of any data associated with a location is restricted

Examples:

The following are example uses for the vhdir-location profile:

Mandatory Data Elements

The following data-elements are mandatory (i.e data MUST be present). These are presented below in a simple human-readable explanation. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each Location must have:

  1. One coded value in location.status

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

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

Published on Tue Oct 03 12:49:16 UTC 2017 as a active by HL7 International.

This profile builds on Location


NameFlagsCard.TypeDescription & Constraintsdoco
.. Location 0..*
... extension 0..*ExtensionSlice: Unordered, Open by value:url
... location-boundary-geojson S0..1AttachmentA boundary shape that represents the outside edge of the location (in GeoJSON format)
URL: http://hl7.org/fhir/StructureDefinition/location-boundary-geojson
... accessibility S0..*CodeableConceptAccessibility options offered by the location
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/accessibility
Binding: VhDir Accessibility Value Set (example)
... ehr S0..*(Complex)EHR at the location
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/ehr
... newpatients S0..*(Complex)Whether the location is accepting new patients
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/newpatients
... newpatientprofile S0..*stringType of new patients accepted
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/newpatientprofile
... usage-restriction S0..*Reference(VhDir Restriction)Restriction
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/usage-restriction
... identifier S0..*Identifier
.... extension 0..*ExtensionSlice: Unordered, Open by value:url
.... identifier-status S1..1codeStatus
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/identifier-status
Binding: VhDir Identifier Status Value Set (required)
.... use S0..1code
.... type S0..1CodeableConcept
.... system S0..1uri
.... value S0..1string
.... period S0..1Period
.... assigner S0..1Reference(VhDir Organization)
... status S1..1code
... operationalStatus S0..0
... name S0..1string
... alias S0..*string
... description S0..1string
... mode S0..0
... type S0..*CodeableConcept
... telecom S0..*ContactPoint
.... extension 0..*ExtensionSlice: Unordered, Open by value:url
.... contactpoint-availabletime S0..*(Complex)Available time
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/contactpoint-availabletime
.... contactpoint-viaintermediary S0..1Reference(VhDir Practitioner Role | VhDir Organization | VhDir Organization Affiliation | VhDir Location)viaintermediary
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/contactpoint-viaintermediary
.... system S1..1code
.... value S1..1string
.... use S0..1code
.... rank S0..1positiveInt
.... period S0..1Period
... address S0..1Address
... physicalType S0..1CodeableConcept
... position S0..1BackboneElement
.... longitude S1..1decimal
.... latitude S1..1decimal
.... altitude S0..1decimal
... managingOrganization S0..1Reference(VhDir Organization)
... partOf S0..1Reference(VhDir Location)
... hoursOfOperation S0..*BackboneElement
.... daysOfWeek S0..*code
.... allDay S0..1boolean
.... openingTime S0..1time
.... closingTime S0..1time
... availabilityExceptions S0..1string
... endpoint S0..*Reference(VhDir Endpoint)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Location I0..*Details 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..*ExtensionExtension
Slice: Unordered, Open by value:url
... location-boundary-geojson SI0..1AttachmentA boundary shape that represents the outside edge of the location (in GeoJSON format)
URL: http://hl7.org/fhir/StructureDefinition/location-boundary-geojson
... accessibility SI0..*CodeableConceptAccessibility options offered by the location
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/accessibility
Binding: VhDir Accessibility Value Set (example)
... ehr SI0..*(Complex)EHR at the location
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/ehr
... newpatients SI0..*(Complex)Whether the location is accepting new patients
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/newpatients
... newpatientprofile SI0..*stringType of new patients accepted
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/newpatientprofile
... usage-restriction SI0..*Reference(VhDir Restriction)Restriction
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/usage-restriction
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier SΣI0..*IdentifierUnique code or number identifying the location to its users
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... identifier-status SI1..1codeStatus
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/identifier-status
Binding: VhDir Identifier Status Value Set (required)
.... use ?!SΣI0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
.... type SΣI0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system SΣI0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value SΣI0..1stringThe value that is unique
Example General: 123456
.... period SΣI0..1PeriodTime period when id is/was valid for use
.... assigner SΣI0..1Reference(VhDir Organization)Organization that issued id (may be just text)
... status ?!SΣI1..1codeactive | suspended | inactive
Binding: LocationStatus (required)
... name SΣI0..1stringName of the location as used by humans
... alias SI0..*stringA list of alternate names that the location is known as, or was known as, in the past
... description SΣI0..1stringAdditional details about the location that could be displayed as further information to identify the location beyond its name
... type SΣI0..*CodeableConceptType of function performed
Binding: V3 Value SetServiceDeliveryLocationRoleType (extensible)
... telecom SI0..*ContactPointContact details of the location
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... contactpoint-availabletime SI0..*(Complex)Available time
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/contactpoint-availabletime
.... contactpoint-viaintermediary SI0..1Reference(VhDir Practitioner Role | VhDir Organization | VhDir Organization Affiliation | VhDir Location)viaintermediary
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/contactpoint-viaintermediary
.... system SΣI1..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required)
.... value SΣI1..1stringThe actual contact point details
.... use ?!SΣI0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required)
.... rank SΣI0..1positiveIntSpecify preferred order of use (1 = highest)
.... period SΣI0..1PeriodTime period when the contact point was/is in use
... address SI0..1AddressPhysical location
... physicalType SΣI0..1CodeableConceptPhysical form of the location
Binding: LocationType (example)
... position SI0..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 SI1..1decimalLongitude with WGS84 datum
.... latitude SI1..1decimalLatitude with WGS84 datum
.... altitude SI0..1decimalAltitude with WGS84 datum
... managingOrganization SΣI0..1Reference(VhDir Organization)Organization responsible for provisioning and upkeep
... partOf SI0..1Reference(VhDir Location)Another Location this one is physically a part of
... hoursOfOperation SI0..*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 SI0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... allDay SI0..1booleanThe Location is open all day
.... openingTime SI0..1timeTime that the Location opens
.... closingTime SI0..1timeTime that the Location closes
... availabilityExceptions SI0..1stringDescription of availability exceptions
... endpoint SI0..*Reference(VhDir Endpoint)Technical endpoints providing access to services operated for the location

doco Documentation for this format

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location 0..*
... extension 0..*ExtensionSlice: Unordered, Open by value:url
... location-boundary-geojson S0..1AttachmentA boundary shape that represents the outside edge of the location (in GeoJSON format)
URL: http://hl7.org/fhir/StructureDefinition/location-boundary-geojson
... accessibility S0..*CodeableConceptAccessibility options offered by the location
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/accessibility
Binding: VhDir Accessibility Value Set (example)
... ehr S0..*(Complex)EHR at the location
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/ehr
... newpatients S0..*(Complex)Whether the location is accepting new patients
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/newpatients
... newpatientprofile S0..*stringType of new patients accepted
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/newpatientprofile
... usage-restriction S0..*Reference(VhDir Restriction)Restriction
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/usage-restriction
... identifier S0..*Identifier
.... extension 0..*ExtensionSlice: Unordered, Open by value:url
.... identifier-status S1..1codeStatus
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/identifier-status
Binding: VhDir Identifier Status Value Set (required)
.... use S0..1code
.... type S0..1CodeableConcept
.... system S0..1uri
.... value S0..1string
.... period S0..1Period
.... assigner S0..1Reference(VhDir Organization)
... status S1..1code
... operationalStatus S0..0
... name S0..1string
... alias S0..*string
... description S0..1string
... mode S0..0
... type S0..*CodeableConcept
... telecom S0..*ContactPoint
.... extension 0..*ExtensionSlice: Unordered, Open by value:url
.... contactpoint-availabletime S0..*(Complex)Available time
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/contactpoint-availabletime
.... contactpoint-viaintermediary S0..1Reference(VhDir Practitioner Role | VhDir Organization | VhDir Organization Affiliation | VhDir Location)viaintermediary
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/contactpoint-viaintermediary
.... system S1..1code
.... value S1..1string
.... use S0..1code
.... rank S0..1positiveInt
.... period S0..1Period
... address S0..1Address
... physicalType S0..1CodeableConcept
... position S0..1BackboneElement
.... longitude S1..1decimal
.... latitude S1..1decimal
.... altitude S0..1decimal
... managingOrganization S0..1Reference(VhDir Organization)
... partOf S0..1Reference(VhDir Location)
... hoursOfOperation S0..*BackboneElement
.... daysOfWeek S0..*code
.... allDay S0..1boolean
.... openingTime S0..1time
.... closingTime S0..1time
... availabilityExceptions S0..1string
... endpoint S0..*Reference(VhDir Endpoint)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location I0..*Details 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..*ExtensionExtension
Slice: Unordered, Open by value:url
... location-boundary-geojson SI0..1AttachmentA boundary shape that represents the outside edge of the location (in GeoJSON format)
URL: http://hl7.org/fhir/StructureDefinition/location-boundary-geojson
... accessibility SI0..*CodeableConceptAccessibility options offered by the location
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/accessibility
Binding: VhDir Accessibility Value Set (example)
... ehr SI0..*(Complex)EHR at the location
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/ehr
... newpatients SI0..*(Complex)Whether the location is accepting new patients
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/newpatients
... newpatientprofile SI0..*stringType of new patients accepted
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/newpatientprofile
... usage-restriction SI0..*Reference(VhDir Restriction)Restriction
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/usage-restriction
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier SΣI0..*IdentifierUnique code or number identifying the location to its users
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... identifier-status SI1..1codeStatus
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/identifier-status
Binding: VhDir Identifier Status Value Set (required)
.... use ?!SΣI0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
.... type SΣI0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system SΣI0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value SΣI0..1stringThe value that is unique
Example General: 123456
.... period SΣI0..1PeriodTime period when id is/was valid for use
.... assigner SΣI0..1Reference(VhDir Organization)Organization that issued id (may be just text)
... status ?!SΣI1..1codeactive | suspended | inactive
Binding: LocationStatus (required)
... name SΣI0..1stringName of the location as used by humans
... alias SI0..*stringA list of alternate names that the location is known as, or was known as, in the past
... description SΣI0..1stringAdditional details about the location that could be displayed as further information to identify the location beyond its name
... type SΣI0..*CodeableConceptType of function performed
Binding: V3 Value SetServiceDeliveryLocationRoleType (extensible)
... telecom SI0..*ContactPointContact details of the location
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... contactpoint-availabletime SI0..*(Complex)Available time
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/contactpoint-availabletime
.... contactpoint-viaintermediary SI0..1Reference(VhDir Practitioner Role | VhDir Organization | VhDir Organization Affiliation | VhDir Location)viaintermediary
URL: http://hl7.org/fhir/uv/vhdir/StructureDefinition/contactpoint-viaintermediary
.... system SΣI1..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required)
.... value SΣI1..1stringThe actual contact point details
.... use ?!SΣI0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required)
.... rank SΣI0..1positiveIntSpecify preferred order of use (1 = highest)
.... period SΣI0..1PeriodTime period when the contact point was/is in use
... address SI0..1AddressPhysical location
... physicalType SΣI0..1CodeableConceptPhysical form of the location
Binding: LocationType (example)
... position SI0..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 SI1..1decimalLongitude with WGS84 datum
.... latitude SI1..1decimalLatitude with WGS84 datum
.... altitude SI0..1decimalAltitude with WGS84 datum
... managingOrganization SΣI0..1Reference(VhDir Organization)Organization responsible for provisioning and upkeep
... partOf SI0..1Reference(VhDir Location)Another Location this one is physically a part of
... hoursOfOperation SI0..*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 SI0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... allDay SI0..1booleanThe Location is open all day
.... openingTime SI0..1timeTime that the Location opens
.... closingTime SI0..1timeTime that the Location closes
... availabilityExceptions SI0..1stringDescription of availability exceptions
... endpoint SI0..*Reference(VhDir Endpoint)Technical endpoints providing access to services operated for the location

doco Documentation for this format

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


Terminology Bindings

PathConformanceValueSet
Location.languagepreferredCommonLanguages
Max Binding: AllLanguages
Location.identifier.userequiredIdentifierUse
Location.identifier.typeextensibleIdentifier Type Codes
Location.statusrequiredLocationStatus
Location.typeextensiblev3.ServiceDeliveryLocationRoleType
Location.telecom.systemrequiredContactPointSystem
Location.telecom.userequiredContactPointUse
Location.physicalTypeexampleLocationType
Location.hoursOfOperation.daysOfWeekrequiredDaysOfWeek

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.

Supported Searches

GET [base]/Location?accessibility=[code]

Support: MAY support search by the accessibility parameter

  • including the modifiers: text

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

Support: SHALL support search by the address parameter

  • including the modifiers: contains, exact

GET [base]/Location?endpoint=[id]

Support: SHOULD support search by the endpoint parameter

  • with a target type: Endpoint
  • including these search paramaters which may be chained: endpoint.identifier, endpoint.connection-type, endpoint.organization

GET [base]/Location?identifier=[code]

Support: SHALL support search by the identifier parameter

  • including the modifiers: text, ofType

GET [base]/Location?identifier-assigner=[id]

Support: MAY support search by the identifier-assigner parameter

  • with a target type: Organization
  • including the modifiers: below
  • including these search paramaters which may be chained: identifier-assigner.identifier, identifier-assigner.name

GET [base]/Location?new-patient=[code]

Support: SHOULD support search by the new-patient parameter


GET [base]/Location?new-patient-network=[id]

Support: SHOULD support search by the new-patient-network parameter

  • with a target type: Organization
  • including these search paramaters which may be chained: new-patient-network.identifier, new-patient-network.name, new-patient-network.partof

GET [base]/Location?organization=[id]

Support: SHALL support search by the organization parameter

  • with a target type: Organization
  • including the modifiers: above, below
  • including these search paramaters which may be chained: organization.identifier, organization.name, organization.address, organization.partof, organization-type

GET [base]/Location?partof=[id]

Support: SHOULD support search by the partof parameter

  • with a target type: Location
  • including the modifiers: above, below
  • including these search paramaters which may be chained: identifier, type, address, organization

GET [base]/Location?contains=-83.694810|42.256500

Support: MAY support search by the contains parameter

This is a special search parameter which might leverage a systems geo-spatial features to test that the geocoded point provided (expressed as [latitude]|[longitude] using the WGS84 datum) is contained by the boundary stored in the standard extension boundary-geojson

Support for multiple points can also be provided using the , syntax which is interpretted as the location returned in the search contains at least 1 of the provided co-ordinates.


GET [base]/Location?status=[code]

Support: SHALL support search by the status parameter


GET [base]/Location?type=[code]

Support: SHALL support search by the type parameter

  • including the modifiers: text

GET [base]/Location?via-intermediary=[id]

Support: MAY support search by the via-intermediary parameter

  • with a target type: PractitionerRole, Organization, OrganizationAffiliation, Location

GET [base]/Location?near=-83.694810|42.256500|11.20|km

Support: MAY support search by the near parameter