Canadian Baseline
1.2.0 - CI Build Canada flag

Canadian Baseline, published by HL7 Canada - FHIR Implementation Work Group. This guide is not an authorized publication; it is the continuous build for version 1.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7-Canada/ca-baseline/ and changes regularly. See the Directory of published versions

Resource Profile: Patient Profile

Official URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-patient Version: 1.2.0
Draft as of 2024-12-27 Computable Name: PatientProfile

Proposed constraints and extensions on the Patient Resource as scoped to human patients

CA Baseline Patient Profile

This profile is seeking community and implementer feedback on whether further relaxation of the 1..1 cardinality is needed on the Patient.identifier.type & .system & .value elements.

Due Diligence Reviews identified the above elements as 1..1 cardinality but not in the equivalent eReferral Specification profile. This variance is believed to be due to the eReferral Specification profile not necessarily expecting a Patient to always have a health card (or at minimum a health card number). General consensus from Due Diligence Review is that the cardinalities should not be relaxed in the CA Baseline. Feedback can be provided through the Simplifier issue log for this profile.
Feedback can be provided through the Simplifier issue log for this profile.

</div>

This Patient profile sets minimum expectations for the Patient resource to record, search and fetch demographics and other administrative information about an individual receiving care or other health-related services.

Since not all concepts are included within the base FHIR Patient resource, this profile defines localization concepts for use in an Canadian context.

Mandatory Data Elements

All elements or attributes defined in FHIR have cardinality as part of their definition - a minimum number of required appearances and a maximum number.

Most elements in FHIR specification have a minimum cardinality of 0, which means that they may be missing from a resource when it is exchanged between systems.

In this Canadian Baseline Patient Profile all elements are optional, i.e., there is no element with a minimum cardinality of 1. However, some optional elements (e.g., identifier) have required components that MUST be present if that optional element is provided.

Data Absent Reason

In situations where the minimum cardinality of an element or attribute is 1 and information is missing and the Responder knows the precise reason for the absence of data, Responders SHALL send the reason for the missing information using values (such as NullFlavor) from the value set where they exist or using the DataAbsentReason extension.

Must Support Data Elements

Some elements are labeled as MustSupport meaning that implementations that produce or consume resources SHALL provide "support" for the element in some meaningful way (see Must Support definition).

Following elements are marked as Must Support in the Canadian Patient profile to aid record matching in databases with many pediatric records.

Must Support elements:

  • an identifier
  • a patient name
  • a birth date

Usage Note

Some of the typical use cases where the Patient profile may be used:

  • Enterprise-wide information systems that manage patient registration and services ordering
  • Local or cross-jurisdictional systems to query information about patients whose demographics data match data provided in the query parameters
  • Synchronization of patient information between multiple ADT systems employed by healthcare enterprises

This profile includes an invariant that enforces that a family.name, given.name, or both be present. This is intended to enforce minimum constraints while allowing for cases where the patient may only have one name.

  • Some jurisdictions with more rigid cardinality constraints on both family and given may be handling this today by populating the name of a patient into both fields
  • Other jurisdictions may allow the population of either family or given

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..* Patient Patient Profile
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
.... aboriginalidentitygroup 0..1 Coding Extension: Aboriginal Identity Group
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-aboriginalidentitygroup
Binding: Aboriginal Identity Group (preferred): One of aboriginal identity codes


ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... aboriginalidentityindicator 0..1 Coding Extension: Aboriginal Identity Indicator
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-aboriginalidentityindicator
Binding: Aboriginal Identity Indicator (preferred): One of self-reported codes identity as an aboriginal person


ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... birthsex 0..1 Coding Extension: Sex at Birth
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-patientbirthsex
Binding: Birth Sex (example): Code for sex assigned at birth


ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... ethnicity 0..1 Coding Extension: ethnicity extension
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-ethnicity
Binding: EthnicityCode (preferred): One of self-reported ethnic group codes representing the ethnicity concept and should not be confused with citizenship or nationality.


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
.... identifier:All Slices Content/Rules for all slices
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


ele-1: All FHIR elements must have a @value or children
..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.


ele-1: All FHIR elements must have a @value or children
..... system Σ 1..1 uri The namespace for the identifier value
ele-1: All FHIR elements must have a @value or children
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique within the system.
ele-1: All FHIR elements must have a @value or children
Example General: 123456
.... identifier:JHN Σ 0..* Identifier Jurisdictional Health Number
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
...... versionCode 0..* string Health Number Version Code
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-identifierversion
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


ele-1: All FHIR elements must have a @value or children
..... type Σ 1..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.


ele-1: All FHIR elements must have a @value or children
Required Pattern: At least the following
...... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
....... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0203
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: JHN
..... system Σ 1..1 uri A Health Number Naming System from the Canadian URI Registry
ele-1: All FHIR elements must have a @value or children
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique within the system.
ele-1: All FHIR elements must have a @value or children
Example General: 123456
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
ele-1: All FHIR elements must have a @value or children
... name SΣC 0..* HumanName A name associated with the patient
ele-1: All FHIR elements must have a @value or children
ipa-pat-2: Either Patient.name.given and/or Patient.name.family and/or Patient.name.text SHALL be present or a Data Absent Reason Extension SHALL be present.
.... use ?!Σ 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.


ele-1: All FHIR elements must have a @value or children
.... family Σ 0..1 string Family name (often called 'Surname')
ele-1: All FHIR elements must have a @value or children
.... given Σ 0..* string Given names (not always 'first'). Includes middle names
ele-1: All FHIR elements must have a @value or children
This repeating element order: Given Names appear in the correct order for presenting the name
... telecom Σ 0..* ContactPoint A contact detail for the individual
ele-1: All FHIR elements must have a @value or children
.... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.


ele-1: All FHIR elements must have a @value or children
.... value Σ 1..1 string The actual contact point details
ele-1: All FHIR elements must have a @value or children
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.


ele-1: All FHIR elements must have a @value or children
... birthDate SΣ 0..1 date The date of birth for the individual
ele-1: All FHIR elements must have a @value or children
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
ele-1: All FHIR elements must have a @value or children
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... address Σ 0..* Address An address for the individual
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
..... preferred 0..1 boolean HL7 Preferred Address Flag extension
URL: http://hl7.org/fhir/StructureDefinition/iso21090-preferred
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... noFixedAddress 0..1 boolean No Fixed Address indicator
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-nofixedaddress
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... use ?!Σ 0..1 code home | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


ele-1: All FHIR elements must have a @value or children
Example General: home
... link ?!Σ 0..* BackboneElement Link to another patient resource that concerns the same actual person
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
ele-1: All FHIR elements must have a @value or children
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Patient.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:JHN.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:JHN.typeextensiblePattern: JHN
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.name.userequiredNameUse
http://hl7.org/fhir/ValueSet/name-use|4.0.1
from the FHIR Standard
Patient.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
Patient.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard
Patient.address.userequiredAddressUse
http://hl7.org/fhir/ValueSet/address-use|4.0.1
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: 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()
dom-4errorPatientIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ipa-pat-2errorPatient.nameEither Patient.name.given and/or Patient.name.family and/or Patient.name.text SHALL be present or a Data Absent Reason Extension SHALL be present.
: (family.exists() or given.exists() or text.exists()) xor extension.where(url='http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Identifiers

Multiple individual healthcare identifiers may be provided in Patient.identifier element.

However, to support particular types of federal patient and person health numbers used by all jurisdictions across Canada following optional types are defined to uniquely identifying patients:

  • Canadian Passport Number
  • Jurisdictional Person Identification
  • Jurisdictional Health Number

Canadian Passport Number (PPN)

A unique number assigned to the document affirming that a person is a citizen of Canada.

URI to use with this identifier type: https://fhir.infoway-inforoute.ca/NamingSystem/ca-passport-number

Example:

{
  "type": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
        "code": "PPN"
      }
    ]
  },
  "system": "https://fhir.infoway-inforoute.ca/NamingSystem/ca-passport-number",
  "value": "AB123456",
  "period": {
    "start": "2005-05-11",
    "end": "2015-05-11"
  }
}

Jurisdictional Patient Identifier Number (JPID)

This patient identifier type identifies a number issued in Canada to administer various government programs.

URIs used with this identifier type:

  • Canada, Social Insurance Number (SIN) - https://fhir.infoway-inforoute.ca/NamingSystem/ca-social-insurance-number
  • Canada Permanent Resident Card Number - https://fhir.infoway-inforoute.ca/NamingSystem/ca-permanent-resident-card-number
  • Canada First Nation Indian registry number (band ID) - https://fhir.infoway-inforoute.ca/NamingSystem/ca-federal-firstnation-band-id
  • Indigenous and Northern Affairs Canada health card number - https://fhir.infoway-inforoute.ca/NamingSystem/ca-indigenous-northern-affairs-number
  • Interim Federal Health Program identifier - https://fhir.infoway-inforoute.ca/NamingSystem/ca-interim-federal-health-id

Example:

{
  "type": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
        "code": "JPID"
      }
    ]
  },
  "system": "https://fhir.infoway-inforoute.ca/NamingSystem/ca-social-insurance-number",
  "value": "923456789"
  }
}

Jurisdictional Health Number (JHN)

Following URIs are registered to identify health card numbers for provinces and territories:

  • Alberta - https://fhir.infoway-inforoute.ca/NamingSystem/ca-ab-patient-healthcare-id
  • British Columbia - https://fhir.infoway-inforoute.ca/NamingSystem/ca-bc-patient-healthcare-id
  • Manitoba - https://fhir.infoway-inforoute.ca/NamingSystem/ca-mb-patient-healthcare-id
  • New Brunswick - https://fhir.infoway-inforoute.ca/NamingSystem/ca-nb-patient-healthcare-id
  • Newfoundland and Labrador - https://fhir.infoway-inforoute.ca/NamingSystem/ca-nl-patient-healthcare-id
  • Northwest Terrirories - https://fhir.infoway-inforoute.ca/NamingSystem/ca-nt-patient-healthcare-id
  • Nova Scotia - https://fhir.infoway-inforoute.ca/NamingSystem/ca-ns-patient-healthcare-id
  • Nunavut - https://fhir.infoway-inforoute.ca/NamingSystem/ca-nu-patient-healthcare-id
  • Ontario - https://fhir.infoway-inforoute.ca/NamingSystem/ca-on-patient-hcn
  • Prince Edward Island - https://fhir.infoway-inforoute.ca/NamingSystem/ca-pe-patient-healthcare-id
  • Quebec - https://fhir.infoway-inforoute.ca/NamingSystem/ca-qc-patient-healthcare-id
  • Saskatchewan - https://fhir.infoway-inforoute.ca/NamingSystem/ca-sk-patient-healthcare-id
  • Yukon - https://fhir.infoway-inforoute.ca/NamingSystem/ca-yt-patient-healthcare-id

Following identifier types identify health card numbers issued in Canada to let a patient to be recognized for services and stay connected to related support programs:

  • Canada Veteran's Affairs health card number - https://fhir.infoway-inforoute.ca/NamingSystem/ca-veterans-affairs-health-id
  • Canada Correctional Service health card number - https://fhir.infoway-inforoute.ca/NamingSystem/ca-correctional-service-health-id
  • Canada Royal Canadian Mounted Police (RCMP) health card number - https://fhir.infoway-inforoute.ca/NamingSystem/ca-royal-mounted-police-health-id
  • Canada Armed Forces health card number - https://fhir.infoway-inforoute.ca/NamingSystem/ca-armed-forces-health-id

The full list of identifiers can be found on Canadian URI Registry. Canada Health Infoway provides Canadian URI Registry search tool to simplify search.

Version Code

The Version Code extension is added to indicate the currency/validity of an identifier.

The rational is that the version code is current captured separately from the JHN because, in Ontario at least, the JHN is a stable identifier whereas the version code changes over time.

  • The working assumption is that it is useful to have this stable identifier but not all of the Ontario specs reviewed stored it as a separate field. In one case, it appears to be an Patient.identifier.coding.value instead of the identifier …
  • Example JHN and Patient Information from Ontario Health Care Validation Reference Manual
  • Question: would specific examples like this be helpful to illustrate Canadian requirements?

Example:

{
  "type": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
        "code": "JHN"
      }
    ]
  },
  "system": "https://fhir.infoway-inforoute.ca/NamingSystem/ca-armed-forces-health-id",
  "value": "A98765439"
  }
}

Patient Gender and Sex

Many systems and organizations only provide a single attribute to represent all aspects of a patient's gender and sex with a single value. However, there are many considerations around sex and gender documentation and interoperability.

The FHIR Specification provides guidance and background for representing patient gender.

In addition to that Canadian Patient profile defines following extensions:

  • Gender Identity - an indication from the patient about what gender they consider themselves to be.
  • Sex assigned at Birth - the sex assigned at birth, as documented on the birth registration.
  • Preferred Pronoun - an indication from the patient about what pronoun to use in correspondence.

!! TO BE COMPLETED !!

Telecom

A Patient may have multiple ways to be contacted with different uses or applicable periods. This Patient profile allows multiple contact points (e.g. a telephone number or an email address) by which the individual may be contacted.

To indicate the preferred way to contact use Patient.telecom.rank attribute (i.e., the ContactPoint.rank component) that specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.

Address

The Patient profile is provided for use in a Canadian context where some constraint on content is desirable to guarantee the quality of the Canadian address whilst still supporting other type of address (e.g., other countries or UNstructured addresses).

Canadian postal code

If an address in the Patient resource instance represents Canadian address, it SHOULD follow Canadian postal code format.

The Canadian Postal Code SHOULD be a six-character uniformly structured uppercase alphanumeric code in the form of "ANA NAN", where "A" represents an alphabetic character and "N" represents a numeric character, with one space between the first three and the last three characters.

A hyphen SHOULD NOT be used (example of UNacceptable format: T0L-1K0).

Preferred

The Patient.address MAY have a Preferred extension. This is the FHIR standard defined extension used as a flag denoting whether parent address item is preferred.

No Fixed Address

The Patient.address MAY have a No Fixed Address extension. This extension is to indicate that there is an assertion that there is no fixed address (e.g., homeless).

Marital Status

The binding for the Patient.maritalStatus element is extensible meaning that to be conformant, codes in this element SHALL be from the specified value set if any of the codes within the value set can apply to the concept being communicated.

Systems can send additional codes (Stats Canada, SNOMED CT, etc.) but can only do that if they also send the relevant HL7-assigned codes.