CA Core+ v1.1.0 DFT-preBallot
DFT-preBallot - The specification is a DFT-preBallot version of CA Core+ for collecting community feedback. For a full list of available versions, see the Directory of published versions
The CA Core+ Implementation Guide (IG) provides a foundational set of FHIR profiles designed to ensure consistent, reliable interoperability across Canadian jurisdictions and products.
These profiles align with the Pan-Canadian Health Data Content Framework (pCHDCF) Version 1, ensuring that the defined constraints, data structures, and interoperability standards reflect pan-Canadian data content requirements. This alignment helps provide a common foundation for jurisdictional and product-specific implementations while supporting consistent data exchange across Canada. It also incorporates real-world implementation experiences, including jurisdictional and product-specific implementation guides already in production.
CA Core+ establishes a harmonized, modular foundation that supports pan-Canadian interoperability while accommodating jurisdictional needs. Rather than defining all possible Canadian FHIR profiles, it focuses on a core set of foundational profiles and constraints that establish a common data model, while modules, such as the Workflow Module, introduce additional functionality to support specific processes and interoperability requirements. These modules allow CA Core+ to remain adaptable to evolving healthcare needs while maintaining a consistent base for jurisdictional and product-specific use cases.
In this section:
CA Core+ provides a structured framework for pan-Canadian FHIR interoperability, built on two complementary layers that provide a flexible foundation for interoperability across jurisdictions and products:
Common Data Exchange Profiles
These profiles define broadly applicable constraints on FHIR resources, including structural constraints, terminology bindings, and cardinality rules, to support consistent data exchange across Canadian implementations. They serve as the foundation of this guide and are designed to be reused in jurisdictional and use-case-specific contexts.
Workflow Module and Future Extensions
In addition to foundational profiles, CA Core+ includes modulues that address workflow and interoperability needs.
The current release includes a workflow module, which provides structured profiles for processes such as:
Future releases will introduce additional modules, including:
These modules ensure that CA Core+ remains adaptable, supporting evolving interoperability needs while maintaining consistency with foundational data exchange profiles.
CA Core+ is designed to balance foundational data exchange capabilities with the flexibility required for diverse healthcare use cases. The framework consists of two main components:
Feature | Common Data Exchange Profiles | Modules |
---|---|---|
Purpose | Establish foundational resource constraints for interoperability | Provide structured extensions to support broader pan-Canadian use cases |
Scope | Core data elements such as patient, practitioner, and encounter | Extensions covering workflow, privacy, security, and domain-specific constructs |
Example Profiles | Patient, Practitioner, Organization, Encounter, Observation, Condition | Task, ServiceRequest, Consent, Communication, and other domain-specific modules |
Customization Level | Minimal constraints to ensure broad compatibility | Additional constraints tailored to workflows, security, privacy, and regulatory needs |
Reuse in Other IGs | Serves as the foundation for jurisdictional and domain-specific implementation guides | Used to enhance foundational data exchange profiles with workflow, privacy, security, and domain-specific extensions |
Growth Model | Stable foundational resource set | Modular expansion based on evolving pan-Canadian needs, including future security, privacy, and domain-specific modules |
To ensure consistency and interoperability, implementation guides across Canada should follow these guidelines:
This approach provides a flexible yet standardized model for FHIR-based interoperability in Canada.
The design of CA Core+ is shaped by practical implementation realities, pan-Canadian objectives, and collaborative development. The following principles guide profile development and harmonization:
This section covers the conformance expectations, including cardinality, Must Support, and handling missing data to ensure interoperability across implementations.
Key Topics Covered:
data-absent-reason
For more details on the design of the CA Core+ profiles, see the Profiling Conventions & Approach and General Guidance pages.
Mandatory elements are defined as having a minimum cardinality of 1 (min=1
), meaning the data is generally expected to be present. MS bay be present on some 1..1 elements to emphasize its importance.
In rare cases where data is not available, use the data-absent-reason
extension to explicitly indicate why the expected data is missing.
Must Support flags play a key role in defining Profiling Conventions & Approach. More information can be found in the General Guidance on how implementation guide authors and implementers should treat Must Support.
Must Support expectations are inherited by derivative guides and are designed to reflect System conformance: The ability of a system to send, receive, and handle data elements marked as Must Support.
This applies at the sub-element level too—for example, identifier.system
and identifier.value
may both be 1..1
and marked as Must Support.
Note: Systems that do not yet support a Must Support element are expected to identify such gaps during onboarding or testing. Jurisdictions may define timelines or expectations for progressive support.
data-Absent-Reason
.Processing includes:
Cardinality | Must Support Impact |
---|---|
0..1 |
The system must support the field, but it may be absent. If present, it must be processed or stored. |
0..* |
The system must support multiple values if present but does not require them to exist. |
1..1 |
The system must always populate this field and ensure the value is available for processing or display. Display may be context-dependent. |
1..* |
The system must always include at least one value and handle multiple instances correctly. |
Note: These are proposed definitions and we are seeking feedback.
The CA Core specification defines Producer and Consumer as primary actors for exchanging FHIR data and events.
Obligations describe the expectations placed on each actor type. These obligations are an evolving mechanism, and will be refined as adoption grows and new exchange patterns (e.g., REST, messaging, subscriptions) are supported.
Producer
Makes CA Core+ profiled data and events available to other systems that initiate retrieval, invoke operations, or subscribe/receive messages.
Consumer
Initiates retrieval or receives content conformant to CA Core+ to access, process, or manage health data.
More information on these actors can be found on Actor Definitions (CA-Core).
Obligations in CA Core+ are defined using the FHIR Obligations extension.
Since CA Core+ is based on FHIR R4, this specification uses the Obligation Extension to backport the feature from FHIR R5, enabling consistent declaration of requirements and expectations across CA Core+ artifacts. Obligations are defined according to the Obligation Codes ValueSet to specify how the system's expected capabilities.
For all obligations, no data should be populated or processed in any way that conflicts with regional laws, regulations or policies. For additional context, see the Security And Privacy section of this implementation guide.
data-absent-reason
In CA Core+, missing data SHALL be represented using the data-absent-reason
extension or an absent/unknown code when a profile element:
required
binding on a codeableConcept
.CA Core+ does not explicitly require or prohibit use of the data-absent-reason
extension.
Implementers MAY use this extension anywhere the base FHIR specification permits it, including for both primitive and complex elements, to indicate when information is missing and the reason is known.
0
, it may be omitted when no data is available.1
or more, it shall be present.
data-absent-reason
as permitted by the FHIR specification.unknown
.IG authors and specific implementations may choose to specify where use of data-absent-reason
is expected or required for consistent exchange.
data-absent-reason
on date elements (e.g., effective[x]
, performed[x]
, occurrence[x]
) to promote uniform handling across systems.In the absence of such requirements:
data-absent-reason
.data-absent-reason
to promote transparency.data-absent-reason
on Non-Coded Data ElementsIf a required primitive or complex element (e.g., birthDate
, name
) is missing:
If a required primitive or complex element (e.g., birthDate, name) is missing:
data-absent-reason
extension to explain the absence of data.Example: Birth date is not known
{ "resourceType": "Patient", "_birthDate": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason", "valueCode": "unknown" } ] } }
data-absent-reason
CodesThe data-absent-reason
extension should not be used on coded elements where an unknown or absent code can be used in place of the extension.
Use codes from the Data Absent Reason Code System, such as:
unknown
: Value is expected but not knownasked-unknown
: Source was asked but did not knowtemp-unknown
: Temporarily unavailablenot-asked
: Not asked due to workflow or contextmasked
: Hidden due to privacy concernsunsupported
: System cannot capture the valueIn cases where a system has information for a coded value, but no code e.g. the text for a Condition.code = Diabetes
, but is lacking the SNOMED code 73211009
"Diabetes mellitus", the system SHOULD send the text and not flag it as a data absent reason.
Must Support
and min = 0
: MAY be omitted if no data is available. Use of data-absent-reason
is optional.Must Support
and min > 0
:
data-absent-reason
.codeableConcepts
, if the element cannot be populated, use data-absent-reason
only if the profile explicitly allows it on that element or one of its required children. If the element contains a codeableConcept
a data absent reason code should be used as described above.data-absent-reason
SHALL NOT be used. A valid code from the ValueSet MUST be provided (or if the cardinality supports, the element must be omitted) to remain conformant.data-absent-reason
Some profiles—such as Immunization (CA-Core) explicitly mention the use of data-absent-reason
to encourage consistent implementation across systems. In these cases, implementers SHOULD ensure their systems are able to both send and receive this extension. It will commonly be on date elements such as effective[x]
, performed[x]
, occurence[x]
.
While data-absent-reason may also be applied to other elements across CA Core+ profiles, receiving systems are not required to interpret or act on it unless explicitly noted in the profile. Implementers SHOULD document how their systems handle data-absent-reason to support transparency and promote consistent behavior across jurisdictions.
See General Guidance for additional Implementation Guide authoring and implementation recommendations.
IG Authors should:
Implementers should:
This guide is developed in collaboration with jurisdictions, vendors, and stakeholders. Feedback is actively sought to ensure the profiles remain relevant, clear, and implementable.
Visit the Specification Feedback page to contribute.