Generated profiles with a base resource include duplicate details in differential section

XMLWordPrintableJSON

    • Type: Change Request
    • Resolution: Persuasive with Modification
    • Priority: Medium
    • FHIR Core (FHIR)
    • DSTU1 [deprecated]
    • FHIR Infrastructure
    • StructureDefinition
    • (profiles)
    • Hide

      Change managed via #5170

      2015/03/09 MnM/FHIR Block Vote: Grahame/James 6/0/0

      Show
      Change managed via #5170 2015/03/09 MnM/FHIR Block Vote: Grahame/James 6/0/0
    • Enhancement
    • Non-substantive
    • DSTU1 [deprecated]

      By the definition in FHIR spec "Differential statements describe only the *differences *that they make relative to another profile (which is most often the base FHIR resource or data type)".

      Source: https://www.hl7.org/implement/standards/FHIR-Develop/profiling.html#2.11.0.5

      The current tooling seems to contradict this statement in that many of the same definitions are repeated in the differential section. If the type or cardinality of a particular element in a profile is the same as that of the base resource then it should not be present in the differential for that element in the profile but still appears.

      Example: (cqf-substance):

      <snapshot>
      <element>
      <path value="Substance.type"/>
      <short value="..."/>
      <formal value="..."/>
      <comments value="..."/>
      * <min value="1"/>
      <max value="1"/>*
      * <type>
      <code value="CodeableConcept"/>
      </type>
      <mustSupport value="true"/>
      <isSummary value="false"/>*
      <binding>...</binding>
      </element>
      </snapshot>

      <differential>
      <element>
      <path value="Substance.type"/>
      * <min value="1"/>
      <max value="1"/>
      <type>
      <code value="CodeableConcept"/>
      </type>*
      * <mustSupport value="true"/>
      <isSummary value="false"/>*
      </element>
      </differential>

      The FHIR tooling should suppress adding the type and cardinality (Iikewise mustSupport + isSummary) if it is the same of the base resource/profile to keep the profiles with only the actual differences between the profiles and its base.

      The only difference in profile should be changing this to the MustSupport value of true and the desired differential for "Substance.type" element should be following:

      <differential>
      <element>
      <path value="Substance.type"/>
      * <mustSupport value="true"/>*
      </element>
      </differential>

            Assignee:
            Unassigned
            Reporter:
            jason_mathews
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: