Canadian Baseline
1.1.0 - CI Build
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.1.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
This section outlines important definitions and interpretations and requirements common to all actors used in this guide. The conformance verbs used are defined in [FHIR Conformance Rules].
Base or baseline specifications are specifications that other implementation guides build on top of. When applying constraints, this guide does so with the understanding that any profiling constraints (must support, cardinality, invariants, slicing, etc.) will be inherited into any profiles that derive from them.
Must support constraints are particularly challenging for baseline specifications because the FHIR Standard has enforced that every implementation guide declares the meaning and expectations for a must support flag in their guide. Much like other derived constraints, a must support flag that is inherited into a derived profile can not have a looser definition from the profile the flag originates from. The definition in the derived profile can keep or tighten the definition for must support.
Therefore, the CA Baseline has developed a lightweight must support definition that does not impede or prescribe what a client or server does with the data, so as not to impede each implementation's ability to tighten and define expectations for use under their own business rules, regulations, policies, etc.
Must Support Definition: Vendors in Canada have the base capability to support the elements, with the expectation that business rules, regulations, etc. can determine what of these elements is used and how.
Given the challenge that comes from inheritance of must support flags into implementation guides that have strict definitions for must support (e.g., must be able to display this value to an end user), the CA Baseline has only applied must support flags on the elements that would be expected to be flagged as must support across the majority of Canadian Implementation Guides.
Must Support Expectations: Backbone & Child Elements Occasionally, Must Support flags are applied to elements that fall under a backbone element that is not considered Must Support. This profiling is intended to communicate conditional expectations IF the implementation uses/supports the backbone element.
It is not intended to incur the expectation that systems have to support the backbone element and the child elements noted underneath if they would have otherwise not included them in their profile. This modeling will continue to be evaluated for impacts for derived profiles.
Should Support Expectations: This specification may also identify elements that are "should support" using usage notes. These are elements that may not reasonably meet the rule above of being in the majority of Canadian Implementation Guide, but that the CA Baseline is encouraging further proliferation of.
MustSupport | Cardinality | Query Scenario (Server) |
Query Scenario (Client) |
Create / Update Scenario (Client) |
Create / Update Scenario (Server) |
|
---|---|---|---|---|---|---|
A | No | 0..1, 0..* | MAY send/relay data corresponding to this element (not required) SHOULD NOT send element if the data is not available (not collected or null value) |
SHOULD NOT assume this element will be received 1, 2 | MAY send/relay data corresponding to this element (not required) SHOULD NOT send element if the data is not available (not collected or null value) |
MAY ignore data received in the element 1 |
B | No | 1..1, 1..* | SHALL send/relay the data element populated with a value MAY use a fixed value or rule to populate element with an appropriate value |
SHOULD assume this element will be received and may be a fixed value 1, 2 | SHALL send/relay the data element populated with a value MAY use a fixed value or rule to populate element with an appropriate value |
MAY ignore data received in the element 1 |
C | Yes | 0..1, 0..* | SHALL send/relay the data element populated with a value (if available and appropriate) SHOULD NOT send element if the value is null |
SHOULD assume this element will be received if data is available 1, 2 SHOULD assume that a missing data element in response means that a value for that data element was not available1, 2 |
SHALL be capable of sending/relaying the data element to the server SHOULD NOT send element if the value is null |
SHALL be capable of receiving/relaying/storing the data for this element 1 |
D | Yes | 1..1, 1..* | SHALL send/relay the data element populated with a value | SHOULD assume a value for this data element will be received 1, 2 | SHALL send/relay the data element populated with a value to the server | SHALL be capable of receiving/relaying/storing the data for this element 1 |
1 Business rules, regulations, policies, additional implementation guides should determine what the server will do with the data it receives (i.e., store, persist, etc.)
2 Scope of the CA Baseline Profiles does not include prescriptive constraints on what a Client or Server has to do with the data it receives (i.e., ignore, display, store, persist, etc.).*
Client = Requestor, Server = Responder
Verb | Definition |
---|---|
SHALL | an absolute requirement for all implementations |
SHALL NOT | an absolute prohibition against inclusion for all implementations |
SHOULD / SHOULD NOT | A best practice or recommendation to be considered by implementers within the context of their particular implementation; there may be valid reasons to ignore an item, but the full implications must be understood and carefully weighed before choosing a different course |
MAY | This is truly optional language for an implementation; can be included or omitted as the implementer decides with no implications |
Requirement:
The Server SHALL be able to return a BirthDate if it is known. (i.e., It must be stored on the server or retrievable in some way.)
(The BirthDate MAY be unknown and therefore not available to send.)
Process:
Requirement:
The Client SHALL be able to send a BirthDate if it is known. (i.e., It must be stored on the client or retrievable in some way.)
The Server SHALL be able to store a BirthDate if it is provided. (i.e., It must be stored on the server or somewhere where it can be retrieved later.)
(The BirthDate MAY be unknown and therefore not available to send.)
Process: