National Directory of Healthcare Providers & Services (NDH) Implementation Guide
1.0.0 - STU1 United States of America flag

National Directory of Healthcare Providers & Services (NDH) Implementation Guide, published by HL7 International / Patient Administration. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-us-ndh/ and changes regularly. See the Directory of published versions

Resource Profile: NDH Base HealthcareService Profile

Official URL: http://hl7.org/fhir/us/ndh/StructureDefinition/ndh-HealthcareService Version: 1.0.0
Standards status: Trial-use Computable Name: NdhHealthcareService

Copyright/Legal: HL7 International

The HealthCareService resource typically describes services offered by an organization/practitioner at a location. The resource may be used to encompass a variety of services covering the entire healthcare spectrum, including promotion, prevention, diagnostics, pharmacy, hospital and ambulatory care, home care, long-term care, and other health-related and community services.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraintsdoco
.. HealthcareService 0..* HealthcareService The details of a healthcare service available at a location
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:rating 0..* (Complex) Evaluations or reviews for the service.
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-rating
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:newpatients C 0..* (Complex) Is the service currently accepting new patients?
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-newpatients
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
new-patients-characteristics: If no new patients are accepted, no characteristics are allowed
.... extension:deliverymethod 0..* (Complex) Method of providing the service.
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-delivery-method
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:paymentaccepted 0..* CodeableConcept Forms of payment accepted.
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-paymentAccepted
Binding: hl7VS-paymentMethodCode (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:requiredDocument 0..* (Complex) Documents required for the service.
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-requiredDocument
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:fundingSource 0..* (Complex) Funding source for the service.
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-fundingSource
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:usage-restriction 0..* Reference(NDH Base Restriction) {c} Usage Restriction
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-usage-restriction
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:verification-status 0..1 CodeableConcept Verification Status
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-verification-status
Binding: NDH Verification Status Value Set (extensible)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:network 0..* Reference(NDH Base Network Profile) Network associated with social service.
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-network-reference
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:social-service-requirement C 0..* (Complex) Social Service Requirement
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-service-or-program-requirement
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
agerange-or-agegroup: a service or program only allow to have either age-range or age-group but not both
.... extension:logo 0..1 Attachment Service Logo
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-logo
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... providedBy SΣ 0..1 Reference(NDH Base Organization Profile) Organization that provides this service
ele-1: All FHIR elements must have a @value or children
... Slices for category SΣ 1..* CodeableConcept Broad category of service being performed or delivered
Slice: Unordered, Open by value:$this
Binding: ServiceCategory (example): A category of the service(s) that could be provided.


ele-1: All FHIR elements must have a @value or children
.... category:HSC SΣ 0..1 CodeableConcept NDH HealthcareService Category
Binding: Healthcare Service Category Value Set (required)
ele-1: All FHIR elements must have a @value or children
... type SΣ 0..* CodeableConcept Type of service that may be delivered or performed
Binding: HealthcareService Type Value Set (extensible)
ele-1: All FHIR elements must have a @value or children
... specialty SΣ 0..* CodeableConcept Specialties handled by the HealthcareService
Binding: Healthcare Provider Taxonomy . (extensible)
ele-1: All FHIR elements must have a @value or children
... location SΣ 0..* Reference(NDH Base Location Profile) Location(s) where service may be provided
ele-1: All FHIR elements must have a @value or children
... name SΣ 0..1 string Description of service as presented to a consumer while searching
ele-1: All FHIR elements must have a @value or children
... coverageArea S 0..* Reference(NDH Base Location Profile) Location(s) service is intended for/available to
ele-1: All FHIR elements must have a @value or children
... serviceProvisionCode 0..* CodeableConcept Conditions under which service is available/offered
Binding: ServiceProvisionConditions (extensible)
ele-1: All FHIR elements must have a @value or children
... program 0..* CodeableConcept Programs that this service is applicable to
Binding: Program (extensible)
ele-1: All FHIR elements must have a @value or children
.... Slices for extension Content/Rules for all slices
..... extension:program-requirement 0..* (Complex) Program Requirement
URL: http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-service-or-program-requirement
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... endpoint S 0..* Reference(NDH Base Endpoint Profile) Technical endpoints providing access to electronic services operated for the healthcare service
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
HealthcareService.categoryexampleServiceCategory
http://hl7.org/fhir/ValueSet/service-category
from the FHIR Standard
HealthcareService.category:HSCrequiredHealthcareServiceCategoryVS
http://hl7.org/fhir/us/ndh/ValueSet/HealthcareServiceCategoryVS
from this IG
HealthcareService.typeextensibleHealthcareServiceTypeVS
http://hl7.org/fhir/us/ndh/ValueSet/HealthcareServiceTypeVS
from this IG
HealthcareService.specialtyextensibleHealthcareProviderTaxonomy .
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.1066
HealthcareService.serviceProvisionCodeextensibleServiceProvisionConditions
http://hl7.org/fhir/ValueSet/service-provision-conditions
from the FHIR Standard
HealthcareService.programextensibleProgram
http://hl7.org/fhir/ValueSet/program
from the FHIR Standard

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Search Parameters

Search Parameter defined by the NDH IG
SearchParameter Name Type Example
eligibility token GET [base]/HealthcareService?eligibility=2403008
new-patient token GET [base]/HealthcareService?new-patient=newpt
new-patient-from-network reference GET [base]/HealthcareService?new-patient-from-network.type=ntwk&new-patient-from-network.address-state=CT
verification-status token GET [base]/HealthcareService?verification-status=complete
network reference GET [base]/HealthcareService?network.type=ntwk&network.address-state=CT
social-service-age-group token GET [base]/HealthcareService?social-service-age-group=teens&program=42
social-service-birthsex token GET [base]/HealthcareService?social-service-birthsex=F
social-service-employment-status token GET [base]/HealthcareService?social-service-employment-status=unemployed
social-service-gender-identity token GET [base]/HealthcareService?social-service-gender-identity=OTH
social-service-insurance-status token GET [base]/HealthcareService?social-service-insurance-status=uninsured
social-service-preferred-language token GET [base]/HealthcareService?social-service-preferred-language=en
social-service-va-status token GET [base]/HealthcareService?social-service-va-status=true
program-requirement-age-group token GET [base]/HealthcareService?program-requirement-age-group=teens
program-requirement-birthsex token GET [base]/HealthcareService?program-requirement-birthsex=M
program-requirement-employment-status token GET [base]/HealthcareService?program-requirement-employment-status=employed
program-requirement-gender-identity token GET [base]/HealthcareService?program-requirement-gender-identity=ASKU
program-requirement-insurance-status token GET [base]/HealthcareService?program-requirement-insurance-status=uninsured
program-requirement-preferred-language token GET [base]/HealthcareService?program-requirement-preferred-language=sp
program-requirement-va-status token GET [base]/HealthcareService?program-requirement-va-status=false
location reference GET [base]/HealthcareService?location.address-state=CT
organization reference GET [base]/HealthcareService?organization.name=HOPE INC
verification-status token GET [base]/HealthcareService?verification-status=complete
Search Parameter defined by FHIR Search Parameter Registry and used by the NDH IG

Since there is no direct individual url for each Search Parameter defined by FHIR Serach Parameter Registry, we have provided the following links for you to access more information about them.

SearchParameter Name Type Example
active token GET [base]/HealthcareService?active=true
coverage-area reference GET [base]/HealthcareService?coverage-area.address-state=CT
endpoint reference GET [base]/HealthcareService?endpoint.connection-type=hl7-fhir-rest
identifier token GET [base]/HealthcareService?identifier=1234567
name string GET [base]/HealthcareService?name=HOPE INC
program token GET [base]/HealthcareService?prgram=6
service-category token GET [base]/HealthcareService?service-category=behav
service-type token GET [base]/HealthcareService?service-type=230
specialty token GET [base]/HealthcareService?specialty=101YS0200X
_include Search Parameter
_include Example
HealthcareService:coverage-area GET [base]/HealthcareService?_include=HealthcareService:coverage-area
HealthcareService:endpoint GET [base]/HealthcareService?_include=HealthcareService:endpoint
HealthcareService:location GET [base]/HealthcareService?_id=BurrClinicServices&_include=HealthcareService:location
HealthcareService:new-patient-from-network GET [base]/HealthcareService?_include=HealthcareService:new-patient-from-network
HealthcareService:organization GET [base]/HealthcareService?_id=BurrClinicServices&_include=HealthcareService:organization
_revinclude Search parameter
_revinclude
CareTeam:service
OrganizationAffiliation:service
PractitionerRole:service

Special Search Parameters

The search parameters outlined above are straightforward for basic scenarios but have limitations in handling complex combination queries. To enhance these capabilities, employing the special search parameters _filter is recommended.

Search use cases
Search for all organizations and locations provide a given HealthcareService

If you run the search below for the HealthcareService called BurrClinicServices, it should return a search bundle that includes the BurrClinicServices resource, as well as the associated BurrClinic Organization resource and the HospLoc1 Location resource. This indicates that the BurrClinic organization provides the BurrClinicServices healthcare service at the HospLoc1 location.

GET [base]/HealthcareService?_id=BurrClinicServices&_include=HealthcareService:organization&_include=HealthcareService:location

or GET [base]/OrganizationAffiliation?service:HealthcareService._id=BurrClinicServices

To search for a specific OrganizationAffiliation and its associated resources, you can use the following query:

GET [base]/OrganizationAffiliation?_id=BurrClinicAffil&_include=OrganizationAffiliation:service&_include=OrganizationAffiliation:location&_include=OrganizationAffiliation:participating-organization&_include=OrganizationAffiliation:network

Usage

Network extension

The primary intention for the network extension of the HealthcareService is to cater to services related to social services. Typically, healthcare service networks are tied to insurance plans. However, in the realm of social services, the delivery or subscription of services often occurs through a hub. This hub embodies a similar concept to a network, but without an insurance plan attached. To simplify the process of locating such hubs (networks), NDH offers a connection from the healthcare server to the network. For instance, the Welcome Home organization provides housing services at the Welcome Home location. This service is subscribed to through the Social Service Housing Network.

Healthcare Service and Program Requirement extensions

The extension for Healthcare Service or Program Requirement is applied at both the Service and Program levels. Each Service or Program can have multiple requirements, and each requirement can have several constraints. For instance, one service could be specifically for teens, another for females, or even one designed exclusively for teenage girls. Restrictions should be utilized only when there are particular limitations, such as services solely for females or veterans.

Language Speak extension

If a service supports multiple languages, up to six for example, it's unlikely that these would be restricted within this extension. Instead, the languages spoken should be documented under the "healthcareService.communication" field.

User requests a healthcare service delivered by an organization at a location

The recommended approach for a user requesting a healthcare service provided by an organization at a location is to use the healthcare service resource. This depends on whether the nature of the service is offered at a single location or across multiple locations.

If a healthcare service is available at multiple locations, each location may have unique endpoints, operating hours, and telecom. The specific data for each location concerning endpoints, operating hours, and telecom (HealthcareService.location => Location.endpoint, Location.hoursOfOperation, Location.telecom …) will supersede the general data provided at the healthcare service resource instance level (HealthcareService.endpoint, HealthcareService.availabeTime, HealthcareService.telecom …). This approach provides flexibility: it permits the use of unified endpoints, operating hours, and telephones for the healthcare service when the information is consistent across all locations, while also allowing for differences in endpoints and operating hours at various locations.