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

Tooling support to suppress inheriting comment stuff in snapshot

    XMLWordPrintableJSON

Details

    • Icon: Change Request Change Request
    • Resolution: Unresolved
    • Icon: Medium Medium
    • FHIR Core (FHIR)
    • R4
    • FHIR Infrastructure
    • (many)

    Description

      From FHIR-20385, need to handle the tooling part:

      2. Define a 0..* extension with a context of StructureDefinition called "removeOnSnapshot" with a coded value of code,comment,requirements,alias,example,mapping

      Definition: If present, will cause snapshot generation to remove all inherited values of the specified ElementDefinition property when producing the snapshot.  (Values defined in the differential will be kept.)

      3. Define a 0..1 boolean extension with a context of StructureDefinition.mapping, ElementDefinition.code, ElementDefinition.comment, ElementDefinition.requirements, ElementDefinition.alias, ElementDefinition.example, ElementDefinition.mapping called "suppress"

      Definition: If true, indicates that the property (or matching property if a repeating element) will be suppressed when generating the snapshot.  If this appears on StructureDefinition.mapping, it will suppress both the mapping element as well as all ElementDefinition.mapping elements with the same id

      Expression context invariant: can only appear if in a differential.  Can't appear in a snapshot.

      4. Define a 0..1 boolean extension with a context of ElementDefinition.constraint, ElementDefinition.binding called "intrinsic"

      Definition: If set to true, indicates that the rules of the element are already intrinsically enforced by other constraints and therefore there is no need to render the constraint to users

      Comment: Constraints so flagged will not be displayed in published documentation, but will be retained in the snapshot and will still be evaluated as part of validation.  The constraint still holds, it's just not displayed to the reader to avoid confusion.

      Rationale: If there's a constraint inherited from a parent model that says "must have either A or B" and the child model prohibits A and makes B mandatory, then displaying the constraint is redundant/confusing.  Similarly, if you inherit a required binding, but have a fixed value or a pattern that enforces a code from the binding, then showing the binding is redundant/confusing.  

      5. Will add ig properties that allow suppression of either all mappings or mappings of particular mapping ids.  This is used when the mappings are still 'true' but are of limited relevance for the purpose of the IG and might be distracting.  E.g. where an IG is defined to create mappings to a target spec, the mappings to other specs still hold (and might even be useful to some users), but are suppressed to avoid distracting from the primary mapping.

       

      Attachments

        Activity

          People

            lloyd Lloyd McKenzie
            lloyd Lloyd McKenzie
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: