Resource types
Within Clinia's systems, there exist many types of resources, each with different properties describing healthcare-related entities and concepts. Resources can exist on their own or be related to one another through relationships. There are 2 types of resources:
- Resource - exists as its own entity.
- Contained Resource - exists in within the scope of another entity. A contained resource has at least one property that is a reference to a parent resource.
Resources
All resources have 3 basic properties which are generated and handled by Clinia's systems:
id
- identifier of the resource.createdAt
- represents the instant at which the resource was created.updatedAt
- represents the instant at which the resource was last updated.
Other than those 3 common properties, each resource type has its own definition.
Clinic
Type: clinic
Properties
- address
- fax
- id
- identifier
- internalNote
- language
- location
- name
required
- note
- onlineBooking
- openingHours
- phone
- social
Relationships
Key | Type | Description |
---|---|---|
practice | Array<Practice> | Practices associated with this resource. |
speciality | Array<Speciality> | Specialities associated with this resource. |
walkIn | Walk-In | Walk-in associated with this resource. |
Relationships for a clinic are not managed through the clinic itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted clinic.
- For
practice
: - For
speciality
:- To associate a
speciality
to a clinic, one must create a Speciality with theparent
property referencing the targeted clinic. - To disassociate a
speciality
from a clinic, one must delete the targeted Speciality.
- To associate a
- For
walkIn
:
CLSC
Type: clsc
Properties
- address
- fax
- id
- identifier
- internalNote
- language
- location
- name
required
- note
- onlineBooking
- openingHours
- phone
- social
Relationships
Key | Type | Description |
---|---|---|
practice | Array<Practice> | Practices associated with this resource. |
speciality | Array<Speciality> | Specialities associated with this resource. |
walkIn | WalkIn | Walk-in associated with this resource. |
Relationships for a CLSC are not managed through the CLSC itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted CLSC.
- For
practice
: - For
speciality
:- To associate a
speciality
to a CLSC, one must create a Speciality with theparent
property referencing the targeted CLSC. - To disassociate a
speciality
from a CLSC, one must delete the targeted Speciality.
- To associate a
- For
walkIn
:
Community Resource
Type: community
Properties
- address
- fax
- id
- identifier
- internalNote
- language
- location
- name
required
- note
- onlineBooking
- openingHours
- phone
- social
- tag
Relationships
Key | Type | Description |
---|---|---|
practice | Array<Practice> | Practices associated with this resource |
speciality | Array<Speciality> | Specialities associated with this resource. |
Relationships for a community resource are not managed through the community resource itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted community resource.
- For
practice
: - For
speciality
:- To associate a
speciality
to a community resource, one must create a Speciality with theparent
property referencing the targeted community resource. - To disassociate a
speciality
from a community resource, one must delete the targeted Speciality.
- To associate a
Hospital
Type: hospital
Properties
Relationships
Key | Type | Description |
---|---|---|
practice | Array<Practice> | Practices associated with this resource. |
speciality | Array<Speciality> | Specialities associated with this resource. |
Relationships for a hospital are not managed through the community resource itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted hospital.
- For
practice
: - For
speciality
:- To associate a
speciality
to a hospital, one must create a Speciality with theparent
property referencing the targeted hospital. - To disassociate a
speciality
from a hospital, one must delete the targeted Speciality.
- To associate a
Long term care
Type: long-term-care
Properties
- address
- fax
- id
- identifier
- internalNote
- language
- location
- name
required
- note
- onlineBooking
- openingHours
- phone
- social
- tag
Relationships
Key | Type | Description |
---|---|---|
practice | Array<Practice> | Practices associated with this resource. |
speciality | Array<Speciality> | Specialities associated with this resource. |
Relationships for a long term case resource are not managed through the community resource itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted long term case resource.
- For
practice
: - For
speciality
:- To associate a
speciality
to a long term case resource, one must create a Speciality with theparent
property referencing the targeted long term case resource. - To disassociate a
speciality
from a long term case resource, one must delete the targeted Speciality.
- To associate a
Pharmacy
Type: phamarcy
Properties
- address
- fax
- id
- identifier
- internalNote
- language
- location
- name
required
- note
- onlineBooking
- openingHours
- phone
- social
Relationships
Key | Type | Description |
---|---|---|
practice | Array<Practice> | Practices associated with this resource. |
speciality | Array<Speciality> | Specialities associated with this resource. |
walkIn | WalkIn | Walk-in associated with this resource. |
Relationships for a pharmacy are not managed through the pharmacy itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted pharmacy.
- For
practice
: - For
speciality
:- To associate a
speciality
to a pharmacy, one must create a Speciality with theparent
property referencing the targeted pharmacy. - To disassociate a
speciality
from a pharmacy, one must delete the targeted Speciality.
- To associate a
- For
walkIn
:
Practitioner
Type: practitioner
Properties
- acceptNewPatients
- casesToRefer
- clientele
- communication
- fax
- gender
- humanName
required
- id
- identifier
- internalNote
- isPayingMember
- isValidated
- modalities
- note
- phone
- registration
- title
Relationships
Key | Type | Description |
---|---|---|
practice | Array<Practice> | Practices associated with this resource. |
profession | Array<Profession> | Professions associated with this resource. |
Relationships for a practitioner are not managed through the practitioner itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted practitioner.
- For
practice
: - For
profession
:- To associate a
profession
to a practitioner, one must create a Profession with theparent
property referencing the targeted practitioner. - To disassociate a
profession
from a practitioner, one must delete the targeted Profession.
- To associate a
Rehabilitation Center
Type: rehabilitation-center
Properties
- address
- fax
- id
- identifier
- internalNote
- language
- location
- name
required
- note
- onlineBooking
- openingHours
- phone
- social
- tag
Relationships
Key | Type | Description |
---|---|---|
practice | Array<Practice> | Practices associated with this resource. |
speciality | Array<Speciality> | Specialities associated with this resource. |
Relationships for a rehabilitation center are not managed through the rehabilitation center itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted rehabilitation center.
- For
practice
: - For
speciality
:- To associate a
speciality
to a rehabilitation center, one must create a Speciality with theparent
property referencing the targeted rehabilitation center. - To disassociate a
speciality
from a rehabilitation center, one must delete the targeted Speciality.
- To associate a
Contained Resources
Overspecialization
Type: overspecialization
Properties
The overspecialization
property references the parent resource for which this resource is an overspecialization for.
The concept
property should be populated with a coding value coming from the overspecialization
value set.
Practice
Type: practice
Properties
- healthFacility
required
- practitioner
required
The healthFacility
property references a parent Clinic, Community Resource, Hospital, Long Term Care, Pharmacy or a Rehabilitation Center.
The practitioner
property references a parent Practitioner.
Profession
Type: profession
Properties
The parent
property references the parent Practitioner to which this profession is associated.
The concept
property should be populated with a coding value coming from the profession
value set.
Relationships
Key | Type | Description |
---|---|---|
overspecialization | Array<Overspecialization> | Overspecialization associated with this resource. |
service | Array<Service> | Services associated with this resource. |
Relationships for a profession are not managed through the profession itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted profession.
- For
overspecialization
:- To associate an
overspecialization
to a profession, one must create an overspecialization with theoverspecialization
property referencing the targeted profession. Theconcept
property for this newly created overspecialization should be a coding value coming from the value set for the targeted profession. - To disassociate an
overspecialization
from a profession, one must delete the targeted Overspecialization.
- To associate an
- For
service
:- To associate a
service
to a profession, one must create a Service with theparent
property referencing the targeted profession. Theconcept
property for this newly created service should be a coding value coming from the value set for the targeted profession. - To disassociate a
speciality
from a profession, one must delete the targeted Service.
- To associate a
Service
Type: service
Properties
The parent
property references the parent Speciality or Profession.
The concept
property should be populated with a coding value coming from the service
value set.
Relationships
Key | Type | Description |
---|---|---|
overspecialization | Array<Overspecialization> | Overspecialization associated with this resource. |
service | Array<Service> | Services associated with this resource. |
Relationships for a service are not managed through the service itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted service.
- For
overspecialization
:- To associate an
overspecialization
to a service, one must create an overspecialization with theoverspecialization
property referencing the targeted service. Theconcept
property for this newly created overspecialization should be a coding value coming from the value set for the targeted service. - To disassociate an
overspecialization
from a profession, one must delete the targeted Overspecialization.
- To associate an
- For
service
:- To associate a
service
to a service, one must create a Service with theparent
property referencing the targeted service. Theconcept
property for this newly created service should be a coding value coming from the value set for the targeted service. - To disassociate a
service
from a service, one must delete the targeted Service.
- To associate a
Walk-In
Type: walk-in
Properties
- healthFacility
required
- newPatientBookingDetail
- openingHours
- patientBookingDetail
required
The healthFacility
property references the parent Clinic or CLSC under which the walk-in exists.
Relationships
Key | Type | Description |
---|---|---|
speciality | Array<Speciality> | Specialities associated with this resource. |
Relationships for a walk-in are not managed through the walk-in itself. Rather, they are managed by creating, updating and deleting other resources referencing the targeted walk-in.
- For
speciality
:- To associate a
speciality
to a walk-in, one must create a Speciality with theparent
property referencing the targeted walk-in. - To disassociate a
speciality
from a walk-in, one must delete the targeted Speciality.
- To associate a
Properties
acceptNewPatients
Boolean
Cardinality: 0:1
address
Address
Cardinality: 0:1
ageRange
Composite
Cardinality: 0:*
Children | Type | Description |
---|---|---|
label | Coding Binding: age-category | Categorie of the age range. |
upper | Integer | Upper bound of the age range. Value should be in months |
lower | Integer | Lower bound of the age range. Value should be in months |
Validation -> The lower
and upper
values must be between 0 and 1800, inclusively.
{
"ageRange": {
"label": {
"system": "age-category",
"version": 1,
"value": "children",
"displayName": [
{
"code": "en",
"value": "Children"
},
{
"code": "fr",
"value": "Enfants"
}
]
},
"upper": 120,
"lower": 72
}
}
casesToRefer
Markdown
Cardinality: 0:1
concept
Coding
Cardinality: 1:1
clientele
Composite
Cardinality: 0:1
Children | Type | Description |
---|---|---|
ageRange | Array<Composite> | Collection of age range description of the targeted clientele. |
{
"clientele": {
"ageRange": [
{
"label": {
"system": "age-category",
"version": 1,
"value": "children",
"displayName": [
{
"code": "en",
"value": "Children"
},
{
"code": "fr",
"value": "Enfants"
}
]
},
"upper": 120,
"lower": 72
}
]
}
}
communication
Composite
Cardinality: 0:*
Children | Type | Description |
---|---|---|
language | Coding Binding: spoken-language | Language. |
preferred | Boolean | If the language is preferred by the resource over others. |
{
"communication": [
{
"language": {
"system": "spoken-language",
"version": 1,
"value": "en",
"displayName": [
{
"code": "en",
"value": "English"
},
{
"code": "fr",
"value": "Anglais"
}
]
},
"preferred": true
},
{
"language": {
"system": "spoken-language",
"version": 1,
"value": "fr",
"displayName": [
{
"code": "en",
"value": "French"
},
{
"code": "fr",
"value": "Français"
}
]
},
"preferred": false
}
]
}
createdAt
email
EmailContactPoint
Cardinality: 0:*
Validation -> Value must match regex expression ^.+@.+\..+$
fax
FaxContactPoint
Cardinality: 0:*
gender
healthFacility
Reference
Cardinality: 1:1
Validation -> Only the following reference types are accepted:
- clinic
- clsc
- pharmacy
- community
- long-term-care
- rehabilitation-center
- hospital
humanName
HumanName
Cardinality: 0:1
identifier
Identifier
Cardinality: 0:*
internalNote
Markdown
Cardinality: 0:1
isPayingMember
Boolean
Cardinality: 0:1
isValidated
Boolean
Cardinality: 0:1
language
location
GeoPoint
Cardinality: 0:1
modalities
Markdown
Cardinality: 0:1
name
Symbol
Cardinality: 1:1
Validation -> Value cannot be null
or an empty chain of characters.
newPatientBookingDetail
Composite
Cardinality: 0:1
Children | Type | Description |
---|---|---|
phone | PhoneContactPoint | Number where patients can call to book an appointment. |
onlineBooking | UrlContactPoint | Url patients can visit to book an appointment. |
appointmentOpeningDay | Coding Binding: booking-day | Day from which a patient can book a appointment for the current day |
appointmentOpeningTime | Time | Time from which a patient can book a appointment for the current day |
note | Markdown | Publicly visible notes and precisions. |
{
"newPatientBookingDetail": {
"phone": {
"number": "5146077277",
"type": "main",
"extension": null
},
"online-booking": {
"url": "https://clinia.com/booking"
},
"appointmentOpeningTime": "08:00:00",
"appointmentOpeningDay": {
"system": "booking-day",
"version": 1,
"value": "same-day",
"displayName": [
{
"code": "en",
"value": "The same day"
},
{
"code": "fr",
"value": "Le jour même"
}
]
},
"note": "Be persistant when calling, they are very busy."
}
}
note
Markdown
Cardinality: 0:1
onlineBooking
Url
Cardinality: 0:1
Validation -> Value must match regex expression https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)
openingHours
TimeSlot
Cardinality: 0:*
The openingHours
property acts as a value object where the whole collection is the value for the property. This means that, when updating this property, the existing TimeSlot values will be overwritten by the incoming values.
Validation -> For each TimeSlot, start
and end
must be specified and start
must be earlier than end
overspecialization
Reference
Cardinality: 0:1
Validation -> Only the following reference types are accepted:
- service
- speciality
- profession
parent
Reference
Cardinality: 0:1
Validation -> Only the following reference types are accepted:
- clinic
- clsc
- pharmacy
- community
- long-term-care
- rehabilitation-center
- hospital
- practitioner
- speciality
- service
- clinic
- profession
patientBookingDetail
Composite
Cardinality: 0:1
Children | Type | Description |
---|---|---|
phone | PhoneContactPoint | Number where patients can call to book an appointment. |
onlineBooking | UrlContactPoint | Url patients can visit to book an appointment. |
appointmentOpeningDay | Coding Binding: booking-day | Day from which a patient can book a appointment for the current day |
appointmentOpeningTime | Time | Time from which a patient can book a appointment for the current day |
note | Markdown | Publicly visible notes and precisions. |
{
"patientBookingDetail": {
"phone": {
"number": "5146267588",
"type": "main",
"extension": null
},
"online-booking": {
"url": "https://clinia.com/booking"
},
"appointmentOpeningTime": "08:00:00",
"appointmentOpeningDay": {
"system": "booking-day",
"version": 1,
"value": "day-before",
"displayName": [
{
"code": "en",
"value": "The day before"
},
{
"code": "fr",
"value": "La veille"
}
]
},
"note": "Be persistant when calling, they are very busy."
}
}
phone
PhoneContactPoint
Cardinality: 0:*
practitioner
Reference
Cardinality: 1:1
Validation -> Only the following reference types are accepted:
- practitioner
social
UrlContactPoint
Cardinality: 0:*
title
registration
Composite
Cardinality: 0:*
Children | Type | Description |
---|---|---|
practiceNumber | Symbol | Practice number. |
regionCode | Coding Binding: ca-region | Region where this practice is active. |
{
"registration": [
{
"regionCode": {
"system": "ca-region",
"version": 1,
"value": "qc",
"displayName": [
{
"code": "en",
"value": "Quebec"
},
{
"code": "fr",
"value": "Québec"
}
]
},
"practiceNumber": "12345B"
}
]
}
tag
Symbol
Cardinality: 0:*