HealthcareService — Offered healthcare service
The information unit that answers "what does this care service offer, to whom, where and when?". Pivot of national directories (ANS Annuaire Santé, NPI, NHS Spine Directory) and online booking engines.
Purpose of the resource
The tuple Organization + Location + Practitioner +
PractitionerRole is not enough to model care supply: the service itself is
missing. A general cardiology consultation, a medical abortion platform, a mobile
palliative care team are multi-provider, multi-location services with their own
eligibility rules, opening hours and tariff conditions. HealthcareService is the pivot
resource.
A user of a health directory ("Doctolib", France's ANS Annuaire Santé, the UK GUS) first searches for a service, then selects a Practitioner and a Slot within the service.
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
identifier | Identifier[] | 0..* | External identifiers (FINESS, RPPS…). |
active | boolean | 0..1 | Active status. |
providedBy | Reference(Organization) | 0..1 | Organisation responsible for the service. |
offeredIn | Reference(HealthcareService)[] | 0..* | Parent service. |
category | CodeableConcept[] | 0..* | Broad category. |
type | CodeableConcept[] | 0..* | Precise type (SNOMED CT). |
specialty | CodeableConcept[] | 0..* | Medical specialties. |
location | Reference(Location)[] | 0..* | Locations where the service runs. |
name | string | 0..1 | Narrative name. |
telecom | ContactPoint[] | 0..* | Phones, emails, URLs. |
appointmentRequired | boolean | 0..1 | Whether an appointment is required. |
availableTime | BackboneElement[] | 0..* | Standard opening hours. |
notAvailableTime | BackboneElement[] | 0..* | Exceptional closure periods. |
eligibility | BackboneElement[] | 0..* | Eligibility conditions. |
characteristic | CodeableConcept[] | 0..* | Characteristics (accessibility, telemedicine…). |
communication | CodeableConcept[] | 0..* | Spoken languages. |
program | CodeableConcept[] | 0..* | Associated public health programmes. |
JSON example
General cardiology consultation at Cochin Hospital (Paris), appointment required, open Mon-Fri 8:30-17:30, wheelchair accessible, spoken in French and English:
{
"resourceType": "HealthcareService",
"id": "cardio-consult",
"identifier": [{ "system": "http://annuaire.sante.fr/services", "value": "HS-PARIS-CARDIO-001" }],
"active": true,
"providedBy": { "reference": "Organization/hop-cochin" },
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/service-category",
"code": "8",
"display": "Counselling"
}]
}],
"type": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "394579002",
"display": "Cardiology service"
}]
}],
"specialty": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "394579002",
"display": "Cardiology"
}]
}],
"location": [{ "reference": "Location/cochin-cardio-floor" }],
"name": "General cardiology consultation",
"telecom": [{
"system": "phone",
"value": "+33 1 58 41 22 33",
"use": "work"
}, {
"system": "url",
"value": "https://hopital-cochin.aphp.fr/cardiologie",
"use": "work"
}],
"appointmentRequired": true,
"availableTime": [{
"daysOfWeek": ["mon", "tue", "wed", "thu", "fri"],
"availableStartTime": "08:30:00",
"availableEndTime": "17:30:00"
}],
"eligibility": [{
"code": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/service-eligibility",
"code": "referral",
"display": "Referral required"
}]
},
"comment": "Referral required (GP or private cardiologist)."
}],
"characteristic": [{
"coding": [{
"system": "http://example.org/service-characteristics",
"code": "wheelchair-access",
"display": "Wheelchair accessible"
}]
}],
"communication": [{
"coding": [{ "system": "urn:ietf:bcp:47", "code": "fr-FR" }]
}, {
"coding": [{ "system": "urn:ietf:bcp:47", "code": "en-US" }]
}]
} Typical use cases
- Health directories: ANS Annuaire Santé (France), NPPES (US), NHS Spine Directory (UK), HSCNI Directory (Northern Ireland).
- Appointment booking: Doctolib, Maiia, Mondocteur — HealthcareService is the listable, filterable object.
- Care-supply search: interactive sante.fr maps, NHS Choices.
- Primary–secondary care coordination: referring a patient to a specialist service.
- Out-of-hours care: SAMU, GP on call, pharmacy on call.
Common pitfalls
- HealthcareService without Location: for an in-person service, do not omit
location. For a telemedicine service, use a dedicated virtual Location. - HealthcareService / Organization confusion: Organization is the legal entity (hospital, practice); HealthcareService is the offer unit (cardiology clinic).
- 24/7 mis-coded: for a 24/7 service, use
availableTimewith alldaysOfWeekANDallDay = true. - Non-normative type: use SNOMED CT for
typeandspecialty(HL7's service-type ValueSet is too generic for a national directory). - Unauditable eligibility: for "CPAM-insured", use a clear coding, not free text.
Related resources
- Organization — legal entity owning the service.
- Location — practice locations.
- PractitionerRole — practitioners attached to the service.
- Schedule + Slot — appointment slots.
- Endpoint — technical endpoint for telemedicine.
See also: Organization — legal entity and Schedule — calendar.