Visit the HL7 website
Visit the FHIR website

CA Core+ 1.0.0 DFT-preBallot

1.0.0-DFT-preBallot   Canada flag
  • Home
  • Business Context
    • Business Context
    • Relationship to PCHDCF
    • Relationship to Other Specifications
    • CA Core+ to pCHDCF Mapping
  • Technical Context
    • Technical Context
    • Artifact Status Summary
    • Profiling Conventions & Approach
    • General Guidance
    • Mapping Logic
    • Security And Privacy
  • Modules
    • Modules
    • Common Data Exchange
    • Workflows
  • FHIR Artifacts
    • FHIR Artifacts
    • Profiles
    • Extensions
    • Data Types
    • Terminology
    • Examples
    • Download
  • Change Log
    • Change Log
    • Specification Guidance
    • Copyrights
    • Known Issues & Future Development
    • Specification Feedback
    1. Home
    2. Technical Context
    3. General Guidance

Draft preBallot - This specification is under preBallot review and subject to change. It should not be used for implementation purposes. . . . . For a full list of available versions, see the Directory of published versions

General Guidance

This page offers general implementation and authoring guidance that applies to all CA Core+ artifacts and modules. It supports a common understanding of profiling philosophy, behavior across systems, and best practices for promoting interoperability.

Guidance for Implementation Guide Authors

CA Core+ is structured to support reuse and consistency across Canada. The Business Context and Technical Context pages have more information on the business and general needs to derive from CA Core+. This section contains specific recommendations.

When defining or adapting profiles for jurisdictional or domain-specific use, IG authors should apply the following recommendations to ensure alignment with the CA Core+ framework:

  • Reuse before redefining: Base new profiles on CA Core+ wherever possible. Modify only when justified by local policy, technical limitations, or clinical context. Participating in pan-Canadian discussions, even when designing for a local context, can improve alignment and increase the likelihood that your specifications will be supported or reused more broadly.
  • Preserve conformance: When adding constraints (e.g., slicing, required bindings), do so in a way that does not conflict with CA Core+ expectations unless a strong justification exists.
  • Mark min=1 elements as Must Support when they are clinically meaningful and interoperable across systems, especially when used in pan-Canadian data exchange and are meaningful beyond being required for exchange. For guidance on how Must Support and cardinality interact, see Technical Context.
  • Clearly document adaptations: Extensions, added constraints, terminology adaptations, or removed elements should be explained in the derived guide to aid future harmonization efforts.
  • Express constraints using computable artifacts: Avoid relying solely on narrative text to describe constraints. Use FHIR StructureDefinitions, ValueSets, CodeSystems, CapabilityStatements, and other formal artifacts to define expectations in a machine-readable way. This ensures implementers and tools can interpret the guide consistently. Where narrative explanations are needed, accompany them with formal definitions.
  • Consider if your extension has broader use: When introducing extensions, consider whether they are truly specific to your use case or if they could be candidates for a future CA Core+ release. Also check for existing extensions from international or other jurisdictional sources (e.g., HL7 International, US Core) before defining new ones. Submit proposed extensions or changes via the Specification Feedback page.
  • Evaluate constraints at the sub-element level: If a parent element is optional but a child is min=1 and Must Support, ensure that downstream implementers understand the conditions under which that child is required.
  • Be explicit about data-absent-reason: When extending profiles, specify when and how to apply data-absent-reason, particularly for jurisdiction-specific constraints on privacy (e.g., masked, not-asked).
  • Do not ascribe meaning to repetitions: Only interpret the order or count of repeated elements if the core FHIR specification defines such meaning. If ordering or categorization is required, use additional elements or extensions to express it explicitly.
  • Use slicing or tighter bindings: to enforce specific usage patterns instead of removing data elements.
  • Avoid unnecessarily reducing max cardinality: Systems should tolerate the presence of unneeded data and only prohibit additional repetitions when it is clearly erroneous in the business context (e.g.Patient.desceased[x] is prohibited because submitting a deceased patient would violate the use-case). If a receiving system requires only one instance where multiple are valid, use extensions or a distinguishing element to indicate the relevant instance instead of restricting valid data from being sent.
  • Avoid narrowing cardinality: Consider the impact of narrowing cardinality on interoperability with other systems.

Refer to the Technical Context page for more on CA Core+ adaptation strategy and how profiles are designed to balance pan-Canadian interoperability with jurisdictional flexibility.

Guidance for Implementers

Implementers working with CA Core+ or downstream guides based on it should consider the following when handling required elements and Must Support expectations:

  • Evaluate each element individually: Do not assume that a parent element is Must Support unless explicitly marked. Child elements marked as Must Support (or with min > 0) indicate specific implementation responsibilities.
  • If a parent element is present, the system MUST support and process any required or Must Support children. For example, if identifier is included, the system must also handle identifier.system and identifier.value if marked Must Support.
  • Child elements may carry more strict constraints than their parents (e.g., 0..1 parent with 1..1 child). This indicates that if the parent is used, the child must be populated. See Technical Context for more on this convention.
  • Missing values on required elements: If data for a min=1 or Must Support element is unavailable, use data-absent-reason to indicate why. See the “Handling Missing Data” section below for specific rules and examples.
  • Systems should process Must Support data when received, including:
    • Parsing and storing values
    • Displaying them for human review (where applicable)
    • Using them in relevant workflows (e.g., decision support, routing, reporting)
  • Receiving systems must not fail when receiving instances that comply with a CA Core+ profile, even if they include optional data elements or additional extensions. However, they may enforce business rules relating to such elements, particularly around unexpected values in modifier elements.

CA Core+ is designed to reduce variation and allow jurisdictions to extend profiles as needed. Implementers should consult jurisdiction-specific IGs to determine if additional constraints or policies apply. When in doubt, prioritize compatibility with CA Core+ base definitions to support broader interoperability.

Extensibility and Additional Elements

A server may send “additional” elements beyond those flagged with Must Support in a CA Core+ profile. These additional elements are often required by other profiles the system conforms to, and they may carry local requirements or technical/workflow context.

For this reason, extensibility is generally encouraged and expected in CA Core+ profiles. Only in rare cases—where safety, policy, or compatibility requires it—are profiles designed to limit the inclusion of extra elements through tight cardinality or Must Support restrictions.

Specification authors should strive to enable greater interoperability and software reuse by not reducing element cardinality unless there's a well-justified reason.

Client systems:

  • MAY ignore these “additional” elements, provided they are not unrecognized/unsupported values for modifier elements,
  • MAY treat them as render-only,
  • MAY use them if capable of understanding the content.

Use of Optional Elements

Profiles may leave many elements optional to support broad applicability across jurisdictions and use cases. CA Core+ adopts a flexible modeling approach:

  • Elements with min=0 and no Must Support flag are considered optional.
  • Implementers MAY populate these if the data is available and relevant.
  • Downstream guides MAY elevate their importance by making them Must Support or tightening cardinality.

Consistency Across Jurisdictions

To promote reusability and alignment across Canada:

  • Try to reuse extensions and value sets already present in CA Core+.
  • If a local constraint is needed (e.g., a province-specific code), prefer narrowing a binding rather than replacing it entirely.
  • Submit proposed extensions or changes via the Specification Feedback page.

Examples and Representations

Profiles in CA Core+ may include illustrative examples, but:

  • Examples are informative only and do not imply conformance.
  • Implementers are encouraged to test edge cases and realistic payloads, not just sample data.

Table of Contents | IG © based on FHIR R4 | Package package:ca.infoway.io.core@1.0.0-dft-preballot | Version History
HL7® and FHIR® are the registered trademarks of Health Level Seven International