Canadian Core
0.1.0 - CI Build

Canadian Core, published by Canadian FHIR Implementor Working Group. This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/scratch-fhir-profiles/CA-Core/ and changes regularly. See the Directory of published versions

Resource Profile: Organization Profile

Defining URL:http://hl7.org/fhir/ca/core/StructureDefinition/profile-organization
Version:0.1.0
Name:OrganizationProfile
Title:Organization Profile
Status:Draft as of 2020-03-16
Definition:

Proposed constraints and extensions on the Organization resource

Publisher:Canadian FHIR Implementor Working Group
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.org/fhir/ca/core/StructureDefinition/profile-organization

CA Baseline Organization Profile

This Organization profile sets minimum expectations for the Organization resource to record, search and fetch a formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.

This profile defines localization concepts for use in a 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 Organization 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.

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 Organization profile to aid record matching in databases with many pediatric records.

Must Support elements:

  • an identifier
  • an organization name
  • contact detail (e.g. a telephone number or an email address)

Formal Views of Profile Content

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

This structure is derived from Organization

Summary

Must-Support: 3 elements

Extensions

This structure refers to these extensions:

This structure is derived from Organization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization 0..*OrganizationA grouping of people or organizations with a common purpose
... ext-servicelanguage 0..*CodeableConceptLanguages used to provide services
URL: http://hl7.org/fhir/ca/core/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages

... identifier S0..*IdentifierIdentifies this organization across multiple systems
... name S0..1stringName used for the organization
... address 0..*AddressAn address for the organization
.... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... iso21090-preferred 0..1booleanHL7 Preferred Address Flag extension
URL: http://hl7.org/fhir/StructureDefinition/iso21090-preferred

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization I0..*OrganizationA grouping of people or organizations with a common purpose
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ext-servicelanguage 0..*CodeableConceptLanguages used to provide services
URL: http://hl7.org/fhir/ca/core/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣI0..*IdentifierIdentifies this organization across multiple systems
... active ?!Σ0..1booleanWhether the organization's record is still in active use
... type Σ0..*CodeableConceptKind of organization
Binding: OrganizationType (example): Used to categorize the organization.


... name SΣI0..1stringName used for the organization
... alias 0..*stringA list of alternate names that the organization is known as, or was known as in the past
... telecom SI0..*ContactPointA contact detail for the organization
... address I0..*AddressAn address for the organization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... iso21090-preferred 0..1booleanHL7 Preferred Address Flag extension
URL: http://hl7.org/fhir/StructureDefinition/iso21090-preferred
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ0..1codepostal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... text Σ0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line Σ0..*stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
.... city Σ0..1stringName of city, town etc.
Example General: Erewhon
.... district Σ0..1stringDistrict name (aka county)
Example General: Madison
.... state Σ0..1stringSub-unit of country (abbreviations ok)
.... postalCode Σ0..1stringPostal code for area
Example General: 9132
.... country Σ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... partOf Σ0..1Reference(Organization)The organization of which this organization forms a part
... contact 0..*BackboneElementContact for the organization for a certain purpose
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... purpose 0..1CodeableConceptThe type of contact
Binding: ContactEntityType (extensible): The purpose for which you would contact a contact party.

.... name 0..1HumanNameA name associated with the contact
.... telecom 0..*ContactPointContact details (telephone, email, etc.) for a contact
.... address 0..1AddressVisiting or postal addresses for the contact
... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the organization

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization I0..*OrganizationA grouping of people or organizations with a common purpose
... identifier ΣI0..*IdentifierIdentifies this organization across multiple systems
... name ΣI0..1stringName used for the organization
... telecom I0..*ContactPointA contact detail for the organization

doco Documentation for this format

This structure is derived from Organization

Summary

Must-Support: 3 elements

Extensions

This structure refers to these extensions:

Differential View

This structure is derived from Organization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization 0..*OrganizationA grouping of people or organizations with a common purpose
... ext-servicelanguage 0..*CodeableConceptLanguages used to provide services
URL: http://hl7.org/fhir/ca/core/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages

... identifier S0..*IdentifierIdentifies this organization across multiple systems
... name S0..1stringName used for the organization
... address 0..*AddressAn address for the organization
.... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... iso21090-preferred 0..1booleanHL7 Preferred Address Flag extension
URL: http://hl7.org/fhir/StructureDefinition/iso21090-preferred

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization I0..*OrganizationA grouping of people or organizations with a common purpose
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ext-servicelanguage 0..*CodeableConceptLanguages used to provide services
URL: http://hl7.org/fhir/ca/core/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣI0..*IdentifierIdentifies this organization across multiple systems
... active ?!Σ0..1booleanWhether the organization's record is still in active use
... type Σ0..*CodeableConceptKind of organization
Binding: OrganizationType (example): Used to categorize the organization.


... name SΣI0..1stringName used for the organization
... alias 0..*stringA list of alternate names that the organization is known as, or was known as in the past
... telecom SI0..*ContactPointA contact detail for the organization
... address I0..*AddressAn address for the organization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... iso21090-preferred 0..1booleanHL7 Preferred Address Flag extension
URL: http://hl7.org/fhir/StructureDefinition/iso21090-preferred
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ0..1codepostal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... text Σ0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line Σ0..*stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
.... city Σ0..1stringName of city, town etc.
Example General: Erewhon
.... district Σ0..1stringDistrict name (aka county)
Example General: Madison
.... state Σ0..1stringSub-unit of country (abbreviations ok)
.... postalCode Σ0..1stringPostal code for area
Example General: 9132
.... country Σ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... partOf Σ0..1Reference(Organization)The organization of which this organization forms a part
... contact 0..*BackboneElementContact for the organization for a certain purpose
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... purpose 0..1CodeableConceptThe type of contact
Binding: ContactEntityType (extensible): The purpose for which you would contact a contact party.

.... name 0..1HumanNameA name associated with the contact
.... telecom 0..*ContactPointContact details (telephone, email, etc.) for a contact
.... address 0..1AddressVisiting or postal addresses for the contact
... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the organization

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

PathConformanceValueSet
Organization.languagepreferredCommonLanguages
Max Binding: AllLanguages
Organization.typeexampleOrganizationType
Organization.address.userequiredAddressUse
Organization.address.typerequiredAddressType
Organization.contact.purposeextensibleContactEntityType

Constraints

IdPathDetailsRequirements
dom-2OrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3OrganizationIf 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-4OrganizationIf 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-5OrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6OrganizationA resource should have narrative for robust management
: text.`div`.exists()
org-1OrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
: (identifier.count() + name.count()) > 0
ele-1Organization.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Organization.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Organization.extension:communicationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Organization.extension:communicationMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Organization.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Organization.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Organization.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.activeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.aliasAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.telecomAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
org-3Organization.telecomThe telecom of an organization can never be of use 'home'
: where(use = 'home').empty()
ele-1Organization.addressAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
org-2Organization.addressAn address of an organization can never be of use 'home'
: where(use = 'home').empty()
ele-1Organization.address.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Organization.address.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Organization.address.extension:preferredAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Organization.address.extension:preferredMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Organization.address.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.address.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.address.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.address.lineAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.address.cityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.address.districtAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.address.stateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.address.postalCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.address.countryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.address.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.partOfAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.contactAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.contact.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Organization.contact.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Organization.contact.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Organization.contact.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Organization.contact.purposeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.contact.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.contact.telecomAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.contact.addressAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Organization.endpointAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())

Notes:

Identifiers

Currently, there is no consensus or requirement for pan-Canadian method to identify an organization using a business identifier. Organization.identifier will remain unsliced until a requirement or rationale is put forth that supports the need to have unique constraints determined by the business identifier.

Service Language

The Organization MAY have a Service Language extension. This extension is to identify languages that that services are provided in this particular organization.

Address

The Organization 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 Organization 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 Organization.address MAY have a Preferred extension. This is the FHIR standard defined extension used as a flag denoting whether parent address item is preferred.