preBallot - The specification is currently in ballot review and subject to change. . . . For a full list of available versions, see the Directory of published versions
HealthcareService (CA:eReC)
Links
Profile
Derived from
http://hl7.org/fhir/StructureDefinition/HealthcareService
Description
The HealthcareService resources contains details around the service being provided to the patient.
References to this resource
Communication, ServiceProviderPreference, ServiceRequest, Task
Resource Content
HealthcareService | HealthcareService | ||
identifier | S | ||
system | S | 1.. | |
value | S | 1.. | |
type | S | 1..1 | |
name | S |
HealthcareService | I | HealthcareService | |
id | Σ | 0..1 | string |
meta | Σ | 0..1 | Meta |
implicitRules | Σ ?! | 0..1 | uri |
language | 0..1 | codeBinding | |
text | 0..1 | Narrative | |
contained | 0..* | Resource | |
extension | I | 0..* | Extension |
modifierExtension | ?! I | 0..* | Extension |
identifier | S Σ | 0..* | Identifier |
id | 0..1 | string | |
extension | I | 0..* | Extension |
use | Σ ?! | 0..1 | codeBinding |
type | Σ | 0..1 | CodeableConceptBinding |
system | S Σ | 1..1 | uri |
value | S Σ | 1..1 | string |
period | Σ | 0..1 | Period |
assigner | Σ | 0..1 | Reference(Organization) |
active | Σ ?! | 0..1 | boolean |
providedBy | Σ | 0..1 | Reference(Organization) |
category | Σ | 0..* | CodeableConcept |
type | S Σ | 1..1 | CodeableConcept |
specialty | Σ | 0..* | CodeableConceptBinding |
location | Σ | 0..* | Reference(Location) |
name | S Σ | 0..1 | string |
comment | Σ | 0..1 | string |
extraDetails | 0..1 | markdown | |
photo | Σ | 0..1 | Attachment |
telecom | 0..* | ContactPoint | |
coverageArea | 0..* | Reference(Location) | |
serviceProvisionCode | 0..* | CodeableConcept | |
eligibility | 0..* | BackboneElement | |
id | 0..1 | string | |
extension | I | 0..* | Extension |
modifierExtension | Σ ?! I | 0..* | Extension |
code | 0..1 | CodeableConcept | |
comment | 0..1 | markdown | |
program | 0..* | CodeableConcept | |
characteristic | 0..* | CodeableConcept | |
communication | 0..* | CodeableConceptBinding | |
referralMethod | 0..* | CodeableConcept | |
appointmentRequired | 0..1 | boolean | |
availableTime | 0..* | BackboneElement | |
id | 0..1 | string | |
extension | I | 0..* | Extension |
modifierExtension | Σ ?! I | 0..* | Extension |
daysOfWeek | 0..* | codeBinding | |
allDay | 0..1 | boolean | |
availableStartTime | 0..1 | time | |
availableEndTime | 0..1 | time | |
notAvailable | 0..* | BackboneElement | |
id | 0..1 | string | |
extension | I | 0..* | Extension |
modifierExtension | Σ ?! I | 0..* | Extension |
description | 1..1 | string | |
during | 0..1 | Period | |
availabilityExceptions | 0..1 | string | |
endpoint | 0..* | Reference(Endpoint) |
<StructureDefinition xmlns="http://hl7.org/fhir"> <id value="CA-eReC-HealthcareService" /> <url value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-HealthcareService" /> <name value="HealthcareService" /> <status value="draft" /> <description value="The HealthcareService resources contains details around the service being provided to the patient." /> <fhirVersion value="4.0.1" /> <kind value="resource" /> <abstract value="false" /> <type value="HealthcareService" /> <baseDefinition value="http://hl7.org/fhir/StructureDefinition/HealthcareService" /> <derivation value="constraint" /> <differential> <element id="HealthcareService.identifier"> <path value="HealthcareService.identifier" /> <mustSupport value="true" /> </element> <element id="HealthcareService.identifier.system"> <path value="HealthcareService.identifier.system" /> <min value="1" /> <mustSupport value="true" /> </element> <element id="HealthcareService.identifier.value"> <path value="HealthcareService.identifier.value" /> <min value="1" /> <mustSupport value="true" /> </element> <element id="HealthcareService.type"> <path value="HealthcareService.type" /> <min value="1" /> <max value="1" /> <mustSupport value="true" /> </element> <element id="HealthcareService.name"> <path value="HealthcareService.name" /> <mustSupport value="true" /> </element> </differential> </StructureDefinition>
{ "resourceType": "StructureDefinition", "id": "CA-eReC-HealthcareService", "url": "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-HealthcareService", "name": "HealthcareService", "status": "draft", "description": "The HealthcareService resources contains details around the service being provided to the patient.", "fhirVersion": "4.0.1", "kind": "resource", "abstract": false, "type": "HealthcareService", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/HealthcareService", "derivation": "constraint", "differential": { "element": [ { "id": "HealthcareService.identifier", "path": "HealthcareService.identifier", "mustSupport": true }, { "id": "HealthcareService.identifier.system", "path": "HealthcareService.identifier.system", "min": 1, "mustSupport": true }, { "id": "HealthcareService.identifier.value", "path": "HealthcareService.identifier.value", "min": 1, "mustSupport": true }, { "id": "HealthcareService.type", "path": "HealthcareService.type", "min": 1, "max": "1", "mustSupport": true }, { "id": "HealthcareService.name", "path": "HealthcareService.name", "mustSupport": true } ] } }
Terminology bindings
Constraints
Path | Id | Grade | Details | Expression |
---|---|---|---|---|
HealthcareService; HealthcareService; HealthcareService; HealthcareService; HealthcareService; HealthcareService.meta; HealthcareService.implicitRules; HealthcareService.language; HealthcareService.text; HealthcareService.extension; HealthcareService.extension; HealthcareService.modifierExtension; HealthcareService.modifierExtension; HealthcareService.identifier; HealthcareService.identifier.extension; HealthcareService.identifier.extension; HealthcareService.identifier.use; HealthcareService.identifier.type; HealthcareService.identifier.system; HealthcareService.identifier.value; HealthcareService.identifier.period; HealthcareService.identifier.assigner; HealthcareService.active; HealthcareService.providedBy; HealthcareService.category; HealthcareService.type; HealthcareService.specialty; HealthcareService.location; HealthcareService.name; HealthcareService.comment; HealthcareService.extraDetails; HealthcareService.photo; HealthcareService.telecom; HealthcareService.coverageArea; HealthcareService.serviceProvisionCode; HealthcareService.eligibility; HealthcareService.eligibility.extension; HealthcareService.eligibility.extension; HealthcareService.eligibility.modifierExtension; HealthcareService.eligibility.modifierExtension; HealthcareService.eligibility.code; HealthcareService.eligibility.comment; HealthcareService.program; HealthcareService.characteristic; HealthcareService.communication; HealthcareService.referralMethod; HealthcareService.appointmentRequired; HealthcareService.availableTime; HealthcareService.availableTime.extension; HealthcareService.availableTime.extension; HealthcareService.availableTime.modifierExtension; HealthcareService.availableTime.modifierExtension; HealthcareService.availableTime.daysOfWeek; HealthcareService.availableTime.allDay; HealthcareService.availableTime.availableStartTime; HealthcareService.availableTime.availableEndTime; HealthcareService.notAvailable; HealthcareService.notAvailable.extension; HealthcareService.notAvailable.extension; HealthcareService.notAvailable.modifierExtension; HealthcareService.notAvailable.modifierExtension; HealthcareService.notAvailable.description; HealthcareService.notAvailable.during; HealthcareService.availabilityExceptions; HealthcareService.endpoint | dom-2; dom-3; dom-4; dom-5; dom-6; ele-1; ele-1; ele-1; ele-1; ele-1; ext-1; ele-1; ext-1; ele-1; ele-1; ext-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ext-1; ele-1; ext-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ext-1; ele-1; ext-1; ele-1; ele-1; ele-1; ele-1; ele-1; ele-1; ext-1; ele-1; ext-1; ele-1; ele-1; ele-1; ele-1 | error; error; error; error; warning; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error; error | If the resource is contained in another resource, it SHALL NOT contain nested Resources; 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; If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated; If a resource is contained in another resource, it SHALL NOT have a security label; A resource should have narrative for robust management; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; Must have either extensions or value[x], not both; All FHIR elements must have a @value or children; Must have either extensions or value[x], not both; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; Must have either extensions or value[x], not both; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; Must have either extensions or value[x], not both; All FHIR elements must have a @value or children; Must have either extensions or value[x], not both; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; Must have either extensions or value[x], not both; All FHIR elements must have a @value or children; Must have either extensions or value[x], not both; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; Must have either extensions or value[x], not both; All FHIR elements must have a @value or children; Must have either extensions or value[x], not both; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children; All FHIR elements must have a @value or children | contained.contained.empty(); contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty(); contained.meta.versionId.empty() and contained.meta.lastUpdated.empty(); contained.meta.security.empty(); text.`div`.exists(); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); extension.exists() != value.exists(); hasValue() or (children().count() > id.count()); extension.exists() != value.exists(); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); extension.exists() != value.exists(); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); extension.exists() != value.exists(); hasValue() or (children().count() > id.count()); extension.exists() != value.exists(); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); extension.exists() != value.exists(); hasValue() or (children().count() > id.count()); extension.exists() != value.exists(); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); extension.exists() != value.exists(); hasValue() or (children().count() > id.count()); extension.exists() != value.exists(); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()); hasValue() or (children().count() > id.count()) |
Usage
The HealthcareService resource is used to describe a healthcare service provided by an organization at a location. This profile is referenced across the guide, mainly by ServiceRequest.performer
. Please see below for additional guidance on the use of healthcareService.identifier
on this profile and what types of healthcare services (healthcareService.type
) can be used.
Notes
.identifier
Business identifier(s) that are specific to this HealthcareService
Identifiers corresponding to clinician qualifications (such as CPSO number) SHOULD be included in the Practitioner resource not HealthcareService
HealthcareService identifiers can be applied in a generic way, with no special constraints
MAY contain multiple identifiers such as directory identifiers (e.g., 211), industry issued identifiers (e.g., pharmacy IDs), local system identifiers, and master identifiers in a federated data sharing model.
Where present, business identifiers MAY be used to reference this resource in subsequent messages
identifier.system
andidentifier.value
SHALL be mustSupport whenever there is a reference or identifier present
identifier.system
- The namespace for the identifier value (i.e., the “source identifier issuer system”), where the value must be unique within the system.
- Different HealthcareService directories MAY apply their own system to share their local identifier for the HealthcareService (e.g.,
www.hcs-directory-app.com/fhir/sid/listing-id
)
identifier.value
- SHOULD contain a unique value for the identifier within its system
- Master Record identifiers (generated by a Master Record Holder, MRH) SHALL use UUIDs or some other globally unique naming convention.
type
- P2P is the specific service needed (same value set as
ServiceRequest.category
), for CAT/CI the type is "CAT/CI service" - SHALL be used to classify HealthcareService directories into taxonomies
- Supports single tag based, multi-tag, multi-tag with a primary tag, hierarchical, faceted or a combination of these taxonomy approaches
- For additional information and implementation guidance on the Taxonomies supported in the
.type
element, please refer to the Taxonomy section in the ON eServices Guide
name
- SHOULD contain the name of the healthcareService presented to the eReC requester & eReC performer (e.g., "Chronic Pain Care Program")