<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="CodeableConcept-ca-ps" />
  <url value="http://fhir.infoway-inforoute.ca/io/psca/StructureDefinition/CodeableConcept-ca-ps" />
  <version value="2.2.0" />
  <name value="CodeableConceptPSCA" />
  <title value="Codeable Concept (PS-CA)" />
  <status value="draft" />
  <experimental value="false" />
  <date value="2022-02-25T01:23:00-08:00" />
  <description value="This profile represents the constraints applied to the CodeableConcept data type by the PS-CA project to use the [PS-CA Coding](http://fhir.infoway-inforoute.ca/io/psca/StructureDefinition/Coding-ca-ps) data type profile and removes the overarching expectation that all patient summary creators must demonstrate they can support codings for conformance." />
  <copyright value="Copyright © 2024+ Canada Health Infoway. All rights reserved. [Terms of Use and License Agreements](https://ic.infoway-inforoute.ca/en/about/tou). [Privacy Policy](https://www.infoway-inforoute.ca/en/legal/privacy-policy)." />
  <fhirVersion value="4.0.1" />
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="CodeableConcept" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/CodeableConcept" />
  <derivation value="constraint" />
  <snapshot>
    <element id="CodeableConcept">
      <path value="CodeableConcept" />
      <short value="Concept - reference to a terminology or just  text" />
      <definition value="A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text." />
      <comment value="For all CodeableConcepts, at least one of coding or text must be present. If coding contains only a display value (no code) then CodeableConcept must include text." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="CodeableConcept" />
        <min value="0" />
        <max value="*" />
      </base>
      <condition value="ele-1" />
      <constraint>
        <key value="ele-1" />
        <severity value="error" />
        <human value="All FHIR elements must have a @value or children" />
        <expression value="hasValue() or (children().count() &gt; id.count())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="CE/CNE/CWE" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="CD" />
      </mapping>
      <mapping>
        <identity value="orim" />
        <map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
      </mapping>
    </element>
    <element id="CodeableConcept.id">
      <path value="CodeableConcept.id" />
      <representation value="xmlAttr" />
      <short value="Unique id for inter-element referencing" />
      <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
          <valueUrl value="string" />
        </extension>
        <code value="http://hl7.org/fhirpath/System.String" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element id="CodeableConcept.extension">
      <path value="CodeableConcept.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <description value="Extensions are always sliced by (at least) url" />
        <rules value="open" />
      </slicing>
      <short value="Additional content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <condition value="ele-1" />
      <constraint>
        <key value="ele-1" />
        <severity value="error" />
        <human value="All FHIR elements must have a @value or children" />
        <expression value="hasValue() or (children().count() &gt; id.count())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <constraint>
        <key value="ext-1" />
        <severity value="error" />
        <human value="Must have either extensions or value[x], not both" />
        <expression value="extension.exists() != value.exists()" />
        <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
        <source value="http://hl7.org/fhir/StructureDefinition/Extension" />
      </constraint>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="CodeableConcept.coding">
      <path value="CodeableConcept.coding" />
      <short value="A reference to a code defined by a terminology system" />
      <definition value="A reference to a code defined by a terminology system." />
      <comment value="While the IPS-UV specification considers this a Must Support element, some systems will not have the ability to support codings for every codeableConcept, further feedback is required on whether these systems are still expected to be able to demonstrate they can construct this element when developing the patient summary instance.&#xD;&#xA;&#xD;&#xA;Implementers that support codings should still send the codings for codeable concepts if they are available and receivers should not produce failures or rejections if codings are included in the patient summary in the first release (a base tenet of FHIR).&#xD;&#xA;&#xD;&#xA;Additionally vendors should expect that some jurisdictions may further constrain support of this element within the context of their own jurisdictional content" />
      <requirements value="Allows for alternative encodings within a code system, and translations to other code systems." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="CodeableConcept.coding" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Coding" />
        <profile value="http://fhir.infoway-inforoute.ca/io/psca/StructureDefinition/Coding-ca-ps" />
      </type>
      <condition value="ele-1" />
      <constraint>
        <key value="ele-1" />
        <severity value="error" />
        <human value="All FHIR elements must have a @value or children" />
        <expression value="hasValue() or (children().count() &gt; id.count())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="CE/CNE/CWE subset one of the sets of component 1-3 or 4-6" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="CV" />
      </mapping>
      <mapping>
        <identity value="orim" />
        <map value="fhir:Coding rdfs:subClassOf dt:CDCoding" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="C*E.1-8, C*E.10-22" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="union(., ./translation)" />
      </mapping>
      <mapping>
        <identity value="orim" />
        <map value="fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding" />
      </mapping>
    </element>
    <element id="CodeableConcept.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/obligation">
        <extension url="code">
          <valueCode value="SHALL:able-to-populate" />
        </extension>
        <extension url="actor">
          <valueCanonical value="http://hl7.org/fhir/io/psca/ActorDefinition/Producer" />
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/obligation">
        <extension url="code">
          <valueCode value="SHALL:no-error" />
        </extension>
        <extension url="actor">
          <valueCanonical value="http://hl7.org/fhir/io/psca/ActorDefinition/Consumer" />
        </extension>
      </extension>
      <path value="CodeableConcept.text" />
      <short value="Plain text representation of the concept" />
      <definition value="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user." />
      <comment value="Very often the text is the same as a displayName of one of the codings." />
      <requirements value="The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="CodeableConcept.text" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <condition value="ele-1" />
      <constraint>
        <key value="ele-1" />
        <severity value="error" />
        <human value="All FHIR elements must have a @value or children" />
        <expression value="hasValue() or (children().count() &gt; id.count())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <mustSupport value="true" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="C*E.9. But note many systems use C*E.2 for this" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="./originalText[mediaType/code=&quot;text/plain&quot;]/data" />
      </mapping>
      <mapping>
        <identity value="orim" />
        <map value="fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText" />
      </mapping>
    </element>
  </snapshot>
  <differential>
    <element id="CodeableConcept">
      <path value="CodeableConcept" />
      <comment value="For all CodeableConcepts, at least one of coding or text must be present. If coding contains only a display value (no code) then CodeableConcept must include text." />
    </element>
    <element id="CodeableConcept.coding">
      <path value="CodeableConcept.coding" />
      <comment value="While the IPS-UV specification considers this a Must Support element, some systems will not have the ability to support codings for every codeableConcept, further feedback is required on whether these systems are still expected to be able to demonstrate they can construct this element when developing the patient summary instance.&#xD;&#xA;&#xD;&#xA;Implementers that support codings should still send the codings for codeable concepts if they are available and receivers should not produce failures or rejections if codings are included in the patient summary in the first release (a base tenet of FHIR).&#xD;&#xA;&#xD;&#xA;Additionally vendors should expect that some jurisdictions may further constrain support of this element within the context of their own jurisdictional content" />
      <type>
        <code value="Coding" />
        <profile value="http://fhir.infoway-inforoute.ca/io/psca/StructureDefinition/Coding-ca-ps" />
      </type>
    </element>
    <element id="CodeableConcept.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/obligation">
        <extension url="code">
          <valueCode value="SHALL:able-to-populate" />
        </extension>
        <extension url="actor">
          <valueCanonical value="http://hl7.org/fhir/io/psca/ActorDefinition/Producer" />
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/obligation">
        <extension url="code">
          <valueCode value="SHALL:no-error" />
        </extension>
        <extension url="actor">
          <valueCanonical value="http://hl7.org/fhir/io/psca/ActorDefinition/Consumer" />
        </extension>
      </extension>
      <path value="CodeableConcept.text" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>