HealthcareService resource implementation guidance
Important: This site is under active development by NHS Digital and is intended to provide all the technical resources you need to successfully develop applications using the FHIR® CDS API.
HealthcareService: Implementation Guidance
Usage
Any CDSS can publish a HealthcareService resource which specifies key elements about the CDSS. In particular, this is used to communicate any opening hours (availability), as well as any eligibility restrictions (such as the age of the patient)
In order to find the appropriate HealthcareService
, an EMS should query the CDSS for HealthcareService
resources which match the current Organisation and the CDSS identifier. An example query string is given below:
GET [base]/HealthcareService?active=true&identifier=*eConsult*&organization.identifier=*ODS1234*
The table below gives implementation guidance in relation to the elements within a HealthcareService
:
Name | Cardinality | Type | FHIR Documentation | CDS Implementation Guidance |
---|---|---|---|---|
id |
0..1 |
id | Logical id of this artifact | Note that this will always be populated except when the resource is being created (initial creation call) |
meta |
0..1 |
Meta | Metadata about the resource | |
implicitRules |
0..1 |
uri | A set of rules under which this content was created | |
language |
0..1 |
code | Language of the resource content. Common Languages (Extensible but limited to All Languages) |
|
text |
0..1 |
Narrative | Text summary of the resource, for human interpretation | |
contained |
0..* |
Resource | Contained, inline Resources | This should not be populated |
extension |
0..* |
Extension | Additional Content defined by implementations | |
modifierExtension |
0..* |
Extension | Extensions that cannot be ignored | |
idenfitier |
0..* |
Identifier | External identifiers for this item | There MUST be at least one instance of identifier populated, with a Identifier.value which identifies the CDSS (e.g. eConsult) |
active |
0..1 |
boolean | Whether this HealthcareService is in active use |
SHOULD always be true . This may form part of the query string from the EMS
</code>
|
providedBy |
0..1 |
Reference(Organization) | Organization that provides this service | This MUST be populated with a reference to a CareConnect-Organization. This will be filtered by the EMS to the current patient's registered GP practice |
category |
0..1 |
CodeableConcept | Broad category of service being performed or delivered ServiceCategory (Example) |
|
type |
0..* |
CodeableConcept | Type of service that may be delivered or performed ServiceType (Example) |
|
specialty |
0..* |
CodeableConcept | Specialties handled by the HealthcareService Practice Setting Code Value Set (Preferred) |
|
location |
0..* |
Reference(Location) | Location(s) where service may be provided | This SHOULD NOT be populated |
name |
0..1 |
string | Description of service as presented to a consumer while searching | |
comment |
0..1 |
string | Additional description and/or any specific issues not covered elsewhere | |
extraDetails |
0..1 |
string | Extra details about the service that can't be placed in the other fields | A comma-delimited list of the `ServiceDefinition` ids which are valid for this `HealthcareService` |
photo |
0..1 |
Attachment | Facilitates quick identification of the service | |
telecom |
0..* |
ContactPoint | Contacts related to the healthcare service | |
coverageArea |
0..* |
Reference(Location) | Location(s) service is intended for/available to | |
serviceProvisionCode |
0..* |
CodeableConcept | Conditions under which service is available/offered ServiceProvisionConditions (Example) |
|
eligibility |
0..1 |
CodeableConcept | Specific eligibility requirements required to use the service | If not populated, then, the service is available to all. If the service is for Children only, then this MUST be populated wth a code of 01. If the service is for Adults only, the this MUST be populated with a code of 02. |
eligibilityNote |
0..1 |
string | Describes the eligibility conditions for the service | |
programName |
0..* |
string | Program Names that categorize the service | |
characteristic |
0..* |
CodeableConcept | Collection of characteristics (attributes) | |
referralMethod |
0..* |
CodeableConcept | Ways that the service accepts referrals ReferralMethod (Example) |
|
appointmentRequired |
0..1 |
boolean | If an appointment is required for access to this service | |
availableTime |
0..* |
BackboneElement | Times the Service is available | This is populated with the availability times of the CDSS |
availableTime.daysOfWeek |
0..* |
code | mon | tue | wed | thu | fri | sat | sun DaysOfWeek (Required) |
|
availableTime.allDay |
0..1 |
boolean | Always available? e.g. 24 hour service | |
availableTime.availableStartTime |
0..1 |
time | Opening time of day (ignored if allDay = true) | |
availableTime.availableEndTime |
0..1 |
time | Closing time of day (ignored if allDay = true) | |
notAvailable |
0..* |
BackboneElement | Not available during this time due to provided reason | This is populated with known times where the service will be unavailable - e.g. overnight |
notAvailable.description |
1..1 |
string | Reason presented to the user explaining why time not available | |
notAvailable.during |
0..1 |
Period | Service not available from this date | |
availabilityExceptions |
0..1 |
string | Description of availability exceptions | |
endpoint |
0..* |
Reference(Endpoint) | Technical endpoints providing access to services operated for the location |