Uploaded image for project: 'FHIR Specification Feedback'
  1. FHIR Specification Feedback
  2. FHIR-36738

Extension / ElementDefinition Clarifications

    XMLWordPrintableJSON

Details

    • Icon: Change Request Change Request
    • Resolution: Persuasive
    • Icon: Medium Medium
    • FHIR Core (FHIR)
    • R4
    • FHIR Infrastructure
    • StructureDefinition
    • Defining Extensions
      ElementDefinition
      Extensibility
      Profiling
    • Hide

      On the extensibility page in the Modifier Extensions section, will add:

      "When defining a new modifier extension, it is designated as being a 'modifier' rather than a 'regular' extension by setting the "isModifier" element on the root 'element' for the StructureDefinition to 'true'.  Only extensions that are defined as being modifiers can appear in modifierExtension.   A regular extension cannot be 'constrained' to be a modifier."

      On the StructureDefinition page, will add a new section called "Root elements", with the following text:

      "The very first element in a snapshot (the one with an element id of just the type name) defines characteristics that apply to the type as a whole.  Some of these characteristics affect the constraints that can hold on an element that references the type.  For example, if the root element cardinality is "0..1", then an element declared to be of that type cannot have a maximum cardinality greater than 1.  (This is often used when defining extensions to indicate that multiple extension repetitions of that type are not allowed within a single element.)

      In some cases, there can be redundancy between content defined on the root element and that defined on the StructureDefinition itself.  For example, ElementDefinition has 'definition' while StructureDefinition has 'description'.  These may have the same content put both places, though technically the 'definition' is text that describes what the type 'means', while 'description' is broader and may talk a bit about what the resource/data type/profile is for, in addition to its meaning."

      Show
      On the extensibility page in the Modifier Extensions section, will add: "When defining a new modifier extension, it is designated as being a 'modifier' rather than a 'regular' extension by setting the "isModifier" element on the root 'element' for the StructureDefinition to 'true'.  Only extensions that are defined as being modifiers can appear in modifierExtension.   A regular extension cannot be 'constrained' to be a modifier." On the StructureDefinition page, will add a new section called "Root elements", with the following text: "The very first element in a snapshot (the one with an element id of just the type name) defines characteristics that apply to the type as a whole.  Some of these characteristics affect the constraints that can hold on an element that references the type.  For example, if the root element cardinality is "0..1", then an element declared to be of that type cannot have a maximum cardinality greater than 1.  (This is often used when defining extensions to indicate that multiple extension repetitions of that type are not allowed within a single element.) In some cases, there can be redundancy between content defined on the root element and that defined on the StructureDefinition itself.  For example, ElementDefinition has 'definition' while StructureDefinition has 'description'.  These may have the same content put both places, though technically the 'definition' is text that describes what the type 'means', while 'description' is broader and may talk a bit about what the resource/data type/profile is for, in addition to its meaning."
    • Gino Canessa/Richard Ettema: 16-0-2
    • Clarification
    • Non-substantive
    • R5

    Description

      The extensibility page includes a section on Modifier Extensions but does not indicate how to actually define a modifier extension.

      There is some related information on the Defining Extensions page, in the Use of ELementDefinition in Extension Definitions section, but it never describes how to define modifier extensions, nor are any examples provided.

      Related zulip thread - there are some behaviors that can be based off the 'root' element of a StructureDefinition for extensions and profiles. I am not sure what they are or if they are covered (in part) by existing documentation. If they are undocumented, I would request that they are added. If they do exist (or are added), I would ask for links to be added to the related pages (e.g., Profiling, Extensibility, StructureDefinition, ElementDefinition, etc.).

      Thanks!

      Attachments

        Activity

          People

            GrahameGrieve Grahame Grieve
            ginocanessa Gino Canessa
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: